Was ist DevSecOps?

Der Begriff DevSecOps setzt sich aus Development, Security und Operations zusammen und erweitert den DevOps-Ansatz um den Aspekt Sicherheit.

Im Rahmen einer DevSecOps-Kultur wird Security in alle Phasen des Softwareentwicklungszyklus integriert, um potenzielle Risiken und Schwachstellen so früh wie möglich zu erkennen und zu beheben und so eine schnelle und gleichzeitig sichere Entwicklung zu gewährleisten.

Das Problem mit Security und DevOps

Um Software schnell und effektiv entwickeln und veröffentlichen zu können, nutzen Softwareentwickler regelmäßig Open-Source-Code für ihre Projekte. Eine durchschnittliche moderne Software-Applikation besteht daher bis zu 90 Prozent aus Open-Source-Komponenten. Zudem kommt die Tatsache, dass sich Anwendungen von monolithischen Blöcken hin zu Architekturen entwickelt haben, die als Microservices konzipiert werden, in Container verpackt werden und auf einer flexiblen, verteilten Infrastruktur laufen.  In Folge können bezüglich des Themas Security im Unternehmen folgende Probleme auftreten: Einzelne Sicherheitslücken, wie auch Probleme mit der Einhaltung von Lizenzen.

In einem DevOps Ansatz arbeiten integrierte, multidisziplinäre Teams zusammen, um schnelle Entwicklungszyklen zu ermöglichen. Das Thema IT-Sicherheit kommt dabei aber oft zu kurz.

Denn das Verhältnis von Entwicklern zu Betriebspersonal und Sicherheitspersonal ist 200:5:1. Das heißt, dass jedes von einem Tool zur Überprüfung auf Sicherheitslücken identifizierte Problem von einem sehr kleinen Sicherheits-Team überprüft werden muss, dem gegebenenfalls sogar das technische Hintergrundwissen dazu fehlt.

DevSecOps - developers to Operations and Security Engineers ratio

DevSEcOps - ratio of developers to Operations and Security Engineers

Diese Herausforderung lässt sich bewältigen, indem man die Verantwortung für Sicherheit und Einhaltung der Lizenzbestimmungen auf die Entwickler- und Operations-Teams überträgt und im Rahmen von DevSecOps Security zu einem früheren Zeitpunkt in den Softwareentwicklungszyklus (SDLC) einbezieht.

Sichere Softwareentwicklung dank DevSecOps

Entscheidend ist, dass die Identifizierung von Sicherheitsproblemen früher in der CI/CD-Pipeline erfolgt und auch die Sicherheits- und Compliance-Richtlinien im Softwareentwicklungszyklus (SDLC) automatisiert werden, anstatt manuelle Prozesse zu verwenden.

Unternehmen, die auf das Sec im DevOps Prozess verzichten, können mit Sicherheits- und Lizenzierungs-Problemen konfrontiert werden, die so nah an der Veröffentlichung ihrer Software liegen, dass die Behebung dieser Probleme zusätzliche Kosten verursacht.


Starten Sie mit JFrog Xray KOSTENLOS und überprüfen Sie auf Sicherheitslücken

Start Free


DevSecOps-Kultur

Im Rahmen einer DevSecOps-Kultur übernimmt jeder Einzelne im Release-Cycle auch Verantwortung bezüglich der Sicherheit der Software. In Verbindung mit den Best Practices von DevOps sollte jedes Entwicklerteam einen Sicherheitsbeauftragten benennen, der alle Prozesse bezüglich der Sicherheit und der Einhaltung von Lizenzbestimmungen im Team leitet, um so die Sicherheit der gelieferten Software zu maximieren.

Das Wesen von DevOps besteht darin, so viel wie möglich zu automatisieren, um menschliche Fehler zu vermeiden und automatisierte Gates zu schaffen, die verhindern, dass instabiler Code in die Produktion gelangt. Auch bei DevSecOps geht es um Automatisierung im Prozess: Denn im Grunde ist Code, der Sicherheitslücken oder nicht eingehaltene Lizenzen beinhaltet, instabil.

DevSecOps-Prinzipien

Die Einführung und Umsetzung von DevSecOps in einer Organisation erfordert ein Umdenken in der Unternehmenskultur und im Betriebsablauf. Dies umfasst Tools, Ressourcen und Training bezüglich Security. Im Folgenden finden Sie einige nützliche Konzepte für die Veränderung Ihrer Unternehmenskultur.

  • Sicherheitsbeauftragte

    In jedem Team werden Teammitglieder bestimmt, die für Sicherheitsaspekte zuständig sind und sicherstellen, dass diese in der DevOps-Pipeline auch umgesetzt werden. Außerdem schaffen bei den restlichen Teammitgliedern das entsprechende Bewusstsein. Ein Sicherheitsbeauftragter in einem Entwicklungsteams ist etwa für die Einführung und die Verwendung folgender Punkte zuständig:

    Ein Sicherheitsbeauftragter des QA-Teams setzt Folgendes um:

    • Dynamic Application Security Testing (DAST) als Teil eines automatisierten Qualitätssicherungs-Prozesses

  • Sicherheit als wesentlicher Bestandteil des Prozesses

    Bei gelebten DevSecOps wird Sicherheit zu einem Teil des SLDC und wird nicht erst vor der Freigabe der Software für die Produktion schlagend. Das bedeutet, dass Entwickler die Überprüfung auf Sicherheitslücken sowohl in den Build-Prozess als auch in ihre IDE-Umgebung integrieren müssen, um allfällige Abhängigkeiten identifizieren zu können.

  • Einfacher Datenzugriff

    Das Verhältnis von Entwicklern zu Sicherheitsexperten liegt bei 200:1. Durch die Verwendung spezieller IDE-Plugins können Sicherheitsdaten direkt in die von den Entwicklern bereits verwendeten Tools eingespeist werden. Das erleichtert die Einführung deutlich. Dazu sollten sie Best-Practices einführen und Ihren Entwicklern so zeigen, wie sie schon beim Schreiben ihres Codes potenzielle Schwachstellen vermeiden können.

JFrog Xray gibt dem Entwickler Sicherheit an die Hand, indem Informationen über Sicherheitslücken in den im Code verwendeten Abhängigkeiten bereitgestellt werden.

  • Automatisierte Steuerung

    Zusätzlich zur manuellen Überprüfung, wie z. B. Code-Reviews, werden in jeder Phase der DevSecOps-Pipeline Sicherheitschecks eingeführt, um zu prüfen, ob die Software auch in die nächste Phase gehen kann. Ein System definierter Regeln kann Unternehmens-Richtlinien und Policies automatisiert durchsetzen und bestimmte Aktionen ausführen, ohne dass manuelles Eingreifen notwendig ist:

    • Benachrichtigungen bezüglich Sicherheitslücken oder zu Verletzungen von Lizenzbestimmung (E-Mail, Slack, Instant Messages, Jira, etc.)
    • Blockierung von Downloads
    • Builds, die von unsicheren Komponenten oder von solchen, die die Lizenzrichtlinien nicht einhalten, abhängig sind fehlschlagen lassen
    • Verhindern, dass vulnerable Release-Bundles deployed werden

JFrog Xray kann in jeden CI-Server integriert werden, um Builds fehlschlagen zu lassen, wenn Sicherheitslücken oder Verletzungen der Open Source-Lizenzkonformität in Build-Artefakten oder Abhängigkeiten gefunden werden.

DevSecOps kann in Ihrer Pipeline automatisiert werden, wodurch eine abstrakte Überlagerung der Sicherheit entsteht.

DevSecOps-Tools

Es gibt diverse Arten von Tools zur Überprüfung von Sicherheit und Lizenzen, welche verschiedene Aspekte des SDLCs abdecken.

