Skip to main content
Key Takeaways

Sicherheit wird in DevOps verwoben: DevSecOps integriert Sicherheit in den gesamten IT-Lebenszyklus, legt den Schwerpunkt auf automatisierte Prozesse und eine Sicherheitskultur und stellt sicher, dass Sicherheit von Anfang bis zur Bereitstellung ein gemeinsames Ziel ist.

Die Uber-Lektion: Ein bedeutender Sicherheitsvorfall ereignete sich, als Ubers Quellcode mit sensiblen AWS-Zugangsdaten auf GitHub veröffentlicht wurde. Das unterstreicht die Bedeutung der Integration von Sicherheit im Entwicklungsprozess.

Automatisieren für mehr Geschwindigkeit: Zu den DevSecOps-Praktiken gehört die Automatisierung von Sicherheitsaufgaben innerhalb des DevOps-Workflows, damit die Entwicklung schnell bleibt und Anwendungen von Anfang an sicher sind – durch Tools, die sich nahtlos in die Entwicklerumgebung einfügen.

Früh priorisieren, leichter beheben: Ein DevSecOps-Ansatz bedeutet, Sicherheit schon in den frühesten Phasen der Entwicklung zu priorisieren. Dadurch werden Schwachstellen reduziert und durch automatisierte Tests sowie Risikobewertungen eine schnellere Bereitstellung von sicherer Software ermöglicht.

Ständige Wachsamkeit: Kontinuierliche Integrations- und Bereitstellungspipelines (CI/CD) im DevSecOps erleichtern fortlaufende Sicherheitsprüfungen und Schwachstellenmanagement, wobei automatisierte Tools Risiken frühzeitig erkennen und abmildern.

Die Geschwindigkeit von DevOps kann ein zweischneidiges Schwert sein. Während sie die Entwicklung und Bereitstellung beschleunigt, können Sicherheitslücken leicht übersehen werden.

Erstaunliche 70 % der Sicherheitsverletzungen lassen sich laut Verizons Data Breach Investigations Report 2023 auf Schwachstellen in Anwendungen zurückführen. Diese alarmierende Statistik verdeutlicht die dringende Notwendigkeit von DevSecOps – eines sicherheitsbewussten Ansatzes im IT-Lebenszyklus, der sich mit Unternehmenskultur, automatisierten Prozessen und der Plattformarchitektur befasst.

DevOps allein reicht nicht aus, da Sicherheitsprobleme auftreten können. Ein berühmter Fall ist eine Uber-Datenpanne im Jahr 2016, als Hacker Zugriff auf die Daten von Millionen Nutzern bekamen, nachdem das Entwicklungsteam Code in ein GitHub-Repository hochgeladen hatte. Der Code enthielt zudem Zugangsdaten, mit denen sich in die Uber Amazon Web Service (AWS) Server mit sensiblen Daten einloggen ließ.

In diesem Artikel erfahren Sie, wie DevSecOps die Lücke zwischen Entwicklung, Betrieb und Sicherheit schließt. Wir beleuchten Best Practices für DevSecOps, häufige Herausforderungen, erfolgreiche Implementierung und die wichtigsten Werkzeuge, um Sie ans Ziel zu bringen. Am Ende sind Sie in der Lage, Ihren Entwicklungsprozess zu stärken und sichere, leistungsfähige Anwendungen zu erstellen.

Die Schnittstelle von DevOps und Sicherheit – DevSecOps

Entwicklung und Betrieb sind nur ein Aspekt von DevOps. IT-Sicherheit muss über den gesamten Lebenszyklus Ihrer Anwendungen integriert werden, wenn Sie die Agilität und Reaktionsfähigkeit einer DevOps-Strategie voll ausnutzen möchten.

