Silos aufbrechen und Secure DevOps etablieren Sichere Entwicklung von Web-Apps

Ein Gastbeitrag von Sean Leach *

Angesichts immer neuer Cyber-Bedrohungslagen sollte Security von Beginn an in die Entwicklung und über den Lebenszyklus einer Web-App eingebunden sein. So profitieren DevOps- und Security-Teams gleichermaßen davon.

Anbieter zum Thema

Je besser Security und DevOps verzahnt sind, desto schneller können Features bereitgestellt werden.
Je besser Security und DevOps verzahnt sind, desto schneller können Features bereitgestellt werden.
(© Alex – stock.adobe.com)

Es ist heute eine Binsenweisheit, dass kollaborative Teams aus Entwicklern und Operations (DevOps) effizienter arbeiten. Ein gut gelebtes DevOps-Modell führt zu robusteren Prozessen und beschleunigt die Bereitstellungskadenzen von Webanwendungen.

Dieser ganzheitlich gedachte Ansatz ist aber trotzdem noch unvollständig. Die Log4J-Schlagzeilen zeigen leider wieder einmal, dass Webanwendungen und Schnittstellen (APIs) anfällig für Sicherheitslücken sind. Daher sollte ein gut abgestimmtes Secure DevOps-Konzept (DevSecOps) die Antwort sein: mit Fokus auf vier entscheidende Transformationsbereiche.

Feedbackschleifen ab Entwicklung über die gesamte Runtime

Kein Unternehmen möchte mit Sicherheitspannen und frustrierten Kunden in die Schlagzeilen kommen. Häufig ist der Reputationsschaden sogar viel größer als der materielle Schaden. Dagegen kann die konsequente Einbindung von Feedbackschleifen helfen – am besten gleich dort, wo die meisten Angriffe passieren: der Webanwendung.

Insbesondere wenn Unternehmen agile Prozesse und schnelle Releases eingeführt haben, müssen die Sicherheitsteams von Anfang an in den Entwicklungsprozess eingebunden werden. Die so gewonnenen Informationen über die ständigen Änderungen in der Runtime-Umgebung und die direkte Zusammenarbeit mit Entwicklung und Operations ermöglichen es dem Security-Team, auf Ereignisse zu reagieren, bevor sie zur Bedrohung werden.

Innovative DevSecOps-Teams belassen es aber nicht bei Trockenübungen. Sie setzen Web Application Firewalls der neuesten Generation (Next-Gen WAF) in der Produktivumgebung ein, um Anwendungen und APIs kontextbezogen zu überwachen. So erhalten Entwickler Informationen über Angriffe in Echtzeit.

Diese modernen Firewalls schützen außerdem vor einem breiteren Spektrum von Angriffen, wie Account-Übernahmen, Credential Stuffing, bösartigen Bots, API-Missbrauch, Anwendungs-DDoS, sowie vor klassischen OWASP Top-10-Angriffen. Effektivere Lösungen sind vor allem dort besonders wichtig, wo eine agile DevOps-Kultur zu dezentralen Anwendungen geführt hat, die in Multi-Cloud-Umgebungen, Containern, Rechenzentren oder Serverless verwaltet werden.

Gemeinsame Kultur und Demokratisierung von Informationen

Die Integration von Security bringt ähnliche Herausforderungen mit sich wie damals die Verschmelzung von Development und Operations. Es ergeben sich scheinbare Zielkonflikte zwischen Geschwindigkeit und Funktion auf der einen und Gefahrenabwehr und Compliance auf der anderen Seite.

Es gibt jedoch zwei hilfreiche Ansätze, wie Security Experten sich in diesem Umfeld agil einbringen können. Zum einen „Lean Security“ und zum anderen die Demokratisierung von Sicherheitsdaten.

Lean Security bedeutet, dass Sicherheitsexperten seltener und zielgerichteter intervenieren als dies früher der Fall war. So können DevSecOps-Teams Probleme gemeinsam lösen, anstatt sich gegenseitig zu blockieren oder sich die Verantwortung zuzuschieben. Dabei hilft es, wenn Selfservice-Arbeitsabläufe etabliert sind und sich die Arbeit der Sicherheitsexperten an die Prozesse der Entwickler anpasst.

Zu Lean Security gehört auch, dass Sicherheitsexperten ihre Befunde immer erst validieren bevor sie diese an DevOps melden. Diese frühzeitige Analyse von sowohl False-Positive- als auch False-Negative-Meldungen erlaubt eine schnelle Lösung und spart damit sehr viel Ressourcen.

Der zweite hilfreiche Ansatz für die Einbindung von Security-Experten ist die Demokratisierung aller Informationen im gesamten DevOps-Team. Dafür haben sich ChatOps bewährt, mit denen Erkenntnisse der Überwachungs-, Protokollierungs- und operativen Aufgaben ohne Verzug und proaktiv an das gesamte Team kommuniziert werden können. So lässt sich das bisher isolierte Wissen darüber, wo Angriffe stattfinden, im gesamten Unternehmen teilen.