Diese umfassen Folgende: Static Code Analysis (SAST), Software Composition Analysis (SCA) sowie verschiedene Ansätze für das Testen des Codes auf Sicherheitslücken (DAST und IAST).

Darüber hinaus gibt es Tools, mit denen Sie Ihre Binärdateien in Produktionsumgebungen überwachen und vor Angriffen schützen können, die Ihren Code oder Schwachstellen in Ihrer Umgebung ausnutzen. Die für die Sicherheit zuständigen Teams sollten es sich idealerweise zum Ziel machen, all diese Werkzeuge und Methoden einzusetzen, um die Sicherheit des gesamten SDLCs zu gewährleisten.

Static Application Security Testing (SAST) Tools können dabei behilflich sein, Sicherheitslücken in Ihrem selbst entwickelten Quellcode zu identifizieren. Entwickler sollten sich der Existenz dieser SAST-Tools bewusst sein und sie als automatisiertes Tool mit in ihren Entwicklungsprozess einbinden. Dies hilft schon früh im DevSecOps-Prozess beim Erfassen und Beheben potenzieller Sicherheitslücken.

Die Software Composition Analysis (SCA) umfasst die Verwaltung und Überwachung von Lizenzen und Sicherheitsschwachstellen in Open-Source-Komponenten, auf denen Ihr Code aufbaut. Es ist wichtig zu wissen, welche OSS-Komponenten verwendet werden und welche Abhängigkeiten bestehen.

Nach der Identifizierung der Open-Source-Komponenten liefern SCA-Werkzeuge wie JFrog Xray Informationen über die verwendeten Lizenzen und darüber, ob es bekannte Sicherheitslücken bei diesen Komponenten gibt.

Fortschrittliche SCA-Tools bieten Funktionen zur Durchsetzung von Richtlinien, die das Herunterladen von Binärdateien oder fehlerhafte Builds verhindern und Benachrichtigungen an andere Tools schicken.

Dynamic and Interactive Application Security Testing (DAST und IAST) Tools testen offene Schnittstellen der laufenden Anwendung und suchen nach Sicherheitslücken und Fehlern. Während DAST die Anwendung nur in einer Blackbox überprüft, verwendet IAST eine Technologie, die die Funktionen von DAST und SAST kombiniert, um die Genauigkeit der Security-Tests für Anwendungen weiter zu erhöhen.

Container Runtime Security Tools überwachen die Container in deren Laufzeitumgebung. Solche Tools verfügen über verschiedene Funktionen, einschließlich des Firewallings auf verschiedenen Ebenen, der Anomalie-Identifizierung basierend auf Verhaltensanalysen und mehr.

Best Practices für DevSecOps

  • Schulung von Entwicklerteams zur Entwicklung eines sicheren Codes
  • Sicherheits- und Softwareprobleme gleichermaßen nachverfolgen
  • Sicherheit in Form von Code (Integrierte Sicherheit)
  • Integration von Sicherheitskontrollen in die Software-Entwicklungspipeline
  • Automatisierung der Sicherheitstests im Build-Prozess
  • Aufspüren bekannter Sicherheitslücken in der Pipeline
  • Überwachung der Sicherheit in der Produktion
  • Einschleusen von Fehlern, um die Sicherheit zu erhöhen
    Quelle: The Divine and Felonious Nature of Cyber Security – John Willis @botchagalupe

    The DevOps Handbook, Gene Kim, Patrick Debois, John Willis, Jez Humble

Häufig gestellte Fragen

Was ist Software Composition Analysis?

Die Notwendigkeit der Software Composition Analysis (SCA) ergab sich aus der zunehmenden Verwendung von Open Source-Softwarekomponenten, die von Entwicklern eingesetzt werden, um mit dem Innovationstempo Schritt zu halten. Für Unternehmen war es schwierig, die Nutzung von Open Source in verschiedenen Teams und an verschiedenen Standorten zu verwalten und nachzuverfolgen. Daher benötigten sie eine automatisierte Lösung.

