Access Denied by security policy
Inhaltsverzeichnis |
Problem
Der Kunde wird durch eine server-interne Sicherheitsregel daran gehindert, Änderungen an der Webseite abzuspeichern.
er bekommt dann eine folgende Fehlermeldung:
Access denied by security policy Your request is blocked by a security policy rule Please concact the Support team, support@hoststar.ch and inform themof the Time the error occured, and anything you might have done that may have caused the error. More information about this error mey be available in the server error log. ----------------------------------------------------------------------------------------------------------------------------------- Please provide the following information to our support team: www.alua.ch | ip-Adresse (101.169.255.252) | Zeitangabe: 25.02.2014 02:57:58
Ursache
Meist handelt es sich um ein Badword oder Link, welches/welcher geblockt wird
Lösung
Greifende Regel erkennen:
Zuerst auf den Server connecten und die folgende Zeile ausführen:
zgrep 101.169.255.252 /var/log/httpd/error-log-20140225.bz2 (Je nach Zeitangabe verschieden)
Danach erscheinen die Log-Einträge:
[Tue Feb 25 03:04:14 2014] [error] [client 101.169.255.252] ModSecurity: Access denied with code 510 (phase 2). Pattern match "['\\";=]" at FILES:lokale_datei. [file "/usr/local/apache2/conf/mod_security2/base_rules/modsecurity_crs_20_protocol_violations.conf"] [line "73"] [id "960000"] [rev "2.2.5"] [msg "Attempted multipart/form-data bypass"] [data "1 The Author's Wing.JPG"] [severity "CRITICAL"] [tag "RULE_MATURITY/7"] [tag "RULE_ACCURACY/7"] [tag "https://www.owasp.org/index.php /ModSecurity_CRS_RuleID-960000"] [hostname "www.alua.ch"] [uri "/bilder_upload.php"] [unique_id "Uwv6En8AAAIAAEMOTH8AAAAI"]
wichtig ist die (meist) 6-Stellige Nummer (hier 960000), diese ist die ID der greifenden Regel.
Regel deaktivieren:
Die ID muss nun mit den Folgenden Zeilen in den HTTPD-Spez-Einstellungen deaktiviert werden:
<IfModule mod_security2.c> SecRuleRemoveById 960000 </IfModule>
Nach dem Speichern das Counter-Script ausführen:
/usr/local/confixx/confixx_counterscript.pl -ft -dbg
Kunde benachrichtigen:
Das folgende Mail kann an den Kunden gesendet werden:
Sehr geehrter Herr XXXXXXXXXXXX
Einige Aktionen von PHP werden auf unseren Servern von automatischen Sicherheitsregeln blockiert. Diese können dann nach und nach deaktiviert werden, um die Fehlerursache zu beseitigen.
Ich habe die betroffene Sicherheitsregel nun deaktiviert. Es kann sein, dass gewisse Aktionen von mehr als einer Regel blockiert werden.
In dem Falle würden Sie noch einmal solch eine Fehlermeldung bekommen. Ich würde Sie bitten, mir die Fehlermeldung erneut zukommen zu lassen, falls sie wieder auftauchen sollte.
Englisch:
Dear Mr. XXXXXXXXXXX
Some PHP actions or functions are currently blocked on our servers by security policies. They can be deactivated by a technican of ours easily.
I deactivated the affecting security policy now. It could be that some php actions are blocked by more than one policy.
In that case, you will recieve another error of this kind. So please hand over the error message if it appears again.
Spezialfall:
Wenn Die ID in den Logs nicht drin steht:
zgrep "www.alua.ch" /var/log/httpd/modsec_audit.log
oder
zgrep "101.169.255.252" /var/log/httpd/modsec_audit.log
Danach ganz normal weiter verfahren