Tipps für DevSecOps

DevOps-Prozesse richtig absichern

24.07.2018
Von  und
Scot Finnie ist freier Autor in den USA und ehemaliger Chefredakteur der COMPUTERWOCHE-Schwesterpublikation "Computerworld"
Martin Bayer ist Chefredakteur von COMPUTERWOCHE, CIO und CSO. Spezialgebiet Business-Software: Business Intelligence, Big Data, CRM, ECM und ERP.

3. Automatisieren für mehr Effizienz und Genauigkeit

Automatisierung ist ein zentrales Thema von DevOps, und das setzt sich in DevSecOps fort. Stichwort "Sicherheit als Code". Dabei geht es beispielsweise darum, Sicherheitstests und andere Stationen im Entwicklungsprozess so weit wie möglich zu automatisieren sowie sichere gemeinsame Code-Repositories für die Software-Entwickler zu schaffen.

Automatisierte Prozesse können den Sicherheitsaspekt im Modell der DevSecOps erleichtern: Enthält eine Applikation Komponenten, die Angriffsflächen bieten, muss dies durch automatisierte Security-Tests vor dem Check-in der Software erkannt und korrigiert werden. Systematische Sicherheitsscans können schon während des Programmiervorgangs Sicherheitsprobleme aufdecken, die sich dann schnell und effizient beheben lassen. Darüber hinaus kann die Integration von regelmäßigen Sicherheitstests, beispielsweise auch Black-Box-Tests, automatisiert werden. So lassen sich Schwachstellen frühzeitig erkennen.

Auch nach der Implementierung kann eine automatische Echtzeit-Überwachung von Anwendungen helfen, verdächtige Aktivitäten oder Datenabfragen zu identifizieren. Dadurch können Unternehmen im Ernstfall schnell reagieren und aufgezeigte Schwachstellen schließen.

Insgesamt gilt es, die Sicherheitsprozesse zu optimieren und mit der Geschwindigkeit innerhalb der DevOps-Entwicklungspipeline in Einklang zu bringen. Das muss eine Gemeinschaftsarbeit von Security, Entwicklung und Operations sein. Da es sich hierbei um einen Schlüsselaspekt für DevSecOps handelt, sollten die Unternehmen darauf achten, gute Leute darauf anzusetzen.

4. Software-Tools klug auswählen

Bei den ausgewählten Tools ist es wichtig, dass sie sich einfach und effektiv mit den DevOps-Entwicklungsprozessen und anderen bereits vorhandenen Werkzeugen kombinieren lassen. Eine wichtige Rolle spielen natürlich auch die Funktionen der Tools und wie gut sich diese automatisieren lassen.

