Sichern der DevOps-Plattformumgebung für Zero Trust
Dieser Artikel hilft Ihnen als DevOps-Teammitglied, das Zero Trust-Prinzip der geringsten Rechte umzusetzen und die DevOps-Plattformumgebung zu schützen. Es enthält Inhalte aus unserem eBook Schützen von Enterprise DevOps-Umgebungen und hebt bewährte Methoden für die Geheimnis- und Zertifikatverwaltung hervor.
Moderne Unternehmen verlassen sich bei der Bereitstellung auf DevOps-Plattformen, einschließlich Pipelines und Produktionsumgebungen, die Entwickler benötigen, um produktiv zu sein. In der Vergangenheit berücksichtigten die Methoden der Anwendungssicherheit nicht die erhöhte Angriffsfläche, die heutige Pipelines und Produktionsumgebungen bieten. Da Hacker nach links wechseln und auf Upstream-Tools abzielen, benötigen Sie innovative Ansätze, um Ihre DevOps-Plattformumgebungen zu sichern.
Beachten Sie im folgenden Diagramm, dass die DevOps-Plattformumgebung eine Verbindung mit der Anwendungsumgebung und den Continuous Integration und Continuous Delivery- (CI/CD)-Pipelineerweiterungen herstellt.
CI/CD-Pipelineerweiterungen bieten Hackern Möglichkeiten, Berechtigungen in der Anwendungsumgebung zu erweitern. Erweiterungen und Integrationen erhöhen Angriffsflächenrisiken. Es ist wichtig, sich vor Bedrohungen durch Malware zu schützen.
Wie und warum Angreifer auf Pipelines abzielen
Pipelines und Produktionsumgebungen können unabhängig von Standardanwendungssicherheitsmethoden und -prozessen sein. Sie erfordern in der Regel allgemeine Zugriffsanmeldeinformationen, die einen umfassenden und aussagekräftigen Zugriff auf Angreifer ermöglichen können.
Während Angreifer neue Möglichkeiten finden, Systeme zu kompromittieren, umfassen die am häufigsten verwendeten Angriffsvektoren für Pipelines:
- Extrahieren von Laufzeitvariablen und Argumenteinfügung.
- Skripts, die Dienstprinzipien oder Anmeldeinformationen aus Pipelines abrufen.
- Falsch konfigurierte persönliche Zugriffstoken, mit denen jeder mit dem Schlüssel auf die DevOps-Plattformumgebung zugreifen kann.
- Sicherheitsrisiken und Fehlkonfigurationen in integrierten Tools, die Zugriff auf den Code erfordern (häufig schreibgeschützt, aber manchmal Schreibzugriff). Integrierte Tools können Testframeworks, statische Anwendungssicherheitstests (SAST) und dynamische Anwendungssicherheitstests (DAST) umfassen.
Bewährte Methoden für die Geheimnis- und Zertifikatverwaltung
Die Vermeidung eines katastrophalen Verstoßes kann so einfach wie eine effektive Geheimnisverwaltung sein. Das folgende Diagramm veranschaulicht ein Beispiel für eine effektive Geheimnis-, Kennwort-, Zugriffstoken- und die Zertifikatverwaltung
Wie im obigen Diagramm gezeigt, startet der Entwickler einen Build für eine Kundenanfrage. GitHub startet dann einen Runner mit der Rollen-ID und Geheimnis-ID einer Vault-App-Rolle. Die vertrauenswürdige Entität fordert regelmäßig eine neue geheime ID aus dem Tresor an und ruft die geheime GitHub-Geheim-ID von GitHub ab. Der Tresor verwendet die GitHub Geheimnis-Rollen-ID und die geheime ID, um sich anzumelden und Code-Signatur-Zugriff zu erhalten. Der Runner passt die mobile App an und signiert sie mit Code.
Die folgenden bewährten Methoden helfen Ihnen, ein sicheres Setup zu erstellen, das die Offenlegung von Geheimnissen und Parametern minimiert.
- Stellen Sie in jeder Phase des Anwendungslebenszyklus sicheren Speicher für geheime Schlüssel und Zertifikate bereit. Entwickeln Sie immer so, als ob es sich um ein Open-Source-Projekt handelt. Stellen Sie sicher, dass Teams geheime Schlüssel in Schlüsseltresoren statt im Code oder in Teamumgebungen speichern. Verwenden Sie den Clouddienst von Azure-Schlüsseltresor zum sicheren Speichern und Zugreifen auf Geheimnisse.
- Konfigurieren Sie Azure, um GitHub OIDC als Verbundidentität zu vertrauen. Mit OpenID Connect (OIDC) können Ihre GitHub Actions-Workflows auf Ressourcen in Azure zugreifen, ohne dass die Azure-Anmeldeinformationen als langlebige GitHub-Geheimnisse gespeichert werden müssen.
Weitere bewährte Methoden für die Sicherheit von DevOps-Umgebungen
Überprüfen Sie die folgenden bewährten Methoden, um Ihre DevOps-Plattformumgebungen zu stärken und sich vor Sicherheitsincidents zu schützen. Finden Sie eine ausführliche Erläuterung dieser Empfehlungen in unserem eBook Sichern von Enterprise DevOps-Umgebungen.
- Alle DevOps-Plattformumgebung mit Auditpfaden ausstatten: Überprüfen Sie die Auditprotokolle, um zu verfolgen, wer Zugriff erhalten hat, welche Änderung aufgetreten ist, und das Datum/die Uhrzeit für jedes aktive System. Fügen Sie insbesondere DevOps-Plattformen mit CI/CD-Pipelines hinzu, die in die Produktion fließen. Überwachungspfade für DevOps-Tools bieten robuste Möglichkeiten, Bedrohungen schneller zu beheben, verdächtige Aktivitäten zu finden, auf mögliche Verstöße oder Sicherheitsrisiken hinzuweisen und einen potenziellen Missbrauch von Daten oder Berechtigungen zu finden. Stellen Sie sicher, dass präzise Kontroll- und Überwachungspfade in jeder Umgebung verfügbar sind.
- Sichern der Softwarelieferkette. Mit jeder Bibliothek, die Sie in Ihre Codebasis integrieren, erweitern Sie die Software-Lieferkette und übernehmen Abhängigkeiten von Open-Source-Projekten oder -Tools. Entfernen Sie vorsichtig unnötige Bibliotheken und Open-Source-Komponenten, um die Angriffsfläche Ihrer Software-Lieferkette zu reduzieren.
- Automatisieren der Überprüfung von Infrastructure-as-Code (IaC)-Vorlagen. Mit IaC-Umgebungen ist es einfach, nach Fehlkonfigurationen, Complianceüberwachungen und Richtlinienproblemen zu suchen. Durch die Implementierung von Complianceprüfungen und Zugriffskontrollen wird der Sicherheitsstatus Ihrer gesamten Infrastruktur erhöht. Überprüfen Sie die Sicherheit von Toolintegrationen, die Automatisierungssystemanforderungen erfüllen.
- Genehmigungsworkflows automatisieren Damit ein Genehmigungsworkflow Codes in die Produktion überträgt, müssen bestimmte automatische oder manuelle Überprüfungen die Sicherheit, den geschäftlichen Wert, den Status und die Qualität jeder Anforderung bestätigen. Diese Prüfungen funktionieren als Tor zwischen Entwicklung und Produktion, um Denial-of-Service-Angriffe und Hacker zu verhindern, die Code in Produktionsumgebungen einfügen, ohne eine Warnung zu kennzeichnen oder auszulösen.
- Lassen Sie nur überprüfte DevOps Tool Integrations zu. Wie in Entwicklerumgebungen enthalten DevOps-Tools Erweiterungen und Integrationen, um das DevOps-Team effizient und sicher zu machen. Vergewissern Sie sich, dass überprüfte Integrationen die geringsten Berechtigungen erfordern, die für die Ausführung ihrer Arbeit möglich sind. Implementieren Sie den geringsten Berechtigungszugriff, wenn möglich, und stellen Sie sicher, dass die richtige Ebene von Lese-/Schreibberechtigungen besteht. Erfahren Sie, wie Sie GitHub Actions für Ihre Organisation deaktivieren oder einschränken.
Nächste Schritte
- Sichern der Entwicklerumgebung hilft Ihnen, Zero Trust-Prinzipien in Ihren Entwicklungsumgebungen mit bewährten Methoden für geringste Berechtigungen, Verzweigungssicherheit und vertrauenswürdige Tools, Erweiterungen und Integrationen zu implementieren.
- Wenn Sie Zero Trust-Sicherheit in Ihren Entwicklerworkflow einbetten, können Sie schnell und sicher Innovationen schaffen.
- Secure DevOps-Umgebungen für Zero Trust beschreibt bewährte Methoden zum Sichern Ihrer DevOps-Umgebungen mit einem Zero Trust-Ansatz, um Hacker daran zu hindern, Entwicklerfelder zu gefährden, Releasepipelines mit bösartigen Skripts zu infizieren und Zugriff auf Produktionsdaten über Testumgebungen zu erhalten.
- Implementieren Sie Zero-Trust-Prinzipien, wie in Memorandum 22-09 beschrieben (zur Unterstützung der US-Executive Order 14028, Improving the Nation's Cyber Security) mithilfe von Microsoft Entra ID als zentralisiertes Identitätsverwaltungssystem.
- Beschleunigen und sichern Sie Ihren Code mit Azure DevOps mit Tools, mit denen Entwickler den schnellsten und sichersten Code für die Cloudumgebung erhalten.