Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Defender CLI ist ein Kommandozeilen-Tool für MDASH und andere Sicherheitsscanner in Microsoft Defender. Es verwendet ein multimodellbasiertes, agentisches KI-System, um Sicherheits- und Entwicklungsteams bei der Erkennung und Behebung von Code-Schwachstellen zu helfen. Über die Defender CLI können Sie agentische Codescans durchführen und Fixes lokal oder in CI/CD-Pipelines anwenden. Die Defender CLI wird als eigenständige ausführbare Datei für Windows, macOS und Linux verteilt.
Voraussetzungen
- Die Defender CLI unterstützt zwei Authentifizierungsmethoden: Die Verwendung der app-basierten Authentifizierung für CI/CD-Pipelines und andere nicht-interaktive Automatisierungen sowie die interaktive Authentifizierung für lokale Terminalscans durch angemeldete Nutzer. Die erforderlichen Berechtigungen hängen von Ihrer Authentifizierungsmethode ab. Für Details siehe Defender CLI-Einrichtung für agentische Code-Sicherheit.
- Setze die Variablen der Tenant-Umgebung, wie zum Beispiel
DEFENDER_ASPM_TENANT_ID. Die erforderlichen Variablen hängen von der verwendeten Authentifizierungsmethode ab. Für Details siehe Defender CLI-Einrichtung für agentische Code-Sicherheit. - Ein lokaler Klon des Repositorys, das Sie überprüfen möchten.
Installieren Defender CLI
Laden Sie die CLI-Binärdatei für Ihre Plattform herunter:
# Windows x64
Invoke-WebRequest `
-Uri "https://cli.dfd.security.azure.com/public/v2/latest/Defender_win-x64.exe" `
-OutFile "defender.exe"
Scannen
Standardmäßig laufen die Scans asynchron. Das bedeutet, dass der Scanner beim Einreichen eines Scans nicht wartet, bis er fertig ist. Es wird sofort beendet und gibt dir eine Job ID zurück. Die Job-ID dient als persistente Referenz, die anschließend verwendet werden kann, um Scan-Ergebnis-Artefakte herunterzuladen, den Auftrag abzubrechen, auf den Abschluss des Auftrags zu warten oder den aktuellen Status abzufragen.
Ersetzen Sie in den folgenden Befehlen den <TARGET_SOURCE> Platzhalter durch einen der Pfade zu Ihrem Ziel-Quellcodeverzeichnis, zum Beispiel my-code\project1. Wenn du die Defender-CLI aus dem Verzeichnis deines Codes ausführst, verweis . auf das aktuelle Verzeichnis.
# Step 1: Submit and get a job ID
./defender scan ai-scan submit <TARGET_SOURCE>
# Output: Job submitted: <JOB_ID>
# Step 2: Check job status
./defender status <JOB_ID>
# Step 3: (Optional) Wait for completion and download results
./defender status wait <JOB_ID> -o results.sarif
Scannen mit einem Scanprofil (Vorschau)
Ein Scanprofil wählt aus, welche KI-Modelle Ihren Scan ausführen. Zwei Profile sind verfügbar:
| Profile | Modelle | Verwenden Sie, wenn |
|---|---|---|
gpt-general-profile |
GPT-5.4, GPT-5.3-Codex, GPT-5.4-Mini | Allgemein einsetzbares agentenbasiertes Code-Scanning (das Basismodell-Set). |
mai-augmented-profile (Vorschau) |
GPT-5.4, GPT-5.3-Codex, GPT-5.4-Mini + MAI-Cyber-1-Flash | Sie möchten, dass die Basismodelle mit dem cyber-spezialisierten MAI-Cyber-1-Flash-Modell erweitert werden. |
Sehen Sie sich verfügbare Profile und die aktuelle Standardeinstellung an:
./defender scan profile model list
./defender scan profile model show-default
Führen Sie eine Überprüfung mit einem bestimmten Profil aus (setzt die Standardeinstellung nur für diese Überprüfung außer Kraft):
# Baseline profile:
./defender scan ai-scan submit <TARGET_SOURCE> --model-profile gpt-general-profile
# MAI-augmented profile:
./defender scan ai-scan submit <TARGET_SOURCE> --model-profile mai-augmented-profile
Filtern nach Schweregrad
Bei der Einreichung eines Scans können Sie die zurückgegebenen Ergebnisse auf höchste und kritische Schweregrade beschränken. Dies beschränkt die Produktion auf die größten Risiken, beschleunigt die Triage und hilft den Teams, die Sanierung dort zu priorisieren, wo es am wichtigsten ist. Verwenden Sie das Flag, --severity um die Schwelle mit akzeptierten Werten wie low (Standard), medium, , highoder criticalfestzulegen.
./defender scan ai-scan submit <TARGET_SOURCE> --severity high
Aufträge verwalten
Der Defender CLI-Befehl status bietet einen schnellen Zugriff auf die von Codename MDASH verfolgt werdenden Jobs. Es ermöglicht Ihnen, alle aktuell verfolgt werdenden Jobs aufzulisten, Details für einen bestimmten Auftrag einzusehen, SARIF-Dateien zu blockieren und herunterzuladen, den SARIF für einen bestimmten Durchlauf erneut herunterzuladen und mehr.
./defender status # List all tracked jobs
./defender status <JOB_ID> # Show details of a job
./defender status result <JOB_ID> # Download a finished report
./defender status log <JOB_ID> # Print the path of the auto-saved debug log for a run
Laden Sie das Ergebnis herunter
Die Scans laufen standardmäßig asynchron und dauern einige Zeit, bis sie abgeschlossen sind. Anstatt den Jobstatus wiederholt zu überprüfen, wartet der wait Befehl, bis der Job abgeschlossen ist, und lädt die Ergebnisse in eine SARIF-Datei herunter. Details finden Sie unter Überprüfen von agentischen Codescan-Ergebnissen vom Terminal.
Der folgende Befehl wartet, bis der Scan <JOB_ID> abgeschlossen ist, und speichert dann die Ergebnisse auf results.sarif:
./defender status wait <JOB_ID> -o results.sarif
Das Ergebnis erneut herunterladen
Sobald ein Job einen Terminalzustand erreicht hat (abgeschlossen oder fehlgeschlagen), laden Sie seine Ergebnisse mit dem untenstehenden Befehl herunter. Dieser Befehl ist besonders nützlich, wenn du die lokale SARIF-Datei gelöscht hast, der ursprüngliche wait Befehl vor Fertigstellung unterbrochen wurde oder du den Job von einer Maschine abgegeben hast, aber die Ergebnisse von einer anderen abrufen möchtest. Ersetzen Sie <JOB_ID> durch Ihre tatsächliche Job-ID.
./defender status result <JOB_ID>
Auftrag abbrechen
Durch das Abbrechen eines Scans werden keine Token erstattet, die bereits verbraucht wurden. Während einer Überprüfung führt MDASH Live-LLM-Aufrufe aus, die während der Verarbeitung Token verbrauchen. Wenn Sie einen bereits laufenden Scan abbrechen, plant MDASH keine neuen Aufgaben mehr ein, Ihnen werden jedoch weiterhin alle Token berechnet, die verbraucht wurden, bevor der Abbruch wirksam wird. Das Abbrechen eines Scans kann den zusätzlichen Tokenverbrauch durch zukünftige Verarbeitung verhindern, bereits verbrauchte Tokens werden jedoch nicht erstattet.
./defender status cancel <JOB_ID>
Problembehandlung
Bei der Fehlerbehebung von Defender-CLI-Problemen können Administratoren oder Support-Teams Sie bitten, das automatisch gespeicherte Protokoll bereitzustellen, um das Problem zu diagnostizieren. Um den Logpfad für einen bestimmten Durchlauf zu finden, verwenden Sie auf derselben Maschine, auf der der Scan stattfand, den folgenden Befehl und ersetzen <JOB_ID> sie durch die Job-ID des Scans.
./defender status log <JOB_ID>
Bei der Fehlersuche unerwarteter CLI-Verhaltensweisen besteht eine Möglichkeit darin, den Befehl mit einem höheren Log-Level erneut auszuführen, wie z. B. Debug, was detailliertere Diagnoseausgaben als die Standard-Info-Ebene anzeigt. Das kann Ihnen helfen, die Ursache zu identifizieren. Dieser Ansatz funktioniert jedoch nur, wenn du das Problem durch erneutes Ausführen des Befehls reproduzieren kannst. Um das folgende Beispiel für Ihr Szenario anzupassen:
- Ersetze den
<failing-command>Platzhalter durch den Befehl, der fehlschlägt. Beispiel:scan ai-scan submit . - Setzen Sie
--log-levelauf den entsprechenden Wert. Erwartungswerte:trace,debug,info(Standard),warn,error. - Optional können Sie
--log-fileauf einen Dateipfad setzen. Wenn dieses Flag verwendet wird, schreibt die CLI die Debug-Ausgabe in die angegebene Datei, anstatt sie nur in der Konsole anzuzeigen.
./defender <failing-command> --log-level debug --log-file ./defender-debug.log
Wenn zum Beispiel ein Scan fehlschlägt, führen Sie den Befehl erneut aus und fügen Sie das --log-level Flag wie folgt dem Befehl hinzu:
./defender scan ai-scan submit <TARGET_SOURCE> --log-level debug