Archiv für Februar 2009

PHP – Intrusion Detection System

10 Februar 2009

Mit dem ganzen Hype um das „Web 2.0“ wurden immer Communitys aus dem Boden gestampft. Dabei haben die Nutzer immer mehr Möglichkeiten sich selbst in der Gestaltung und Thematik der Internetseite zu integrieren. Für einen Administrator ist das eigentlich das größte Horrorszenario, da man selbst nicht mehr die komplette Kontrolle über die Seite hat. Die Benutzer füllen Textfelder aus und die Webseite zeigt den Inhalt direkt den anderen Nutzern.

Nur das Problem ist einfach, dass man vielen Benutzern nicht trauen darf. Ob absichtlich oder unabsichtlich, es können Eingaben gemacht werden, die man als Administrator nicht haben möchte. Typischerweise sind das XSS oder CSRF Attacken.

Da kaum einer alle Eingaben selbst mitschreibt und die Attacken auch erkennt, gibt es das Projekt PHP-IDS, welches sich auf die Kontrolle von Eingaben spezialisiert hat. Ob es sich hierbei nun um eine SQL-Injection oder XSS-Injection handelt wird genauso bekanntgegeben, wie auch eine numerische Einstufung der Übergebenen Parameter.

Die Installation wird sehr gut erklärt, und ist sehr einfach selbst durchzuführen. Die selbstgeschriebenen PHP-Skripte müssen nichtmal angefasst werden, was ich als sehr positiv sehe. Es wird einfach in der .htaccess dem PHP-Interpreter mitgeteilt, dass er vor jedem Aufruf erst die PHP-IDS einbinden soll. Und schon ist man fertig, und kann etwas beruhigter schlafen 🙂

Links

PHP-IDS: http://www.php-ids.org

HowTo: http://www.howtoforge.com/intrusion-detection-for-php-applications-with-phpids

XSS: http://de.wikipedia.org/wiki/Cross-Site_Scripting

CSRF: http://de.wikipedia.org/wiki/CSRF

OWASP: http://www.owasp.org

Captchas sind geknackt. Was nun?

5 Februar 2009

Nachdem nun immer mehr Captchas im Web durch Spammer überlistet werden können, fragt man sich, wie man seine eigenen Seiten am besten schützen kann. Dabei ist aber auch zu berückstichtigen, dass der Anwender nicht durch komplizierte neue Verfahren was Unerwartetes eingibt.

Die Funktionsweise

Aber erstmal zur Funktionsweise von Captchas. Typischerweise errechnen diese eine Abfolge an Zeichen, die der Anwender in ein Textfeld eingeben muss. Je nach Komplexität des Strings und der irritierenden zusätzlichen Pixel wird es einem Bot schwerer gemacht das Ergebnis auszulesen. Zeitgleich wird es aber auch für den Menschen schwieriger die richtige Eingabe festzustellen. Die schädlichen Programme haben die Möglichkeit mittels OCR und anderer Verfahren den Text auf einem Bild zu erkennen und in das Textfeld zu schreiben.

Da also diese Captchas mit mehr oder weniger Aufwand geknackt werden können, muss man sich was anderes einfallen lassen. Man schützt seine Inhalte also am besten, indem man etwas hat, was sonst keiner verwendet. Dann werden die Bot-Entwickler vor die Frage gestellt, ob es sich für sie lohnt deinen Mechanismus einzubauen, oder ob Sie doch lieber ein paar tausend Seiten in wenigen Minuten knacken.

Was für Alternativen gibt es denn nun?

Als erstes sollte man weg von dem generieren von Bildern. Innerhalb einer kleinen Beschreibung für den Anwender kann man z.B. einfach eine einfache mathematische Rechnung durchführen lassen. Das kleine 1×1 sollte jeder kennen und lösen können. Wenn man es komplexer benötigt, kombiniert man einfach mehrere Berechnungen.

Aber gerade Computer können doch am besten Rechnen, also wäre doch auch dies knackbar. Und ja, ist es auch! Aber der Bot muss erstmal erkennen, wo die Rechnung steht die er durchführen muss. Das kann man in seiner Seite selbst variieren, und schon müsste der Bot-Programmierer sein Programm anpassen.

Eine andere Alternative ist es ein Wort oder Zahl auszugeben, und den User bitten dieses VERKEHRT herum einzugeben.

Hallo -> ollaH

Auch dies ist für einen Bot schwer zu erkennen, da er die Beschreibung nicht lesen und interpretieren kann. Und hier liegt der Vorteil gegenüber einem Bot.

Um den Benutzerkomfort zu verbessern, kann man – bisher zumindest – versuchen über JavaScript die Lösung direkt einzutragen und dem User damit die Rechenarbeit abnehmen. Eine komfortablere Möglichkeit gibt es eigentlich kaum noch 🙂 Abcer hier muss man beachten, dass dies auch nur solange gut geht, bis die Bots anfangen JavaScript zu lernen.

Fazit

Jedes Verfahren hat seine Vor- und Nachteile. Die Captchas sind keine echte Alternative mehr, da diese übermäßig im Internet verwendet werden, und somit schnell viele Ziele für die Bots zur Verfügung stehen. Je exklusiver eine Sicherung ist, desto besser ist der theoretische Schutz, da es für einen Bot-Entwickler nicht in einem positivem Kosten/Nutzen Verhältnis steht.

Links

OCR: http://de.wikipedia.org/wiki/Texterkennung