Trace Id is missing
Zu Hauptinhalt springen
Microsoft Security

Was ist DevSecOps?

Erfahren Sie, wie Sie Sicherheitsmethoden in jede Phase des Softwareentwicklungslebenszyklus in Ihrer Multicloudumgebung integrieren.

DevSecOps definiert

DevSecOps, das für Development, Security, Operations (Entwicklung, Sicherheit und Betrieb) steht, ist ein Framework, das Sicherheit in alle Phasen des Lebenszyklus der Softwareentwicklung integriert. Organisationen verwenden diesen Ansatz, um das Risiko der Veröffentlichung von Code mit Sicherheitsrisiken zu verringern. Durch Zusammenarbeit, Automatisierung und klare Prozesse teilen sich die Teams die Verantwortung für die Sicherheit, anstatt sie am Ende zu belassen, wenn Probleme viel schwieriger und kostspieliger zu lösen sind. DevSecOps ist eine wichtige Komponente einer Multicloud-Sicherheitsstrategie.

DevSecOps im Vergleich zu DevOps

In der herkömmlichen Softwareentwicklung werden Projekte in unterschiedliche Phasen für Planung, Entwurf, Entwicklung, Integration und Tests unterteilt, die nacheinander über mehrere Monate oder sogar Jahre erfolgen. Obwohl dieser Ansatz sehr methodisch ist, haben viele Organisationen festgestellt, dass er zu langsam ist, was es schwierig macht, die Erwartungen der Kunden’ an kontinuierliche Produktverbesserungen zu erfüllen. Darüber hinaus wird die Sicherheit in der Regel ganz am Ende angeblitzt, wodurch Unternehmen dem Risiko einer Sicherheitsverletzung ausgesetzt sind.

Um wettbewerbsfähig zu bleiben, haben viele Unternehmen ein DevOps-Modell eingeführt, das die Bereitstellung kleinerer Pakete mit hochwertigem Code priorisiert, anstatt funktionsreiche Projekte, die länger dauern. In diesem Framework arbeiten Softwareentwicklungs- und Betriebsteams zusammen, um Tests und Integration während des gesamten Prozesses zu integrieren. Automatisierung, standardisierte Prozesse und Zusammenarbeit helfen Teams dabei, sich schnell zu bewegen, ohne die Qualität zu beeinträchtigen.

DevSecOps ist eine Erweiterung von DevOps, die Sicherheit in alle Aspekte des Prozesses integriert. Das Ziel besteht darin, Sicherheitsprobleme von Anfang an des Projekts zu beheben. In diesem Framework übernimmt nicht nur das gesamte Team die Verantwortung für die Qualitätssicherung und Codeintegration, sondern auch für die Sicherheit. In der Praxis bedeutet dies, dass Teams die Auswirkungen auf die Sicherheit während der Planung besprechen und mit dem Testen auf Sicherheitsprobleme in Entwicklungsumgebungen beginnen, anstatt bis zum Ende zu warten. Ein weiterer Name für diesen Ansatz ist "Sicherheit nach links verschieben".

Warum ist DevSecOps wichtig?

Es gibt viele Methoden, die Angreifer verwenden, um Zugriff auf die Daten und Ressourcen einer Organisation zu erhalten. Eine gängige Taktik besteht jedoch darin, Softwaresicherheitsrisiken auszunutzen. Diese Arten von Sicherheitsverletzungen sind kostspielig, zeitaufwändig und je nach Schweregrad schädlich für den Ruf eines Unternehmens’. Das DevSecOps-Framework reduziert das Risiko der Bereitstellung von Software mit Fehlkonfigurationen und anderen Sicherheitsrisiken, die böswillige Akteure nutzen können.

Hauptkomponenten von DevSecOps

