Freigeben über


Konfigurieren der agentlosen Codeüberprüfung (Vorschau)

Agentlose Codeüberprüfung in Microsoft Defender für Cloud bietet schnelle und skalierbare Sicherheitsabdeckung für alle Repositorys in Azure DevOps und GitHub. Agentlose Codeüberprüfung überprüft automatisch Code, Open-Source-Abhängigkeiten und Infrastruktur-as-Code (IaC), um Sicherheitsrisiken und Fehlkonfigurationen zu identifizieren, ohne dass Änderungen an Ihren Build- oder Bereitstellungspipelinen erforderlich sind. Dieser Ansatz vereinfacht die Einrichtung und Wartung mit einem einzigen Azure DevOps- oder GitHub-Connector und bietet umfassende Abdeckung, kontinuierliche Einblicke und umsetzbare Sicherheitsergebnisse. Damit können sich Sicherheits- und Entwicklungsteams auf die reibungslose Behebung von Risiken konzentrieren, ohne Entwicklungsworkflows zu unterbrechen.

Sie können anpassen, welche Scanner ausgeführt werden sollen und genau definieren, welche Organisationen, Projekte oder Repositories in das Scannen einbezogen oder davon ausgeschlossen werden sollen.

Voraussetzungen

Rollen und Berechtigungen:

  • Zum Einrichten und Konfigurieren des Connectors

    • Projektsammlungsadministrator: Erforderlich in Azure DevOps, um die Ersteinrichtung auszuführen.
    • Abonnementmitwirkender: Erforderlich für das Azure-Abonnement, um den Connector zu erstellen und zu konfigurieren.
  • Zum Anzeigen der Sicherheitsergebnisse:

    • Sicherheitsadministrator: Kann Sicherheitseinstellungen, Richtlinien und Warnungen verwalten, aber den Connector nicht ändern.
    • Sicherheitsleser: Kann Empfehlungen, Warnungen und Richtlinien anzeigen, aber keine Änderungen vornehmen.

Hauptvorteile

Einige der wichtigsten Vorteile der agentlosen Codeüberprüfung in Microsoft Defender für Cloud sind:

  • Proaktives Risikomanagement: Risiken frühzeitig im Entwicklungsprozess erkennen. Dies ermöglicht sichere Codierungsmethoden und reduziert Sicherheitsrisiken, bevor sie die Produktion erreichen. 
  • Müheloses Onboarding: Schnelles Einrichten mit minimaler Konfiguration und ohne Pipelineänderungen. 
  • Unternehmensweite, zentralisierte Verwaltung: Scannen Sie Code automatisch über mehrere Repositorys mit einem einzigen Connector. Dies bietet umfassende Abdeckung für große Umgebungen. 
  • Schnelle Einblicke zur schnellen Behebung: Erhalten Sie direkt nach dem Onboarding umsetzbare Einblicke in Sicherheitsrisiken. Dies ermöglicht schnelle Korrekturen und reduziert die Belichtungszeit. 
  • Entwicklerfreundlich und nahtlos: Unabhängig von kontinuierlichen Integrations- und kontinuierlichen Bereitstellungspipelines (CI/CD) arbeiten, ohne dass Änderungen oder direkte Entwicklerbeteiligung erforderlich sind. Dies ermöglicht eine kontinuierliche Sicherheitsüberwachung ohne Unterbrechung der Entwicklerproduktivität oder Workflows.
  • Flexible Abdeckung und Kontrolle: Wählen Sie aus, welche Scanner ausgeführt werden sollen und welche Objekte gescannt werden. Sie können alles standardmäßig abdecken oder Einstellungen anpassen, um bestimmte Organisationen, Projekte oder Repositorys einzuschließen oder auszuschließen. Auf diese Weise können Sie die Sicherheitsabdeckung mit Ihrem Risikoprofil und Ihren betrieblichen Anforderungen ohne zusätzliche Komplexität abgleichen.
  • Erstellung von Software-Stücklisten (SBOM): Durch das automatische Generieren einer SBOM bei jedem Scan erhalten Teams ein präzises, abfragbares Inventar der Abhängigkeiten und Versionen in ihren Repositorien, ohne dass zusätzliche Workflow-Änderungen erforderlich sind. Dies ermöglicht eine schnelle Auswirkungsanalyse, schnellere Reaktion auf neu offengelegte Sicherheitsrisiken und eine sichere Entscheidungsfindung bei der Bewertung der Exposition gegenüber bestimmten Paketen oder Versionen.

