Sicherheitssteuerung v3: DevOps-Sicherheit

Die DevOps-Sicherheit umfasst Kontrollmechanismen im Zusammenhang mit der Sicherheitsentwicklung und den Sicherheitsvorgängen in DevOps-Prozessen ab. Dazu gehört die Bereitstellung kritischer Sicherheitsüberprüfungen (z. B. statische Anwendungssicherheitstests, Sicherheitsrisikomanagement) vor der Bereitstellungsphase, um die Sicherheit während des gesamten DevOps-Prozesses zu gewährleisten. Zudem fallen darunter auch allgemeine Themen wie Gefahrenmodellierung und Softwarebereitstellungssicherheit.

DS-1: Durchführen der Gefahrenmodellierung

CIS Controls v8-ID(s) ID(s) von NIST SP 800-53 r4 PCI-DSS-ID(s) v3.2.1
16.10, 16.14 SA-15 6.5, 12.2

Sicherheitsprinzip: Führen Sie die Bedrohungsmodellierung durch, um potenzielle Bedrohungen zu identifizieren und die mildernden Steuerelemente aufzulisten. Stellen Sie sicher, dass Ihre Gefahrenmodellierung die folgenden Zwecke erfüllt:

  • Schützen Sie Ihre Anwendungen und Dienste in der Produktionslaufzeit.
  • Sichern Sie die Artefakte, die zugrunde liegende CI/CD-Pipeline und andere Toolumgebungen, die zum Erstellen, Testen und Bereitstellen verwendet werden.

Die Gefahrenmodellierung sollte mindestens die folgenden Aspekte umfassen:

  • Definieren der Sicherheitsanforderungen der Anwendung. Stellen Sie sicher, dass diese Anforderungen bei der Gefahrenmodellierung angemessen berücksichtigt werden.
  • Analysieren von Anwendungskomponenten und Datenverbindungen sowie von deren Beziehungen. Stellen Sie sicher, dass diese Analyse auch die Upstream- und Downstreamverbindungen außerhalb Ihres Anwendungsbereichs umfasst.
  • Auflisten der potenziellen Bedrohungen und Angriffsvektoren, denen Ihre Anwendungskomponenten, Datenverbindungen und Upstream- und Downstreamdienste möglicherweise ausgesetzt sind.
  • Identifizieren der anwendbaren Sicherheitskontrollen, mit deren Hilfe die aufgelisteten Bedrohungen entschärft werden können, und Identifizieren von Kontrolllücken (z. B. Sicherheitsrisiken), die möglicherweise zusätzliche Behandlungspläne erfordern.
  • Aufzählen und Entwerfen der Kontrollen, mit denen die identifizierten Sicherheitsrisiken entschärft werden können.

Azure-Leitfaden: Verwenden Sie Tools zur Bedrohungsmodellmodellierung wie microsoft Threat Modeling Tool mit eingebetteter Azure-Bedrohungsmodellvorlage, um Ihren Bedrohungsmodellprozess voranzutreiben. Verwenden Sie das STRIDE-Modell, um sowohl interne als auch externe Bedrohungen aufzulisten und die anwendbaren Kontrollen zu identifizieren. Stellen Sie sicher, dass beim Gefahrenmodellierungsprozess die Bedrohungsszenarien im DevOps-Prozess berücksichtigt werden, z. B. die Einschleusung von schädlichem Code über ein unsicheres Artefaktrepository mit falsch konfigurierter Zugriffssteuerungsrichtlinie.

Wenn kein Gefahrenmodellierungstool verwendet werden kann, sollten Sie zumindest einen auf einem Fragenkatalog basierenden Gefahrenmodellierungsprozess verwenden, um die Bedrohungen zu identifizieren.

Stellen Sie sicher, dass die Ergebnisse der Gefahrenmodellierung oder -analyse aufgezeichnet und aktualisiert werden, wenn eine sicherheitsrelevante Änderung an Ihrer Anwendung vorgenommen wird oder sich die Bedrohungslandschaft maßgeblich ändert.

Implementierung und zusätzlicher Kontext:

Kundensicherheitsbeteiligte (Weitere Informationen):

DS-2: Sicherstellen der Sicherheit der Softwarelieferkette

CIS Controls v8-ID(s) ID(s) von NIST SP 800-53 r4 PCI-DSS-ID(s) v3.2.1
16.4, 16.6, 16.11 SA-12, SA-15 6.3, 6.5

Sicherheitsprinzip: Stellen Sie sicher, dass der SDLC (Software Development Lifecycle) oder der Prozess Ihres Unternehmens eine Reihe von Sicherheitskontrollen umfasst, um die internen und Drittanbieter-Softwarekomponenten (einschließlich proprietärer und Open-Source-Software) zu steuern, in denen Ihre Anwendungen Abhängigkeiten haben. Definieren Sie Durchlasskriterien, um zu verhindern, dass anfällige oder schädliche Komponenten in die Umgebung integriert und dort bereitgestellt werden.

Die Sicherheitskontrollen der Softwarelieferkette sollten mindestens die folgenden Aspekte berücksichtigen:

  • Identifizieren Sie die Upstream-Abhängigkeiten, die in der Entwicklungs-, Build-, Integrations- und Implementierungsphase erforderlich sind.
  • Inventarisieren und Verfolgen interner Softwarekomponenten und der Softwarekomponenten von Drittanbietern im Hinblick auf bekannte Sicherheitsrisiken, wenn im Upstream eine Korrektur verfügbar ist.
  • Bewerten von Sicherheitsrisiken und Schadsoftware in den Softwarekomponenten anhand von statischen und dynamischen Anwendungstests im Hinblick auf unbekannte Sicherheitsrisiken.
  • Sicherstellen, dass die Sicherheitsrisiken und die Schadsoftware durch den geeigneten Ansatz entschärft werden. Dabei kann es sich um eine lokale Korrektur des Quellcodes, eine Upstream-Korrektur, den Ausschluss von Features oder die Anwendung von ausgleichenden Kontrollen handeln, falls eine direkte Minderung nicht verfügbar ist.

Wenn in Ihrer Produktionsumgebung Drittanbieterkomponenten aus geschlossenen Quellen verwendet werden, haben Sie möglicherweise nur eingeschränkten Einblick in deren Sicherheitsstatus. Sie sollten zusätzliche Kontrollen wie Zugriffssteuerung, Netzwerkisolation und Endpunktsicherheit in Betracht ziehen, um die Auswirkungen von schädlichen Aktivitäten oder Sicherheitsrisiken im Zusammenhang mit der Komponente zu minimieren.

Azure-Leitfaden: Stellen Sie für die GitHub-Plattform die Sicherheit der Software supply chain über die folgenden Funktionen oder Tools von GitHub Advanced Security oder gitHub nativen Feature sicher:

  • Verwenden Sie Dependency Graph, um alle Abhängigkeiten und zugehörigen Sicherheitsrisiken Ihres Projekts über Advisory Database zu überprüfen, zu inventarisieren und zu identifizieren.
  • Verwenden Sie Dependabot, um sicherzustellen, dass die anfällige Abhängigkeit nachverfolgt und behoben wird, und stellen Sie sicher, dass Ihr Repository automatisch mit den neuesten Releases der Pakete und Anwendungen aktualisiert wird, von denen es abhängig ist.
  • Verwenden Sie die native Codescanfunktion von GitHub, um den Quellcode zu überprüfen, wenn Sie den Code von einer externen Quelle beziehen.
  • Verwenden Sie Azure Defender für Cloud, um die Sicherheitsrisikobewertung für Ihr Containerimage in den CI/CD-Workflow zu integrieren.

Für Azure DevOps können Sie Erweiterungen von Drittanbietern verwenden, um ähnliche Kontrollen zum Inventarisieren, Analysieren und Korrigieren der Softwarekomponenten von Drittanbietern und der zugehörigen Sicherheitsrisiken zu implementieren.

Implementierung und zusätzlicher Kontext:

Kundensicherheitsbeteiligte (Weitere Informationen):

DS-3: Sichere DevOps-Infrastruktur

CIS Controls v8-ID(s) ID(s) von NIST SP 800-53 r4 PCI-DSS-ID(s) v3.2.1
16.7 CM-2, CM-6, AC-2, AC-3, AC-6 2.2, 6.3, 7.1

Sicherheitsprinzip: Stellen Sie sicher, dass die DevOps-Infrastruktur und -Pipeline bewährte Methoden für die Sicherheit in allen Umgebungen befolgen, einschließlich Ihrer Build-, Test- und Produktionsphasen. Dazu gehören in der Regel die Sicherheitskontrollen für den folgenden Bereich:

  • Artefaktrepositorys zum Speichern von Quellcode, erstellten Paketen und Images, Projektartefakten und Geschäftsdaten
  • Server, Dienste und Tools zum Hosten von CI/CD-Pipelines
  • Konfiguration der CI/CD-Pipeline

Azure-Leitfaden: Priorisieren Sie im Rahmen der Anwendung des Azure Security Benchmarks auf Ihre DevOps-Infrastruktursicherheitskontrollen die folgenden Steuerelemente:

  • Schützen Sie Artefakte und die zugrunde liegende Umgebung, um sicherzustellen, dass die CI/CD-Pipelines keine Möglichkeiten zum Einfügen von schädlichem Code bieten. Überprüfen Sie beispielsweise Ihre CI/CD-Pipeline, um alle Fehlkonfigurationen in den Kernbereichen von Azure DevOps zu identifizieren, z. B. Organisation, Projekte, Benutzer, Pipelines (Build & Release), Verbindungen und Build-Agent, um Fehlkonfigurationen wie open access, schwache Authentifizierung, unsichere Verbindungseinrichtung usw. zu identifizieren. Verwenden Sie für GitHub ähnliche Kontrollen, um die Berechtigungsstufen der Organisation zu schützen.
  • Konfigurieren Sie Identitäts-/Rollenberechtigungen und Berechtigungsrichtlinien in Azure AD, nativen Diensten und CI/CD-Tools in Ihrer Pipeline, um sicherzustellen, dass Änderungen an den Pipelines autorisiert sind.
  • Vermeiden Sie die Bereitstellung eines permanenten privilegierten Zugriffs auf personenbezogene Konten wie Entwickler oder Tester, indem Sie Features wie von Azure verwaltete Identitäten und Just-in-Time-Zugriff verwenden.
  • Entfernen Sie Schlüssel, Anmeldeinformationen und Geheimnisse aus Code und Skripts, die in CI/CD-Workflowaufträgen verwendet werden, und speichern Sie sie im Schlüsselspeicher oder in Azure Key Vault.
  • Wenn Sie selbstgehostete Build-/Bereitstellungs-Agents ausführen, befolgen Sie die Kontrollen des Azure-Sicherheitsvergleichstests, einschließlich Netzwerksicherheit, Status- und Sicherheitsrisikomanagement sowie Endpunktsicherheit, um Ihre Umgebung zu schützen.

Implementierung und zusätzlicher Kontext:

Kundensicherheitsbeteiligte (Weitere Informationen):

DS-4: Integrieren statischer Anwendungssicherheitstests in DevOps-Pipeline

CIS Controls v8-ID(s) ID(s) von NIST SP 800-53 r4 PCI-DSS-ID(s) v3.2.1
16.12 SA-11 6.3, 6.5

Sicherheitsprinzip: Stellen Sie sicher, dass statische Anwendungssicherheitstests (SAST) in die Kontrollpunkte im CI/CD-Workflow einbezogen sind. Die Zulassung kann basierend auf den Testergebnissen festgelegt werden, um zu verhindern, dass anfällige Pakete im Repository committet, in die Pakete integriert oder in der Produktion bereitgestellt werden.