Open Source-Software macht in der Regel 90 % des Codes einer Anwendung aus. Es ist von entscheidender Bedeutung, dass dieser Teil des Codes verwaltet wird und sicher ist.

Zu viele Unternehmen übersehen das Risiko von Open Source-Komponenten und konzentrieren sich nur auf den von ihnen geschriebenen Code. Dies kann zu schwerwiegenden Sicherheits- und Lizenzverletzungen führen, die Unternehmen wie Equifax und Capital One Millionen von Dollar kosten. Eine SCA-Lösung kann das beheben!

SCA umfasst die Verwaltung und Überwachung der Lizenzeinhaltung und der Sicherheitslücken in Open Source-Komponenten. Es ist wichtig zu wissen, welche OSS-Komponenten verwendet werden und welche Abhängigkeiten bestehen. Nach der Identifizierung der OSS-Komponenten in einem Unternehmen bieten SCA-Tools einen Einblick in jede Komponente, einschließlich Informationen über die Lizenz, die Versionsnummer und darüber, ob es bekannte Sicherheitslücken gibt.

Welche Risiken bestehen bei der Verwendung von Open Source-Komponenten?

Moderne Anwendungen bestehen heute zu 90 % aus OSS-Komponenten. Das bedeutet, dass der Großteil der Software, die wir täglich erstellen, einsetzen und nutzen, mit größerer Wahrscheinlichkeit Sicherheitslücken enthält als je zuvor. Da diese Komponenten „offen” sind, haben Hacker eine schnelle und einfache Möglichkeit, Einblick in den Code zu erhalten und dort nach Sicherheitslücken zu suchen. Open Source-Software stellt nicht nur ein Risiko aufgrund von Sicherheitslücken dar, sondern kann auch komplexe Probleme bei der Einhaltung von Lizenzbestimmungen für Unternehmen mit sich bringen. Eine mögliche Komplikation könnte darin bestehen, dass eine Lizenz besagt: „Wenn Sie diese Komponente verwenden, müssen Sie Ihren Code als Open Source zur Verfügung stellen“.

Idealerweise sollten alle OSS-Komponenten so früh wie möglich im Entwicklungsprozess auf Lizenzkonformität und Sicherheitslücken überprüft und diese identifiziert werden. Zu wissen, welche Komponenten man über sein gesamtes Portfolio von Anwendungssoftware verteilt hat und diese nachverfolgen zu können, ist ein absolutes Muss, und sollte am besten automatisiert werden. Dies sollte ein integraler Bestandteil der CI/CD-Pipeline sein, um die Entwicklungs- und Release-Geschwindigkeit auf Kurs zu halten.

In der Vergangenheit war es für die Sicherung des SDLC und der Produktion erforderlich, Agenten zum Scannen von Komponenten einzusetzen. Heute gibt es verschiedene Lösungen, die ein höheres Maß an Sicherheit und Compliance-Überwachung bieten, die direkt in Ihre IDE, Ihren Repository-Manager und Ihre CI/CD-Pipeline integriert sind und sogar Ihre Container-Images scannen können. Um die Sicherheit und die Überwachung der Lizenzeinhaltung von Open Source zu gewährleisten, ist es am besten, mit einer nativ integrierten SCA-Lösung zu arbeiten.

Was bieten SCA-Tools?

Fortschrittliche SCA-Tools bieten Funktionen zur Durchsetzung von Richtlinien und ermöglichen die automatische Überwachung von Open Source-Komponenten. Diese können so konfiguriert werden, dass je nach Kontext des zu überprüfenden Vorgangs unterschiedliche Verhaltensweisen bei festgestellten Sicherheits- oder Compliance-Verstößen möglich sind. Ein Beispiel wäre, dass der Build einer hochsensiblen Anwendungssoftware aufgrund einer Sicherheitslücke fehlschlägt, während der Build einer Testanwendungssoftware mit derselben anfälligen Komponente nicht fehlschlägt. SCA-Tools vergleichen jede Open Source-Komponente Ihres Codes mit Ihren Vorschriften und Richtlinien, um entsprechend unterschiedliche automatisierte Prozesse, die auf dem Ergebnis des Abgleichs basieren, in Gang zu bringen.

