nd3000 - stock.adobe.com
Wie DevSecOps den Entwicklungsprozess sicherer gestaltet
Schnellere Entwicklungsvorgänge verursachen neue Sicherheitsrisiken. DevSecOps konzentriert sich darauf, bessere Sicherheitskontrollen in den Entwicklungsprozess einzubauen.
DevOps ist in der Softwareentwicklungsbranche fast schon ein alter Hut. Viele Entwickler nutzen heutzutage das bekannte Verfahren, um die Geschwindigkeit und Qualität der Anwendungsentwicklung zu steigern und so die Kundenerfahrung zu verbessern.
Mit steigender Geschwindigkeit und Komplexität der Entwicklungsvorgänge entstehen jedoch auch neue Sicherheitsrisiken. Und so konzentriert sich nun DevSecOps darauf, bessere Sicherheitskontrollen in den Entwicklungsprozess einzubauen, um zu garantieren, dass Anwendungen und die ihnen zugrunde liegende Infrastruktur sicher sind, bevor sie in Produktion gehen.
The Road to DevSecOps
Schaut man sich das Anwendungssicherheitsmanagement sowie die Arbeitsweise von DevOps-Teams in verschiedenen Unternehmen an, wird schnell klar, warum an der Einführung von DevSecOps-Praktiken kein Weg vorbeiführt. In vielen Unternehmen arbeiten Sicherheitsteams noch immer isoliert von ihren DevOps-Kollegen. Sie arbeiten mit anderen Tools und Prozessen. Und sogar die Terminologie ist oft eine völlig andere, was die Einbindung von Sicherheitspraktiken zusätzlich erschwert.
DevOps-Teams arbeiten in der Regel schneller und in kürzeren Zyklen als Sicherheitsteams, wodurch Engpässe in Lieferprozessen entstehen können. Bessere, schnellere und frühere Sicherheitskontrollen beschleunigen die Softwareauslieferung und senken das Fehlerrisiko.
In Unternehmen, in denen bereits ausgereifte DevOps-Praktiken Anwendung finden, lässt sich auch DevSecOps schneller vorantreiben. DevOps-Teams übernehmen häufig bereits Sicherheitsaufgaben und Sicherheitsteams sind im Gegenzug an frühen Entwicklungsphasen beteiligt. Obwohl diese Teams bei der Einführung von DevSecOps schon einige Schritte weiter sind, finden sich auch dort noch erhebliche Lücken in der Anwendungssicherheit komplexer Systeme. Um DevSecOps erfolgreich zu etablieren, müssen im gesamten Unternehmen erhebliche Veränderungen stattfinden, die nicht nur den Entwicklungsprozess beeinflussen. Sie beginnen lange davor.
Teamfähigkeit, Transparenz und tausende Tests
Damit DevSecOps-Praktiken erfolgreich integriert werden können, muss eine Unternehmenskultur geschaffen werden, die Transparenz und offene Kommunikation zur Priorität macht. Silos müssen beseitigt und ein regelmäßiger Austausch gefördert werden. So entstehen produktive und offene Teams und die Grundlagen für die Implementierung besserer Sicherheitspraktiken in jeder Entwicklungsphase werden geschaffen.
Ein wichtiger Punkt bei der Einführung von DevSecOps ist die Verlagerung von Sicherheitsüberlegungen und -tests in die frühen Phasen des Entwicklungsprozesses, damit den Teams genügend Zeit bleibt, angemessene Maßnahmen zu implementieren und das Risiko zu verringern, dass Fehler und Schwachstellen erst im Live-Betrieb bemerkt werden. Generell sind Sicherheitsprobleme in späteren Phasen deutlich schwieriger zu beheben, da dafür oft grundlegende Änderungen an der Anwendungsarchitektur durchgeführt werden müssen. Um das zu verhindern, müssen umfassende Risikobewertungen erstellt und regelmäßig Qualitätschecks durchgeführt werden.
Auch während der Entwicklung neuer Funktionen sollte man regelmäßig verschiedene Tests machen, um die Anwendungsfunktionalität zu überprüfen. Wiederholtes Code-Scanning deckt Schwachstellen und damit verbundene Probleme auf und neue Builds sollten immer durch Sicherheits- und Entwicklungsrichtlinien verifiziert werden. Dann steht der sicheren Freigabe des Codes nichts mehr im Wege.
Sollten dennoch Probleme im Rahmen einer Freigabe auftreten, gilt es diese so schnell wie möglich zu beheben. Um Benutzerfehler oder Fehlkonfigurationen zu minimieren, sollte man den Code automatisch in der Produktivumgebung bereitstellen. Werden Änderungen im Code erkannt, die die Funktionalität beeinträchtigen oder Sicherheitslücken aufdecken, müssen diese automatisch rückgängig gemacht beziehungsweise überarbeitet werden. Vor jeder neuen Bereitstellung sind erneut Sicherheits- und Validierungsprüfungen notwendig.
Sicher ist sicher – bis zum Schluss
Im Mittelpunkt der einzelnen DevSecOps-Praktiken steht die Entwicklung einer durchdachten Infrastruktur mit angemessenen Sicherheitsmaßnahmen, die die Basis sicherer, zuverlässiger Anwendungen bildet. Diese Maßnahmen beinhalten ein Plattformmanagement, bei dem Infrastructure as Code (IaC) zur automatischen Verwaltung von Sicherheitskonfigurationen und -ressourcen genutzt wird. Kapazitätsplanung und Skalierung der Ressourcen müssen an den tagesaktuellen Bedarf angepasst sein und automatisch erfolgen, um beispielsweise DDoS-Angriffe (Distributed Denial-of-Service) problemlos abfangen zu können.
„Um DevSecOps erfolgreich zu etablieren, müssen im gesamten Unternehmen erhebliche Veränderungen stattfinden, die nicht nur den Entwicklungsprozess beeinflussen. Sie beginnen lange davor.“
Stefan Marx, Datadog
Infrastrukturressourcen sollten in mehreren Verfügbarkeitszonen und -regionen gehostet werden und die Ausfallsicherheit der Infrastruktur muss regelmäßig durch automatisierte Chaostests überprüft werden. Außerdem ist ein umfassender Plan zur Disaster Recovery notwendig, der auch Reaktionen im Falle von aufgedeckten Sicherheitsrisiken enthält. Eine so aufgebaute Infrastruktur kann hochfrequente Anwendungen problemlos unterstützen und sich schnell von kritischen Vorfällen erholen.
Auch nach der Bereitstellung muss der Code konstant überwacht werden, denn es können stets neue Schwachstellen und Probleme auftauchen. Dienstübergreifend messbare Sicherheits-KPIs und eine zentrale Plattform zur Überwachung der Leistung und Benutzerfreundlichkeit unterstützen die ständige Sicherheitsüberwachung. Eine umfassende Problem- und Ursachenanalyse mit detaillierten Runbooks hilft beim Incident Management und dient als Leitfaden für zukünftige Projekte.
Wenn Entwickler kontinuierlich an der Optimierung ihrer Prozesse arbeiten, steht einem Übergang zu ausgereiften DevSecOps-Verfahren nichts mehr im Wege. So verbessern Unternehmen nicht nur ihre allgemeine Sicherheitslage, auch die Entwicklung widerstandsfähiger und sicherer Anwendungen sowie die Zusammenarbeit der verschiedenen Teams wird gefördert. Infolgedessen bieten Unternehmen ihren Kunden einen größeren Mehrwert sowie stärkere Zuverlässigkeit und Sicherheit für die Dienste, auf die sie tagtäglich angewiesen sind.
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.