Suchen

Security-Testing, Analysen und Selbstschutz Von DevOps zu DevSecOps – diese Technologien helfen

| Autor / Redakteur: Nabil Bousselham * / Stephan Augsten

DevOps vereint agile Entwicklungszyklen mit verlässlichem IT-Betrieb. Doch was ist mit der Anwendungssicherheit? Dieser Beitrag erörtert, wie sich Security in DevOps-Strategien integrieren lässt.

Firmen zum Thema

Bei der Anwendungsentwicklung und -bereitstellung spielt Sicherheit eine immer größere Rolle.
Bei der Anwendungsentwicklung und -bereitstellung spielt Sicherheit eine immer größere Rolle.
(Bild: JanBaby - Pixabay.com / CC0 )

Agile Entwicklung und DevOps-Ansätze sind heute erfolgsentscheidend,.wie 88 Prozent der deutschen Unternehmen in einer Agile-Studie von Coleman Parkes bestätigten. Denn DevOps verbindet dynamische Entwicklungs- und Updatezyklen für Business-Apps mit der Verlässlichkeit eines stabilen IT-Betriebs.

Hierfür werden Development und Operations in ihren Zielen und Abläufen miteinander verzahnt. Soweit ist der Ansatz klar und nachvollziehbar. Das Ziel ist eine schnellere, agile Entwicklung, die auf heutige Anforderungen des Marktes schneller eingehen kann und vor allem alle beteiligten Experten aus ehemals getrennten Abteilungen zusammenbringt.

Security muss mit

Doch das allein reicht nicht aus. Die Zahl der vernetzten Geräte wächst – und mit ihnen die Zahl an Einfallstoren in Heim- und Unternehmensnetze. Gerade IoT-Anwendungen werden oft nur mit den funktionalen Anforderungen entwickelt – Sicherheitsbedenken landen auf dem zweiten Platz. Sie sind oft nicht in den DevOps-Prozess eingegliedert.

Da bei einem engen Zeitbudget von hinten gekürzt wird, gelangen Business- und IoT-Anwendungen auf den Markt, die für Hacker leichte Beute sind. Die Lösung ist daher, die Sicherheit in den DevOps-Prozess zu integrieren – und DevSecOps zu schaffen.

Doch wo soll die Integration der Sicherheitsaspekte anfangen? Keine leichte Frage, denn klassische Sicherheitstechnologien wurden nicht für DevOps-Umgebungen konzipiert.

Die ersten Application-Security-Technologien kamen zwischen 2005 und 2007 auf den Markt; sie waren für den Einsatz durch ausgebildete Spezialisten ausgelegt. Sicherheitstools forderten ein eigenes, spezifisches Know-how für Betrieb und Anwendung. Das führte zu einer eigenen Sicherheitsrolle, die oft außerhalb der integrierten DevOps-Teams steht.

Neue Anforderungen an Sicherheit

Was muss also aus technischer Perspektive geschehen, damit Anwendungssicherheit von allen Beteiligten in DevOps-Teams genutzt werden kann? Zwei Kernforderungen müssen erfüllt sein: Transparenz und Nutzerfreundlichkeit.

Alle Team-Mitglieder müssen sich sofort einen Überblick verschaffen können und dürfen nicht von ihren Kernaufgaben mit Sicherheitsdetails abgelenkt werden. Zugleich sollten sie in der Lage sein, ihre eigene Arbeit ohne große Zusatzkenntnisse mit den Tools sicherer zu gestalten.

Die Integration in DevOps fordert jedoch mehr als nur Transparenz und Bedienbarkeit. DevOps-Zyklen geben einen Ansatz vor, in dem Entwicklung, Integration und Einsatz von Anwendungen in Stufen geschehen. Die Sicherheit muss daher in DevOps ebenfalls inkrementell getestet werden. Dies führt zu kontinuierlichen Tests von Applikationen und ihren Inkrementen über den gesamten Integrations- und Deployment-Zyklus (CI/CD).

Die integrierten Tests sollten dabei nahezu in Echtzeit funktionieren und dem Team durch den aktuellen Einblick in die Sicherheit einen besseren Überblick garantieren. Egal in welcher Stufe des DevOps-Prozesses – Sicherheitslücken müssen überall präzise erkannt werden. Zuletzt müssen DevSecOps-Tools auch den Schutz der Applikationen selbst gewährleisten.

Es existieren bereits verschiedene Sicherheitslösungen, sowohl als Cloud-Services wie auch als integrierbare Tools – doch die meisten greifen zu kurz. Der Denkfehler liegt in ihrer Konzeption: Entweder sie sind darauf angelegt, vollständige Anwendungen zu testen, was dem Stufenmodell DevOps zuwiderläuft; oder sie passen schlicht nicht in die kurzen Phasen der agilen Software-Entwicklung.