Beschleunigung der Bereitstellungskadenz

Experten und Nutzer sind sich einig: Je besser Security und DevOps verzahnt sind, desto schneller können Features bereitgestellt werden. Auch bei einer schnellen Abfolge von Releases muss Sicherheit nicht zwingend leiden. Das gelingt beispielsweise durch den Einsatz von Continuous Integration (CI) und Continuous Delivery (CD).

Beides ermöglicht eine kontinuierliche Automatisierung und Überwachung über den gesamten Lebenszyklus einer Anwendung hinweg – also von Integration und Tests, bis hin zur Bereitstellungs- und Implementierungsphase. Doch was tun CI und CD im Detail?

Ein CI-System führt automatisch Tests aus und sendet die Ergebnisse an die Bereitstellungs-Pipeline, damit dort eventuelle Korrekturen vorgenommen werden können. Das verringert die Gesamtzahl der notwendigen Änderungen und macht jede Bereitstellung einfacher. Außerdem wird es Security Teams so ermöglicht, Änderungen an den sensibleren Teilen der Code-Base isoliert durchzuführen.

Ein CD-System wiederum gewährleistet, dass die Code-Änderungen eines Entwicklers automatisch auf Bugs getestet werden. Danach werden sie in eine Testumgebung geladen, wo Operations sie aktivieren kann. So entsteht Transparenz und Missverständnisse zwischen Dev und Ops werden vermieden. In Summe sorgt CD also dafür, dass neuer Code mit minimalem Aufwand implementiert werden kann. Das Sicherheitsteam kann dieses Spielfeld nutzen, indem statische und dynamische Sicherheitstools (SAST und DAST) zur Pipeline hinzugefügt werden.

Einer der Kerngedanken von CD ist, dass Code-Änderungen nur einmal erstellt werden und so weit wie möglich unveränderlich sind. Da CD Änderungen vom Testabschluss bis zur Bereitstellung trackt, erhöht sich Transparenz und Vertrauen. Security-Mitarbeiter haben so die Gewissheit, dass sie Änderungen auch später nachvollziehen können.

Bereitstellung von Infrastruktur als Code

Infrastruktur als Code (IaC) war bereits in den Anfängen der DevOps-Bewegung eine wichtige Triebfeder für mehr Integration. Heute speichern Operations-Teams Konfigurationen und Skripte nicht mehr in gemeinsam genutzten Laufwerken und Wikis, sondern sind zu Versionskontrollen und einer vollständigen Automatisierung ihrer Systeme übergegangen.

Je mehr DevOps gelebt wurde, umso mehr lernte man auch über IaC – die komplette Umsetzung des Systems als Code, das heißt von Vernetzung und Weiterleitung über Systemkonfiguration bis hin zu allen Akzeptanz- und Smoke-Tests. Kurzum: alles, was zum Erstellen, Ausführen, Testen, Ändern, Überwachen, Sichern und Zerstören der Infrastruktur und des gesamten Systems erforderlich ist, wird als Code ausgedrückt.

Dieser Paradigmenwechsel hat Folgen für die Sicherheit. Sind die Artefakte (= das Ergebnis eines Build), die das System und seine Komponenten beschreiben, in der Versionskontrolle enthalten, ist die Trennung zwischen Konfigurationen und Wikis sowie Dokumenten gewährleistet, und die Versionierbarkeit und Referenzierbarkeit der Konfigurationen ebenso. Konfigurations- und Laufzeitzustandsverfolgung ersetzen eine Konfigurationsmanagementdatenbank (CMDB) und sorgen für mehr Transparenz, die wiederum den Security-Kollegen eine bessere Überwachung ermöglicht.

Eine DevSecOps-Kultur bietet nur Vorteile

Am Ende profitieren alle von einer tiefgreifenden Integration der Sicherheit in DevOps. Feedbackschleifen ermöglichen Sicherheitsteams frühere Interventionen, wenn die Runtime-Umgebung sich rasant ändert. Lean Security und die Demokratisierung von Informationen über den gesamten Lebenszyklus einer Anwendung stärken eine Kultur der Zusammenarbeit und geteilten Verantwortlichkeit in DevSecOps-Teams.

Sean Leach
Sean Leach
(Bild: Fastly)

Die Bereitstellungskadenzen werden so kürzer und es entstehen keine Nachteile für die Sicherheit. Und schließlich sorgt IaC für mehr Transparenz und steigert so die Anwendungssicherheit bis zum Deployment.

* Sean Leach ist Chief Product Architect bei Fastly, wo er sich auf die Entwicklung und Skalierung von Produkten rund um große, unternehmenskritische Infrastrukturen konzentriert. Zuvor war er VP Technology bei Verisign. Er hat einen Bachelor in Informatik von der University of Delaware. Seine aktuellen Forschungsschwerpunkte sind DNS, DDOS, Web-/Netzwerkleistung, Internet-Infrastruktur und die Bekämpfung der massiven Internet-Sicherheitsepidemie.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

(ID:47992534)