bluebay2014 - Fotolia

IT-Sicherheit: Automatisierte Tests reichen nicht aus

Automatisierung spart bei Penetrationstests Zeit und Geld. Der menschliche Faktor erkennt eher versteckte Schwachstellen. Die Mischung macht es aus.

Wir leben in einem Zeitalter der Automatisierung. Das kann man generell kritisch sehen – doch, dass die Technik uns Arbeit abnimmt, ist weder neu noch besonders verwerflich. Wir sparen so Zeit, vermeiden Fehler und schaffen uns selbst Freiraum, um weniger monotone Tätigkeiten auszuüben. Und so war niemand überrascht, als auch Penetrationstests nach und nach automatisiert wurden – heute gibt es bereits eine Reihe von Anbietern, die entsprechende Tools anbieten. Deren Sicherheitslösungen sind eine gute Grundlage, um Cross-Site-Scripting, die diversen Arten von Injection-Angriffen, fehlende Sicherheits-Patches, Standardpasswörter und andere Schwachstellen aufzudecken.

Dennoch: es gibt eine Grenze dessen, was diese Lösungen entdecken können. Technische Prozesse und Algorithmen finden technische Fehler; sie sind nicht entwickelt worden, um Logik- oder Designfehler zu finden. Die Automatisierung hat ihre Vorzüge – und ihre Unzulänglichkeiten.

Eine der grundlegendsten Aufgaben innerhalb des Penetrationstests lässt sich mit einer Gruppe von Affen vergleichen, die wahllos auf Schreibmaschinentasten einhauen. Wenn die Affen lange genug durchhalten, könnte irgendwann ein Stück von Shakespeare dabei herauskommen. Überspitzt gesagt, funktionieren automatisierte Penetrationstests ganz ähnlich: Sie senden eine Vielzahl von Nachrichten an das System und beobachten die Reaktion – in der Hoffnung, dass etwas Interessantes passiert.

Automatisierung sorgt dafür, dass sich mehr Testinputs schneller versenden und auswerten lassen. Bekannte Techniken und Routineüberprüfungen können damit effizient und skalierend durchgeführt werden. Doch im Backend können diese Fehler, von manuellen oder automatischen Inputs erzeugt, bestimmte reale Implikationen auslösen – etwa eine E-Mail an das Support-Team. Prasseln nun automatisierte Inputs auf diesen Trigger, kann der Support mit Millionen von E-Mails, einer Datenbank voller gefälschter Namen und erfundenen Kundeninformationen und dazugehöriger Support-Tickets überschüttet werden. Die Mitarbeiter im Backend müssen nun in qualvoller Kleinstarbeit herausfinden, welche Kundenanfragen echt und welche nur Ergebnis eines automatischen Tests waren. Menschliche Penetrationstester mit ein wenig Fingerspitzengefühl erzeugen in der Regel deutlich weniger dieser Komplikationen. Vollständig vermeiden lässt sich diese Situation allerdings nur dann, wenn ein Test-System verwendet wird, in dem diese Backend-Funktionen deaktiviert sind.

Zugriff und Autorisierung

Fehler und Schwachstellen im Bereich Zugriff und Autorisierung werden normalerweise durch automatisierte Tests nicht gefunden. Auf einer Website würde die Lösung beispielsweise dem verlinkten Content folgen – dabei ist die wahre Herausforderung, nicht verlinkte Inhalte zu finden, die echten Schaden anrichten können. Erfahrene menschliche Tester wissen, wie man nach derart unsichtbaren Seiten sucht und wie man manuell verschiedene URL-Permutationen ausprobiert.

Wenn solche Seiten aufrufbar sind, stellt sich die Frage: dürfen diese Inhalte öffentlich zugänglich sein? Ein automatisiertes Tool kann nicht beurteilen, ob der Zugriff auf die Seite aufgrund entsprechender Zugriffsrechte möglich ist, oder aufgrund von Fehlern im Berechtigungssystem oder in deren Implementierung; ihm fehlt der Zusammenhang, der Kontext. Doch versteckte Seiten sind nicht alles – es gibt durchaus Software, die mittels Brute-Force auch solche Verzeichnisse aufdeckt. Das Problem liegt darin begründet, dass eine Maschine den Inhalt der Seiten nicht versteht.

Potenzielle Szenarien sind Seiten, die Kundeninformationen beinhalten oder ein normaler Nutzer, der unverhofft Zugang zu administrativen Funktionen erhält und falsche Autorisierungen vornimmt. Vielleicht schafft er es sogar, online negative Geldwerte zu überweisen und sich somit Geld zu erschleichen. Dafür könnte er -100 Euro von seinem auf ein anderes Konto überweisen, mit dem Ergebnis, dass der Betrag zweimal negativ gerechnet und so positiv wird – am Ende werden ihm 100 Euro gutgeschrieben. Auch die Geschäfts-Logik kann von einem automatisierten Tool nicht wirklich verstanden werden, weshalb dieses – anders als der Mensch – keine kreativen Wege suchen wird, um die Geschäftslogik zu umgehen, zu manipulieren, oder zum eigenen Vorteil auszunutzen.

Fehlende Übersicht

Neue Technologien sind ebenfalls eine veritable Herausforderung für automatisierte Tests. Viele Unternehmen nutzen bereits APIs und Container, doch dies führt zu einem Verlust an Übersicht über die gesamte Applikation beziehungsweise die davon abhängigen Schnittstellen und Systeme. Automatisierte Tools verfügen zum Teil nicht über wichtige Informationen oder sind nicht in der Lage, die APIs zu verwenden oder die API-Rückgaben korrekt zu interpretieren. Architektonische und kontextuelle Risiken können automatisierte Lösungen schlicht überfordern. Der aktuelle API-First-Trend in der Entwicklung erschwert es automatisierten Tools deshalb, sich ein grundlegendes „Bild“ von der Applikation zu machen.