Ein SCA-Tool benutzt eine Referenzdatenbank für bereits bekannte Sicherheitslücken und existierende Lizenzen und gleicht diese dann mit den Open Source-Abhängigkeiten Ihrer Anwendungssoftware ab. Je umfassender diese Datenbanken sind, desto geringer ist das Risiko, dass bekannte Sicherheitslücken oder Lizenzierungsprobleme im Produktionscode auftreten.

Was sollte man bei der Entscheidung für ein SCA-Tool in Erwägung ziehen?

Bei der Betrachtung von Tools für die Software Composition Analysis ist es wichtig, Folgendes zu beachten:
1. Technologische Unterstützung: Wie universell ist es und unterstützt es alle in Ihrem Unternehmen verwendeten Programmiersprachen und Pakettypen?
2. Ökosystem-Integration: Das SCA-Tool muss mit Repositories, IDEs, Paketmanagern, CI-Servern usw. integriert werden, und zwar über sofort einsatzbereite Integrationen und über umfangreiche offene APIs.
3. Datenbank: Eine umfassende Datenbank für Sicherheitslücken und Lizenzbestimmungen ist ein Muss, um Sie bestmöglich abzusichern.

Wie unterscheiden sich SCA-Tools von den übrigen Tools für die Sicherheit von Anwendungen?

Ein komplettes Sicherheitspaket sollte aus den folgenden Tools bestehen:
- Dynamic Application Security Testing (DAST)
- Interactive Application Security Testing (IAST)
- Software Composition Analysis (SCA)
- Static Application Security Testing (SAST)

JFrog Xray ist ein SCA-Tool, das sich auf die Erkennung und Beseitigung von Open Source-Sicherheitslücken und Lizenzkonformitätsproblemen in den OSS-Komponenten und Abhängigkeiten konzentriert, auf die Sie sich beim Schreiben Ihres Anwendungscodes stützen. Da die Basis eines Codes bis zu 90 % aus OSS besteht, kann Xray einen großen Einfluss auf die Stabilität und Sicherheit Ihrer Produktionsversionen haben.

Unternehmen, die sich einer solchen Herangehensweise bedienen, erhalten durchweg Verbesserungen ihres SDLCs, wie z. B.: verbesserte Qualität durch frühzeitige Erkennung von Problemen, Transparenz von eigenentwickeltem und Open Source-Code, geringere Kosten für die Behebung von Sicherheitslücken durch frühzeitige Erkennung und Behebung im Entwicklungsprozess, Minimierung des Risikos von Sicherheitsverstößen und optimierte Sicherheitstests.

Welche Risiken bestehen, wenn man sich auf freie CVE/NVD-Datenbanken stützt?

Sie können die beste Integration von SCA-Tools aller Zeiten haben, aber eine Lösung zur Sicherheitsüberprüfung ist nur so gut wie die Datenbank der Sicherheitslücken. Die Verwendung einer Datenbank, die nicht auf dem neuesten Stand der Sicherheitslücken ist, gleicht einem Versuch, jemanden in einer Menschenmenge zu finden, ohne zu wissen, wie er aussieht. Einige Unternehmen betrachten die Verwendung der Common Vulnerability Enumeration (CVE) von MITRE in der National Vulnerability Database (NVD) als den Goldstandard für die Absicherung. Viele Sicherheitsexperten sind der Meinung, dass es nicht mehr ausreicht, sich auf CVE und NVD zu stützen, um Daten über Sicherheitslücken zu erhalten.

