Im August konnten wir wieder ein weiteres, erfolgreiches und spannendes Meetup mit Euch erleben. Es hat uns wirklich gefreut, dass Ihr so zahlreich erschienen seid und wir hoffen, es hat Euch genauso viel Spaß gemacht wie uns! Dieses Mal stand unser Meetup unter den Sternen „DevOps“ und „Sicherheitstests“.
DevOps ist seit Langem in der IT-Welt in aller Munde. Warum ist klar – Das, was früher Entwickler, Tester, Sicherheitstester, Admins und Co. in einer aufwendigen Prozesskette manuell erarbeiteten mussten, übernehmen Entwickler heute allein mit der Hilfe von mächtigen Tools und Automatismen. Sie entwickeln, testen und deployen selbst: Programmierung & Operation in Einem, kurz DevOps.
Hinzu kommt ein weiterer Schritt, der direkt im Zuge des Testens durchgeführt werden kann: Die Prüfung auf die Security, die sogenannten Penetrationstests.
Die Sicherheit zu testen ist ein wichtiger Schritt vor der Veröffentlichung einer Software. Denn keiner möchte eine Software produktiv setzen, die Sicherheitslücken aufweist und somit potenziell angreifbar ist. Allerdings ist es sogar für renommierte Sicherheitsexperten gar nicht so einfach manuell eine Software auf die bekannten Lücken zu testen. Deswegen existiert mittlerweile eine ganze Reihe automatisierter Tools. Die Möglichkeit, damit die Sicherheitsprüfung zu automatisieren, beschreibt ein äußerst spannendes Thema für die IT, welches uns Kevin, der zurzeit am Institut für Internetsicherheit promoviert, ausführlich näherbrachte.
Automatisierte Sicherheitstests
Nun, Sicherheitsprüfung… Das Thema sollte heute bei der Softwareentwicklung doch selbstverständlich sein, oder? Sollte, ja. Ist es aber nicht immer! So einfach ist die umfassende Überprüfung der Sicherheit und Angreifbarkeit nämlich nicht. Gerade im Webbereich existiert eine Masse an Exploits (bekannte Sicherheitslücken), die abgefangen werden sollten. Deshalb sollen Tools her, welche automatisierte Tests ausführen können, um Sicherheitslücken automatisch zu erkennen. Dadurch werden die Bereiche Security und Development verschmolzen. Zu diesem Zweck stellte uns Kevin verschiedene Open-Source sowie Proprietäre Tools vor, die Abhilfe verschaffen können, darunter OWASP Dependency Check, OWASP ZAP, FindBugs, Docker, Testcontainer und Gitlab.
Mithilfe der Tools kann nach gängigen Angriffslücken automatisch geprüft werden, ohne dass Entwickler selbst Hand anlegen müssen. Sie müssen die Tools lediglich in die Build-Pipeline integrieren. Auf gefundene Sicherheitslücken müssen Entwickler anschließend reagieren und entscheiden, ob identifizierte Lücken zu vernachlässigen oder zu beheben sind, bevor die Software live geht. Für die erkannten Probleme geben die Tools direkt eine ausführliche Anleitung, sodass der Entwickler direkt mit dem Schließen der Lücken loslegen kann.
Aber so einfach ist es nicht…
Ein automatisches Tool zu nutzen, löst nicht sofort alle Probleme. Zum einen werden nur einfachere Bugs, die „Low-hanging-fruits“, ausreichend erkannt. Schwierigere Bugs hingegen werden nicht unbedingt gefunden. Mit diesen muss sich ein ITS Experte, der in die Teams integriert sein sollte, weiterhin manuell beschäftigen. Zum anderen können die Tools ebenso gut für neue Probleme sorgen! Neben tatsächlichen Sicherheitslücken werden schließlich vor Allem bei der Einführung einer solchen Software auch False Positives gefunden, Lücken, die fälschlicherweise identifiziert wurden. Veraltete Dependencies, veränderte Konditionen oder Probleme bei der Namensgebung reichen dafür schon aus.
Die Penetrationstests können eine ganze Zahl an Attacken simulieren, laufen dafür aber auch schonmal bis zu einer Stunde. Kevin zeigte uns live, wie man Lücken in seinen Applikationen finden kann. In einer kleinen Demo spürte er diverse Sicherheitslücken in einem selbstgebauten Web-Buchkatalog auf und führte eindrucksvoll vor, was eine Attacke, in dem Fall eine SQL-Injection, anrichten kann. Im Zuge dessen berichtete uns Kevin auch von den Top 10 Sicherheitslücken des Open Web Application Security Project (kurz OWASP), welche online einen Überblick über die häufigsten Sicherheitslücken geben. Gerade Angriffe durch diese Sicherheitslücken können verheerend für die Applikation sein, besonders im Browser.
Mehr Optionen zur Sicherheitsprüfung sind also ein absolutes Muss für die IT-Welt!
Diese im größeren Rahmen mit DevOps Pipelines automatisiert und vielleicht sogar in den Containern anbieten zu können, bedeutet eine aufregende Aussicht für unsere IT-Zukunft, in der die Entwickler noch ruhiger schlafen können.