PHP Blogger

Startseite Schreib mir ne Mail! RSS Abo Webnews

PHP Intrusion Detection

Worf“Worf: Waffensysteme laden. Bereit? Feuer!”

Man sollte es wie Kapitän Picard machen: Bevor man wild auf alles feuert, was eine Applikation an Benutzereingaben geliefert bekommt, erstmal gründlich sondieren. Eine gehärtete Applikation ist wichtig - die meisten Entwickler nehmen dieses Thema leider immer noch auf die leichte Schulter. Warum? Meist ist es ein Mangel an Zeit und oft will kein Auftraggeber eine sichere Applikation bezahlen.

Spätestens bei Serverkaperung, Datendiebstahl oder Fakeinhalten in der Datenbank schreien alle um Hilfe. 3 Jungs aus Deutschland haben sich dem Thema auf einer englischsprachigen Website angenommen ;) Natürlich ist das Projekt international - es gibt ja nicht nur deutsche Problemfälle, was sichere Applikationen angeht. Köln scheint die sichereste Stadt zu sein: zumindest, was Web-Applikationen angeht…

Jetzt wissen wir schon mal, wer hinter PHP-IDS steckt - aber um was geht es bei der Feindabwehr eigentlich?

Die Mechanismen einer Webapplikation werden entweder über Kommandos gesteuert, die mittels HTTP übertragen werden. Hier werden URLS, GET-Parameter und POST-Inhalte verwendet, um zu übertragen. Wenn die Daten erstmal auf dem Server angekommen sind geht es los:

  • Filterung mit Black- und Whitelists
  • Entfernen von Steuerzeichen und Tags
  • Umformatierungen

Wenn überhaupt. Oft werden die Inhalte wie folgt von der URL in die Datenbank transportiert:

$query= "SELECT * FROM `user`
WHERE `name` = " . $_POST["user"];

Ups. Besonders Ups, wenn es sich um eine öffentliche Applikation und nicht etwa ein Intranet handelt (Was auch keine Entschuldigung wäre). Mit einer einfachen RegEx könnte man überprüfen, ob hier nur die typischen Zeichen für Benutzernamen übertragen wurden (_0-9A-Z).

Aber welche Stellen sollte man in einer Applikation besonders sichern? Schwierig zu beurteilen. Erst mal haben natürlich alle Bereiche Priorität, die öffentlich zugänglich sind. Aber welcher Benutzer hätte nicht gerne Admin- oder Rootrechte, wenn er an einem System angemeldet ist?

PHP IDS

Um generell einschätzen zu können, wie es überhaupt um Hackerangriffe bestellt ist, ist der Einsatz von PHP IDS geraten: Es ist eine Art Frühwarnsystem, das einkommende Daten auswertet und in verschiedene Levels einstuft.

Was ist es nicht? Es stellt keine Filter- oder Bereinigungsmechanismen bereit. Das wäre von Applikation zu Applikation ohnehin höchst unterschiedlich zu implementieren - daher kann jeder Entwickler wie er möchte auf die PHP IDS Klassifizierung reagieren.

Das Sicherheits-Framework besteht aus 2 wesentlichen Teilen: Die Regeldatei, die entweder aus einer Datenbank oder vom Dateisystem aus einer XML-Datei geladen werden kann und der Interpreter, der die Filterdatei ausliest und die einzelnen Regeln mit den Eingangsdaten abgleicht.

Damit der Datenabgleich mit den Filtern nicht zu lange dauert, werden erst einige Trivialregeln abgeprüft: Trifft eine davon zu, wird der Abgleich abgebrochen. Beispielsweise, wenn nur Standardzeichen wie Buchstaben und Zahlen enthalten sind. Es lebe die Performance!

Auf der FAQ Seite sind zahlreiche Beispiele für die Einbindung der Bibliothek zu finden… Wenn man sich den Downloadbereich anschaut, gibt es dort neben der PHP 5 Version auch einen Port für Version 4 von PHP als Download. Plugins für Wordpress und Typo 3 sind angekündigt…

Ähnliche Artikel:

  1. Ext 2.0 Final veröffentlicht

PHP Blogger: PHP IDS Update auf Version 0.4.2 - Ein PHP Blog auf deutsch meint dazu:

19. November 2007 um 12:49

[...] Eines der Projekte, auf die ich mein Auge geworfen habe, hat bereits Ende Oktober eine neue Version zum Download bereitgestellt: PHP Intrusion Detection. [...]

butzi meint dazu:

22. April 2008 um 16:33

Ein guter Ansatz.
Ich werds dann glatt mal in unserem wöchtenlichen Meeting ansprechen, vielleicht gibt es bald einen Nutzer mehr :-)
Danke für den Tipp

timi meint dazu:

22. April 2008 um 16:48

Gern geschehen!

Slackline Blogger meint dazu:

7. Juli 2010 um 14:24

Ich habe davon schonmal gehört. Werde mich auch daran machen, das mal einzusetzen. Sicherheit spielt ja eine große Rolle in der heutigen Zeit. Danke fürs nochmal erinnern:)

RSS für Kommentare zu diesem Artikel · TrackBack URI

Schreib Deine Meinung