So hat beispielsweise Risk Based Security, das für einen der aktuellsten und umfassendsten Sicherheitslücken-Informationsdienste – VulnDB – bekannt ist, jedes Jahr die Gesamtzahl der von CVE und NVD identifizierten und katalogisierten Sicherheitslücken übertroffen. Über 249.155 Sicherheitslücken, die Produkte von 27.676 Anbietern abdecken, einschließlich zehntausender Sicherheitslücken, die nicht in CVE/NVD enthalten sind, was VulnDB zur umfassendsten Lösung auf dem Markt macht. Über 2.000 Bibliotheken von Drittanbietern wurden identifiziert und auf Sicherheitslücken überwacht.

JFrog Xray profitiert von einer engen Integration mit VulnDB, der primären Quelle für Sicherheitslücken- und Lizenzkonformitätsinformationen.

Welche Vorteile hat die Nutzung einer externen Sicherheitsdatenbank wie beispielsweise VulnDB?

Zunächst einmal sind viele Sicherheitsexperten in der Branche der Meinung, dass es nicht mehr ausreicht, sich auf CVE- und NVD-Datenbanken für Sicherheitslückendaten zu verlassen. Es kann lange dauern, bis eine Sicherheitslücke in den CVE/NVD-Datenbanken veröffentlicht wird, und in der Zwischenzeit können hinterlistige Akteure diese Sicherheitslücken analysieren und herausfinden, wie sie sie für bösartige Aktivitäten nutzen können.

Je eher Ihre SCA-Lösung eine Sicherheitslücke in der Datenbank aufweist, desto eher können Sie Ihren Produktionscode gegen diese Sicherheitslücke absichern. Dasselbe gilt für die Überprüfung von Lizenztypen und -versionen. Ihre Compliance- oder Rechtsabteilungen werden über eine Reihe von Richtlinien in Hinblick auf die Verwendung von OSS-Lizenzen verfügen. Mit einer aktuellen Lizenzdatenbank, die Sie überprüfen können, minimieren Sie das Risiko, dass unbeabsichtigte Lizenztypen in Ihrem Produktionscode vorkommen, was teuer und kompliziert sein kann.

Warum ist es nötig, Lizenzen und deren Einhaltung zu überprüfen?

Die Sicherstellung der Lizenzkonformität bei OSS-Abhängigkeiten ist ein wachsendes Anliegen für Compliance-Manager, Rechtsteams und CEOs gleichermaßen. Niemand möchte dafür verantwortlich sein, dass eine Überprüfung fehlgeschlagen ist oder es sogar zu kostspieligen Verfahren aufgrund einer Verletzung des Urheberrechts oder eines Gesetzesverstoßes bezüglich der Lizenzen kommt. Es ist von enormer Bedeutung zu wissen, welche OSS von welchen Entwicklern und in welchen Builds und Releases verwendet wird.

Die Kosten von Sicherheitsverletzungen sind uns allen schmerzlich bewusst. Denken Sie nur an die jüngste Sicherheitslücke bei SolarWinds oder an das berühmt-berüchtigte Equifax-Fiasko, das das Unternehmen Milliarden kostete. Es besteht ein großes Risiko, dass Softwarelizenzen nicht eingehalten werden, was zu einem komplexen und teuren Streit um geistiges Eigentum führen kann. Es ist möglich, dass die Bedingungen bestimmter Lizenzen bedeuten, dass Sie Ihren gesamten Anwendungscode quelloffen machen müssen, wenn Sie deren Code verwenden! Und es gibt gewiss nicht viele CEOs, die darauf erpicht sind, ihre Kronjuwelen zu verschenken. Bei einigen Unternehmen ist dies aufgrund der Art der Software, die mit höherer Wahrscheinlichkeit geprüft wird, mehr der Fall als bei anderen, und je nach Branche kann eine fehlgeschlagene Überprüfung mit einer hohen Geldstrafen geahndet werden.

Überprüfen Sie Ihre Images

Probieren Sie JFrog DevSecOps Tools jetzt aus!
Führen Sie einen KOSTENLOSEN Sicherheitsscan für Ihrer Images durch!

JETZT SCANNEN!