Pentests im agilen Umfeld – ein neues Mindset
Penetrationstests im agilen „DevOps“-Umfeld
Was hat agile Entwicklung mit Penetrationstests zu tun? Es kommt darauf an.
Zuletzt haben wir bei verschiedenen Kunden sehr unterschiedliche Momentaufnahmen in der Entwicklung weg vom Top-Down-Wasserfall-Ansatz und hin zu Dev(Sec)Ops gesehen.
In der Reifegrad-Denke quasi vom Maturity-Level 0: „Wir machen jetzt agile Entwicklung mit DevOps“ bei dem außer dem „Daily“ und der „Sprint-Planung“ keiner der Prozesse und Mindsets wirklich schon in agiler Entwicklung angekommen ist, bis hin zu Maturity-Level 5: „Komplett automatisierte CI/CD (continuous integration and continuous delivery) Pipeline inklusive Security Checks wie Source Code-Prüfung, Dependency-Checks für Fremd-Bibliotheken und Schwachstellenscans auf Anwendungsebene. Ob hierbei jeweils freie Tools wie sonarqube, der OWASP Depency Checker oder der OWASP Zed Attack Proxy zum Einsatz kommen oder ihre kommerziellen Pendants ist dabei erst mal zweitrangig. Denn: was wir immer wieder in Projekten festgestellt haben ist, dass der Erstkontakt mit Security- und Pentest-Themen schmerzhaft ist – danach tut es eigentlich nicht mehr weh. Soll heißen: Ist die Hürde ein mal genommen und Security in die Pipeline integriert, dann ist ein riesiger Schritt geschafft. Ob diese Tools nun 100% der Schwachstellen finden oder 90% oder 80% – dazu gibt es insbesondere im Web-Bereich unzählige unterschiedliche Analysen, Vergleiche und Meinungen – die sich nicht immer unbedingt einig sind.
Unsere Empfehlung geht daher ganz klar in die Richtung: Machen! Nicht drüber reden, nicht von großen Kostenblöcken anfangen, sondern machen. Ob mit Arachni, w3af, Burp Suite, Zap, AppScan, NetSparker, Nexpose, Acunetix, OpenVAS, Qualys oder welchem Werkzeug auch immer.
Jedes Werkzeug hat seine Kompetenzen – und jedes Werkzeug muss beherrscht werden. Ein Punkt, wo externe Expertise hilfreich sein kann um die Brücke zwischen DevOps und DevSecOps zu bauen.
Die Herausforderung die aus der Einbindung automatisierter Sicherheitswerkzeuge bleibt, ist oft die Bereinigung von False-Positives – und das viel größere aber unauffälligere Problem der False-Negatives. Während eine Liste mit 300 Befunden im Schwachstellenscanner mit 200 False-Positives sofort auffällt und nervt, bleiben False-Negatives in automatisierten Pipelines oft verborgen. Nicht ohne Grund gibt es unzählige klassische Pentesting-Firmen, bei denen Menschen über Tage hinweg Anwendungen und Systeme analysieren: Die Maschine allein ist noch nicht soweit um den Menschen hier vollständig zu ersetzen. Das Problem für DevOps und agile Entwicklung sind im Pentest-Bereich typischerweise die Kosten und die zeitlichen Abhängigkeiten: 6 – 12 Wochen Vorlauf zwischen Beauftragung und Abschlussbericht sind hier keine Seltenheit. Bei zweiwöchigem Release-Zyklus ergeben sich rechnerisch recht schnell Komplikationen – von den Kosten mal abgesehen. Vielleicht bringt die harte Mathematik hier ein Umdenken.
Lassen wir die Schubladen und das schwarz-/weiß-Denken mal einen Augenblick weg. Automatisierung hat Grenzen. Menschen haben Grenzen. Maschinen können viele Dinge sehr gut, andere eher gar nicht. Menschen machen Fehler und sind von wiederkehrenden Aufgaben gelangweilt. In der Fertigung wird wohl niemand mehr die Zusammenarbeit von Mensch und Maschine in Frage stellen: Der Roboter trägt schwere Teile von A nach B und vermisst millimetergenau, wo welches Teil hin kommt. Der Mensch macht fein-motorische Arbeiten oder nicht-standardisierbare Tätigkeiten.
Übertragen auf die IT-Sicherheit und den Bereich Pentests und Sicherheitsüberprüfungen heißt das: Lasst uns Mensch und Maschine verbinden und neue Wege bestreiten.
Wir gehen diesen Weg bislang sehr erfolgreich. Wir sprechen von Mensch-Maschine-Integration. Kein Voodoo, keine künstliche Intelligenz sondern erprobte Algorithmen, Verfahren und Statistiken.
Funktionieren tut es in der Praxis ganz einfach:
Die Maschine macht das, was sie kann. Ansteuerbar über API oder Web-Portal laufen all die kleinen nützlichen automatisierten Prüfschritte los – vom Port-Scan über den Schwachstellenscan und die Applikations-Scanner bis zur Prüfung auf Vorhandensein von Impressum, Datenschutzerklärung und co. Kein Mensch muss hier Befunde wie „Standard-Fehlerseiten /icons/“, „Informationspreisgabe über X-Powered-By-Header“ oder „Schwache TLS-Ciphers“ händisch bearbeiten. Der Mensch kommt im Anschluss und prüft insbesondere Anwendungsteile mit geschäftsspezifischen Prozessen oder schwierigen Ein-/Ausgabeprozessen etwa Bestellungen, Registrierung oder Stammdatenänderung. Je komplexer die Anwendung, desto mehr tut der Mensch: Aber nur das, was er wirklich tun muss.
Das Ergebnis ist eine schnelle und kostengünstige Variante von Sicherheitsüberprüfungen, die auch im Zeitalter der agilen Entwicklung im täglichen Leben anwendbar ist. Die Zeitersparnis die durch den Wegfall von False-Positives entsteht ist da fast nur noch ein add-on.
Agile Arbeitsweise und „DevOps“-Prozesse erfordern ein passendes Mindset, um wirklich erfolgreich zu sein und alle Vorteile mitzunehmen. Die Anweisung „wir machen jetzt agil“ ist daher in vielen Firmen nur der Startschuss für einen langen Weg der organisatorischen und technischen Veränderungen, an deren Ende erst die Träume der agilen Welt in Erfüllung gehen.