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. Es überprüft automatisch Code, Open-Source-Abhängigkeiten und Infrastruktur-as-Code (IaC), um Sicherheitsrisiken und Fehlkonfigurationen zu identifizieren. Sie müssen keine Build- oder Bereitstellungspipelines ändern. Dieser Ansatz vereinfacht die Einrichtung und Wartung mit einem einzigen Azure DevOps oder GitHub Connector und bietet umfassende Abdeckung, kontinuierliche Erkenntnisse und umsetzbare Sicherheitsergebnisse. Damit können Sicherheits- und Entwicklungsteams sich auf die 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

Bevor Sie die Überprüfung von agentlosem Code aktivieren, stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllen:

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

Agentlose Codeüberprüfung in Microsoft Defender for Cloud bietet die folgenden Vorteile:

  • 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 Open-Source-Tools, um Sicherheitsrisiken und Fehlkonfigurationen in Code- und Infrastruktur-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 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 (cabal, 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

Agentlose Codeüberprüfung unterstützt die folgenden 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

Agentlose Codeüberprüfung unterstützt die folgenden Programmiersprachen und Abhängigkeitsökosysteme:

  • 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

In der folgenden Tabelle sind die IaC-Plattformen und Dateitypen aufgeführt, die von agentlosen Codeüberprüfungen unterstützt werden:

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 Standarddiagrammstruktur von Helm und 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. Verwenden Sie zum Einrichten der Verbindung eine der folgenden Führungslinien:

Diagramm mit einer animierten Schritt-für-Schritt-Anleitung zur Einrichtung des Connectors für Defender for Cloud, der agentloses Scannen von Code für Azure DevOps und GitHub ermöglicht.

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 Einstellungen für die Überprüfung von agentlosem Code, die Scanneroptionen und benutzerdefinierte Bereichsoptionen für Organisationen, Projekte und Repositorys anzeigen.

  • 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.

    Mit diesen Bereichskonfigurationsoptionen 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 Überprüfungen oder Lücken 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. Analysis: Das System verwendet integrierte Scantools, die Microsoft Defender for Cloud verwaltet und aktualisiert. Diese Tools finden Sicherheitsrisiken und Fehlkonfigurationen in Code- und Infrastruktur-as-Code-Vorlagen (IaC). Das System erstellt außerdem ein SBOM zur Unterstützung von Paketabfragen.

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

  5. Results delivery: Das System zeigt Ergebnisse in Defender for Cloud als Sicherheitsempfehlungen. Ausführliche Informationen finden Sie in der Referenz zu DevOps-Sicherheitsempfehlungen.

Überprüfungshäufigkeit und -dauer

Agentlose Codeüberprüfung verwendet den folgenden Zeitplan:

  • 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

So greifen Sie auf Ergebnisse zu:

  1. Wechseln Sie in Microsoft Defender for Cloud zur Registerkarte „Sicherheitsempfehlungen“: Öffnen Sie die Sicherheitsempfehlungen.

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

  3. Die für beide Plattformen unterstützten Empfehlungen 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

Agentenloses vs. In-Pipeline-Scannen

Agentlose Codeüberprüfung und In-Pipeline-Überprüfung mit der Microsoft Security DevOps-Erweiterung bieten sowohl Sicherheitsüberprüfungen in Azure DevOps als auch GitHub. Sie dienen unterschiedlichen Bedürfnissen und können einander ergänzen. In der folgenden Tabelle sind die wichtigsten Unterschiede zusammengefasst, damit Sie die Option auswählen können, die am besten zu Ihrer Umgebung passt.

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 Dienst für agentloses Codescanning von Microsoft Defender for Cloud hilft Ihnen, Ihren Code mit Datensicherheits- und Datenschutzkontrollen zu schützen:

  • 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 werden in derselben Region wie Ihre Azure DevOps- und GitHub-Konnektoren ausgeführt (USA oder EU), um Datenschutzanforderungen zu erfüllen. Das System verarbeitet Code während der Überprüfung und löscht ihn dann sicher. Es behält keinen langfristigen Codespeicher bei.
  • Zugriff auf Repositorys: Der Dienst generiert ein sicheres Zugriffstoken für Azure DevOps und GitHub zum Ausführen von Scans. Mit diesem Token kann der Dienst erforderliche Metadaten und Code abrufen, ohne Ressourcen in Ihrem Abonnement zu erstellen. Nur Defender for Cloud Komponenten können diesen Zugriff verwenden.
  • Compliance-Support: Der Dienst richtet sich an regulatorische und sicherheitsrelevante Standards für die Datenverarbeitung und den Datenschutz, um eine sichere, regionale Verarbeitung von Kundencode zu unterstützen.

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: Agentlose Codeüberprüfung scannt Repositorys, wenn Sie das Feature aktivieren und dann einmal pro Tag.
  • Repositorygröße: Agentlose Codeüberprüfung unterstützt Repositorys unter 1 GB.
  • 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. Sie können Syft-Ergebnisse abfragen, um bestimmte Pakete und die Repositorys zu finden, die sie verwenden. Anleitungen finden Sie unter Software-Stückliste abfragen.

  • Ein 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. Ein SBOM wird für jeden agentlosen Scan generiert.

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

  • Durch deaktivieren der agentlosen Codeüberprüfung werden die SBOM-Empfehlungen nicht gelöscht.

Nächste Schritte