Doch Hoffnung ist in Sicht. Einige Anbieter haben bereits die Zeichen der Zeit erkannt und entwickeln bestehende Angebote weiter, oder erstellen neue Lösungen, die sich an DevOps-Teams wenden.

Neu auf dem Markt: RASP und IAST

Eine dieser neuen Technologien für DevSecOps ist RASP (Runtime Application Self-Protection). RASP adressiert im Rahmen von DevOps den Betrieb von Anwendungen, der bisher klassischerweise durch abgrenzende Technologien wie Web Application Firewalls geschützt wurde. Diesen Technologien fehlt es aber an Präzision, weil sie zwar Verkehrsströme inspizieren, aber keinen Einblick in Applikationslogik, Datenfluss, Aufbau und Verteilung einer Anwendung haben.

Im Gegensatz dazu verhält sich RASP wie ein Agent auf einem App-Server; RASP besitzt vollen Einblick in die laufende Applikation und kann sie deshalb mit hoher Genauigkeit schützen. Einmal installiert läuft es quasi von allein und erfordert keine Aufmerksamkeit vom DevOps-Team. Sie müssen RASP weder aktivieren noch betreiben. Es liefert Ergebnisse, indem es die Applikationen kontinuierlich schützt und entdeckte Angriffe direkt meldet.

Eine verwandte Technologie ist IAST – das Interactive Application Security Testing. Es besteht typischerweise aus der Kombination eines RASP-Agenten, der auf einem Test-Server läuft, mit einem sogenannten Attack Inducer, der eine Hacker-Attacke simuliert. Ein solcher Inducer könnte eine DAST-Technologie sein (Dynamic Analysis Security Testing), ein eingebauter Angriffssimulator oder auch ein QA/UA-Test (Quality Assurance/User Acceptance).

Der RASP-Agent bleibt dabei für DevOps-Teams vollkommen transparent. Ein eingebauter Inducer ist dabei ebenso wie ein QA/UA-Test für das DevOps-Team so gut wie unsichtbar. Die IAST-Ergebnisse kommen von dem Agenten, der auf dem Test-Server nahe beim DevOps-Teams installiert ist: Sie stehen den Beteiligten daher augenblicklich zur Verfügung.

Weiterentwickelt: SAST und SCA

Neben diesen beiden neuen Technologien werden bestehende Application Security Tools weiterentwickelt, um sich besser in DevSecOps-Szenarien einzufügen. Dazu gehören SAST (Static Application Security Testing) und SCA (Software Composition Analysis). Die neue DevOps-orientierte Variante von SAST kann Code-Einheiten, individuelle Code-Klassen und Dateien innerhalb von Sekunden testen.

Entwickler können solche Unit-Tests per Knopfdruck direkt aus ihrer Entwicklungsumgebung heraus anstoßen und erhalten unverzüglich die entsprechenden Ergebnisse. Die Entwickler erhalten die Testresultate, bevor der Code an das zentrale Repository geht – und bevor Projektmanager oder Kollegen ihn zu sehen bekommen. Dies erlaubt Entwicklern auf einfache Weise, nur getesteten Code ohne Sicherheitslücken an das zentrale Repository zu geben. Solche Sicherheitstests lassen sie außerdem leicht dazulernen und ihren Code kontinuierlich verbessern.

SCA wird wohl eine ähnliche Entwicklung nehmen wie SAST. SCA analysiert für DevOps-Teams die Komposition von Applikationen und ihren Inkrementen. Das ermöglicht Entwicklern beispielsweise, weiter mit Produktivitätsgewinn Open-Source-Software zu nutzen, während es gleichzeitig die Risiken solcher Bibliotheken reduziert.

Fazit: Keine Ausreden mehr

Sicherheit muss auch im DevOps-Team zur Grundausstattung gehören. Mit Ansätzen wie RASP und SCA ist das auch in agilen Teams heute kein Zusatzaufwand mehr. Früher waren speziell geschulte Sicherheitsspezialisten nötig, heute jedoch ist eine schnelle und flüssige agile Arbeitsweise wichtiger.

Nabil Bousselham
Nabil Bousselham
(Bild: Veracode)

Um Sicherheit und Flexibilität zu bieten, arbeiten Sicherheitsanbieter daher an neuen Tools und Services, die transparentes Software Testing in kurzen Stufen und mit wenig Aufwand möglich machen. Der Markt bietet schon heute einige Lösungen, die DevSecOps Realität werden lassen. Zeit also für Unternehmen, Sicherheit wieder an erste Stelle zu setzen.

* Nabil Bousselham ist seit Juli 2015 als Solutions Architect beim Spezialisten für Anwendungssicherheit Veracode tätig. Bousselham hat Informatik und Physik an der Universität Leipzig studiert und verfügt über mehrere Zertifikate im Bereich Software Engineering der ISQI GmbH und ISSECO CPSSE.

(ID:44648766)