Ein erfolgreicher DevSecOps-Prozess umfasst die folgenden Komponenten:

  • Continuous Integration

    Mit Continuous Integration committen Entwickler ihren Code mehrmals täglich in ein zentrales Repository. Anschließend wird der Code automatisch integriert und getestet. Dieser Ansatz ermöglicht es Teams, Integrationsprobleme und Fehler frühzeitig im Prozess zu erkennen, anstatt bis zum Ende zu warten, wenn mehrere Probleme behoben werden müssen.

  • Continuous Delivery

    Continuous Delivery baut auf Continuous Integration auf, um den Prozess des Verschiebens von Code aus der Buildumgebung in eine Stagingumgebung zu automatisieren. Nach dem Staging wird die Software zusätzlich zu Komponententests automatisch getestet, um sicherzustellen, dass die Benutzeroberfläche funktioniert, der Code erfolgreich integriert ist, dass APIs zuverlässig sind und dass die Software die erwarteten Datenverkehrsvolumen verarbeiten kann. Das Ziel dieses Ansatzes ist die konsistente Bereitstellung von produktionsbereitem Code, der Kunden einen Mehrwert bietet.

  • Continuous Security

    Die Integration von Sicherheit in den gesamten Softwareentwicklungslebenszyklus ist eine wichtige Komponente von DevSecOps. Dazu gehören die Bedrohungsmodellierung frühzeitig im Prozess und automatisierte Sicherheitstests während des gesamten Lebenszyklus, beginnend mit entwicklereigenen Umgebungen. Durch das frühzeitige und häufige umfassende Testen der Software auf Sicherheitsprobleme können Organisationen Software effizient mit minimalen Problemen bereitstellen.

  • Kommunikation und Zusammenarbeit

    DevSecOps ist stark davon abhängig, dass Einzelpersonen und Teams eng zusammenarbeiten. Continuous Integration erfordert, dass Personen zusammenarbeiten, um Konflikte im Code zu lösen, und Teams müssen effektiv kommunizieren, um die gleichen Ziele zu vereinheitlichen.

DevSecOps implementieren

Das Hinzufügen von Sicherheit zu Ihrem DevOps-Prozess erfordert eine sorgfältige Planung. Beginnen Sie langsam mit Prozessen, die für das Team die geringsten Reibungen mit sich bringen und die größte Sicherheitsabrechnung bieten. Hier sind einige Möglichkeiten zum Hinzufügen von Sicherheit zu einem typischen DevOps-Sprint.

  • Planung und Entwicklung

    Die frühzeitige Einführung von Sicherheit in Entwicklungssprints trägt nicht nur dazu bei, Sicherheitsrisiken später zu reduzieren, sondern spart auch Zeit, da Probleme einfacher behoben werden können, bevor Code erstellt und integriert wurde. Verwenden Sie während der Planung und Entwicklung die Bedrohungsmodellierung, um potenzielle Bedrohungen für die Anwendung zu identifizieren und zu mindern. Dies hilft Ihnen, die Sicherheit von Anfang an in die Anwendung zu integrieren. Um Sicherheitsprobleme zu erkennen, bevor Code in das freigegebene Repository committet wird, implementieren Sie automatisierte Überprüfungen, z. B. integrierte Sicherheits-Plug-Ins für die Entwicklungsumgebung, die Entwicklern sofortiges Feedback geben, wenn ein potenzielles Sicherheitsrisiko in dem von ihnen geschriebenen Code besteht. Lassen Sie während der Codeüberprüfung jemanden mit Sicherheitskenntnissen Empfehlungen für Verbesserungen bereitstellen.

  • Codecommit

    Einer der Schlüssel für einen erfolgreichen DevSecOps-Prozess ist Continuous Integration. Entwickler committen ihren Code in der Regel mehrmals täglich in ein zentrales Repository, um sicherzustellen, dass Integrationsprobleme frühzeitig abgefangen werden. Es ist wichtig, dieser Phase automatisierte Sicherheitsüberprüfungen hinzuzufügen. Dies kann das Scannen von Bibliotheken und Abhängigkeiten von Drittanbietern, Komponententests und statische Anwendungssicherheitstests umfassen. Es ist auch wichtig, rollenbasierte Zugriffssteuerungen bereitzustellen, um Ihre Continuous Integration- und Continuous Delivery-Infrastruktur vor Angreifern zu schützen, die bösartigen Code ausführen oder Anmeldeinformationen stehlen möchten.

  • Erstellen und Testen

    Das Ausführen automatisierter Sicherheitsskripts in der Testumgebung hilft dabei, potenzielle Probleme zu erkennen, die zuvor nicht erkannt wurden. Einige der Sicherheitstests, die Sie während dieser Phase ausführen können, umfassen dynamische Anwendungssicherheitstests, Infrastrukturüberprüfung, Containerüberprüfung, Cloudkonfigurationsüberprüfung und Sicherheitsakzeptanztests.

  • Produktion

    Nachdem die Anwendung in der Produktion bereitgestellt wurde, führen einige Organisationen Penetrationstests durch, um Schwachstellen in der Liveumgebung zu finden. Bei Penetrationstests übernehmen die Benutzer die Denkweise eines Angreifers und suchen nach Möglichkeiten, die Anwendung zu verletzen.

  • Operation

    Selbst der beste DevSecOps-Prozess erfasst nicht alles, daher ist es wichtig, Anwendungen kontinuierlich auf Sicherheitsrisiken und Bedrohungen zu überwachen. Mithilfe von Analysedaten können Sie bewerten, ob sich Ihr Sicherheitsstatus verbessert, und Bereiche zur Optimierung hervorheben.