Warum? Früher wurde die Sicherheit einem eigenen Team erst in den letzten Phasen der Entwicklung zugeordnet. Als sich Entwicklungszyklen noch über Monate oder sogar Jahre erstreckten, war das weniger problematisch – aber diese Zeiten sind vorbei. Auch wenn DevOps viele Vorteile hat, können selbst die erfolgreichsten DevOps-Bemühungen durch veraltete Sicherheitsrichtlinien gefährdet werden, obwohl effektives DevOps für schnelle und häufige Entwicklungszyklen sorgt (oft im Wochen- oder Tagesrhythmus).

Mit DevSecOps wird die Anwendungssicherheit von Anfang an berücksichtigt. Außerdem wird die Automatisierung von Sicherheits-Gates integriert, um sicherzustellen, dass DevOps-Workflows die Prozesse nicht ausbremsen. Angemessene DevOps-Sicherheit erfordert nicht nur die richtigen Tools – sie baut auf den kulturellen Veränderungen von DevOps auf, indem sie die Bemühungen der Sicherheitsteams so früh wie möglich einbindet.

Mit "Shift Left" und "Shift Right" wird beschrieben, dass Sicherheit von der ersten Entwurfs- und Entwicklungsphase bis zum Ende der Laufzeit Priorität hat. Die Umsetzung und Automatisierung von „Shift Left“ im DevSecOps-Ansatz bietet entwicklerfreundliche Vorgaben, um menschliche Fehler während der Build- und Deploy-Phasen zu reduzieren und Arbeitslasten während der Laufzeit zu schützen.

"Shift Right" bedeutet, dass Tests, Qualitätssicherung und Leistungsüberprüfung im Nachproduktionsumfeld durchgeführt werden.

Bedrohungsmodellierungstechniken im DevSecOps

Bedrohungsmodellierung ist ein proaktiver Sicherheitsansatz, der Teams hilft, potenzielle Schwachstellen zu erkennen und zu beheben, bevor sie ausgenutzt werden können. Durch die systematische Analyse von Bedrohungen können Organisationen Sicherheitsmaßnahmen gemäß Risikolevel priorisieren und ihre Verteidigung stärken.

DevSecOps-Teams müssen die Bedrohungsmodellierung in ihre Entwicklungs-Workflows integrieren, damit Anwendungen von Anfang an sicher sind.

Wichtige Techniken zur Bedrohungsmodellierung

  1. STRIDE Framework – Ursprünglich von Microsoft entwickelt, klassifiziert STRIDE Sicherheitsbedrohungen in sechs Kategorien: Spoofing, Manipulation, Bestreitbarkeit, Informationsoffenlegung, Denial of Service (DoS) und Privilegienerhöhung. Dieses Modell hilft Teams, Risiken im gesamten Anwendungslebenszyklus systematisch zu erkennen und zu beheben.
  2. DREAD Risiko-Bewertung – DREAD (Damage, Reproducibility, Exploitability, Affected Users, Discoverability) ist ein Bewertungssystem, das die Auswirkungen von Sicherheitsbedrohungen quantifiziert, sodass Teams Risiken nach Schwere priorisieren können. Diese Methode eignet sich besonders für Sicherheitsteams, die mit CI/CD-Pipelines arbeiten und Schwachstellen schnell einschätzen müssen.
  3. Attack Trees – Dieser Ansatz visualisiert potenzielle Angriffswege, indem verschiedene Möglichkeiten abgebildet werden, wie ein Angreifer ein System ausnutzen könnte. Angriffsbäume helfen DevSecOps-Teams, die Entwicklung von Bedrohungen zu verstehen und fokussiert gegen sie vorzugehen.
  4. PASTA (Process for Attack Simulation and Threat Analysis) – PASTA ist ein risikozentriertes Framework, das Sicherheitsbedrohungen mit Geschäftszielen verknüpft. Es folgt einem siebenstufigen Prozess – vom Definieren der Ziele bis zum Identifizieren und Beheben von Bedrohungen – und eignet sich besonders für Organisationen mit komplexen Architekturen.
  5. VAST (Visual, Agile, and Simple Threat modeling) – VAST ist für große DevSecOps-Teams konzipiert. Es nutzt Automatisierungs- und Visualisierungstools, um die Bedrohungsmodellierung zu vereinfachen. Die Integration in CI/CD-Pipelines sorgt dafür, dass Sicherheit ein kontinuierlicher Prozess bleibt und keine einmalige Bewertung ist.

Integration von Bedrohungsmodellierung in DevSecOps

Damit Bedrohungsmodellierung effektiv ist, darf sie keine einmalige Aktion sein, sondern muss kontinuierlich stattfinden. Teams sollten sie an verschiedenen Stellen des Softwareentwicklungszyklus (SDLC) einbinden:

  • Während des Designs – Potenzielle Sicherheitsrisiken identifizieren, bevor Code geschrieben wird.
  • Während der Entwicklung – Statische und dynamische Analysetools verwenden, um Schwachstellen zu erkennen.
  • Während der Bereitstellung – Angriffsszenarien simulieren, um Sicherheitskontrollen zu testen.
  • Nach der Bereitstellung – Laufende Überwachung auf neue Bedrohungen und entsprechende Aktualisierung von Sicherheitsstrategien.

Durch die Integration von Threat Modeling-Techniken in DevSecOps-Workflows können Teams Sicherheitsrisiken proaktiv mindern, Schwachstellen reduzieren und die allgemeine Resilienz ihrer Anwendungen steigern.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
By submitting you agree to receive occasional emails and acknowledge our Privacy Policy. You can unsubscribe at anytime.

Warum ist Sicherheit im DevOps notwendig?

Sicherheit wird beim Schreiben von Code durch Entwickler normalerweise nicht berücksichtigt. Entwickler können Codierfehler vermeiden und Schwachstellen verringern, indem sie bessere Automatisierung in der gesamten Software- und Anwendungs-Lieferpipeline einsetzen, wenn sie eine DevSecOps-Philosophie anwenden.

Teams können sichere Software schneller bereitstellen, wenn sie DevSecOps-Tools und Verfahren nutzen, um Sicherheit in ihre DevOps-Architektur einzubinden. Während der Code erstellt wird, können Entwickler Sicherheitstests durchführen und Schwachstellen aufdecken.

Automatisierte Scans können durch Code-Check-ins, Builds, Releases und andere CI/CD-Pipeline-Komponenten ausgelöst werden. Entwicklungsteams können die Sicherheit bei der Webanwendungsentwicklung verbessern, indem sie Lösungen einbinden, die sie bereits nutzen.

Kultureller Wandel in DevSecOps

Die Einführung von DevSecOps bedeutet nicht nur die Integration von Sicherheitstools – es erfordert einen grundlegenden Kulturwandel. Traditionelle Sicherheitsmodelle konzentrieren sich auf die Vermeidung von Angriffen, aber moderne DevSecOps-Praktiken gehen davon aus, dass Angriffe passieren werden. Diese proaktive Denkweise ist entscheidend, um Sicherheitsbedrohungen effektiv vorherzusehen und zu mindern.

Vom Verhindern zum Antizipieren

Eine DevSecOps-Kultur setzt auf kontinuierliche Sicherheitsüberwachung, schnelle Reaktionen bei Vorfällen und bereichsübergreifende Zusammenarbeit zwischen Entwicklung, Betrieb, Sicherheitsteams und aktuellen DevOps-Trends. Anstatt Sicherheit erst nachträglich zu betrachten, bauen Teams Sicherheitsaspekte in jede Phase des Entwicklungsprozesses ein.

Dieser kulturelle Wandel erfordert:

  • Sicherheit als gemeinsame Verantwortung – Sicherheit darf nicht isoliert werden. Entwickler, IT-Betrieb und Sicherheitsteams müssen gemeinsam daran arbeiten, Anwendungen von Grund auf abzusichern.
  • Fehlerfreundliche Sicherheitskultur – Werden Schwachstellen gefunden, sollte der Fokus auf Lernen und Verbesserung liegen, nicht auf Schuldzuweisung. Ein transparenter, fehlerfreundlicher Ansatz motiviert Teams dazu, Risiken früh zu melden und zu beheben.
  • Sicherheitsschulungen für Entwickler – Entwickler benötigen praxisnahe Sicherheitsschulungen, um Schwachstellen zu verstehen und von Anfang an sicheren Code zu schreiben.
  • Ausgangspunkt: Angriffsannahme – Anstatt davon auszugehen, dass Sicherheitskontrollen alle Angriffe abwehren, sollten Teams mit einer „Assume Breach“-Mentalität arbeiten und Systeme für schnelle Bedrohungserkennung und -reaktion entwerfen.

Organisationen, denen dieser kulturelle Wandel gelingt, verfügen über widerstandsfähigere Sicherheitsstrukturen, schnellere Reaktionen bei Vorfällen und ein gestärktes Vertrauen in ihre Softwareentwicklungsprozesse.

Best Practices zur Verbesserung der DevOps-Sicherheit

  • Risikoanalyse durchführen: Die Risikoanalyse muss frühzeitig durchgeführt werden, um eine sichere-by-Design-Qualität für das Projekt zu gewährleisten. Die Bewertung bietet einen umfassenden Überblick über die Projektrisiken, einschließlich Geschäfts- und technischen Risiken.
  • Schwachstellenanalyse und -management: Viele Unternehmen führen Schwachstellenanalysen nur in Einzelfällen durch, anstatt sie in den gesamten DevOps-Lebenszyklus zu integrieren. DevSecOps-Teams müssen Systeme implementieren, die in der Lage sind, Schwachstellen während des gesamten Softwareentwicklungszyklus (SDLC) zu scannen, zu identifizieren und zu beheben. Penetrationstests und andere Angriffssimulationen unterstützen Teammitglieder dabei, Sicherheitsrisiken in ihren jeweiligen Arbeitsbereichen zu erkennen und zu adressieren. Automatisierte Sicherheitstools sind für kontinuierliches Testen und Monitoring unerlässlich und erleichtern es, DevOps-Sicherheit sicherzustellen.  
  • Versionskontrolle nutzen: Versionskontrollsysteme sind unerlässlich, um Codeänderungen nachzuverfolgen, Zusammenarbeit zu ermöglichen und Wiederherstellungsfunktionen zu bieten. Plattformen wie GitHub oder Bitbucket stellen leistungsstarke Versionskontrollsysteme für ein effizientes Änderungsmanagement bereit. Durch regelmäßiges Prüfen des Commit-Verlaufs lassen sich Fälle von versehentlicher Datenexposition erkennen und beheben. Die Verwendung von .gitignore zur Ausklammerung sensibler Dateien verhindert das unbeabsichtigte Hochladen vertraulicher Informationen.
  • Zugriffskontrolle: Dieses System stellt sicher, dass nur autorisierte Personen Zugriff auf kritische Ressourcen erhalten. Strenge Maßnahmen wie rollenbasierte Zugriffskontrolle (RBAC) minimieren potenzielle Sicherheitsverletzungen, da sie unnötigen Zugriff einschränken. Die regelmäßige Überprüfung und Aktualisierung von Zugriffsrechten ist unerlässlich, um Sicherheitsrisiken zu reduzieren, da Organisationen wachsen und sich weiterentwickeln.
  • Secret-Management: In DevOps verlassen sich Teams auf verschiedene Tools zur Automatisierung von Softwareaufgaben, und das Secret-Management ist dabei ein wesentlicher Bestandteil. Die Sicherung von Zugangsdaten, API-Tokens und Schlüsseln ist entscheidend, um die IT-Infrastruktur zu schützen. Ohne ein angemessenes Secret-Management könnten diese sensiblen Informationen in falsche Hände geraten und ernsthafte Probleme verursachen.
  • Testautomatisierung einbeziehen: Automatisierte Tests sind entscheidend, um Schwachstellen frühzeitig in der Softwareentwicklung zu erkennen und die Qualität und Zuverlässigkeit zu verbessern. Sie beschleunigen Rückmeldeschleifen, sorgen für eine konsequente Codeüberprüfung und sind unverzichtbar für Continuous Integration und Deployment (CI/CD)-Praktiken. Die Kombination aus automatisierten Build- und Deployment-Prozessen erlaubt schnellere Release-Zyklen und Markteinführungszeiten.