Azure-Leitfaden: Integrieren Sie SAST in Ihre Pipeline, damit der Quellcode automatisch in Ihrem CI/CD-Workflow gescannt werden kann. Die Azure DevOps-Pipeline oder GitHub können Tools unterhalb und SAST-Drittanbietertools in den Workflow integrieren.

  • GitHub CodeQL für die Quellcodeanalyse
  • Microsoft BinSkim Binary Analyzer für Windows und *nix-Binäranalyse
  • Azure DevOps Credential Scanner und GitHubs nativer Geheimnisscanner für Credential-Scans im Quellcode.

Implementierung und zusätzlicher Kontext:

Kundensicherheitsbeteiligte (Weitere Informationen):

DS-5: Integrieren dynamischer Anwendungssicherheitstests in DevOps-Pipeline

CIS Controls v8-ID(s) ID(s) von NIST SP 800-53 r4 PCI-DSS-ID(s) v3.2.1
16.12 SA-11 6.3, 6.5

Sicherheitsprinzip: Stellen Sie sicher, dass dynamische Anwendungssicherheitstests (DAST) Teil der Gating-Steuerelemente im CI/CD-Workflow sind. Das Gatekeeping kann basierend auf den Testergebnissen festgelegt werden, um zu verhindern, dass Sicherheitslücken in die Pakete eingebaut oder in der Produktionsumgebung bereitgestellt werden.

Azure-Leitfaden: Integrieren Sie DAST in Ihre Pipeline, damit die Laufzeitanwendung automatisch in Ihrem CI/CD-Workflowsatz in Azure DevOps oder GitHub getestet werden kann. Die automatisierten Penetrationtests (mit manuell unterstützter Validierung) sollten ebenfalls Teil von DAST sein.

Azure DevOps Pipeline und GitHub unterstützen die Integration von DAST-Drittanbietertools in den CI/CD-Workflow.

Implementierung und zusätzlicher Kontext:

Kundensicherheitsbeteiligte (Weitere Informationen):

DS-6: Sicherstellen der Sicherheit von Arbeitslasten während des DevOps-Lebenszyklus

CIS Controls v8 ID(s) ID(s) von NIST SP 800-53 r4 PCI-DSS-ID(s) v3.2.1
7.5, 7.6, 7.7, 16.1, 16.7 CM-2, CM-6, AC-2, AC-3, AC-6 6.1, 6.2, 6.3

Sicherheitsprinzip: Sicherstellen, dass die Arbeitsauslastung während des gesamten Lebenszyklus in der Entwicklungs-, Test- und Bereitstellungsphase gesichert ist. Verwenden Sie den Azure Security Benchmark, um die Kontrollen (z. B. Netzwerksicherheit, Identitätsverwaltung, privilegierter Zugriff usw.) zu bewerten, die standardmäßig als Guardrails festgelegt oder vor die Bereitstellungsphase links verschoben werden können. Stellen Sie insbesondere sicher, dass die folgenden Kontrollen in Ihrem DevOps-Prozess vorgesehen sind:

  • Automatisieren Sie die Bereitstellung mithilfe von Azure- oder Drittanbietertools im CI/CD-Workflow, in der Infrastrukturverwaltung (Infrastruktur als Code) und in Tests, um menschliche Fehler und Angriffsfläche zu reduzieren.
  • Stellen Sie sicher, dass VMs, Containerimages und andere Artefakte vor böswilliger Manipulation geschützt sind.
  • Überprüfen Sie die Workloadartefakte (d. h. Containerimages, Abhängigkeiten, SAST- und DAST-Scans) vor der Bereitstellung im CI/CD-Workflow.
  • Stellen Sie eine Funktion zur Sicherheitsrisikobewertung und Bedrohungserkennung in der Produktionsumgebung bereit, und setzen Sie diese Funktionen zur Laufzeit kontinuierlich ein.