An der Interpretation scheitern viele Sicherheitstests. So sind Maschinen oft blind für die Art und Weise, wie Passwörter gespeichert werden – etwa, ob es sich um einfache (und unsichere) MD5-Hashes oder um relativ sichere, aufwendig zu berechnende und mit randomisierten Salts versehene Hashes wie von bcrypt handelt. Das ist keine triviale Information. Auch Error Messages können für Maschinenaugen völlig unverständlich sein – für sie ergibt sich auch kein Sinn aus einem Debug-Output, der Environment-Variablen enthält.

Fingerspitzengefühl: Fehlanzeige

Menschen können ihre Tests flexibel anpassen, verzögern oder abbrechen, wenn sie Sorge haben, dass eine bestimmte Aktion das System überlasten oder zum Absturz bringen könnte. Automatisierte Tools nehmen ihr Ziel hingegen unter Dauerfeuer – ohne Rücksicht auf Verluste. So kann es passieren, dass Systeme ihren intendierten Zweck nicht mehr erfüllen und etwa die Eingaben von echten Benutzern nicht mehr verarbeiten können. Der Einsatz auf einem Livesystem ist daher nur unter besonderen Vorkehrungen möglich.

Automatisierte Lösungen können eine große Menge an Aufgaben auf vielen verschiedenen Systemen ausführen. Sie sparen uns Zeit und Mühe. Doch sie testen nur bekannte Sicherheitslücken, die ihre Gefährlichkeit bereits unter Beweis gestellt haben. Der Lösung fehlt die menschliche Neugier und Kreativität eines Penetrationstesters, der sich ständig fragt „Lässt mich das System diese Aktion ausführen? Nein? Was, wenn ich ganz anders herangehe…“ Dieser Forscherdrang, das Schritt-für-Schritt-Erproben ist etwas, das Menschen noch am besten können.

„Unternehmen sollten sich bewusst machen, wo die Grenzen des Maschinenmöglichen liegen und sich nicht alleine auf automatisierte Lösungen verlassen – menschliche Interaktion und menschliche Findigkeit sind noch lange nicht obsolet.“

Dr. Amir Alsbih, LSE Leading Security Experts

Automatisierte Lösungen unterstützen meist nur einen bestimmten Kreis an Technologien. Wenn man etwa eine Flash-Anwendung testen will (um ein extremes Beispiel zu nennen), so stehen die Chancen gut, dass die Lösung nicht in der Lage ist, etwas zu finden oder zu identifizieren. Ähnlich steht es mit Fat-Clients – was dazu führt, dass am Ende Anwendungen reverse-engineered und der Traffic zwischen Systemen abgefangen und interpretiert werden muss.

Die Mischung macht es

Doch es gibt auch andere Ansätze, die das Beste aus beiden Welten vereinen: In der Regel wird dabei mit einem automatisierten Test gestartet, um dann in einer forschenden, subtilen zweiten Phase selbst Hand anzulegen. Ein manueller Ansatz kann auch die typischen False-Positives von Anfang an ausschließen, Ergebnisse aggregieren und eine höhere Qualität sichern.

Unternehmen sollten sich bewusst machen, wo die Grenzen des Maschinenmöglichen liegen und sich nicht alleine auf automatisierte Lösungen verlassen – menschliche Interaktion und menschliche Findigkeit sind noch lange nicht obsolet. Automatisierte Tools liefern automatisierte Reports, die ein Mensch interpretieren muss. Daher ist es wertvoll, die Ergebnisse bereits von Menschen aufarbeiten zu lassen. So wird klar, wo die Schwachstellen liegen, wie sie zu beheben sind und sogar, wie die eigenen Prozesse angepasst werden können, um zukünftige Schwachstellen zu verhindern – wenn der Kunde diese Ausführlichkeit wünscht.

Weder eine komplett automatisierte noch eine komplett manuelle Version sind ideal; beide Seiten haben ihre Vorteile. Mischt man beide Ressourcen miteinander, so erhält man die besten Penetrationstests. Automatisierung spart Zeit und Geld, vor allem bei umfangreichen Volumen-Aufgaben – stattdessen lässt sich die menschliche Aufwendung im Bereich der kreativen, investigativen und forschenden Tests veranschlagen, um versteckte Schwachstellen zu enttarnen. Diese Balance sorgt nicht nur für die effektivsten Tests, sie garantiert auch den optimalen ROI.

Über den Autor:

Dr. Amir Alsbih ist seit Anfang 2016 als Chief Operating Officer bei der LSE Leading Security Experts GmbH tätig. Dort leitet, strukturiert und organisiert er das operative Geschäft. Dr. Alsbih verfügt über mehr als zehn Jahre Erfahrung in der IT-Security-Branche und war unter anderem mehr als fünf Jahre lang als Chief Information Security Officer bei der Haufe Gruppe angestellt. Er ist unter anderem CISSP-ISSMP zertifizierter IT-Sicherheitsexperte. Dr. Alsbih lehrte zudem an der Universität Freiburg in den Bereichen der angewandten Informationssicherheit und digitalen Forensik.

Folgen Sie SearchSecurity.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Penetration Tester, kein normaler IT-Job

So können Unternehmen aktuellen Sicherheitsrisiken begegnen

Automatisierte Penetrationstests unterstützen beim Sicherheitsmanagement

Automatisierte Penetrationstests umsichtig angehen

Artikel wurde zuletzt im September 2016 aktualisiert

Erfahren Sie mehr über IT-Sicherheits-Management

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

SearchDataCenter.de

Close