Risikoerkennungsfunktionen

Agentlose Codeüberprüfung verbessert die Sicherheit, indem gezielte, umsetzbare Empfehlungen für Anwendungscode, Infrastruktur-as-Code(IaC)-Vorlagen und Abhängigkeiten von Drittanbietern bereitgestellt werden. Dies gilt zusätzlich zu den Sicherheitsempfehlungen für das Cloud Security Posture Management, die über den Konnektor bereitgestellt werden. Zu den wichtigsten Erkennungsfunktionen gehören:

  • Code-Sicherheitsrisiken: Finden Sie häufige Programmierfehler, unsichere Programmiermethoden und bekannte Sicherheitsrisiken in mehreren Programmiersprachen.
  • Fehlkonfigurationen von Infrastruktur-as-Code: Erkennen Sie Sicherheitsfehlkonfigurationen in IaC-Vorlagen, die zu unsicheren Bereitstellungen führen könnten.
  • Abhängigkeitsrisiken: Identifizieren bekannter Sicherheitsrisiken in Open-Source-Paketen und Betriebssystempaketen, die in Repositorys ermittelt wurden.
  • Software Bill of Materials (SBOM): Generieren Sie automatisch ein umfassendes, abfragbares Inventar der Abhängigkeiten und deren Versionen für jedes Repository,

Durch die Erstellung des Connectors wird die Sicherheit verbessert, indem grundlegende Empfehlungen für die Verwaltung von Cloudsicherheitsstatus für Repositorys, Pipelines und Dienstverbindungen bereitgestellt werden.

Tools für die Überprüfung

Agentlose Codeüberprüfung verwendet verschiedene Open-Source-Tools, um Sicherheitsrisiken und Fehlkonfigurationen in Code und Infrastructure-as-Code-Vorlagen (IaC) zu finden:

Werkzeug Unterstützte IaC/Sprachen Lizenz
Template-Analyzer ARM IaC-Vorlagen, Bicep IaC-Vorlagen MIT
Checkov Terraform IaC-Vorlagen, Terraform-Plandateien, AWS CloudFormation-Vorlagen, Kubernetes-Manifestdateien, Helm-Diagrammdateien, Dockerfiles, Azure Azure Resource Manager (ARM) IaC-Vorlagen, Azure Bicep IaC-Vorlagen, AWS SAM-Vorlagen (Serverless Application Model), Kustomize-Dateien, Serverless Framework-Vorlagen, OpenAPI-Spezifikationsdateien Apache 2.0
Bandit Python Apache 2.0
ESLint JavaScript, TypeScript, JSX, TSX MIT
Trivy Überprüfung von Abhängigkeits- und Betriebssystempaketen auf Schwachstellen anhand von Repository-Manifests und Sperrdateien (Dateisystemmodus) Apache 2.0
Syft Alpine (apk), Bitnami Pakete, C (conan), C++ (conan), Dart (pubs), Debian (dpkg), Dotnet (deps.json), Objective-C (cocoapods), Elixir (mix), Erlang (rebar3), Go (go.mod, Go-Binärdateien), GitHub (Workflows, Aktionen), Haskell (cabel, stack), Java (jar, ear, war, par, sar, nar, rar, native-image), JavaScript (npm, yarn), Jenkins Plugins (jpi, hpi), Linux Kernel Archive (vmlinz), Linux Kernel Module (ko), Nix (Ausgaben in /nix/store), PHP (composer, PECL, Pear), Python (wheel, egg, poetry, requirements. txt, uv), Red Hat (rpm), Ruby (gem), Rust (cargo.lock, auditable binary), Swift (cocoapods, swift-package-manager), Wordpress Plugins, Terraform Anbieter (.terraform.lock.hcl) Apache 2.0