DevSecOps-Tools und -Technologien

Bei der Auswahl von Sicherheitstools ist es wichtig, diejenigen auszuwählen, die gut mit Ihrer aktuellen DevOps-Technologie funktionieren. Dies erleichtert die Integration von Sicherheit in Ihren gesamten Prozess. Im Folgenden finden Sie einige der Tools, die Sie möglicherweise benötigen:

  • Infrastructure-as-Code-Überprüfung

    Um die Effizienz zu verbessern, verwenden DevSecOps-Teams in der Regel Open Source-Tools wie Terraform, um Infrastruktur wie Netzwerke, virtuelle Computer und Load Balancers über Code zu verwalten und bereitzustellen, anstatt sie manuell auszuführen. Terraform stellt sicher, dass die Infrastruktur auf Hunderten oder Tausenden von Servern konsistent eingerichtet und aktualisiert wird. Um das Risiko zu verringern, dass Fehlkonfigurationen in der Produktionsumgebung bereitgestellt werden, überprüft Infrastructure-as-a-Code-Überprüfungstools die Infrastruktur automatisch auf Codeebene auf Nichtkonformität mit Sicherheitsrichtlinien und -standards.

  • Sicherheitstests für statische Anwendungen

    Bevor ihr Code kompiliert wird, beginnen DevSecOps-Entwickler damit, ihren benutzerdefinierten Code auf Sicherheitsrisiken zu testen. Dies hilft ihnen, Probleme zu beheben, ohne den Build zu beeinträchtigen. Tools für statische Anwendungssicherheitstests vereinfachen diesen Prozess mit automatischen Überprüfungen und Echtzeitfeedback. Viele Tools identifizieren genau, welcher Code riskant ist, und bieten vorgeschlagene Korrekturen.

  • Analyse der Softwarekomposition

    Eine Möglichkeit, wie Teams Anwendungen und Features effizienter erstellen können, ist die Verwendung von Plug-Ins und Frameworks von Drittanbietern. Diese vordefinierten Tools sparen Zeit, können aber auch Risiken mit sich bringen, z. B. Probleme mit der Lizenzierung, schlecht geschriebenem Code oder Sicherheitsrisiken. Analysetools für die Softwarekomposition identifizieren Open Source-Komponenten in Anwendungen und werten sie anhand proprietärer oder kostenloser Datenbanken aus, um Lizenzverletzungen sowie Sicherheits- und Qualitätsprobleme zu erkennen.

  • Sicherheitstests für interaktive Anwendungen

    Bei Qualitätssicherungstests oder bei Verwendung einer Anwendung scannen interaktive Anwendungssicherheitstools den Code, um Sicherheitsrisiken zu finden, und stellen Berichte bereit, die angeben, wo sich das Problem im Code befindet.

  • Sicherheitstests für dynamische Anwendungen

    Dynamische Anwendungssicherheitstests emulieren die Methoden, die ein böswilliger Akteur verwenden kann, um eine Anwendung anzugreifen. Dieser Test erfolgt während der Ausführung der Anwendung und basiert auf vordefinierten Anwendungsfällen.

  • Containerüberprüfung

    Container werden häufig in DevSecOps verwendet, da sie Entwicklern helfen, eigenständige Codeeinheiten einfach bereitzustellen. In einem Container befindet sich ein Containerimage, das den Code enthält, der Prozesse für den Container ausführt. Diese Images werden jedoch häufig mit vorhandenen Images erstellt oder aus öffentlichen Repositorys abgerufen. Container-Überprüfungstools scannen Container und vergleichen sie mit öffentlichen oder proprietären Sicherheitsrisikodatenbanken, um potenzielle Sicherheitsprobleme zu ermitteln.

