Einbetten von Zero Trust-Sicherheit in Ihren Entwicklerworkflow
Als Entwickler müssen Sie sich sicher fühlen, um schnell voranzukommen. Der Bedarf an Sicherheit beginnt, sobald Sie Ihren Code klonen. In diesem Artikel erfahren Sie, wie Sie mithilfe von Zero Trust-Prinzipien entwickeln, damit Sie schnell und sicher Innovationen entwickeln können. Die Zero Trust-Sicherheitsstrategie und der Ansatz für Entwurf und Implementierung von Anwendungen umfassen die folgenden Grundsätze:
- Explizit überprüfen. Authentifizieren und autorisieren Sie immer basierend auf allen verfügbaren Datenpunkten.
- Verwenden des Zugriffs mit geringsten Berechtigungen. Beschränken Sie den Benutzerzugriff mit Just-In-Time- und Just-Enough-Access (JIT/JEA), risikobasierten adaptiven Richtlinien und Datenschutz.
- Annahme von Sicherheitsverletzungen. Minimieren Sie Auswirkungsgrad und Segmentzugriff. Überprüfen Sie die End-to-End-Verschlüsselung, und verwenden Sie Analysen, um für Transparenz zu sorgen, die Bedrohungserkennung voranzutreiben und die Abwehr zu verbessern.
Das Einbetten der Sicherheit in Ihren Workflow hilft Ihnen wie folgt:
- Spüren Sie Sicherheitsrisiken schneller auf.
- Stellen Sie sichere Entwicklertools bereit.
- Erstellen Sie Verbindungen, um die Zusammenarbeit zwischen Sicherheitsteams und Entwicklungsteams zu verbessern.
Innovation und Sicherheit Ihres Workflows beim Erstellen von Code
Die einheitliche Lösung von Microsoft, die im folgenden Diagramm veranschaulicht wird, schlägt eine Brücke zwischen DevOps- und SecOps-Teams, die Ihnen helfen, die Entwicklung von Code zu Cloud zu beschleunigen und zu sichern.
Unsere Lösung zum Schutz von DevOps basiert auf zwei Standardkomponenten: Die Bereitstellung von Tools für Innovationen und die Sicherung des Entwicklerworkflows, wenn Entwickler Code erstellen. Schauen Sie sich die Sitzung Beschleunigung und Sicherung Ihres Codes für die Cloudentwicklungssitzung von Microsoft Build 2022 an und erfahren Sie, wie diese Komponenten Ihre Entwicklungsumgebung schützen können.
Implementieren Sie die folgenden bewährten Methoden, die in Azure und GitHub zusammenarbeiten, um Ihre Entwicklungslösung zu sichern.
- Da die Sicherheit beginnt, wenn Entwickler Code klonen, aktivieren Sie DevSecOps mit Azure und GitHub, um eine Brücke zwischen devOps- und SecOps-Teams zu schlagen und Ihre Entwicklungsumgebungen zu schützen.
- Bieten Sie flexible und leistungsstarke Entwicklertools für alle Entwickler, Sprachen und Stapel mit Visual Studio und Visual Studio Code.
- Vereinfachen Sie das Onboarding und die Zusammenarbeit mit einem Tool für den gesamten Entwicklungslebenszyklus in der Cloud mithilfe von GitHub Codespaces und Microsoft Dev Box.
- Schließen Sie den integrierten Schutz des geistigen Eigentums für Code ein, den Sie nicht mehr an mehreren Standorten verteilen. Helfen Sie Ihren Teams bei der Zusammenarbeit, Entwicklung, Automatisierung und Bereitstellung von Code überall dort, wo sie möchten, mit GitHub-Aktionen und Azure-Pipelines.
- Erhalten Sie Sicherheitsanleitungen und kontinuierliches Sicherheitsfeedback innerhalb des Entwicklerworkflows mit Codeüberprüfung, geheimer Überprüfung und Abhängigkeitsüberprüfung mithilfe von GitHub Advanced Security.
- Stellen Sie die Sicherheit ohne Vertrauen in Ihrer gesamten Organisation mithilfe von Identitätsverwaltungsdiensten in Microsoft Entra ID bereit.
Anpassen von Zero Trust-Sicherheit in Ihren Entwicklungslebenszyklus
Von der Vorabbereitstellung bis hin zum Commit über die Bereitstellung und Überwachung benötigen Sie Sicherheitslösungen in allen Entwicklungslebenszyklusphasen.
Precommit-Phase
- Bedrohungsmodellierung
- IDE-Sicherheits-Plug-in
- Precommit-Hooks
- Sichere Programmierstandards
- Peer Review
Fünfundachtzig Prozent der Codefehler treten während der Precommit-Entwicklungsphase auf, hauptsächlich aufgrund menschlicher Fehler. Konzentrieren Sie sich auf die Sicherheit, bevor Sie Ihren Code durch Schreiben ihres Codes in Visual Studio Code, Visual Studio oder GitHub Codespaces zur Identifizierung von Sicherheitsrisiken und sicherem Code übernehmen. Verwenden Sie Peer-Reviews, um sichere Codierungsmethoden zu fördern.
Verpflichtungsphase (CI)
- Analyse des statischen Codes
- Sicherheitsmodultests
- Verwaltung von Abhängigkeiten
- Überprüfung von Anmeldeinformationen
Verwenden Sie während der Verpflichtungsphase umfangreiche Sicherheitsmethoden, um Ihren Code (einschließlich statischer Codeanalyse) zu überprüfen und Ihren Code zu scannen, während Sie ihn in Ihre Quellcodeverwaltung einchecken. Verwenden Sie die Überprüfung von Anmeldeinformationen (auch als geheime Überprüfung oder Tokenüberprüfung bezeichnet), um Anmeldeinformationen verfügbar zu machen, die Sie versehentlich in die Codebasis einführen können. Erfassen Sie unsichere Abhängigkeiten, bevor Sie diese mit der Abhängigkeitsüberprüfung in Ihre Umgebung einführen.
Bereitstellungphase (CD-Phase)
- Verwenden der Infrastruktur als Codeüberprüfung (IaC)
- Dynamische Sicherheitsüberprüfung
- Überprüfungen der Cloudkonfiguration
- Sicherheitsakzeptanztests
Sehen Sie sich während der Bereitstellungsphase die allgemeine Integrität Ihrer Codebasis an und führen Sie eine allgemeine Sicherheitsüberprüfung durch, um Risiken zu identifizieren. Führen Sie Cloudkonfigurationsprüfungen, Infrastrukturcodeüberprüfungen und Sicherheitsakzeptanztests durch, um die Ausrichtung mit den Sicherheitszielen der Organisation sicherzustellen.
Betrieb und Überwachungsphase
- Kontinuierliche Überwachung
- Threat Intelligence
- Postmortem-Analysen ohne Schuldzuweisungen
Verwenden Sie während der Betriebs- und Überwachungsphase kontinuierliche Überwachung und Bedrohungserkennung, um die Gesamtabhängigkeitsrisiken zu minimieren, die Sie möglicherweise im Laufe der Zeit erben. Führen Sie Postmortale durch, um gelernte Lektionen zu entfernen und den DevOps-Zyklus weiter zu durchlaufen.
Implementieren von Abhängigkeiten, Code und geheimer Überprüfung
Um das Sichern von Code für Entwickler zu vereinfachen, verwenden Sie systemeigene und automatisierte Funktionen, um kontinuierliches Feedback mit kontinuierlichen Sicherheitsfunktionen während des gesamten Entwicklungslebenszyklus bereitzustellen. Bieten Sie Entwicklern und Communitys allgemeine Sicherheit mit GitHub Advanced Security-Abhängigkeitsüberprüfung, Codeüberprüfung und geheimer Überprüfung.
Abhängigkeitsüberprüfung
- Integrierte Überprüfung von Abhängigkeiten
- Warnungen und Sicherheitsupdates
Erhalten Sie Risikostufen von Abhängigkeiten und automatisierte Korrekturen für anfällige Abhängigkeiten in Ihrer Codebasis mit fortlaufender Abhängigkeitsüberprüfung. Als kontinuierlicher Prozess werden Ihre Entwickler auf eine freundliche und unauffällige Weise in die richtige Richtung bewegt.
Codeüberprüfung
- Erweiterbares Framework für die Codeüberprüfung
- Integriert in den Entwicklerworkflow
- Unterstützt durch branchenführendes CodeQL-Modul
Implementieren Sie die Codeüberprüfung , während Sie Code generieren, ohne dass andere Schritte an separaten Speicherorten ausgeführt werden. Vereinfachen Sie Korrekturen frühzeitig im Entwicklungslebenszyklus, indem Sie Scanergebnisse in Ihrer vertrauten GitHub-Benutzeroberfläche anzeigen.
Geheime Überprüfung
- Suchen nach kompromittierten Geheimschlüsseln in öffentlichen und privaten Repositorys
- Partnerschaft mit mehr als 40 Anbietern
- Push-Schutz
- Wechseln von der Korrektur zur Verhinderung
- Überprüfen auf geheime Schlüssel mit hoher Vertrauenswürdigkeit
- Aktivieren des Schutzes mit einer Auswahl
Scannen Sie Ihren Code nach hartcodierten Anmeldeinformationen und Token mit geheimer Überprüfung. Push-Schutz sucht nach geheimen Schlüsseln und Token, bevor Sie eine Push an Ihre Codebasis ausführen. Suchen Sie nach geheimen Schlüsseln mit hoher Vertrauenswürdigkeit, wenn Entwickler Code pushen, und blockieren Sie den Push, wenn GitHub einen geheimen Schlüssel identifiziert.
Verwalten und Sichern von Workloadidentitäten
- Lebenszyklusverwaltung
- Zugriff-Governance
- Sicherer adaptiver Zugriff
Verschaffen Sie sich einen Einblick in die Aktivität Ihrer Workloadidentitäten und aktivieren Sie die regelmäßige Bereinigung. Bestimmen Sie, wer über Workloadidentitäten verfügt und wie Sie diese Informationen über Organisationsänderungen auf dem neuesten Stand halten. Verfolgen Sie, wann Sie zuletzt Workloadidentitäten verwendet haben, wann Sie zuletzt Token ausgestellt haben und wann Token ablaufen.
Führen Sie regelmäßig Zugriffsüberprüfungen durch, um das Potenzial für geheime Schlüssel und Anmeldeinformationen zu verringern. Benutzer müssen ihre Workloadidentitäten überprüfen und unnötige Zugriffsrechte entfernen. Lassen Sie Benutzer überprivilegierte und nicht genutzte Zugriffsberechtigungen melden. Diskutieren Sie, wie Sie Arbeitsauslastungsidentitäten vor Sicherheitsverletzungen schützen. Aktivieren Sie bedingten Zugriff, um sicherzustellen, dass der Zugriff von erwarteten Ressourcen stammt.
Sichern von Identitäten mit GitHub OIDC und Microsoft Entra Workload ID Federation
Um Ihre Organisation noch mehr zu schützen, verwenden Sie GitHub OpenID Connect (OIDC) mit Microsoft Entra Workload Identity Federation und minimieren Sie die Notwendigkeit, geheime Schlüssel zu speichern und darauf zuzugreifen. Verwalten Sie geheime Azure-Serverprinzipalschlüssel und andere langlebige Ressourcen für Cloudanmeldeinformationen, um Dienstausfallzeiten aufgrund abgelaufener Anmeldeinformationen zu minimieren. Integrieren Sie in Entwicklerplattformen, z. B. GitHub-Aktionen, um Ihre Apps sicher zu erstellen.
Unser empfohlener Workload Identity Federation-Workflow, dargestellt im folgenden Diagramm, umfasst sechs Schritte.
- Richten Sie eine Vertrauensstellung in Microsoft Entra ID ein und fordern Sie ein Token an.
- Konfigurieren Sie den GitHub-Workflow, um Aktionen zum Abrufen des Tokens zuzulassen.
- GitHub-Workflow sendet eine Anforderung an Azure-ID.
- Microsoft Entra ID überprüft die Vertrauenswürdigkeit der Anwendung und ruft die Schlüssel ab, um das Token zu überprüfen.
- Microsoft Entra ID greift auf das Token zu und stellt es aus.
- Die Bereitstellungsaktion verwendet das Microsoft Entra-Zugriffstoken für die Bereitstellung in Ressourcen in Azure.
Sehen Sie sich April Edwards, Senior Cloud Advocate und DevOps Practice Lead an und demonstrieren Sie den Workload Identity Federation-Workflow. Die Demonstration beginnt mit bei 19:14 min in der Microsoft Build 2022-Sitzung; beschleunigen und sichern Sie Ihren Code in der Cloudentwicklung.
Nächste Schritte
- Registrieren Sie sich für die Azure Developer CLI, ein Open-Source-Tool, das die Zeit beschleunigt, die für die ersten Schritte in Azure benötigt wird.
- 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.
- 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.
- 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.
- Secure DevOps-Umgebungen für Zero Trust beschreibt bewährte Methoden zum Sichern Ihrer DevOps-Umgebungen, um Hacker daran zu hindern, Entwicklerfelder zu gefährden, Releasepipelines mit bösartigen Skripts zu infizieren und Zugriff auf Produktionsdaten über Testumgebungen zu erhalten.
- Anpassen von Token beschreibt die Informationen, die Sie in Microsoft Entra-Token empfangen können. Es wird erläutert, wie Token angepasst werden, um Flexibilität und Kontrolle zu verbessern, während gleichzeitig die Zero Trust-Sicherheit der Anwendung mit minimalen Berechtigungen erhöht wird.
- Konfigurieren von Gruppenansprüchen und App-Rollen in Token zeigt, wie Sie Ihre Apps mit App-Rollendefinitionen konfigurieren und Sicherheitsgruppen zu App-Rollen zuweisen. Diese Methoden tragen dazu bei, Flexibilität und Kontrolle zu verbessern und gleichzeitig die Zero Trust-Sicherheit der Anwendung mit geringsten Berechtigungen zu erhöhen.