Diese Tools unterstützen eine vielzahl von Sprachen und Infrastruktur-as-Code-Frameworks (IaC), wodurch eine gründliche Sicherheitsanalyse in Ihrer Codebasis sichergestellt wird.

Unterstützte Systeme und Dateitypen

Versionskontrollsysteme

  • Azure DevOps: Vollständige Unterstützung für Repositorys, die über den Azure DevOps-Connector verbunden sind.

  • GitHub: Vollständige Unterstützung für Repositorys, die über den GitHub-Connector verbunden sind.

Programmiersprachen

  • Statische Codeanalyse: Python; JavaScript/TypeScript.

  • Abhängigkeitsökosysteme (via Trivy): Node.js (npm, Yarn), Python (pip, Pipenv, Poetry), Java (Maven, Gradle), .NET (NuGet), Go Modules, Ruby (RubyGems), PHP (Composer), Rust (Cargo) und andere unterstützte Sprachen und Paketökosysteme über Manifeste und Lockfiles.

Infrastructure-as-Code (IaC)-Plattformen und -Konfigurationen

IaC-Plattform Unterstützte Dateitypen Hinweise
Terraform .tf, .tfvars Unterstützt Terraform IaC-Vorlagen in der HCL2-Sprache, einschließlich variabler Dateien in .tfvars.
Terraform-Plan JSON-Dateien Enthält JSON-Dateien, die geplante Konfigurationen darstellen, die zur Analyse und Überprüfung verwendet werden.
AWS CloudFormation JSON-, YAML-Dateien Unterstützt AWS CloudFormation-Vorlagen zum Definieren von AWS-Ressourcen.
Kubernetes (Englisch) YAML-, JSON-Dateien Unterstützt Kubernetes-Manifestdateien zum Definieren von Konfigurationen in Clustern.
Helm Helm-Diagrammverzeichnisstruktur, YAML-Dateien Folgt der Helm-Standarddiagrammstruktur; unterstützt Helm v3-Diagrammdateien.
Docker Dateien mit dem Namen Dockerfile Unterstützt Dockerfiles für Containerkonfigurationen.
Azure ARM-Vorlagen JSON-Dateien Unterstützt Azure Resource Manager (ARM) IaC-Vorlagen im JSON-Format.
Azure Bicep .bicep-Dateien Unterstützt Bicep IaC-Vorlagen, eine domänenspezifische Sprache (DSL) für ARM.
AWS SAM YAML-Dateien Unterstützt SAM-Vorlagen (AWS Serverless Application Model) für serverlose Ressourcen.
Kustomize YAML-Dateien Unterstützt Konfigurationsdateien für die Kubernetes-Anpassung (Kustomize).
Serverless Framework YAML-Dateien Unterstützt Vorlagen für das Serverless Framework beim Definieren von serverlosen Architekturen.
OpenAPI YAML-, JSON-Dateien Unterstützt OpenAPI-Spezifikationsdateien zum Definieren von RESTful-APIs.

Aktivieren der agentlosen Codeüberprüfung in Ihren Azure DevOps- und GitHub-Organisationen

Sie können sowohl Azure DevOps- als auch GitHub-Organisationen mit Defender for Cloud verbinden, um agentlose Codeüberprüfung zu ermöglichen. Führen Sie die Schritte unter Verbinden Ihrer Azure DevOps-Organisationen oder verbinden Sie Ihre GitHub-Organisationen , um zu beginnen.

GIF-Bild mit dem Setupprozess zum Aktivieren von agentlosen Codeüberprüfungen

Anpassen der Scannerabdeckung und des Bereichs

Sowohl für GitHub als auch für Azure DevOps können Sie steuern, welche Scanner ausgeführt werden, und genau angeben, welche Repositorys enthalten sind oder von der agentlosen Überprüfung ausgeschlossen werden.

