Freigeben über


Sorgen Sie dafür, dass Ihre Azure DevOps sicher sind

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Wenn Sie Informationen und Daten verarbeiten, insbesondere in einer cloudbasierten Lösung wie Azure DevOps Services, sollten Sicherheit Ihre oberste Priorität haben. Während Microsoft die Sicherheit der zugrunde liegenden Cloudinfrastruktur gewährleistet, liegt es in Ihrer Verantwortung, die Sicherheit in Azure DevOps zu konfigurieren. Dieser Artikel enthält eine Übersicht über die erforderlichen sicherheitsbezogenen Konfigurationen, um Ihre Azure DevOps-Umgebung vor Bedrohungen und Sicherheitsrisiken zu schützen.

Schützen Ihres Netzwerks und Ihrer Daten

Die Sicherung Ihres Netzwerks ist entscheidend, wenn Sie mit Azure DevOps arbeiten, um Ihre Daten und Ressourcen vor unbefugtem Zugriff und potenziellen Bedrohungen zu schützen. Implementieren Sie Netzwerksicherheits- und Datenschutzmaßnahmen, um sicherzustellen, dass nur vertrauenswürdige Quellen auf Ihre Azure DevOps-Umgebung zugreifen können. Führen Sie die folgenden Aktionen aus, um Ihr Netzwerk beim Arbeiten mit Azure DevOps zu schützen:

Weitere Informationen finden Sie unter bewährte Methoden für die Anwendungsverwaltung.

Implementieren von Zero Trust

Übernehmen Sie Zero Trust-Prinzipien in Ihren DevOps-Prozessen, um sicherzustellen, dass jede Zugriffsanforderung unabhängig vom Ursprung gründlich überprüft wird. Zero Trust funktioniert auf dem Prinzip "Niemals vertrauen, immer überprüfen", was bedeutet, dass keine Entität, unabhängig davon, ob innerhalb oder außerhalb des Netzwerks, standardmäßig vertrauenswürdig ist. Durch die Implementierung von Zero Trust können Sie das Risiko von Sicherheitsverletzungen erheblich reduzieren und sicherstellen, dass nur autorisierte Benutzer und Geräte auf Ihre Ressourcen zugreifen können.

Zero Trust trägt zum Schutz vor lateralen Bewegungen innerhalb des Netzwerks bei, um sicherzustellen, dass selbst wenn ein kompromittierter Teil des Netzwerks vorhanden ist, die Bedrohung enthalten ist und sich nicht verbreiten kann. Weitere Informationen finden Sie im Leitfaden zur Zero Trust Assessment.

Einhaltung von Branchenstandards

Stellen Sie sicher, dass Ihre Azure DevOps-Umgebung den branchenspezifischen Standards und Vorschriften entspricht, die Ihre Umgebung schützen und das Vertrauen Ihrer Benutzer aufrechterhalten.

  • Sicherstellen der Einhaltung von Branchenstandards: Azure DevOps erfüllt verschiedene Branchenstandards und -vorschriften, z. B. ISO/IEC 27001, SOC 1/2/3 und DSGVO. Stellen Sie sicher, dass Ihre Umgebung diesen Standards entspricht.
  • Erzwingen von Compliancerichtlinien: Implementieren Sie Zweigstellenrichtlinien und Compliancerichtlinien für Ihre Pipelines.
  • Onboarding bei Component Governance für CI/CDs, was die folgenden Vorteile bietet:
    • Erkennung von Sicherheitsrisiken: Warnt Sie bei bekannten Sicherheitsrisiken in Open-Source-Komponenten.
    • Lizenzcompliance: Stellt sicher, dass Komponenten den Lizenzierungsrichtlinien Ihrer Organisation entsprechen.
    • Richtlinienerzwingung: Stellt sicher, dass nur genehmigte Versionen verwendet werden.
    • Sichtbarkeit mit Tracking: Bietet Einblicke in Komponenten über Repositorys hinweg, um die Verwaltung zu vereinfachen.

Steuern und Einschränken des Zugriffs

Überprüfen Sie alle Sicherheitsrichtlinien, die Administratoren zur Verfügung stehen, um einzuschränken und zu steuern, wer Zugriff auf die Organisation hat. Verwalten Sie die Kontrolle über die Organisation, indem Sie unnötige Projekterstellung verhindern.

Verwalten externer Gäste

Der externe Gastzugriff kann potenzielle Sicherheitsrisiken darstellen, wenn er nicht ordnungsgemäß verwaltet wird. Minimieren Sie diese Risiken, und stellen Sie sicher, dass externe Gäste die entsprechende Zugriffsebene haben, ohne die Sicherheit Ihrer Umgebung zu beeinträchtigen.

  • Blockieren des externen Gastzugriffs: Deaktivieren Sie die Richtlinie "Zulassen, dass Einladungen an eine beliebige Domäne gesendet werden" aus, um den externen Gastzugriff zu verhindern, wenn keine geschäftliche Notwendigkeit besteht.
  • Verwenden Sie unterschiedliche E-Mails oder UPNs: Verwenden Sie unterschiedliche E-Mail-Adressen oder Benutzerprinzipalnamen (UPNs) für persönliche und geschäftliche Konten, um Mehrdeutigkeit zwischen persönlichen und geschäftlichen Konten zu vermeiden.
  • Externe Gastbenutzer gruppieren: Platzieren Sie alle externen Gastbenutzer in einer einzelnen Microsoft Entra-Gruppe, und verwalten Sie die Berechtigungen für diese Gruppe entsprechend. Entfernen Sie direkte Zuweisungen, um sicherzustellen, dass Gruppenregeln für diese Benutzer gelten.
  • Regeln regelmäßig neu bewerten: Überprüfen Sie regelmäßig Regeln auf der Registerkarte "Gruppenregeln" der Seite "Benutzer". Berücksichtigen Sie alle Änderungen der Gruppenmitgliedschaft in der Microsoft Entra-ID, die sich möglicherweise auf Ihre Organisation auswirken. Es kann bis zu 24 Stunden dauern, bis Microsoft Entra ID die dynamische Gruppenmitgliedschaft aktualisiert, und Regeln werden automatisch alle 24 Stunden und bei jeder Änderung einer Gruppenregel neu ausgewertet.

Weitere Informationen finden Sie unter B2B-Gäste in der Microsoft Entra-ID.

Entfernen nicht benötigter Benutzer

Durch das Entfernen inaktiver oder nicht autorisierter Benutzer aus Ihrer Organisation können Sie eine sichere Umgebung verwalten und das Risiko potenzieller Sicherheitsverletzungen verringern.

  • Direktes Entfernen von inaktiven Microsoft-Kontobenutzern (MSAs): Entfernen Sie inaktive Benutzer direkt aus Ihrer Organisation, wenn sie MSAs verwenden. Sie können keine Abfragen für Arbeitsaufgaben erstellen, die entfernten MSA-Konten zugewiesen sind.
  • Deaktivieren oder Löschen von Microsoft Entra-Benutzerkonten: Wenn eine Verbindung mit microsoft Entra-ID besteht, deaktivieren oder löschen Sie das Microsoft Entra-Benutzerkonto, während das Azure DevOps-Benutzerkonto aktiv bleibt. Sie können die Abfrage des Arbeitsaufgabenverlaufs mit ihrer Azure DevOps-Benutzer-ID fortsetzen.
  • Benutzer-PATs für Administratoren widerrufen: Stellen Sie die sichere Verwaltung dieser kritischen Authentifizierungstoken sicher, indem Sie vorhandene Benutzer-PATs regelmäßig überprüfen und widerrufen.
  • Widerrufen von speziellen Berechtigungen, die einzelnen Benutzern gewährt werden: Überwachen und widerrufen Sie alle speziellen Berechtigungen, die einzelnen Benutzern gewährt werden, um die Ausrichtung mit dem Prinzip der geringsten Rechte sicherzustellen.
  • Erneutes Zuweisen von Arbeit von entfernten Benutzern: Bevor Sie Benutzer entfernen, weisen Sie ihre Arbeitsaufgaben den aktuellen Teammitgliedern neu zu, um die Last effektiv zu verteilen.

