Tierney - stock.adobe.com
11 bewährte DevSecOps-Verfahren im Überblick
DevSecOps integriert Entwicklung, Sicherheit und Betrieb über den gesamten Softwarelebenszyklus hinweg und macht Sicherheit so zu einer gemeinsamen Verantwortung aller Teams.
Viele IT-Leiter stufen DevSecOps (Development, Security und Operations) als rein technisches Projekt ein. In Wahrheit handelt es sich um eine firmenweite, strategische Vorgehensweise, die neu gestaltet, wie Unternehmen Sicherheit und Entwicklung miteinander verbinden.
DevSecOps setzt auf DevOps auf, indem es Sicherheit zu einer geteilten Verantwortung über den gesamten Lebenszyklus einer Software macht, also von der Entwicklung, über die Bereitstellung bis hin zum eigentlichen Betrieb. Obwohl DevOps die Geschwindigkeit erhöht, hat es die Sicherheit oft bis spät im Entwicklungszyklus unbeachtet gelassen.
Der Umstieg auf Cloud-basierte Architekturen, steigende Cybersecurity-Risiken sowie der zunehmende regulatorische Druck verlangen jedoch eine bessere Integration der Software-Sicherheit. Eine effektive DevSecOps-Strategie erfordert auch die Unterstützung der Unternehmensführung, um die Richtung vorzugeben und die Ressourcen für eine erfolgreiche Umsetzung bereitzustellen.
Dieser Artikel stellt wichtige operative Praktiken vor und beschreibt wesentliche Metriken sowie häufige Fallstricke für einen erfolgreichen Übergang zu DevSecOps.
Wichtige Best Practices für DevSecOps
Die folgenden Best Practices helfen IT-Entscheidern dabei, ihr Unternehmen durch die kulturellen und operativen Veränderungen zu führen, die für ein DevSecOps-Framework erforderlich sind.
1. Shift Left und die frühzeitige Integration von Sicherheitsaspekten
Shift Left bedeutet im IT- und Projektkontext, dass wichtige Aufgaben oder Prüfungen bereits früher im Prozess eingeplant werden. Beispielsweise werden erforderliche Sicherheitsmaßnahmen schon früh in den Entwicklungsprozess eingebunden. Dies betrifft sowohl die Planungsphase ebenso wie die Architektur der künftigen Anwendung und die eigentliche Programmierung. Zu den Maßnahmen, die diesen Ansatz unterstützen, gehören Threat Modeling, die Einführung von Standards für Secure Coding sowie ein frühzeitiges Scannen auf Schwachstellen.
Diese Maßnahmen bieten Vorteile wie geringere Kosten für die Behebung von Sicherheitsproblemen, die Vermeidung von Schwachstellen sowie eine sichere und dennoch schnelle Bereitstellung von Software.
2. Verbinden von DevSecOps und Compliance-Frameworks
Es gibt verschiedene DevSecOps-Frameworks, die dabei helfen, Prozesse und Maßnahmen zu strukturieren. Beispiele hierfür sind:
- NIST Secure Software Development Framework or Cybersecurity Framework 2.0.
- ISO 27001.
- System and Organization Controls 2 (SOC 2).
- PCI DSS.
Die Automatisierung von Audit-Daten ist ein wesentlicher Bestandteil dieser Frameworks.
DevSecOps-Frameworks vereinfachen die Einhaltung von Compliance-Anforderungen und verbessern gleichzeitig die Sicherheitslage des Unternehmens.
3. Sicherheit mit Infrastructure-as-Code integrieren
Programmierbare Infrastrukturen unterstützen sichere und auch stabile DevSecOps-Maßnahmen.
Zu den Best Practices in diesem Bereich gehören:
- Das Scannen von Templates auf Verletzungen der Richtlinien.
- Das automatisierte Durchsetzen von sicheren Konfigurationen.
- Die direkte Integration von Infrastruktur-Richtlinien in CI/CD-Pipelines (Continuous Integration, Continuous Delivery).
Diese Methoden helfen insgesamt dabei, Fehlkonfigurationen und die daraus häufig resultierenden Sicherheitsvorfälle zu vermeiden.
4. Automatisierung der Sicherheit über die gesamte Pipeline
Automatisch durchgeführte Sicherheitstests in CI/CD-Pipelines reduzieren manuelle Arbeiten, Fehler und Verzögerungen.
Dazu gehören unter anderem die folgenden Methoden:
- Static Application Security Testing (SAST).
- Dynamic Application Security Testing (DAST).
- Software Composition Analysis (SCA).
- Infrastructure and Container Scanning.
Integrierte Sicherheitstests lassen sich zudem effektiv skalieren, wenn Projekte wachsen.
5. Förderung einer funktionsübergreifenden Eigenverantwortung
DevSecOps beseitigt die traditionellen Daten-Silos zwischen Entwicklung, Sicherheit und Betrieb.
Fördern Sie dazu die folgenden Vorgehensweisen in Ihrem Team:
- Gemeinsame Planung von Entwicklungsprojekten.
- Gemeinsame KPIs (Key Performance Indicators) zur Messung des Fortschritts.
- Ernennung von Sicherheitsbeauftragten (Security Champions) innerhalb der Entwicklungsteams.
- Eine engere Zusammenarbeit zwischen Engineering- und Sicherheitsteams.
Unterschätzen Sie nicht die positiven Effekte einer solchen Zusammenarbeit. Sorgen Sie für eine klare Kommunikation und eine funktionsübergreifende Führung.
6. Toolchains standardisieren und absichern
Verwalten Sie Ihre Security- und Test-Tools effektiv, um unnötige Kosten für Lizenzen und eine Überlastung der Nutzer zu vermeiden:
- Konsolidieren Sie Entwicklungs- und Security-Tools, um unnötige Komplexität sowie Risiken zu reduzieren.
- Stellen Sie sicher, dass Ihre Tool-Chains Identitätsmanagement, Zugriffskontrolle und Auditierbarkeit unterstützen.
- Standardisieren Sie Ihre Werkzeuge und Prozesse, um die Transparenz zu erhöhen und die Nutzung nicht autorisierter Tools (das sogenannte Shadow Tooling) zu reduzieren.
7. Sichern Sie Ihre Software-Supply-Chain
Moderne Anwendungen nutzen oft Open-Source-Libraries, Drittanbieter-APIs und Container-Images. Prüfen Sie diese Supply Chain sorgfältig, um das Risiko zu reduzieren, dass kompromittierte Komponenten in die Produktionsumgebung gelangen.
Zu den erforderlichen Kontrollmaßnahmen gehören unter anderem:
- Erstellen und Pflege einer kompletten Inventarliste der eingesetzten Software (Software Bill of Materials, SBOM).
- Scannen von Abhängigkeiten auf Schwachstellen.
- Überprüfen der Integrität und Herkunft von Artefakten.
- Ausschließliches Einsetzen von vertrauenswürdigen Package Repositories.
- Einführen und Aufrechterhalten einer effektiven und umfassenden Versionskontrolle.
8. Secrets und Identitäten verwalten
Fest kodierte Anmeldedaten stellen nach wie vor ein erhebliches Sicherheitsrisiko in vielen Entwicklungs-Pipelines dar. DevSecOps verlangt daher ein effektives Management von Secrets und Identitäten.
Dafür gibt es folgende Maßnahmen:
- Sichere Vaults für Zugangsdaten, API-Schlüssel und Token.
- Automatische Rotation von Secrets.
- Zugriffsrechte nach dem Least-Privilege-Prinzip für Entwickler und Automatisierungs-Tools.
- Nur für kurze Zeit gültige Anmeldedaten für Pipelines und Container.
9. Einführen von kontinuierlichem Monitoring und Feedback
DevSecOps geht über das eigentliche Deployment hinaus. Durch kontinuierliches Monitoring gelangen neue Daten in die Entwicklungs-Pipelines, die dazu beitragen, den Code zu verbessern, Kontrollmechanismen zu stärken und wiederkehrende Probleme zu vermeiden. Das Überwachen von Anwendungen, Infrastruktur und Aktivitäten der Nutzer deckt Schwachstellen, fehlerhafte Konfigurationen und neu entstehende Bedrohungen auf.
10. Einführung einer Policy-as-Code-Governance
Policy-as-Code kodiert Anforderungen für die Sicherheit und Compliance direkt in die Entwicklungs-Pipelines. Dadurch lassen sich Governance-Standards konsistent durchsetzen, ohne die Entwicklungsgeschwindigkeit zu beeinträchtigen.
Beachten Sie etwa folgende Beispiele für Policies:
- Automatische Überprüfung von Compliance-Anforderungen.
- Automatische Durchsetzung von Konfigurationsrichtlinien.
- Blockieren von Bereitstellungen, die gegen Sicherheitskontrollen verstoßen.
11. Programme für Security Champions etablieren
Ernennen Sie Sicherheitsbeauftragte und integrieren Sie sie in Ihre Entwicklungsteams, um die Kommunikation zu verbessern und Probleme frühzeitig zu erkennen.
Security Champions kümmern sich beispielsweise um die folgenden wichtigen Aufgaben:
- So sind sie die erste Anlaufstelle für die Beratung in Sicherheitsfragen innerhalb der Entwicklungsteams.
- Sie helfen zudem dabei, Sicherheitsanforderungen in entwicklerfreundliche Vorgehensweisen zu übersetzen.
- Sie beschleunigen die Behebung von Sicherheitslücken.
- Sie unterstützen die reibungslose Einführung sicherer Programmierpraktiken.
Den Erfolg der DevSecOps-Maßnahmen messen
Messen Sie den Erfolg Ihrer DevSecOps-Maßnahmen anhand der damit erreichten geschäftlichen und sicherheitsrelevanten Ergebnisse. Führungskräfte müssen zudem technische Metriken mit geschäftlichen Werten abgleichen. Ein paar Beispiele für Vorteile dieser Maßnahmen:
- Reduziertes Risiko von Sicherheitsverletzungen.
- Geringere finanzielle Risiken.
- Beschleunigte Innovation bei Produkten.
- Bessere Erfüllung regulatorischer Anforderungen.
- Größeres Vertrauen der Kunden.
Dies lässt sich durch die Verfolgung bestimmter Kennzahlen erreichen, darunter:
- Metriken zur Reduzierung der Risiken:
- Zahl der kritischen Schwachstellen in der Produktionsumgebung.
- Durchschnittliche Zeit bis zur Behebung von Schwachstellen.
- Kennzahlen zur Bereitstellung:
-
- Häufigkeit der Deployments.
- Durchlaufzeit für Änderungen (Lead time for Changes).
- Operative Widerstandsfähigkeit:
- Zeit bis zur Erkennung von Vorfällen und Zeit bis zur Reaktion.
- Prozentanteil automatisierter Sicherheitstests.
DevSecOps sollte sowohl die Geschwindigkeit als auch die Sicherheit fördern und auf keinen Fall das eine zugunsten des anderen opfern.
Häufige Fallstricke, die es zu vermeiden gilt
Der Übergang zu einer DevSecOps-Kultur bedeutet immer auch, dass man sie in die Langzeitstrategie des Unternehmens integrieren muss. Dabei ist es entscheidend, bestimmte Dinge richtig zu machen. Achten Sie besonders auf die folgenden Fallstricke.
DevSecOps nur als reines Technologieprojekt behandeln.
- DevSecOps ist ein grundlegender kultureller und operativer Wandel und kein einmaliges Projekt.
- Dies erfordert eine abgestimmte Ausrichtung der Führungskräfte sowie Team-übergreifende Verantwortlichkeiten.
Einsatz zu vieler Lösungen ohne Änderungen der Prozesse (das sogenannte Overtooling):
- Der Kauf mehrerer Sicherheits-Tools ohne sie in Arbeitsabläufe zu integrieren, führt zu Alarmmüdigkeit und letztlich einem schlechteren ROI (Return-on-Invest).
Ignorieren von Change-Management:
- Die Teams müssen sich an neue Arbeitsabläufe und Verantwortlichkeiten gewöhnen.
Keine oder zu geringen Investitionen in Trainings:
- Programmierer müssen in den aktuellen Standards für sicheres Coding ausgebildet werden.
Fazit: Prioritäten der Geschäftsleitung für die ersten 90 Tage
Konzentrieren Sie sich in den ersten 90 Tagen nach der Einführung von DevSecOps auf die folgenden Schwerpunkte:
- Passen Sie die Strategie an. Legen Sie Ziele fest, die eng mit der Reduzierung von Risiken und einer schnelleren Bereitstellung verbunden sind.
- Bewerten Sie den aktuellen Reifegrad der Entwicklungspraktiken. Analysieren Sie bestehende Pipelines, eingesetzte Tools sowie die Struktur der Teams.
- Sorgen Sie für eine funktionsübergreifende Governance. Bringen Sie die Verantwortlichen aus den Bereichen Entwicklung, Sicherheit und Betrieb zusammen.
- Priorisieren Sie Automatisierung und schnelle Erfolge. Integrieren Sie zum Beispiel zusätzliche Security-Scans in Ihre CI/CD-Pipeline.
- Ziehen Sie externes Fachwissen hinzu. Externe Partner, Berater und Managed Security Service Provider (MSSP) können die Umsetzung der erforderlichen Maßnahmen deutlich beschleunigen.
DevSecOps wird nur dann ein Erfolg, wenn Unternehmen Sicherheit als gemeinsame Verantwortung über den gesamten Softwarelebenszyklus hinweg etablieren und dabei auf messbare, mehrfach einsetzbare Pipelines setzen.
Dieser Artikel ist im Original in englischer Sprache auf Search IT Operations erschienen.