Die enge Zusammenarbeit von Entwicklung und Betrieb sorgt für eine schnelle Auslieferung neuer Software-Produkte und Releases. IT-Security-Teams geraten hierdurch allerdings massiv unter Druck. In zahlreichen Fällen geht die hohe Geschwindigkeit des DevOps-Ansatzes zulasten der Sicherheit. Es stellt sich daher die Frage, auf welche Weise DevOps und Security kombiniert werden müssen, um sowohl die Effizienz als auch die Sicherheit aufrechtzuerhalten.
Security oftmals nicht ausreichend in DevOps implementiert
Kürzere Time-to-Market, verkürzte Release-Zyklen, geringere Fehlerquote, viele verschiedene Tools und Microservices: Die Verschmelzung von Entwicklung (Development) und Betrieb (Operations), kurz DevOps, bringt unbestritten Vorteile mit sich. Als Königsdisziplin gilt Continous Integration und Deployment – das automatisierte, kontinuierliche Einspielen neuer Versionen in Produktivumgebungen.
Die Überwindung traditioneller Grenzen zwischen Betrieb und Entwicklung ist jedoch auch mit Nachteilen verbunden. Kulturelle Aspekte spielen nach wie vor eine Rolle. Entwickler verfolgen in erster Linie das Ziel, neue Funktionen und Updates möglichst schnell zur Verfügung zu stellen, während der Betrieb in jeder Änderung ein potenzielles Ausfallrisiko sieht. Dieser Aspekt lässt sich auch auf das IT-Security-Team übertragen. Es muss Sicherheitsvorfälle und Schwachstellen vermeiden, weshalb es in modernen Prozessen häufig als „Bremse“ betrachtet wird.
Die gesteigerte Release-Geschwindigkeit führt in der Praxis regelmäßig dazu, dass die traditionell organisierte IT-Sicherheit nicht mehr Schritt halten kann. Unter anderem fehlt die Zeit, die relevanten Architektur-Reviews für jede Änderung durchzuführen. Erkenntnisse aus den Reviews und sonstige Security-Anforderungen werden dann oftmals nicht – oder nur mit Verspätung – an die Entwickler weitergegeben. Je weiter das Projekt fortgeschritten ist, desto aufwendiger gestaltet sich die Suche nach Sicherheitsfehlern. Insgesamt erhöhen sich durch die Fülle an Neuentwicklungen die Angriffsflächen für Cyber-Kriminelle, sofern die Security nicht optimal in DevOps eingebunden ist.
So wird aus DevOps DevSecOps
Bei der Einführung von DevOps wird die Cyber-Security in vielen Organisationen nicht ausreichend implementiert. Es ist jedoch von hoher Bedeutung, das Thema Sicherheit bereits von Beginn an im Lebenszyklus der Software-Entwicklung zu berücksichtigen. Hierbei ist eine weitgehende Automatisierung von Sicherheitsmaßnahmen an verschiedenen Stellen des Entwicklungsprozesses anzustreben. Folgende Ansätze begünstigen eine schnelle Durchführung von Security-Aktivitäten:
- Vulnerability Scanning (Schwachstellen-Scan) während bzw. vor einem Deployment
- Statische Code-Analyse
- Zertifikatsmanagement
- Automatische Überprüfung der Einhaltung von Security-Richtlinien
- Application Performance Monitoring zur Kommunikationsanalyse
Die Integration neuer Methoden als Bausteine innerhalb des Entwicklungsprozesses bringt die Vorteile mit. Als Beispiel sei die automatische Prüfung auf Security-Richtlinien genannt. Es handelt sich um Tools, die den Quellcode unter Berücksichtigung vorgegebener Sicherheitsstandards (Prüfkataloge) automatisch analysieren. Vergleichbar ist dies mit der Rechtschreibprüfung von Textverarbeitungsprogrammen: Die Prüfung erfolgt während des Code-Schreibens, d. h. nach dem Commit oder während des Deployments, wodurch sich die Fehlerquote deutlich verringern lässt. Das Geheimnis liegt einzig in der Integration solcher Tools und Methoden in den neuen DevOps Prozess.
Des Weiteren sind automatisierte Tests, beispielsweise Fuzz-Tests und Penentrationstests, ein probates Mittel, um das Sicherheitslevel im DevOps-Umfeld zu verbessern. Organisatorisch sollten automatische Tests nach der Entwicklung verpflichtend sein. Es empfiehlt sich, die Freigabe für die nächste Phase erst dann zu erteilen, wenn der Code definierten Kriterien entspricht.
Zu berücksichtigen ist außerdem, dass jede Änderung das Laufzeitverhalten einer Software beeinflusst, wodurch eine Verschlechterung des Sicherheitsniveaus entstehen kann. Dies lässt sich beispielsweise vermeiden, indem der Betrieb regelmäßig mit Testwerkzeugen überprüft wird. Tritt hierbei ein Sicherheitsvorfall auf, muss der Administrator unverzüglich alarmiert werden.
Weitere, häufig eingesetzte Kontrollen hinsichtlich DevOps sind:
- Reviews für sicherheitsrelevante Code-Teile
- Zugriffsmanagement für privilegierte Konten
- Kontinuierliches Schwachstellenmanagement
Kulturwandel ebenfalls erforderlich
Die Automatisierung von Sicherheitsmaßnahmen sorgt dafür, dass sich die Security besser in DevOps einfügt. Die reine Einführung entsprechender Tools reicht jedoch nicht aus. Sowohl Entwicklung als auch Betrieb und Security-Team müssen ihre Denkweise verändern. Nur wenn alte Denkmuster durchbrochen werden, ist eine reibungslose Zusammenarbeit zwischen IT-Sicherheit und DevOps-Teams möglich. Um diese neuen Verhaltensmuster erfolgreich zu implementieren, sind geeignete Change-Management-Maßnahmen bereits zu Beginn des DevOps-Programms unerlässlich. Und dann erreichen Organisationen den nächsten Reifegrad: DevSecOps.