Industrialisierung des Auditing-Bereichs Marc Ruef | 03.05.2010 Ich habe eine starke Abneigung gegen Gruppendruck. Wird ein solcher auf mich ausgeübt, reagiere ich uneingeschränkt in der gegenteiligen Art und Weise. Diesem "gegen den Strom schwimmen" habe ich wohl zu verdanken, dass ich nie lange geraucht habe. Ich habe über 15 Jahre in einer Rockband gespielt (http://field.computec.ch) und war stetig von Rauchern umgeben. Und dies war der Hauptgrund für mich, Nichtraucher zu bleiben (abgesehen vom vielen Passivrauchen; vor allem an den Konzerten). Diese Marotte meinerseits führt jedoch auch den Effekt mit sich, dass ich gehypte Sachen oftmals gar nicht oder erst spät geniessen kann. So zum Beispiel bei der Fernsehserie Lost (2004) (http://www.imdb.com/title/tt0411008/). Erst Jahre später habe ich mich (in einem zweiten Anlauf) dazu durchgerungen, sämtliche Folgen in sequentieller Reihenfolge und im englischen Original anzuschauen. Eine Serie, die eigentlich ein riesiger Cliffhanger zu sein scheint (diesen Eindruck machen jedenfalls die ersten fünf Seasons). An dieser Stelle möchte ich sodann anmerken, dass ich in nachfolgendem Absatz einen kleinen Spoiler zur Serie vortragen muss, um den eigentlichen Aspekt dieses Blog-Posts einzuleiten. Wer also Lost bis zur zweiten Staffel noch nicht gesehen hat und die Serie gerne noch voller Spannung schauen möchte, der soll hier aufhören zu lesen bzw. den folgenden Absatz übergehen. iLost Spoiler Start/i. Schon in der ersten Staffel findet die abgestürzte Gruppe um Jack und Locke einen Bunker. Dieser kann in der ersten Hälfe der zweiten Staffel geöffnet werden. In diesem findet sich unter anderem ein Computerraum, in dem ein Terminal aufgestellt ist. Auf diesem muss in regelmässigen Abständen immerwieder der gleiche Code eingegeben werden, um ein bestimmtes Ereignis zu verhindern. Um welches Ereignis es sich hier handelt, weiss man noch nicht. Für die Eingabe zeichnet sich ursprünglich ein dafür vorgesehenes Team veantwortlich. Nachdem dieses jedoch nicht mehr anwesend ist, übernimmt in erster Linie Locke diese Aufgabe. iLost Spoiler Ende./i Mein erster Gedanke war: Die Idee des modernen Computers ist a) grosse Datenmengen zu verarbeiten und b) wiederkehrende Aufgaben zu automatisieren. Die in Lost eingebrachte Tätigkeit ist offensichtlich wiederkehrend und kann ohne Probleme mit einem Cron-Job automatisiert werden. Dies durch einen Menschen durchführen zu lassen, widerspricht jeglichem Aspekt der angewandten Informatik. Wäre ich vor Ort gewesen, hätte ich eine deartige Interaktion mit dem Computer verweigert. Doch diese Szenen beweisen mitunter, wie sehr viele Menschen das Prinzip des Computers auch nach Jahren noch missverstehen. Wenn Leute in aufwendiger Weise Daten kopieren oder gar abschreiben, obwohl mittels einem Parsing-Skript derlei Dinge im Nu und vor allem Fehlerfrei immerwieder initiiert werden können. Eine Automatisierung mit einem Skript oder einer umfangreichen Software-Implementierung lohnt sich immer dann, wenn eine Arbeit a) wiederkehrend und b) fehleranfällig ist. Im Rahmen unserer Sicherheitsüberprüfungen haben wir ein datenbankbasiertes Expertensystem entwickelt, welches uns bei unseren Arbeiten unterstützt (erstmals erwähnt im Labs Blog (http://www.scip.ch/?labs.20090814)). Wiederkehrende Tests, wie zum Beispiel das Generieren spezieller TCP-Segmente, können automatisiert werden. Die Resultate werden in die Datenbank geschrieben und dienen als Grundlage für weitere Zugriffe oder fliessen direkt in das Reporting ein. Das Datenbanksystem erlaubt jedoch zu jedem Zeitpunkt eine Moderation der Resultate, des weiteren Vorgehens und der Dokumentation. Die Automatismen können damit durch den Analysten überschrieben werden. False-Positives und fehlerhafte Ableitungen können erkannt und ausgebessert werden. Durch den Automatismus können wir vor allem grössere Prüfungen effizienter und zuverlässiger gestalten. Wenn denn mal eben 3'000 Systeme in 20 unterschiedlichen Netzwerkzonen untersucht und in einem Dokument beschrieben werden sollen, dann ist Copy & Paste definitiv die falsche Lösung. Wenn wir bei einem lokalen Scan davon ausgehen, dass ein System im Schnitt 10 Ports offen hat und wir pro Port im Schnitt 1.2 Schwachstellen dokumentieren, dann müssen insgesamt 36'000 Einträge generiert werden. Und gehen wir wieder davon aus, dass pro 100 Einträgen ein Fehler passiert (Schwachstelle versehentlich übergangen, doppelt eingetragen oder falschem System zugewiesen). Insgesamt wären dies 360 Fehler in einem solchen Projekt. Und wenn es nach mir geht, dann sind dies 360 Fehler zu viel. Zudem hilft das Expertensystem dabei, dass alle Tests geregelt ablaufen, unabhängig davon, wer sie durchführt. Die Vergleichbarkeit von Analysen wird nämlich schwierig, wenn sowohl unterschiedliche Ziele verfolgt werden als auch das Erreichen dieser durch unterschiedliche Methoden angegangen wird. Jede Schwachstelle enthält detaillierte Informationen, wie sie verifiziert werden kann und welche Probleme (False-Positives und False-Negatives) bei einer Analyse auftreten können. Es sind genau solche Mechanismen, die eine dringend erforderliche Industrialisierung des Auditing-Bereichs vorantreiben können.