Best Practices für DevSecOps

Bei DevSecOps geht es genauso um den Kulturwechsel wie um Prozesse und Tools. Im Folgenden finden Sie einige bewährte Methoden, um die Einführung dieses Frameworks so reibungslos wie möglich zu gestalten.

  • Kulturwechsel

    Erkennen Sie, dass es für Personen schwierig sein kann, ihre Arbeitsweise zu ändern, und dass Konflikte auftreten können. Um sie bei der Anpassung zu unterstützen, kommunizieren Sie die Ziele und Erwartungen der Organisation klar, bieten Sie viele Möglichkeiten für einen offenen Dialog, und erwarten Sie, dass Sie flexibel sein müssen, bis Teams die Tools, Prozesse und Intervalle finden, die für sie am besten funktionieren.

  • Definieren von Anforderungen und Metriken

    Legen Sie eine Mindestsicherheitsbaseline fest. Anleitungen finden Sie unter Branchen- und gesetzliche Anforderungen oder unter The Open Worldwide Application Security Project® (OWASP) Top Ten kritische Risiken für Webanwendungen und die SANS Top 25-Softwarefehler. Nachdem Sie die Anforderungen definiert haben, bestimmen Sie, welche Metriken Sie nachverfolgen möchten, um Ihren Fortschritt zu überwachen.

  • Klein anfangen

    Tools für die Sicherheitsautomatisierung bieten viele Optionen zum Überprüfen von Code auf Probleme, aber das Aktivieren aller Optionen, insbesondere zu einem frühen Zeitpunkt bei der Einführung von DevSecOps, kann Ihr Team überfordern. Achten Sie darauf, welche Tools Sie implementieren und nach wie vielen Problemen Sie suchen.

  • Durchführen der Bedrohungsmodellierung

    Entwickeln Sie einen Bedrohungsmodellierungsprozess, der so einfach oder detailliert und technisch sein kann, wie Sie es benötigen. Verwenden Sie diesen Ansatz, um eine realistische Sicherheitsansicht Ihrer Anwendung zu dokumentieren, die Folgendes umfasst:

    • Wie Angreifer den Entwurf der Anwendung missbrauchen können.
    • Beheben von Sicherheitsrisiken.
    • Priorität verschiedener Probleme.
  • Implementieren der Automatisierung

    Automatisierung ist der Schlüssel zum Ermöglichen von Qualität und Geschwindigkeit im DevSecOps-Prozess. Durch das Einbetten automatisierter Sicherheitsüberprüfungen in alle Phasen des Continuous Integration- und Continuous Delivery-Lebenszyklus können Sie die Sicherheit Ihrer Anwendungen verbessern, ohne den Prozess erheblich zu verlangsamen.

  • Verwalten von Abhängigkeiten

    Die meisten Entwickler verwenden Pakete und Bibliotheken von Drittanbietern, um Anwendungen effizient zu erstellen. Das Problem besteht darin, dass einige dieser Lösungen Sicherheitslücken aufweisen und Entwickler nicht immer darauf achten, sie auf dem neuesten Stand zu halten. Um Ihr Risiko zu verringern, stellen Sie sicher, dass die von Ihnen verwendeten Komponenten auf Sicherheitsrisiken überprüft werden, und entwickeln Sie einen standardisierten Prozess für deren Aktualisierung.

  • Auswerten und Verbessern

    Bewerten Sie regelmäßig, wie der Prozess funktioniert, und passen Sie sie nach Bedarf an, um sicherzustellen, dass Ihre Organisation ihre Ziele erreicht. Nach Abschluss eines Sprints kann ein Post-Mortem ohne Vorwurf dazu beitragen, Verbesserungsmöglichkeiten aufzudecken. Analysedaten und Threat Intelligence können Ihnen auch helfen, festzustellen, ob Sicherheitsanforderungen bestehen, die von Ihrem aktuellen Ansatz nicht erfüllt werden.