Häufige Herausforderungen bei der Implementierung von DevOps-Sicherheit

Die wichtigsten Herausforderungen bei der DevOps-Sicherheit sind:

Kultureller Widerstand

DevOps-Teams stehen Sicherheit und Tests oft skeptisch gegenüber und betrachten sie als Bremse.

• Automatisierung kann diese Risiken verringern und den Zeitaufwand für Sicherheitsprozesse minimieren.

Cloud-Sicherheit

Die Nutzung von Cloud-Technologien bringt Vorteile, birgt aber auch Sicherheitsherausforderungen aufgrund der größeren Angriffsfläche und des Fehlens eines klar definierten Netzwerkrandes.

• Fehlkonfigurationen oder manuelle Fehler in der Cloud können dazu führen, dass kritische Ressourcen für öffentliche Netzwerke freigelegt werden.

Containerisierung

• Die Containerisierung von Arbeitslasten steigert die Produktivität, erhöht aber auch die Komplexität der zugrundeliegenden Engine, Orchestrierung und Netzwerke.

• Es gibt mehr potenzielle Angriffsvektoren, die überwacht und abgesichert werden müssen.

Zusammenarbeitsprobleme

• DevOps- und Sicherheitsteams arbeiten oft abgeschottet voneinander, was es erschwert, mit der DevOps-First-Kultur zu skalieren.

• Herkömmliche Sicherheitswerkzeuge und -technologien sind für diese Anwendungsfälle nicht ausgelegt.

Geheimnisverwaltung

• Die DevOps-Umgebung fördert eine äußerst kooperative Kultur, was eine komplexe Sicherheitsstrategie für privilegierten Zugang und das Management von Geheimnissen erforderlich macht.

Erfolgreiche Implementierung von DevOps-Sicherheit

Sichere DevOps können erfolgreich implementiert werden, indem einige Schritte beachtet werden:

  • Sicherheitspolicys als Code implementieren: In DevOps ersetzt "Infrastructure as Code" die manuelle Verwaltung von Servern und Software. Durch die Erweiterung dieses Konzepts auf Sicherheitsaspekte können Unternehmen das Management ihrer Sicherheitsrichtlinien optimieren, manuelle Fehler reduzieren und aufwändige Konfigurationsprozesse minimieren.
  • Verantwortlichkeiten trennen: Im DevOps-Team ist es entscheidend, eine Trennung der Aufgaben sicherzustellen. Dazu gehört die Definition klarer Rollen und Verantwortlichkeiten für jede Gruppe:

Die Interaktionen zwischen diesen Gruppen können in einer schriftlichen Sicherheitsrichtlinie formalisiert werden. So können Entwickler beispielsweise eine Sicherheitsrichtlinie erstellen, die die Privilegien definiert, welche ihre Anwendung oder ihr Service benötigt. Das Sicherheitsteam prüft und genehmigt anschließend diese Richtlinie, während die Operatoren sicherstellen, dass die Implementierung und Bereitstellung der Anwendung reibungslos abläuft.

  • Sicherheitsprozesse in CI/CD integrieren: Viele Unternehmen behandeln Cybersicherheit nur als nachgelagerte Aufgabe, was zu kurzfristigen Änderungen und verzögerten Releases führen kann. Um dies zu vermeiden, können Entwicklungsabläufe durch Methoden wie Kanban effizienter gestaltet werden. Sicherheitsteams sollten Microservices einführen, um Sicherheitsprüfungen und Anpassungen zu vereinfachen. Dieser proaktive Ansatz in der Sicherheitsintegration sorgt für reibungslosere und sicherere Entwicklungsprozesse. 
  • Starke Sicherheitspraktiken während des gesamten Anwendungs-Lebenszyklus anwenden: Dazu zählen das Berücksichtigen von Sicherheitsanforderungen, die Minimierung von Privilegienkonzentration bei Build-Automation-Tools, Sicherung von Geheimnissen, das Prinzip der minimalen Rechtevergabe, Definition von Standardnutzungsmustern, die Protokollierung von Zugangsdaten, die Vergabe von eindeutigen Identitäten an Maschinen, Durchführung von Schwachstellen-Scans und Penetrationstests, Schulung der Entwickler bezüglich Sicherheitsbedrohungen sowie die Förderung der Zusammenarbeit zwischen Sicherheits- und Entwicklungsteams.
  • Sicherheitsprozesse automatisieren: DevOps-Automatisierung kann die Sicherheit verbessern, indem das Lifecycle-Management der Anwendungen automatisiert und menschliche Eingriffe minimiert werden. Durch das Rotieren von Geheimnissen (wie Zugangsdaten) können Unternehmen verhindern, dass Angreifer für längere Zeit Zugriff auf Tools oder Systeme erhalten. Automatisierte Sicherheitsverfahren können auch reaktiv genutzt werden, etwa zum Beenden privilegierter Sitzungen oder zum Rotieren von Zugangsdaten nach einer Sicherheitsverletzung.

War-Game-Übungen in DevSecOps

War-Game-Übungen sind strukturierte Simulationen, die darauf ausgelegt sind, die Sicherheitslage einer Organisation im Rahmen von DevSecOps zu testen und zu verbessern. In diesen Übungen simulieren Teams reale Angriffs- und Verteidigungsszenarien, um Schwachstellen zu identifizieren, Reaktionszeiten zu verbessern und die Bereitschaft für Sicherheit zu stärken.

Durch die Integration von War-Game-Übungen in DevSecOps können Organisationen ihre Sicherheitsmechanismen proaktiv stärken, bevor ein Angriff stattfindet.

Red- und Blue-Teams: Cyberbedrohungen simulieren

War-Game-Übungen beinhalten in der Regel zwei Hauptgruppen:

  • Red Team (Angreifer): Dieses Team imitiert reale Cyberangreifer und nutzt Penetrationstest-Techniken, um Schwachstellen in Systemen, Anwendungen und Infrastruktur zu finden und auszunutzen. Ihr Ziel ist es, bestehende Sicherheitskontrollen herauszufordern und Schwächen offenzulegen.
  • Blue Team (Verteidiger): Diese Gruppe repräsentiert die DevOps- und Sicherheitsteams, die für Überwachung, Erkennung und Eindämmung von Angriffen in Echtzeit zuständig sind. Sie analysieren die Taktiken des Red Teams und passen Sicherheitsmechanismen an, um die Reaktionsfähigkeit im Ernstfall zu verbessern.

Durch die Teilnahme an solchen Übungen gewinnen Unternehmen wertvolle Einblicke in potenzielle Sicherheitslücken und entwickeln stärkere Verteidigungsstrategien.

Regeln für effektive War-Games

War-Game-Übungen müssen einem strukturierten Ablauf folgen, um ethisches Testen zu gewährleisten und maximale Sicherheitsverbesserungen zu erzielen:

  1. Ziele definieren: Die Ziele der Übung klar umreißen, etwa die Reaktionsfähigkeit im Vorfall, die Bewertung von Zugriffskontrollen oder die Identifikation von Fehlkonfigurationen.
  2. Grenzen festlegen: Sicherstellen, dass die Tests keine kritischen Geschäftsprozesse beeinträchtigen oder sensible Daten kompromittieren.
  3. Realistische Angriffsszenarien nutzen: Angriffstechniken simulieren, die bekannten Gefahren entsprechen – beispielsweise Phishing, Insider-Bedrohungen oder Cloud-Fehlkonfigurationen.
  4. Analyse und Dokumentation der Ergebnisse: Im Anschluss an die Übung erfolgt ein detailliertes Debriefing zur Leistungsbewertung, Dokumentation der Schwachstellen und Erstellung von Maßnahmenplänen zur Behebung.
  5. Kontinuierliche Verbesserung: Die Ergebnisse nutzen, um Sicherheitsrichtlinien zu optimieren, Automatisierungen weiterzuentwickeln und DevSecOps-Praktiken zu verbessern.

Durch das regelmäßige Durchführen von War Game Exercises können Organisationen ihre Sicherheitslage stärken, Teams darin schulen, effektiv auf Bedrohungen zu reagieren, und sicherstellen, dass Sicherheit als proaktives, kontinuierliches Anliegen innerhalb des DevSecOps-Lebenszyklus erhalten bleibt.

Hilfreiche Tools

Die in DevSecOps verwendeten Tools verfolgen drei Hauptziele:

• Risiko minimieren und Geschwindigkeit durch kontinuierliche Sicherheitstests maximieren.

• Unterstützung für Sicherheitsteams automatisieren, sodass Projektsicherheit ohne manuelle Überprüfungen möglich wird.

• Automatisierte Sicherheitstests früh im SDLC ermöglichen, um eskalierende Probleme zu vermeiden.

Branchenkenner

Branchenkenner

Laut IT-Manager Gaurav Mittal, helfen Code-Qualitätsbewertungstools Entwicklern dabei, die Qualität des Codes zu verbessern und Probleme frühzeitig zu erkennen.

 

Tools zur Code-Qualitätsprüfung

Code-Qualitätsbewertungstools in einer Pipeline prüfen Ihren Code auf Schwachstellen, Fehler, Sicherheitsprobleme und Verstöße gegen Codierungsregeln. Werden diese Tools Teil einer CI/CD-Pipeline, überprüfen sie den Code automatisch darauf, ob er den Standards entspricht, bevor er implementiert wird.

 

CodeQL

CodeQL ist die von GitHub entwickelte Code-Analyse-Engine für die automatische Durchführung von Sicherheitsprüfungen. Zu den häufig von CodeQL gemeldeten Problemen gehören:

 

  • Sicherheitslücken: Erkennt Probleme wie SQL Injection, Cross-Site Scripting (XSS) und unsichere Datenspeicherung.
  • Code-Qualitätsprobleme: Identifiziert nicht erreichbaren Code, doppelte Codestellen und ungenutzte Variablen.
  • Performance-Probleme: Markiert ineffiziente Abfragen und Speicherlecks.

Zu den bekanntesten Tools, die im Bereich DevSecOps eingesetzt werden, gehören:

  • OWASP Dependency-Check: Ein Open-Source-Tool, das Projektabhängigkeiten analysiert und Schwachstellen identifiziert.
  • SonarQube: Ein Open-Source-Tool für statisches Anwendungssicherheitstesting (SAST), das Sicherheitslücken durch statische Codeanalyse erkennt. 
  • Wapiti: Ein Open-Source-Online-Scanner, der mittels Black-Box-Tests die Sicherheit von Webanwendungen prüft.
  • OpenSCAP: Eine SCAP (Security Content Automation Protocol) Plattform zur Verwaltung von Schwachstellen, Compliance-Messung und Durchführung von Compliance-Prüfungen.
  • Grafana: Ein Analyse- und Überwachungstool, mit dem Betriebsteams individuelle Dashboards für verschiedene Metriken und Datenquellen erstellen können.

Fazit

Ohne Sicherheit birgt der DevOps-Prozess zu viele Risiken. Die Kombination aus Entwicklung, IT-Betrieb und Sicherheit ist daher die sicherste Methodik. Es gilt als bewährte Vorgehensweise, ein Projekt von Beginn an sicherheitsorientiert aufzubauen und Sicherheit in die automatisierten Prozesse sowie in die DevOps-Pipelines zu integrieren. 

Abonnieren Sie den Newsletter des CTO Club, um weitere Einblicke zu DevSecOps zu erhalten!