Ist mod_security eine gute Sache?

9

Ich bin kürzlich von fehlerhaften Fehlermeldungen von mod_security frequentiert worden. Die Filtersätze decken veraltete PHP-Exploits ab, und ich muss meine Inhalte neu schreiben, da Wordpress & Co vor Jahren Fehler hatte.

Passiert das jemand anderem?

Apache mod_security blockiert möglicherweise gefährliche HTTP-Anforderungen, bevor sie Anwendungen erreichen (speziell PHP). Es werden verschiedene Filtersätze verwendet, die hauptsächlich auf Regex basieren.

Also habe ich einen netten Shared Hosting Anbieter, technisch passend und so. Aber das nervte mich:

Erst letzte Woche musste ich einen Parameternamen &src=in einer meiner Apps ändern, weil mod_security damit JEDE Anfragen blockiert. Ich habe die Details nicht nachgeschlagen, aber diese Filterregel verhinderte die Ausnutzbarkeit einer anderen App, die ich nicht verwende und von der ich wahrscheinlich noch nie gehört habe. Trotzdem musste ich meinen Code neu schreiben (das Umbenennen von Parametern reicht oft aus, um mod_security auszutricksen), was nichts damit zu tun hatte oder damit gemein hatte!

Und heute blockiert ein alberner Regex Formulareingaben, weil ich PHP-Beispielcode einreichen wollte. Dies ist das einfache Zeug, vor dem mod_security schützen soll. Aber ich glaube nicht, dass mod_security ernsthaft verschleierten Code erkennen kann und nur bei offensichtlichen (und in diesem Fall völlig trivialen) PHP-Schnipsel abläuft.

Grundsätzlich werde ich von mod_security bestraft, weil andere Leute fehleranfällige Apps veröffentlicht haben. (Ich sage nicht, dass meine Apps extrem sicher sind - ich bin ziemlich sicherheitsbedürftig, mache aber keine hyperbolischen Ansprüche.)
Ich habe meinen Provider bereits gebeten, sie trotzdem zu deaktivieren. Die Vorteile sind zu gering, IMO und für meine Apps.


Was denkst du? Ist mod_security außerhalb des WP-Hostings sehr sinnvoll? Oder sind es wirklich nur ein paar schwarze Listen mit längst vergangenen Sicherheitslücken? Welche der Regeln sind tatsächlich hilfreich? Gibt es eine entsprechende Anwendungsebene?

Mario
quelle
1
Diese Übermittlung von PHP-Code ist albern, weil selbst das Drucken eines Strings mit <?php doBadStuff(); ?>diese Funktion nicht ausgeführt wird. (Es sei denn, Sie verwenden evalnatürlich, was sowieso böse ist.)
DisgruntledGoat
@DisgruntledGoat: Oder vielleicht war ich wieder zu mürrisch, nur wegen zweier Fehlalarme. Am Ende ist mod_security wie ein Virenscanner, der immer noch MS-DOS-Virensignaturen enthält. Meistens nicht hilfreich, fängt aber den zufälligen Exploit-Scanner und gelegentlich potenzielle Badstuff () ab? Oder so:}
Mario

Antworten:

3

Ich persönlich sehe mod_security als Patch. Ich verwende es auf einigen unserer Server, auf denen wir den hochgeladenen Code nicht kontrollieren können (z. B. gemeinsam genutzte Hosting-Server), aber es hat sich für mich nie wirklich als gute Lösung angefühlt. Aufgrund seines breiten und sehr allgemeinen Blacklist-Ansatzes ist es eher ein Patch, um Sicherheitslücken zu schließen, als eine gute Sicherheitsrichtlinie.

Es kann auch ein falsches Sicherheitsgefühl vermitteln. mod_security kann einige häufige Angriffe aufdecken, aber keinen Angriff verhindern. Wieder ist es eine schwarze Liste allgemein bekannter Angriffe. Wenn Sie einfach mod_security installieren und denken, dass Sie magisch sicher sind, irren Sie sich schrecklich.

Ich habe eine viel bessere Richtlinie für verwaltete Server gefunden, bei der mein Team den gesamten Code überprüft, der auf ihnen platziert ist, kombiniert mit vielen Protokollen, Protokolldateianalysen, Berichtssystemen und Intrusion Detection / Intrusion Prevention-Systemen (IPS). Jedes Mal , wenn Software von Drittanbietern oder Open Source installiert wird (ich sehe Sie an , WordPress!), Führen wir ein Protokoll darüber, wo sie installiert wurde, und wenn neue Versionen veröffentlicht werden, aktualisieren wir jede installierte Kopie.

Auch hier ist es wahrscheinlicher, dass Sie mod_security auf einem gemeinsam genutzten Hosting-Server finden, wie Sie es jetzt erleben. Wenn Sie wachsen, können Sie zu einem VPS- oder Clod-basierten Hosting-Anbieter wechseln, bei dem Sie Ihre eigene verwaltete Umgebung erhalten und die verfügbare Software genauer steuern können.

Josh
quelle
So fühlt es sich für mich an. Für die Sicherung von gemeinsam genutzten Hosting-Konten scheint suexec + fastcgi im Allgemeinen besser geeignet zu sein. Auf einem VPS und mit vollständig benutzerdefiniertem Code hilft mod_security selten (es werden jedoch einige HTTP-Konformitätsprüfungen durchgeführt). +1 umfassende Protokolle.
Mario
0

Meiner Meinung nach ist mod_security eine gute Idee, wenn Sie ein Anfänger in der Programmierung sind. Wenn Sie sich jedoch die Zeit nehmen, Ihre Anwendungen korrekt zu schreiben, und vermeiden, unsicheren Code zu schreiben, der eval oder verkettete GET-Zeichenfolgen direkt in SQL verwendet, sollten Sie in Ordnung sein es. mod_security wird die ernsthaften Hacker niemals aufhalten, und wenn Sie eine gute Anwendung haben, geben die Skriptkinder auf und wechseln zur nächsten wirklich schwachen und unsicheren App da draußen.

Brandon Wamboldt
quelle
Weg, um Ihre Abstimmung nicht zu erklären>. <
Brandon Wamboldt