DevSecOps für cloudnative Anwendungen

Cloudnative AnwendungenCloudnative Anwendungen sind für die Cloud konzipiert und in der Regel herstellerneutral, sodass sie von einer Cloud in eine andere portiert werden können. Entwicklungsteams sind hochgradig skalierbar und resilient und erstellen sie in der Regel mithilfe von Microservices, Containern und Automatisierung, sodass sie ideal für einen DevSecOps-Prozess geeignet sind. Das Erstellen von Continuous Security, Continuous Integration und Continuous Delivery in den Entwicklungsprozess für cloudnative Anwendungen ermöglicht Skalierbarkeit ohne Beeinträchtigung der Sicherheit. Verwenden Sie automatisierte Sicherheitslösungen wie Microsoft Defender für DevOps, um Ihren Code und die gesamte DevOps-Pipeline zu schützen. Nachdem Sie Ihre Anwendung in der Cloud bereitgestellt haben, überwachen Sie sie weiterhin auf Risiken. Cloud Workload Protection Platforms (CWPP)Cloud Workload Protection Platforms (CWPP) zum Schutz dieser Anwendungen und der zugrunde liegenden Daten beitragen, indem Bedrohungen für Workloads in Multicloudumgebungen erkannt und entschärft werden. Cloud Security Posture Management (CSPM)Cloud Security Posture Management (CSPM)-Lösungen erkennen und beheben Fehlkonfigurationen und Sicherheitsrisiken in Ihrer gesamten Umgebung.

Mehr erfahren über Microsoft Security

Microsoft Defender for Cloud

Schützen Sie Multicloud- und Hybridumgebungen von der Entwicklung bis zur Runtime mit einer umfassenden CNAPP-Plattform (Cloud-Native Application Protection Platform).

Microsoft Defender for Cloud Apps

Schützen Sie Ihre Apps und Daten auf moderne Weise, und verbessern Sie den App-Sicherheitsstatus mit dieser Software-as-a-Service-Lösung.

Microsoft Defender for Cloud Security Posture Management

Konzentrieren Sie sich mit kontextbezogenem Cloud Security Posture Management auf die Hauptrisiken in Ihrer Multicloudumgebung.

Microsoft Defender for DevOps

Profitieren Sie von durchgängiger DevOps-Sicherheitsverwaltung in Multicloud- und Multipipeline-Umgebungen.

Häufig gestellte Fragen

  • DevSecOps ist ein Prozess, der Sicherheit in den gesamten Softwareentwicklungslebenszyklus integriert. Organisationen verwenden diesen Ansatz, um das Risiko der Veröffentlichung von Code mit Sicherheitsrisiken zu verringern. Durch Zusammenarbeit, Automatisierung und klare Prozesse teilen sich die Teams die Verantwortung für die Sicherheit, anstatt sie am Ende zu belassen, wenn Probleme viel schwieriger und kostspieliger zu lösen sind.

  • DevSecOps steht für Development, Security, Operations (Entwicklung, Sicherheit und Betrieb). Es bezieht sich auf den Prozess der Integration von Sicherheit in alle Phasen der Softwareentwicklung.

  • "Nach links verschieben" ist ein Konzept in DevSecOps, das sich auf die Integration von Sicherheitsmethoden bezieht, die von Anfang an im Entwicklungsprozess beginnen.

  • Das DevSecOps-Framework umfasst Continuous Integration, Continuous Delivery und Continuous Security. Dies ist eine Methode, mit der Sicherheits-, Betriebs- und Sicherheitsteams zusammenarbeiten und die Verantwortung für die schnelle Bereitstellung von qualitativ hochwertiger Software teilen und gleichzeitig Sicherheitsrisiken verringern.

  • Es gibt keinen DevSecOps-Prozess, aber eine gängige Methode, diese Projekte auszuführen, besteht darin, die Arbeit in Sprints zu unterteilen, die jeweils die folgenden Komponenten umfassen: Planung und Entwicklung, Build und Test sowie Produktion. Während des gesamten Sprints verwenden Teams Automatisierung, um kontinuierlich Probleme mit der Qualitätssicherung zu beheben, kontinuierlich zu integrieren und kontinuierlich auf Sicherheitsrisiken zu testen.

Microsoft folgen