Bereichsberechtigungen

Stellen Sie die erforderlichen Mindestberechtigungen und Zugriffsstufen bereit, um sicherzustellen, dass nur autorisierte Personen und Dienste auf vertrauliche Informationen zugreifen und wichtige Aktionen ausführen können. Diese Vorgehensweise trägt dazu bei, das Risiko eines nicht autorisierten Zugriffs und potenzieller Datenschutzverletzungen zu minimieren.

Überprüfen und aktualisieren Sie diese Einstellungen regelmäßig, um sich an Änderungen in Ihrer Organisation anzupassen, z. B. Rollenänderungen, Neueinstellungen oder Abreisen. Die Implementierung einer regelmäßigen Überwachung von Berechtigungen und Zugriffsstufen kann dazu beitragen, Diskrepanzen zu identifizieren und zu korrigieren, um sicherzustellen, dass Ihr Sicherheitsstatus robust bleibt und an bewährte Methoden ausgerichtet ist.

Weitere Informationen zu Berechtigungen:

Um die sichere und effiziente Verwaltung von Berechtigungen zu gewährleisten, sollten Sie Berechtigungen in Ihrer Azure DevOps-Umgebung ordnungsgemäß einschränken. Die Bereichsdefinitionsberechtigungen beinhalten das Definieren und Zuweisen der entsprechenden Zugriffsebene für Benutzer und Gruppen basierend auf ihren Rollen und Zuständigkeiten. Diese Vorgehensweise trägt dazu bei, das Risiko nicht autorisierter Zugriffe und potenzieller Datenschutzverletzungen zu minimieren, indem sichergestellt wird, dass nur autorisierte Personen Zugriff auf vertrauliche Informationen und kritische Aktionen haben.

Führen Sie die folgenden Aktionen aus, um Berechtigungen effektiv zu beschränken:

  • Vererbung deaktivieren: Vermeiden Sie die Berechtigungsvererbung , und verhindern Sie unbeabsichtigten Zugriff. Durch die Vererbung können Benutzern versehentlich Berechtigungen gewährt werden, die sie nicht besitzen sollten, da diese standardmäßig zulässig sind. Verwalten Sie Berechtigungen sorgfältig und legen Sie sie explizit fest, um sicherzustellen, dass nur die vorgesehenen Benutzer Zugriff haben.
  • Segmentumgebungen: Verwenden Sie separate Azure-Konten für verschiedene Umgebungen, z. B. Entwicklung, Tests und Produktion, um Die Sicherheit zu verbessern und Konflikte zu verhindern. Dieser Ansatz minimiert das Risiko von Ressourcenkonflikten und Datenkontaminationen zwischen Umgebungen und ermöglicht eine bessere Verwaltung und Isolierung von Ressourcen. Weitere Informationen finden Sie unter Azure Landing Zone.
  • Steuern des Zugriffs und Sicherstellen der Compliance: Verwenden Sie Azure-Richtlinie , um den Zugriff auf nicht verwendete Azure-Regionen und -Dienste einzuschränken und die Einhaltung der Organisationsstandards sicherzustellen. Diese Aktion hilft dabei, bewährte Methoden zu erzwingen und eine sichere Umgebung aufrechtzuerhalten, indem nicht autorisierter Zugriff und verwendung verhindert werden.
  • Implementierung der Azure rollenbasierten Zugriffskontrolle (ABAC): Verwenden Sie ABAC mit ordnungsgemäß markierten Ressourcen, um nicht autorisierten Zugriff einzuschränken. Diese Aktion stellt sicher, dass Zugriffsberechtigungen basierend auf bestimmten Attributen gewährt werden, wodurch die Sicherheit verbessert wird, indem nicht autorisierte Ressourcenerstellung und -zugriff verhindert werden.
  • Verwenden von Sicherheitsgruppen: Verwenden Sie Sicherheitsgruppen , um Berechtigungen für mehrere Benutzer effizient zu verwalten. Diese Methode vereinfacht das Gewähren und Widerrufen des Zugriffs im Vergleich zum Zuweisen von Berechtigungen einzeln und sorgt für Konsistenz und einfachere Verwaltung in Ihrer Organisation.
    • Verwenden Sie Microsoft Entra-ID, Active Directory oder Windows-Sicherheitsgruppen, wenn Sie viele Benutzer verwalten.
    • Verringern Sie das Risiko, dass vertrauliche Informationen verloren gehen und unsicheren Code bereitstellen, indem Sie den Zugriff auf Projekte und Repositorys auf integrierte oder benutzerdefinierte Sicherheitsgruppen beschränken.
    • Nutzen Sie integrierte Rollen und legen Sie für Entwickler standardmäßig die Rolle "Mitwirkender" fest. Administratoren werden der Sicherheitsgruppe "Projektadministrator" für erhöhte Berechtigungen zugewiesen, sodass sie Sicherheitsberechtigungen konfigurieren können.
    • Halten Sie Gruppen so klein wie möglich, und beschränken Sie den Zugriff.
    • Implementieren Sie just-in-time-Zugriff mit einer Pim-Gruppe (Microsoft Entra Privileged Identity Management). Erteilen Sie erhöhte Berechtigungen nur bei Bedarf, wodurch das Risiko verringert wird, das mit permanentem Zugriff verbunden ist.

Dienstkonten abschaffen

In der Vergangenheit wurden Dienstkonten mit persönlichen Zugriffstoken (PATs) verwendet, um Tools zu erstellen, die automatisierte Prozesse und Dienste ausführen. Daher verfügen sie häufig über erhöhte Berechtigungen. Bevor Sie sich entscheiden, weiterhin ein Dienstkonto zu verwenden, sollten Sie prüfen, ob es immer noch der richtige Authentifizierungsansatz für Sie ist.

  • Ersetzen Sie Ihre PATs durch Microsoft Entra-Token:Microsoft Entra-Token sind kurzlebige (einstündige) Token , die anstelle der meisten PATs verwendet werden können. PATs sind aufgrund ihrer Benutzerfreundlichkeit beliebt, aber sie sind auch ein beliebter Angriffsvektor, weil sie leicht geleakt werden können.
  • Lesen Sie alle verfügbaren Authentifizierungsmechanismen , bevor Sie eines auswählen.
  • Verwenden Sie stattdessen Dienstprinzipale: Dienstprinzipale stellen die Identität einer Microsoft Entra-Anwendung dar und verfügen über eigene Berechtigungen, die definieren, was die Anwendung in einem bestimmten Mandanten tun kann. Dienstprinzipale sind die empfohlene Wahl, um die von der App benötigten Berechtigungen zu verwalten. Ersetzen Sie die PATs aller Dienstkonten durch Microsoft Entra-Token, die für den Dienstprinzipal erworben wurden.
    • Führen Sie diesen Schritt weiter aus, indem Sie eine verwaltete Identität authentifizieren, wenn Sie auf Azure-Ressourcen aufbauen. Verwaltete Identitäten übernehmen die Verwaltung der Anmeldeinformationen für Sie.
  • Verwenden von Dienstverbindungen: Mit Dienstverbindungen können Sie Dienstprinzipale innerhalb einer Pipeline verwenden. Verwenden Sie Dienstverbindungen, wenn möglich, um eine sichere Verbindung mit Diensten herzustellen, ohne geheime Variablen direkt an Builds zu übergeben. Einschränken von Verbindungen auf bestimmte Anwendungsfälle. weitere Informationen finden Sie im Abschnitt " Bereichsdienstverbindungen " in diesem Artikel.
    • Authentifizieren Sie sich bei Azure-Ressourcen mithilfe des Workload-Identitätsverbunds, entweder mit einer App-Registrierung oder einer verwalteten Identität, anstelle einer App-Registrierung mit einem Geheimnis.

Während ein Dienstkonto weiterhin verwendet wird:

  • Erstellen von Einzelzweckdienstkonten: Jeder Dienst sollte über sein dediziertes Konto verfügen, um das Risiko zu minimieren. Vermeiden Sie die Verwendung regulärer Benutzerkonten als Dienstkonten.
  • Identifizieren und Deaktivieren nicht verwendeter Dienstkonten: Regelmäßige Überprüfung und Identifizierung von Konten, die nicht mehr verwendet werden. Deaktivieren Sie nicht verwendete Konten, bevor Sie das Löschen in Betracht ziehen.
  • Berechtigungen einschränken: Beschränken Sie die Berechtigungen des Dienstkontos auf das erforderliche Minimum. Vermeiden Sie interaktive Anmelderechte für Dienstkonten.
  • Verwenden sie separate Identitäten für Berichtsleser: Wenn Sie Domänenkonten für Dienstkonten verwenden, verwenden Sie eine andere Identität für Berichtsleser, um Berechtigungen zu isolieren und unnötigen Zugriff zu verhindern.
  • Lokale Konten für Arbeitsgruppeninstallationen verwenden: Verwenden Sie beim Installieren von Komponenten in einer Arbeitsgruppe lokale Konten für Benutzerkonten. Vermeiden Sie Domänenkonten in diesem Szenario.
  • Überwachen der Dienstkontoaktivität: Implementieren Sie Auditing und erstellen Sie Audit-Streams, um die Aktivität des Dienstkontos zu überwachen.

Bereichsdienstverbindungen

Um einen sicheren und effizienten Zugriff auf Azure-Ressourcen zu gewährleisten, legen Sie Dienstverbindungen ordnungsgemäß fest. Dienstverbindungen ermöglichen Azure DevOps das Herstellen einer Verbindung mit externen Diensten und Ressourcen, und durch Bereichsdefinition dieser Verbindungen können Sie den Zugriff nur auf die erforderlichen Ressourcen beschränken und das Risiko eines nicht autorisierten Zugriffs verringern.

  • Zugriff einschränken: Beschränken Sie den Zugriff, indem Sie Ihre Azure Resource Manager-Dienstverbindungen mit bestimmten Ressourcen und Gruppen einschränken. Gewähren Sie keine breiten Mitwirkendenrechte für das gesamte Azure-Abonnement.
  • Azure Resource Manager verwenden: Authentifizieren mit Azure-Ressourcen mithilfe des Workload-Identitätsverbunds mit einer App-Registrierung oder verwalteter Identität anstelle einer App-Registrierung mit einem geheimen Schlüssel. Weitere Informationen finden Sie unter Erstellen einer Azure Resource Manager-Dienstverbindung, die den Workload-Identitätsverbund verwendet.
  • Bereichsressourcengruppen: Stellen Sie sicher, dass Ressourcengruppen nur die virtuellen Computer (VMs) oder Ressourcen enthalten, die für den Buildprozess erforderlich sind.
  • Vermeiden Sie klassische Dienstverbindungen: Entscheiden Sie sich für moderne Azure Resource Manager-Dienstverbindungen anstelle von klassischen Verbindungen, die keine Bereichsoptionen aufweisen.
  • Verwenden Sie zweckspezifische Teamdienstkonten: Authentifizieren Sie Dienstverbindungen mithilfe von zweckspezifischen Teamdienstkonten, um Sicherheit und Kontrolle aufrechtzuerhalten.

Weitere Informationen finden Sie unter "Allgemeine Dienstverbindungstypen".

Überprüfen von Überwachungsereignissen

Die Überwachung kann verwendet werden, um Benutzeraktionen, Berechtigungsänderungen und Verwendungsmuster innerhalb Ihrer Organisation nachzuverfolgen. Verwenden Sie diese Tools, um potenzielle Sicherheitsvorfälle umgehend zu identifizieren und zu beheben.

  • Überwachung aktivieren: Nachverfolgen und Anzeigen von Ereignissen im Zusammenhang mit Benutzeraktionen, Berechtigungen, Änderungen und Sicherheitsvorfällen.
  • Überprüfen Sie Überwachungsprotokolle und Datenströme regelmäßig: Überprüfen Sie regelmäßig Überwachungsprotokolle, um Benutzeraktivitäten zu überwachen und verdächtiges Verhalten zu erkennen. Suchen Sie nach unerwarteten Verwendungsmustern, insbesondere von Administratoren und anderen Benutzern. Diese Aktion hilft dabei, potenzielle Sicherheitsverletzungen zu erkennen und Korrekturmaßnahmen zu ergreifen. Erfahren Sie mehr über die Überwachungsereignisse, die wir nachverfolgen.
  • Konfigurieren von Sicherheitswarnungen: Konfigurieren Sie Warnungen, um Sie über Sicherheitsvorfälle oder Richtlinienverletzungen zu informieren. Diese Aktion stellt eine zeitnahe Reaktion auf potenzielle Bedrohungen sicher.

Sichern Ihrer Dienste

Um die Sicherheit und Integrität Ihrer Dienste in Azure DevOps sicherzustellen, implementieren Sie Sicherheitsmaßnahmen für jeden Dienst. Diese Maßnahmen umfassen das Festlegen von Berechtigungen, das Verwalten des Zugriffs und die Verwendung von Sicherheitsfeatures, die für jeden Dienst spezifisch sind.

Automatisieren der Sicherheitsüberprüfung

Überwachen Sie Code- und Geheimnis-Sicherheitslücken mit den folgenden automatisierten Sicherheitstools, die von unseren Partnerteams erstellt wurden.

  • Codeüberprüfung und -analyse verwenden: Verwenden Sie Tools wie Microsoft Defender , um Ihren Code auf Sicherheitsrisiken, geheime Schlüssel und Fehlkonfigurationen zu überprüfen. Diese Aktion hilft, Sicherheitsprobleme frühzeitig im Entwicklungsprozess zu identifizieren und zu beheben.
  • Verwenden Sie den Azure DevOps-Anmeldeinformationsscanner (CredScan) für GitHub: Wenn die Verwendung einer verwalteten Identität keine Option ist, stellen Sie sicher, dass Anmeldeinformationen an sicheren Speicherorten wie Azure Key Vault gespeichert werden, anstatt sie in den Code- und Konfigurationsdateien einzubetten. Implementieren Sie den Azure DevOps-Anmeldeinformationsscanner, um Anmeldeinformationen innerhalb des Codes zu identifizieren. Weitere Informationen finden Sie unter "Erste Schritte mit CredScan".
  • Verwenden Sie die native Secret-Scanning-Funktion für GitHub: Wenn eine verwaltete Identität keine Option ist, stellen Sie sicher, dass Geheimnisse an sicheren Speicherorten wie Azure Key Vault gespeichert werden, anstatt sie in Code- und Konfigurationsdateien einzubetten. Verwenden Sie die native Secret-Scanning-Funktion, um Geheimnisse im Code zu identifizieren. Weitere Informationen finden Sie unter "Informationen zum geheimen Scannen".

Weitere Informationen finden Sie in der Erweiterten Sicherheitsübersicht von GitHub.