Azure-Leitfaden: Leitfaden für Azure-VMs:

  • Über Azure Shared Image Gallery können Sie Ihre Images für unterschiedliche Benutzer, Dienstprinzipale oder AD-Gruppen in Ihrer Organisation freigeben und den Zugriff steuern. Verwenden Sie die rollenbasierte Zugriffssteuerung von Azure (Azure RBAC), um sicherzustellen, dass nur autorisierte Benutzer auf Ihre benutzerdefinierten Images zugreifen können.
  • Definieren Sie Baselines für eine sichere Konfiguration für die VMs, um unnötige Anmeldeinformationen, Berechtigungen und Pakete zu vermeiden. Verwenden Sie benutzerdefinierte Images, Azure Resource Manager-Vorlagen und/oder Azure Policy-Gastkonfigurationen, um diese Konfigurationsbaseline bereitzustellen und zu erzwingen.

Leitfaden für Azure-Containerdienste:

  • Verwenden Sie Azure Container Registry (ACR), um Ihre private Containerregistrierung zu erstellen, in der ein präziser Zugriff über Azure RBAC eingeschränkt werden kann, sodass nur autorisierte Dienste und Konten auf die Container in der privaten Registrierung zugreifen können.
  • Verwenden Sie Defender für Azure Container Registry zur Sicherheitsrisikobewertung der Images in Ihrer privaten Azure Container Registry-Instanz. Darüber hinaus können Sie Azure Defender für Cloud verwenden, um Containerimagescans in Ihre CI/CD-Workflows zu integrieren.

Übernehmen Sie für serverlose Azure-Dienste ähnliche Kontrollen, um sicherzustellen, dass Sicherheitskontrollen frühzeitig in die Phase vor der Bereitstellung verschoben werden.

Implementierung und zusätzlicher Kontext:

Kundensicherheitsbeteiligte (Weitere Informationen):

DS-7: Aktivieren der Protokollierung und Überwachung in DevOps

CIS Controls v8-ID(s) ID(s) von NIST SP 800-53 r4 PCI-DSS-ID(s) v3.2.1
8.2, 8.5, 8.9, 8.11 AU-3, AU-6, AU-12, SI-4 10.1, 10.2, 10.3, 10.6

Sicherheitsprinzip: Stellen Sie sicher, dass Ihr Protokollierungs- und Überwachungsumfang Nichtproduktionsumgebungen und CI/CD-Workflowelemente enthält, die in DevOps (und anderen Entwicklungsprozessen) verwendet werden. Die Sicherheitsrisiken und Bedrohungen, die auf diese Umgebungen abzielen, können erhebliche Risiken für Ihre Produktionsumgebung darstellen, wenn sie nicht ordnungsgemäß überwacht werden. Die Ereignisse aus dem CI/CD-Build-, Test- und Bereitstellungsworkflow sollten ebenfalls überwacht werden, um Abweichungen in den CI/CD-Workflowaufträgen zu identifizieren.

Azure-Leitfaden: Aktivieren und Konfigurieren der Überwachungsprotokollierungsfunktionen in Nichtproduktions- und CI/CD-Toolumgebungen (z. B. Azure DevOps und GitHub), die während des gesamten DevOps-Prozesses verwendet werden.

Die Ereignisse aus Azure DevOps- und GitHub-CI/CD-Aufgaben für die Build-, Test- und Bereitstellungsaufträge sollten ebenfalls überwacht werden, um Ausnahmeergebnisse in den CI/CD-Aufträgen zu identifizieren.

Erfassen Sie die oben genannten Protokolle und Ereignisse über den Protokollierungsstream oder die API in Azure Sentinel oder anderen SIEM-Tools, um sicherzustellen, dass die Sicherheitsincidents ordnungsgemäß überwacht und zur Behandlung selektiert werden.

Befolgen Sie „Azure-Sicherheitsvergleichstest – Protokollierung und Bedrohungserkennung“ als Richtlinie für die Implementierung Ihrer Protokollierungs- und Überwachungskontrollen für Workloads.

Implementierung und zusätzlicher Kontext:

Kundensicherheitsbeteiligte (Weitere Informationen):