Screenshot der benutzerdefinierten Einstellungen für die Überprüfung von agentlosem Code.

  • Scanner auswählen: Aktivieren oder deaktivieren Sie jeden Code- und Infrastruktur-as-Code(IaC)-Scanner basierend auf Ihren Anforderungen.

  • Festlegen des Scanbereichs: Entscheiden Sie, ob Sie alle Repositorys standardmäßig durchsuchen oder einen benutzerdefinierten Bereich definieren möchten, um bestimmte Organisationen, Projekte oder Repositorys einzuschließen oder auszuschließen.

    • Ausschlussmodus: Scannen Sie alles außer dem, was Sie auflisten.
    • Einschlussmodus: Überprüfen Sie nur, was Sie auflisten.
  • Optionen für benutzerdefinierte Bereiche:

    • Legen Sie für GitHub den Bereich nach Besitzer oder Repository fest.
    • Legen Sie für Azure DevOps den Umfang nach Organisation, Projekt oder Repository fest.
  • Neue Repositorys automatisch entdecken: Die AutoErmittlung neuer Repositorys ist immer auf die Organisationen oder Projekte beschränkt, die im Bereich des Connectors enthalten sind. Sie ist standardmäßig aktiviert, wenn Sie den Ausschlussmodus verwenden und keine benutzerdefinierte Bereichsliste festgelegt ist. Neu erstellte Repositorys werden automatisch gescannt.

    Autoermittlung ist im Aufnahmemodus nicht verfügbar, da nur die aufgelisteten Repositorys gescannt werden.

    Auf diese Weise können Sie die Überprüfung an Ihre Sicherheitsanforderungen anpassen, die Abdeckung auf dem neuesten Stand halten, während Ihre Umgebung wächst, und unnötige Scans oder nicht abgekannte Bereiche vermeiden.

Funktionsweise der agentlosen Codeüberprüfung

Agentlose Codeüberprüfung funktioniert unabhängig von CI/CD-Pipelines. Er verwendet den Azure DevOps- oder GitHub-Connector, um Code- und Infrastruktur-as-Code-Konfigurationen (IaC) automatisch zu scannen. Sie müssen keine Pipelines ändern oder Erweiterungen hinzufügen. Diese Einrichtung ermöglicht eine umfassende und kontinuierliche Sicherheitsanalyse über mehrere Repositorys hinweg. Ergebnisse werden direkt in Microsoft Defender for Cloud verarbeitet und angezeigt.

Diagramm: Architektur der agentlosen Codeüberprüfung.

Überprüfungsprozess

Nachdem Sie die Funktion zum Scannen von agentlosem Code in einem Connector aktiviert haben, enthält der Scanvorgang die folgenden Schritte:

  1. Repository-Ermittlung: Das System identifiziert automatisch alle Repositorys, die mit dem Azure DevOps- und GitHub-Connector verknüpft sind, unmittelbar nach der Erstellung des Connectors und dann alle 8 Stunden.

  2. Codeabruf: Er ruft sicher den neuesten Code aus der Standardverzweigung (Hauptverzweigung) jedes Repositorys für die Analyse ab, zunächst nach dem Einrichten des Connectors und dann täglich.

  3. Analyse: Das System verwendet eine Reihe integrierter Scantools, die in Microsoft Defender for Cloud verwaltet und aktualisiert werden, um Sicherheitsrisiken und Fehlkonfigurationen in Code- und Infrastruktur-as-Code-Vorlagen (IaC) zu finden. Außerdem wird ein SBOM erstellt, um eine abfragbare Paketverwaltung zu ermöglichen.

  4. Ergebnisverarbeitung: Verarbeitet Überprüfungsergebnisse über das Back-End von Defender for Cloud, um umsetzbare Sicherheitsempfehlungen zu erstellen.

  5. Ergebnisbereitstellung: Das System zeigt Ergebnisse als Sicherheitsempfehlungen in Defender for Cloud an, sodass Sicherheitsteams Probleme überprüfen und beheben können.

Überprüfungshäufigkeit und -dauer

  • Scanhäufigkeit:

    • Der Sicherheitsstatus von Repositorys, Pipelines und Dienstverbindungen wird bewertet, wenn Sie den Connector erstellen und dann alle acht Stunden.
    • Das System scannt Code und Infrastructure-as-Code (IaC)-Vorlagen nach Sicherheitsrisiken, nachdem Sie den Connector erstellt haben und dann täglich.
  • Überprüfungsdauer: Überprüfungen enden in der Regel nach 15 bis 60 Minuten, je nach Größe und Komplexität des Repositorys.

Anzeigen und Verwalten von Überprüfungsergebnissen

Nach Abschluss der Scans können Sie in Microsoft Defender for Cloud auf Sicherheitsergebnisse zugreifen.

Zugriffsergebnisse

  1. Navigieren Sie zur Registerkarte Sicherheitsempfehlungen in Microsoft Defender for Cloud.

  2. Überprüfen Sie Empfehlungen für Azure DevOps- und GitHub-Repositorys, z. B.:

  3. Die vollständige Palette von Empfehlungen, die für beide Plattformen unterstützt werden, finden Sie unter : Azure DevOps- und GitHub-Sicherheitsempfehlungen.

    Empfehlungen umfassen Elemente wie das Erfordern von Genehmigungen für mehrere Prüfer, das Einschränken des geheimen Zugriffs und das Erzwingen bewährter Methoden für Azure DevOps- und GitHub-Umgebungen.

    Wählen Sie eine Empfehlung aus, um Details zu betroffenen Dateien, Schweregrad und Korrekturschritten anzuzeigen.

Unterschied zwischen agentloser Codeüberprüfung und In-Pipeline-Überprüfung

Agentlose Codeüberprüfung und In-Pipeline-Überprüfung mithilfe der Microsoft Security DevOps-Erweiterung bieten sowohl Sicherheitsüberprüfungen in Azure DevOps als auch GitHub. Sie dienen unterschiedlichen Bedürfnissen, ergänzen sich aber gegenseitig. In der folgenden Tabelle werden die wichtigsten Unterschiede hervorgehoben, mit denen Sie die Option auswählen können, die ihren Sicherheits- und Entwicklungsanforderungen am besten entspricht.

Aspekt Agentlose Codeüberprüfung In-Pipeline-Überprüfung
Passender Anwendungsfall Bietet umfassende Abdeckung mit minimalen Unterbrechungen für Entwickler Bietet detaillierte Überprüfungen, die in die Pipeline integriert werden können, mit anpassbaren Steuerelementen
Überprüfungsbereich und Abdeckung Konzentriert sich auf Infrastruktur-as-Code (IaC), Code-Schwachstellen und Open-Source-Abhängigkeits-Schwachstellen auf planmäßiger Basis (täglich) Bietet umfassende Abdeckung, einschließlich Binärdateien und Containerimages, die bei jeder Pipelineausführung ausgelöst werden
Setup und Konfiguration Erfordert nach dem Erstellen des Connectors keine weitere Einrichtung Erfordert manuelle Installation und Konfiguration in jeder CI/CD-Pipeline
Pipelineintegration Wird unabhängig von (CI/CD)-Pipelines ausgeführt, ohne Workflows zu ändern Lässt sich in die CI/CD-Pipeline integrieren und erfordert eine Konfiguration in jeder Pipeline
Scanneranpassung Hiermit können Sie auswählen, welche Scanner ausgeführt werden Ermöglicht Aanpassungen mit bestimmten Scannern, Kategorien, Sprachen, Vertraulichkeitsstufen und Nicht-Microsoft-Tools
Ergebnisse und Feedback Bietet Zugriff auf Erkenntnisse in Defender for Cloud Bietet nahezu Echtzeitfeedback innerhalb der CI/CD-Pipeline mit Ergebnissen, die auch in Defender for Cloud sichtbar sind.
Break-and-Fail-Kriterien Builds können nicht abgebrochen werden Kann so konfiguriert werden, dass Builds basierend auf dem Schweregrad der Sicherheitsergebnisse abgebrochen werden.

Skalierbarkeit und Auswirkung auf die Leistung

