10 DevSecOps-Tools, die Sie als Entwickler oder Systemadministrator kennen sollten

Sicherheit in der Softwareentwicklung: DevSecOps und seine Werkzeuge

DevSecOps ist ein Ansatz, der darauf abzielt, Sicherheit in jeden Schritt des DevOps-Lebenszyklus zu integrieren, indem spezifische DevSecOps-Tools eingesetzt werden.

In der Softwareentwicklung verbindet DevOps gezielte Entwicklungsaktivitäten mit dem IT-Betrieb. Das Hauptziel dieser Kombination ist die Steigerung der Softwarequalität und die Ermöglichung einer kontinuierlichen Auslieferung (Continuous Delivery).

Durch die Hinzufügung von Sicherheitsmanagement zu DevOps entsteht DevSecOps – ein Konzept, das Sicherheit als gemeinschaftliche Aufgabe zwischen der IT- und der Softwareentwicklungsabteilung versteht.

Früher war Sicherheit ausschließlich die Verantwortung eines spezialisierten Teams, das erst in der Endphase eines Projekts involviert wurde. Das funktionierte gut in Entwicklungszyklen, die sich über Monate oder sogar Jahre erstreckten. In agilen Entwicklungszyklen, die in Wochen gemessen werden, müssen Sicherheitsmaßnahmen jedoch von Projektbeginn an berücksichtigt werden und die Verantwortung für die Sicherheit muss von allen Entwicklungs- und IT-Teams getragen werden.

Damit DevSecOps ohne Beeinträchtigung der agilen Methoden funktionieren kann, ist eine Automatisierung der Integration erforderlich. Nur so wird der DevOps-Workflow durch die Einbeziehung des Sicherheitsmanagements nicht verlangsamt. Diese Automatisierung erfordert geeignete Mechanismen, die Entwicklungswerkzeuge, wie z.B. integrierte Entwicklungsumgebungen (IDEs), mit Sicherheitsfunktionen ausstatten.

Verschiedene Typen von DevSecOps-Tools

Die Kombination von Sicherheit und DevOps kann unterschiedlich aussehen. Daher gibt es verschiedene Arten von DevSecOps-Tools, die sich folgendermaßen kategorisieren lassen:

  • Schwachstellenscans in Open-Source-Komponenten: Sie suchen nach potenziellen Schwachstellen in Open-Source-Codekomponenten und Bibliotheken, die in der analysierten Codebasis und deren Abhängigkeiten enthalten sind.
  • Statische und dynamische Anwendungssicherheitstests (SAST/DAST): Statische Tests analysieren den Quellcode von Entwicklern auf unsicheren Code, um potenzielle Sicherheitsprobleme zu identifizieren. Dynamische Tests führen Sicherheitstests an laufenden Anwendungen durch, ohne Zugriff auf den Quellcode zu benötigen.
  • Image Scanning: Diese Tools suchen nach Schwachstellen in Docker-Containern.
  • Infrastrukturautomatisierung: Sie erkennt und behebt verschiedene Konfigurationsprobleme und Schwachstellen in der Infrastrukturkonfiguration, insbesondere in Cloud-Umgebungen.
  • Visualisierung: Sie bieten Einblick in wichtige Leistungsindikatoren (KPIs) und Trends, um eine Zunahme oder Abnahme der Anzahl von Schwachstellen im Zeitverlauf zu erkennen.
  • Bedrohungsmodellierung: Sie ermöglicht eine vorausschauende Entscheidungsfindung durch die Prognose von Bedrohungsrisiken über die gesamte Angriffsfläche hinweg.
  • Warnungen: Sie benachrichtigen das Sicherheitsteam nur dann, wenn ein auffälliges Ereignis als Bedrohung identifiziert und priorisiert wurde. Dies reduziert die Anzahl der irrelevanten Benachrichtigungen und vermeidet Unterbrechungen in den DevSecOps-Workflows.

Nachfolgend ist eine Auswahl an DevSecOps-Tools aufgeführt, die Sie zur Integration von Sicherheit in Ihre DevOps-Workflows verwenden können:

Invicti

Invicti ist ein Tool, das sich in Ihren SDLC integrieren lässt, um das Sicherheitsmanagement Ihrer Softwareprodukte zu verbessern und gleichzeitig die Agilität des Entwicklungsprozesses beizubehalten.

Die von Invicti durchgeführte Analyse ist umfassend und gewährleistet eine genaue Erkennung von Problemen, ohne die Geschwindigkeit bei der Verwaltung des SDLC zu beeinträchtigen.

Die Automatisierungsoptionen von Invicti machen manuelle Eingriffe bei der Durchführung von Sicherheitsaufgaben überflüssig und können Ihrem Team somit Hunderte von Stunden an Arbeit pro Monat einsparen.

Diese Einsparungen werden noch verstärkt, da nur die wirklich wichtigen Schwachstellen identifiziert und automatisch den am besten geeigneten Ressourcen zur Behebung zugewiesen werden.

Darüber hinaus bietet Invicti einen umfassenden Überblick über die Schwachstellen in Ihren Anwendungen, die sich in der Entwicklung befinden, und über die Anstrengungen zur Risikominimierung.

SonarQube

SonarQube führt eine automatische Codeüberprüfung auf Schwachstellen durch und sucht nach Fehlern, die zu potenziellen Bedrohungen werden könnten. Zum Zeitpunkt der Erstellung dieses Artikels unterstützt es fast 30 verschiedene Programmiersprachen.

Die speziellen QualityGates von SonarQube bieten eine einfache Möglichkeit, Probleme zu verhindern, bevor ein Produkt auf den Markt gelangt. Sie bieten dem Entwicklungsteam zudem eine gemeinsame Sicht auf die Qualität, sodass alle die geltenden Standards und die Einhaltung dieser Standards bei ihrer Entwicklung kennen.

SonarQube lässt sich nahtlos in Ihre DevSecOps-Pipeline integrieren und gewährleistet, dass alle Teammitglieder Zugriff auf die vom Tool generierten Berichte und Rückmeldungen haben.

Durch eine einfache Installation zeigt SonarQube klar an, ob Ihre Commits sauber sind und ob Ihre Projekte für die Veröffentlichung bereit sind. Bei Problemen informiert Sie das Tool sofort über den genauen Ort des Problems und zeigt mögliche Lösungsansätze auf.

Aqua

Mit Aqua können Sie Bedrohungen in jeder Phase des Lebenszyklus Ihrer Softwareprodukte erkennen und stoppen, vom Schreiben des Quellcodes bis zur Bereitstellung der Anwendung in der Cloud.

Als Cloud-native Anwendungsschutzplattform (CNAPP) bietet das Tool Sicherheitsprüfungen der Softwarelieferkette, Risiko- und Schwachstellenscans sowie einen erweiterten Schutz vor Malware.

Die Integrationsmöglichkeiten von Aqua ermöglichen es Ihnen, Ihre Anwendungen unabhängig von den Plattformen und Mechanismen zu schützen, die Sie für die Entwicklung und Bereitstellung verwenden, egal ob Cloud, Container, Serverless, CI/CD-Pipelines oder Orchestratoren. Es lässt sich auch in SIEM-Plattformen und Analysetools integrieren.

Ein besonderes Merkmal von Aqua ist die Möglichkeit zur Sicherheitskontrolle in Kubernetes-Containern mit KSPM (Kubernetes Security Posture Management) und einem erweiterten Schutz in der Kubernetes-Laufzeit. Die Verwendung nativer K8s-Funktionen ermöglicht einen richtliniengesteuerten Schutz für den gesamten Lebenszyklus von Anwendungen, die in Containern bereitgestellt werden.

ProwlerPro

ProwlerPro ist ein Open-Source-Tool, das speziell entwickelt wurde, um die Sicherheit in Entwicklungsumgebungen von Amazon Web Services (AWS) zu gewährleisten.

ProwlerPro ist so konzipiert, dass Sie innerhalb weniger Minuten ein Konto erstellen und Scans Ihrer Entwicklungspipelines durchführen können. So erhalten Sie einen umfassenden Überblick über Ihre Infrastruktur, unabhängig davon, in welcher Region Sie sich befinden. Mit den Visualisierungswerkzeugen können Sie den Sicherheitsstatus aller Ihrer AWS-Services in einem einzigen Fenster anzeigen.

Sobald Sie Ihr ProwlerPro-Konto erstellt und eingerichtet haben, können Sie das System so konfigurieren, dass es alle 24 Stunden automatisch eine Reihe von empfohlenen Überprüfungen durchführt. Scans mit ProwlerPro werden parallel ausgeführt, um Ihre DevSecOps-Workflows nicht zu verlangsamen.

Scan-Ergebnisse werden in einer Reihe vordefinierter Dashboards angezeigt, die sich leicht teilen und durch Drilldowns navigieren lassen, um einen detaillierten Einblick in Ihre Sicherheitslage zu erhalten.

Probely

Wenn Sie bereits einen DevOps-Workflow haben und Sicherheitsscans integrieren möchten, können Sie dies mit Probely mithilfe der Schwachstellenscan-Tools und APIs für Webanwendungen in wenigen Minuten tun.

Der Ansatz von Probely basiert auf der API-First-Entwicklung, was bedeutet, dass jede neue Funktion des Tools zuerst über die API angeboten und erst danach der Benutzeroberfläche hinzugefügt wird. Diese Strategie ermöglicht es, dass Sie immer die API verwenden können, wenn Sie Probely in Workflows oder benutzerdefinierte Software integrieren müssen.

Sie können auch Webhooks registrieren, damit Ihre Anwendungen Benachrichtigungen für jedes von Probely generierte Ereignis erhalten.

Da Probely eine Reihe von sofort einsatzbereiten Integrationen anbietet, werden Sie die API wahrscheinlich nicht zur Integration in Ihre Tools verwenden müssen. Wenn Sie Jira und Jenkins bereits in Ihren Workflows verwenden, erfolgt die Integration sofort.

Probely startet automatisch Scans in Ihren CI/CD-Pipelines und registriert die gefundenen Schwachstellen als Probleme in Jira. Sobald diese Schwachstellen behoben sind, werden sie erneut getestet und das nicht behobene Problem bei Bedarf wieder in Jira geöffnet.

Checkov

Checkov scannt Konfigurationen in Cloud-Infrastrukturen mit der Absicht, Konfigurationsfehler zu finden, bevor ein Softwareprodukt bereitgestellt wird. Mit einer einheitlichen Befehlszeilenschnittstelle werden Ergebnisse auf verschiedenen Plattformen wie Kubernetes, Terraform, Helm, CloudFormation, ARM-Vorlagen und Serverless-Frameworks gescannt.

Mit einem attributbasierten Richtlinienschema ermöglicht Checkov das Scannen von Cloud-Ressourcen zur Kompilierzeit und die Erkennung von Konfigurationsfehlern in Attributen mithilfe eines einfachen Policy-as-Code-Python-Frameworks. Checkov analysiert unter anderem Beziehungen zwischen Cloud-Ressourcen mithilfe graphbasierter YAML-Richtlinien.

Durch die Integration in CI/CD-Pipelines und Versionskontrollsysteme führt Checkov Runner-Parameter im Kontext eines Ziel-Repositorys aus, testet und modifiziert sie.

Dank einer erweiterbaren Integrationsschnittstelle kann die Architektur erweitert werden, um benutzerdefinierte Richtlinien, Unterdrückungsbedingungen und Anbieter zu definieren. Die Schnittstelle ermöglicht auch die Integration mit Support-Plattformen, Build-Prozessen und benutzerdefinierten Release-Systemen.

Faraday

Mit Faraday können Sie das Schwachstellenmanagement automatisieren und Aktionen steuern, um Ihre Aufmerksamkeit auf die wirklich wichtigen Aufgaben zu lenken. Die Workflows ermöglichen es Ihnen, jede Aktion mit benutzerdefinierten Ereignissen auszulösen, die Sie frei gestalten können, um die Wiederholung von Aufgaben zu vermeiden.

Faraday bietet Ihnen die Möglichkeit, Ihre Sicherheitstools zu standardisieren und in Ihre Arbeitsabläufe zu integrieren und Schwachstelleninformationen von mehr als 80 Scan-Tools zu erhalten. Mithilfe von Agenten werden die Scanner automatisch in Ihre Arbeitsabläufe integriert, um Daten mit maximaler Leichtigkeit aufzunehmen und zu normalisieren und Ergebnisse zu generieren, die über eine Webschnittstelle angezeigt werden können.

Ein bemerkenswerter und interessanter Aspekt von Faraday ist die Verwendung eines zentralen Repositorys zum Speichern von Sicherheitsinformationen, die von verschiedenen Mitgliedern des DevSecOps-Teams leicht analysiert und getestet werden können.

Dies bietet den zusätzlichen Vorteil, dass doppelte Probleme identifiziert und kombiniert werden können, die von verschiedenen Tools gemeldet werden. Dies reduziert den Aufwand der Teammitglieder und vermeidet, dass sie sich mehrfach um dasselbe Problem kümmern müssen, das mehrfach gemeldet wird.

CircleCI

Um CircleCI mit den beliebtesten DevOps-Sicherheitstools zu integrieren, müssen Sie einen der vielen Partner in Ihre Entwicklungspipelines einbeziehen. Die CircleCI-Partner sind Lösungsanbieter in verschiedenen Kategorien, darunter SAST, DAST, statische Containeranalyse, Richtliniendurchsetzung, Geheimnisverwaltung und API-Sicherheit.

Wenn Sie etwas tun müssen, um die Entwicklungspipeline zu sichern, was mit keinem der verfügbaren Orbs möglich ist, können Sie die Tatsache nutzen, dass Orbs Open Source sind. In diesem Fall müssen Sie für die Hinzufügung von Funktionen zu einem vorhandenen Orb lediglich die Genehmigung für Ihre PR einholen und sie zusammenführen.

Selbst wenn Sie einen Anwendungsfall haben, von dem Sie glauben, dass er außerhalb der in der CircleCI-Registrierung verfügbaren Orbs liegt, können Sie einen erstellen und zur Community beitragen. Das Unternehmen veröffentlicht eine Liste mit Best Practices zur Erstellung einer automatisierten Orb-Kompilierung und zum Testen von Pipelines, um Ihnen den Weg zu erleichtern.

Um Ihre Pipeline zu sichern, eliminieren Sie die Notwendigkeit einer internen Entwicklung und ermöglichen es Ihrem Team, Dienste von Drittanbietern zu nutzen. Durch die Verwendung von CircleCI Orbs muss Ihr Team lediglich wissen, wie diese Dienste verwendet werden, ohne lernen zu müssen, wie sie integriert oder verwaltet werden.

Trivy

Trivy ist ein Open-Source-Sicherheitstool mit mehreren Scannern, die Sicherheitsprobleme und verschiedene Ziele erkennen können, an denen solche Probleme zu finden sind. Zu den von Trivy gescannten Zielen gehören: Dateisystem, Container-Images, Git-Repositorys, Images virtueller Maschinen, Kubernetes und AWS-Repositorys.

Durch das Scannen all dieser potenziellen Ziele kann Trivy bekannte Schwachstellen, Konfigurationsfehler, Geheimnisse oder vertrauliche Informationen und Softwarelizenzen finden und Probleme in der Softwarelieferkette erkennen, einschließlich Abhängigkeiten von verwendeter Software und Betriebssystempaketen.

Die Plattformen und Anwendungen, mit denen Trivy integriert werden kann, sind auf der Ecosystem-Seite zu finden. Diese Liste enthält die gängigsten Namen wie CircleCI, GitHub Actions, VS Code, Kubernetes oder JetBrains.

Trivy ist in apt, yum, brew und dockerhub verfügbar. Es gibt keine Voraussetzungen wie Datenbanken, Bereitstellungsumgebungen oder Systembibliotheken und der erste Scan soll schätzungsweise in nur 10 Sekunden abgeschlossen sein.

GitLeaks

Gitleaks ist ein Open-Source-Tool mit einer Befehlszeilenschnittstelle, die mit Docker, Homebrew oder Go installiert werden kann. Es ist auch als ausführbare Binärdatei für die gängigsten Plattformen und Betriebssysteme verfügbar. Sie können es auch direkt in Ihrem Repo als Pre-Commit-Hook oder als GitHub-Freigabe über Gitleaks-Action bereitstellen.

Die Befehlsschnittstelle ist einfach und minimalistisch. Sie besteht aus nur 5 Befehlen zur Erkennung von Geheimnissen im Code, zum Schutz von Geheimnissen, zur Generierung von Skripten, zur Abfrage der Hilfe oder zur Anzeige der Version des Tools. Der Befehl detect ermöglicht das Scannen von Repositories, Dateien und Verzeichnissen. Er kann sowohl auf Entwicklungsmaschinen als auch in CI-Umgebungen verwendet werden.

Der Großteil der Arbeit mit GitLeaks wird mit den Befehlen zum Erkennen und Schützen erledigt. Diese arbeiten mit Git-Repositories und analysieren die Ausgabe von Git-Log- oder Git-Diff-Befehlen. Sie generieren Patches, die von GitLeaks zur Erkennung und zum Schutz von Geheimnissen verwendet werden.

Wettbewerbsfähig und sicher bleiben

Einerseits sind die Agilität und Geschwindigkeit Ihrer CI/CD-Pipelines der Schlüssel zu einer schnellen Markteinführung, was wiederum entscheidend ist, um als Softwareentwickler wettbewerbsfähig zu bleiben.

Andererseits ist die Einbeziehung von Sicherheitstools in Ihre Entwicklungsprozesse eine unbestrittene Notwendigkeit. Um Sicherheit zu integrieren, ohne Ihre SDLC-Zeitpläne negativ zu beeinflussen, sind DevSecOps-Tools die passende Lösung.