Wider die Injection-Pest, bewaffnet mit AQTRONIX
Wer Webserver unter Windows und IIS betreibt, der hat oft auch eine SQL-Datenbank im Köcher. Klar, ASP und .net Anwendungen sind mit diesem Gespann gut ausgeliefert.
In dieser Konstellation kämpft man als Verantwortlicher aber auch unentwegt gegen Versuche der Kompromittierung. Meines Wissens nach steht keine andere Server-Konfiguration zur Zeit (1. Hj. 2008) so unter Injection-Beschuß wie diese.
“DROP TABLE Kunden” – finaler Datenmord.
Injection?
Ich meine die SQL-Injection (WikiPedia). Das ist eine Einbruchsmethode die versucht, dem Server mörderische SQL-Befehle unterzuschieben, in dem sie Eingaben aus WWW-Masken wie Bestell- oder Kontaktformularen manipuliert. Ausgenutzt wird eine Schwachstelle des Systems, die es unerfahrenen Programmierern möglich macht, solche Formulare ohne die Befolgung von Sicherheitsmaßnahmen zu betreiben. Erfolgreiche Einbrüche sind nicht wirklich ein Gottesurteil, eher Folge von Uninformiertheit oder Ignoranz.
Andererseits sind die nötigen Maßnahmen mit ordentlich Aufwand verbunden. Es gibt von Microsoft kein Verhüterchen, das einem ungepflegten (und anfälligen) System einfach übergestülpt werden kann. Es muß eben effizient und sauber codiert werden, Stichwort “parametrisierte Querys”.
“Leg das mal dem Sascha hin, wenn der in den Semesterferien kommt, kann der sich mal drum kümmern.”
SQL-Injections passieren öffentlich, jederzeit nachlesbar in den Logdateien. Wer merkwürdige “SELECT” in den Protokollen sieht oder sich die Mühe macht, nach einem “DECLARE%20@S%20VARCHAR(4000)” Ausschau zu halten und solche findet, der kann quasi live verfolgen, wie sich Bots aus allen Teilen der Welt an seinem Server zu schaffen machen. Ziel ist es, Schadcode in die Datenbanktabellen einzuschleusen, der dann als Bestandteil der Webseite dem nächsten Besucher in der ausgelieferten HTML-Seite untergejubelt wird. Das können zum Beispiel Javascript-Programme sein, die dann direkt weiteren Schadcode auf den Besucher-PC nachladen, in der Hoffnung, der merke es nicht. So ist Ruck-Zuck ein Zombie gebaut, der beispielsweise zum Versenden von SPAM mißbraucht werden kann.
Leider ist aber eben auch schlimmeres denkbar. Manche Kreditkartendaten gelangen auf diesem Wege in die Öffentlichkeit, notwendiges Vertrauen der Kunden wird vernichtet. Wettbewerber können so mit Tiefschlägen unter die Gürtellinie kaltgestellt werden.
Es gibt Tausende von Servern, deren Anwendungen wahrscheinlich nie mehr von ihrem ursprünglichen Anwendungsentwickler angefasst werden. Da sitzt dann der C-Admin (meist also der nebenberuflich arbeitende Webmaster) hilflos vor der Mail des Providers, in der mittels Abschaltdrohung und Wikipedia-Links unmißverständlich zum Handeln aufgefordert wird.
URL-Scan: Schon am Eingang gibts gleich was auf die Finger
Eingeschleust wird valider SQL-Code, meist vollgestopft mit Funktionen und mit einem CAST verschleiert. Der SQL-Admin staunt nicht schlecht, was jenseits der Lehrbücher noch so alles veranstaltet werden kann. Und alles kommt als HTTP-Request direkt über die URL, wird sofort und brav vom Webserver IIS bearbeitet. Das Fiasko nimmt seinen Lauf.
Doch der IIS bietet eine Docking-Buchse. Mit sogenannten ISAPI-Filtern können dem Webserver zusätzliche Programme beigegeben werden, durch die solche Anfragen durchgeschleust werden. Das URL-Scanning wird möglich.
Hier kommt ein Open-Source Projekt ins Spiel. Unter dem Label AQTRONIX haben findige Leute einen Knecht gebaut, der just die ganzen eingehenden Seitenanforderungen analysiert und die guten ins Töpfchen, die schlechten ins Kröpfchen sortiert.
Der “AQTRONIX WebKnight” arbeitet als ISAPI-Filter im IIS. Er wird mit einer XML-Datei konfiguriert und blockt Dutzende von Unregelmäßigkeiten, unter anderem auch sehr effizient die SQL-Injections. Aber auch mit Such-Robots, Content-Spidern und schlicht idiotischen Zugriffen kennt er sich aus. Er schließt Verzeichnisse, unterbindet unzulässige Zugriffe auf verschiedenste Dateitypen, prüft Referer, schließt tückische Browser aus und vieles mehr.
Klar, vieles davon (vielleicht auch alles?) kann man auch mit Bordmitteln des Server-Windows erschlagen. Doch sind wir ehrlich, die meisten bei Providern gehosteten Windows-Server werden von Menschen administriert, die die meiste Zeit darauf verwendet haben, Preise verschiedener Anbieter miteinander zu vergleichen. Einen Lehrgang für Serveradministration haben die nicht besucht.Für Sascha braucht es also ein Taschenmesser mit Schweizer Qualitäten. Und der Knecht schafft zumindest zusätzliche Sicherheit.
Dennoch die Warnung: Liebe Kunden, bezahlt Euren Admins bitte das Sicherheitstraining. Ihr werdet es nicht bereuen.