Agentlose Codeüberprüfung vermeidet das Erstellen von Ressourcen im Abonnement und erfordert keine Überprüfung während des Pipelineprozesses. Es verwendet die Azure DevOps- und GitHub-REST-API, um Metadaten und Code abzurufen. Dies bedeutet, dass API-Aufrufe in Bezug auf Azure DevOps- und GitHub-Ratelimits gezählt werden, sie verursachen jedoch keine direkten Kosten für die Datenübertragung. Der Dienst verwaltet Scans, um sicherzustellen, dass sie innerhalb von Azure DevOps- und GitHub-Ratelimits bleiben, ohne die Entwicklungsumgebung zu unterbrechen. Diese Methode bietet eine effiziente, leistungsstarke Überprüfung über Repositorys hinweg, die sich nicht auf DevOps-Workflows auswirkt. Weitere Informationen finden Sie unter Azure DevOps-Geschwindigkeits- und Nutzungsgrenzwerte und-Ratenbeschränkungen für die GitHub-REST-API.

Datensicherheit, Compliance und Zugriffssteuerung für agentlose Codeüberprüfung

Der agentenlose Codeüberprüfungsdienst von Microsoft Defender for Cloud gewährleistet eine sichere und konforme Handhabung Ihres Codes durch die Umsetzung strenger Maßnahmen zur Datensicherheit und zum Datenschutz:

  • Datenverschlüsselung und Zugriffssteuerung: Das System verschlüsselt alle Daten während der Übertragung mithilfe von Protokollen, die in der Branche Standard sind. Nur autorisierte Defender for Cloud-Dienste können auf Ihren Code zugreifen.
  • Datenresidenz und -aufbewahrung: Scans erfolgen in der gleichen Region wie Ihre Azure DevOps- und GitHub-Connectoren (USA oder EU), um Datenschutzgesetze einzuhalten. Das System verarbeitet Code nur während der Überprüfung und löscht ihn anschließend sicher, ohne ihn langfristig zu speichern.
  • Zugriff auf Repositorys: Der Dienst generiert ein sicheres Zugriffstoken für Azure DevOps und GitHub, um Scans durchzuführen. Dieses Token ermöglicht das Abrufen von erforderlichen Metadaten und Code, ohne Ressourcen in Ihrem Abonnement zu erstellen. Nur Defender for Cloud-Komponenten haben Zugriff, sodass die Datenintegrität gewährleistet ist.
  • Compliance-Unterstützung: Der Service entspricht den behördlichen und sicherheitstechnischen Standards für den Umgang mit Daten und den Datenschutz und gewährleistet eine sichere Verarbeitung und das Überprüfen von Kundencodes gemäß den regionalen Datenschutzanforderungen.

Diese Maßnahmen sorgen für eine sichere, konforme und effiziente Codeüberprüfung, die die Privatsphäre und Integrität Ihrer Daten gewährleistet.

Einschränkungen (öffentliche Vorschau)

Während der öffentlichen Vorschau gelten die folgenden Einschränkungen.

  • Keine binäre Überprüfung: Nur Code (SAST) und IaC-Scantools werden ausgeführt.
  • Scanhäufigkeit: Es überprüft Repositorys nach Aktivierung und dann täglich.
  • Repositorygröße: Die Überprüfung ist auf Repositorys unter 1 GB beschränkt.
  • Branch-Abdeckung: Scans decken nur die Standardverzweigung (in der Regel main) ab.
  • Toolanpassung: Überprüfungstools können nicht angepasst werden.

Syft (SBOM) hat derzeit die folgenden Einschränkungen:

  • SBOMs können nicht heruntergeladen werden, die Ergebnisse von Syft können verwendet werden, um bestimmte Pakete und die Repositorys abzufragen, die sie verwenden.

  • Repository benötigt eine Sperrdatei, andernfalls werden nur direkte Abhängigkeiten gefunden.

  • Die SBOM-Größenbeschränkung ist auf 1 MB beschränkt. Wenn viele Pakete identifiziert werden, schlägt unsere Aufnahme in die Cloud-Karte fehl.

  • DIE SBOM-Aktivierung ist nicht konfigurierbar oder herunterladbar. Bei jedem agentenlosen Scan wird ein SBOM generiert.

  • Timeout ist auf 15 Minuten festgelegt, damit das SBOM-Tool ausgeführt werden kann.

  • Durch das Deaktivieren von Agentless werden die SBOM-Empfehlungen nicht gelöscht.