Das SANS Institute hat eine Übersicht zusammengestellt, die ein breites Spektrum an DevOps- und DevSecOps-Tools aufzeigt. Der Werkzeugkasten ist nach Anwendungen und den verschiedenen Stationen im Entwicklungsprozess geordnet. Folgende Disziplinen und Tools sollten Anwender in Betracht ziehen, um ihren DevOps-Entwicklungsprozess abzusichern.

  • Pre-Commit Security Hooks: Code-Checker, um nach geheimen Informationen (private Schlüssel, Systempasswörter, Cloud Access Keys etc.) zu suchen, bevor der Code an die Versionskontrolle übertragen wird.

  • Pre-Commit Code Scanning: Code-Editoren wie Atom, IntelliJ und Visual Studio verfügen über Sicherheits-Plugins, die bereits erste Sicherheitsprüfungen erlauben während der Code noch von den Entwicklern geschrieben wird.

  • Manual Security Peer Review: Code-Review-Tools wie GitHub, GitLab und Bitbucket bieten integrierte Funktionen, um den Code bei möglicherweise riskanten Veränderungen manuell auf seine Sicherheit hin zu prüfen.

  • Static Source Code Scanning: Werkzeuge, um Quellcode-Dateien (Infrastrukturvorlagen, Anwendungsquellcode) laufend im Entwicklungsprozess auf Sicherheitslücken hin zu prüfen.

  • Security Unit Tests: Benutzerdefinierte Sicherheitstests, die von den Sicherheits- und Entwicklerteams geschrieben werden, um im Falle von Missbrauch und negativen Testfällen rechtzeitig reagieren zu können.

  • Dependency Management Scans: Scannen von Open-Source-Infrastrukturvorlagen und -Anwendungskomponenten auf bekannte Schwachstellen.

  • Container Security Scanning: Da sich Container-Techniken wie zum Beispiel Docker auch in der DevOps-Welt immer weiter verbreiten, müssen die Sicherheitsteams Container-Images auf Sicherheitslücken, unsichere Konfigurationen und die Einhaltung von Richtlinien analysiert werden.

  • Dynamic Application Security Testing: Scannen einer laufenden Anwendung auf häufige Sicherheitslücken und Fehlkonfigurationen. Akzeptanzkriterien lassen sich durchsetzen mit Tools wie Gauntlt oder BDD Security.

  • Infrastructure Acceptance Tests: Infrastruktur-Akzeptanztests können Images gegen gehärtete Richtlinien prüfen und verifizieren. Das funktioniert mit Tools wie InSpec und OpenSCAP.

  • Secrets Management: Bereitstellung und Speicherung lassen sich mit Tools wie Vault, Conjure, AWS KMS und Azure Key Vault automatisieren.

  • Continuous Monitoring: Überwachung der Produktionsumgebung auf Schwachstellen, Anomalien und laufende Angriffe mit Tools wie statsd, graphite und grafana.

5. Erfolg messen

Für eine erfolgreiche DevSecOps-Implementierung ist es wichtig, im Vorfeld eines solchen Großprojekts Metriken zu definieren. Nur so lässt sich messen und feststellen, ob sich Aufwand und Investitionen lohnen. Das Problem dabei: Derzeit sind praktisch keine Tools oder Maßstäbe verfügbar, die Anwenderunternehmen bei der Prüfung von DevSecOps-Vorhaben anlegen könnten.

Die Analysten von Booz Allen empfehlen, folgende Key Performance Indicators (KPIs) zu prüfen: Auslieferungsdauer, Anzahl und Häufigkeit der Auslieferungen, mittlere Wiederherstellungszeit und prozentuale Abweichungen in der Anzahl der Fehler. Einige automatisierte Scanning-Lösungen, die den Code automatisiert auf seine Qualität hin prüfen, liefern eine Art Sicherheitscode-Qualitätskennzahl, die sich auch als Metrik verwenden lässt. Eine Kombination dieser Datenpunkte und Maßstäbe ist vermutlich die derzeit beste Kennzahl, um zu überprüfen, wie gut der eigene DevSecOps-Ansatz funktioniert.

Fazit

Gerade im Hinblick auf neue Entwicklungsparadigmen bildet der Umstieg auf DevSecOps eine der wichtigsten Grundlagen der digitalen Transformation.Die größte Herausforderung liegt vermutlich darin, die Veränderung von DevOps zu DevSecOps richtig im Team zu verankern. Es gilt, die Mitarbeiter abzuholen und den Prozess nicht nur aus technologischer, sondern auch aus Management-Sicht vollständig zu durchdenken.

Die Frage, ob sich Agilität und Sicherheit verbinden lassen, lässt sich mit einem klaren Ja beantworten. Zwar erfordert der Schritt von DevOps zu DevSecOps am Anfang einen gewissen Aufwand. Dieser lohnt sich - vor allem langfristig. Denn das Unternehmen sichert damit nicht nur das Tempo der eigenen Innovation und Weiterentwicklung, sondern schafft damit auch mehr Sicherheit durch eine schnellere Reaktionsfähigkeit und die Vernetzung von Wissen. So funktionieren Agilität und Sicherheit miteinander, und beide profitieren auch voneinander.

Weitere Informationsquellen für DevSecOps: