DevOps - Sicherheitsherausforderungen und Überlegungen

Durch die Einführung der Infrastructure-as-Code-(IaC-)Methode mussten Unternehmen sich schnell anpassen und neue Prozesse für den Betrieb, die Entwicklung und die Wartung von Anwendungen in verschiedenen Umgebungen implementieren, wie On Premise und Multicloud. Eine steigende Anzahl der Prozesse und höhere Geschwindigkeit können zu Sicherheitslücken führen. Daher wurden Prozesse im Laufe der Zeit verfeinert, um effizientere und sicherere Deployment- und Produktreleasezyklen zu implementieren. Die neuen Sicherheitsprozesse, die in die IaC-Methode integriert sind, werden als DevSecOps bezeichnet.

Verwenden Sie den Oracle Cloud Infrastructure-(OCI-)DevOps-Service, um Ihre DevOps-Ziele zu erreichen.

Der OCI DevOps-Service ist eine vollständige Plattform für kontinuierliche Integration und Bereitstellung (CI/CD), mit der Sie den Softwareentwicklungs-Lebenszyklus vereinfachen und automatisieren können. Der DevOps-Service ermöglicht die Zusammenarbeit beim Entwickeln, Erstellen, Testen und Bereitstellen von Software. Sie können den gesamten Entwicklungslebenszyklus verfolgen und eine Historie der Quell-Commits über Erstellungs-, Test- und Deployment-Phasen abrufen.

Während des DevSecOps-Definitionsprozesses müssen Sie Komponenten der CI/CD-Pipeline in Ihrem Deployment-Prozess analysieren, um Sicherheitsvorkehrungen zu stärken. Außerdem sollten Sie überlegen, wie Sie den Quellcode verbessern und Code-Repositorys schützen können.

Wie DevSecOps funktioniert und warum Sie es benötigen

Die Ziele der DevOps-Methode waren immer, die Effizienz zu steigern und die Deployment-Produktion zu beschleunigen. Die Ziele für DevSecOps sind mit DevOps identisch, wobei alle in verschiedenen Deployment-Prozessen verwendeten Komponenten gesichert werden.

DevSecOps liegt in der Verantwortung aller Stakeholder, einschließlich Cloud-Provider, DevOps-Entwickler, Test-Engineers, Anwendungseigentümer und Sicherheitsanalysten. Sie müssen die richtige Balance finden, um Geschwindigkeit und Agilität während des Softwarelebenszyklus aufrechtzuerhalten und gleichzeitig die entsprechende End-to-End-Sicherheit zu gewährleisten.

Das DevSecOps Maturity Model (DSOMM) bietet Sicherheitsmaßnahmen, die bei der Verwendung von DevOps-Strategien angewendet werden, und zeigt, wie sie priorisiert werden, um die Sicherheit zu erhöhen. Beispiel: Mit dem Modell können Sie bestimmen, wie jede Komponente, wie Anwendungsbibliotheken und Betriebssystembibliotheken in Docker-Images, auf bekannte Sicherheitslücken getestet wird.

DevSecOps in OCI anwenden

Die folgenden Informationen stellen den typischen DevSecOps-Workflow bereit, der OCI-Features nutzt.

  1. Ein Entwickler erstellt Code in einem Repository (z.B. im DevOps-Service mit Policys/Berechtigung und Code-Repositorys von Drittanbietern wie GitHub und GitLab). Zur Integration mit Code-Repositorys anderer Anbieter wie GitHub und GitLab erstellen Sie ein persönliches Zugriffstoken (Personal Access Token, PAT) in GitHub oder GitLab und speichern das PAT in einem Oracle Cloud Infrastructure-(OCI-)Vault.

  2. Die Änderungen werden im Continuous Integration and Continuous Delivery (CI/CD)-Tool zum Erstellen festgeschrieben.

  3. Das CI/CD-Tool kann eine der folgenden Aktionen ausführen:

    • Ein Drittanbietertool zur Analyse des statischen und dynamischen Codes aufrufen, um Sicherheitsfehler oder Bugs in der Codequalität zu identifizieren, wie Sonatype, SonarQube oder OverOps.
    • Das neu erstellte Containerimage dann in ein Oracle Cloud Infrastructure Registry-Repository mit aktivierter Scanningfunktion übertragen. Dann ruft das CI/CD-Tool die Ergebnisse des Imagescans mit der Vulnerability Scanning-REST-API ab. Basierend auf den Ergebnissen des Imagescans kann Ihr CI/CD-Tool dann bestimmen, ob das Image in die nächste Phase im Lebenszyklus verschoben werden soll.
  4. Wenn die Codeanalyse oder der Imagescan erfolgreich verläuft, werden automatisierte Tests durchgeführt, wie Sicherheits-, API-Integrations- und Benutzeroberflächentests.

  5. Wenn die Anwendung und der Code diese Tests bestanden haben, sollte in der Deployment-Pipeline eine Genehmigung der Kontrollphase hinzugefügt werden. In einer Genehmigungsphase wird das Deployment für eine bestimmte Zeit angehalten, während der ein Genehmiger über Deployments benachrichtigt wird und diese manuell genehmigt.

  6. Wenn die Deployment-Pipeline genehmigt wurde, werden die Anwendung und der Code auf den OCI-Plattformen in Ihrer Produktionsumgebung bereitgestellt, die Folgendes umfassen: Compute-Instanzen (virtuelle Maschine und Bare Metal), Container Engine for Kubernetes-(Verwaltetes-Kubernetes-)Cluster und OCI-Funktionen (serverlose Funktionen).

  7. Die Umgebung, in der die Anwendung bereitgestellt wird, muss kontinuierlich überwacht werden, um Sicherheitsprobleme zu ermitteln. Führen Sie außerdem das klassische Monitoring von Metriken und Servicelogs mit OCI-Services wie Application Performance Monitoring (APM), Logging und Monitoring aus. Konfigurieren Sie Monitoringsysteme, um schnell auf Sicherheitsbedrohungen zu reagieren, indem Sie native OCI-Funktionen wie Benachrichtigungen verwenden. Sie können Logs auch mit Ticketingsystemen (z.B. ServiceNow) oder SIEM-Systemen von Drittanbietern integrieren.

DevSecOps-Deployment-Pipeline in OCI.

Best Practices für DevSecOps

Wir empfehlen die folgenden Best Practices für DevSecOps.

  1. Setzen Sie Policy und Governance durch.

    Ein erfolgreicher DevSecOps-Prozess befolgt und implementiert starke Governance mit Schwerpunkt auf Sicherheitsfunktionen, wie Identity and Access Management (IAM) und Privileged Access Management (PAM). Der Prozess muss auch Rollen für das DevSecOps-Modell definieren, geeignete Schulungen bereitstellen und die neuesten Sicherheitstechniken berücksichtigen.

  2. Automatisieren Sie Ihre DevOps-Sicherheitsprozesse und -tools.

    Verwenden Sie Automatisierung in Ihrem DevOps-Prozess, um Risiken durch menschliche Fehler und Sicherheitsvorfälle zu reduzieren. Die Verwendung effizienterer Tools und Automatisierung führt zu reaktionsschnelleren DevOps-Sicherheitsprozessen und widerstandsfähigeren Anwendungen. OCI stellt Sicherheitstools für Codeanalyse, Konfigurationsmanagement, Patching und Sicherheitslückenmanagement mit OS Management und Oracle Vulnerability Scanning Service bereit. Verwaltung von privilegierten Zugangsdaten und Secrets wird mit Vault bereitgestellt.

  3. Führen Sie eine umfassende Erkennung durch.

    Prüfen, überwachen und integrieren Sie kontinuierlich alle Geräte, Tools und Konten gemäß Ihrer Sicherheits-Policy. Mit diesem Prozess können Sie Ihre OCI-Assets für die Einführung eines Zero-Trust-Sicherheitsmodells ausrichten.

  4. Sicherheitslückenmanagement durchführen

    Alle Arten von Sicherheitslücken müssen berücksichtigt, katalogisiert, validiert und behoben werden, bevor das Anwendungs-Deployment in Betrieb geht. Wir empfehlen die Integration der OWASP DevSecOps-Richtlinie in Ihre DevSecOps-Sicherheitstests.

  5. Sicherer Zugriff mit DevOps-Secrets-Management.

    Wenn Sie DevOps-Prozesse implementieren, priorisieren Sie die Verwaltung der Sicherheit und des Lebenszyklus von Zugangsdaten und Identitätsaccounts in Ihrem Code. Mit Vault können Sie Secrets verwalten.

  6. Steuern, überwachen und prüfen Sie den Zugriff mit privilegierter Zugriffsverwaltung.

    Mit OCI-Services wie IAM, DevOps-IAM-Policys, Logging und Monitoring können Sie privilegierten Zugriff verwalten.

  7. Segmentieren Sie Netzwerke.

    Wenn Sie DevOps-Prozesse definieren, müssen Sie Ihre Netzwerke segmentieren, um Angriffsflächen zu reduzieren und dabei verschiedene Arbeitsumgebungen zu isolieren (z.B. Produktion von Entwicklungstestumgebungen).

Weitere Informationen finden Sie in der Selfservice-Landing-Zone, die der CIS Foundations Benchmark für Oracle Cloud entspricht.

Mehr erfahren

Weitere Informationen finden Sie in den folgenden Ressourcen: