Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La ligne de commande Defender est un outil en ligne de commande pour MDASH et d’autres scanners de sécurité dans Microsoft Defender. Il utilise un système d’IA multi-modèles et agentique pour aider les équipes de sécurité et d’ingénierie à détecter et corriger les vulnérabilités du code. Grâce à la CLI Defender, vous pouvez effectuer des scans de code agent et appliquer des correctifs localement ou dans des pipelines CI/CD. La CLI Defender est distribuée comme un exécutable autonome pour Windows, macOS et Linux.
Prerequisites
- Le CLI Defender prend en charge deux méthodes d’authentification : utiliser l’authentification basée sur une application pour les pipelines CI/CD et autres automatisations non interactives, et l’authentification interactive pour les scans locaux des terminaux par les utilisateurs connectés. Les autorisations dont vous avez besoin dépendent de votre méthode d’authentification. Pour plus de détails, voir la configuration de la CLI Defender pour la sécurité du code agent.
- Définissez la variable d’environnement du tenant, par exemple
DEFENDER_ASPM_TENANT_ID. Les variables requises dépendent de la méthode d’authentification que vous utilisez. Pour plus de détails, voir la configuration de la CLI Defender pour la sécurité du code agent. - Clone local du référentiel que vous souhaitez analyser.
Installer Defender CLI
Téléchargez le fichier binaire CLI pour votre plateforme :
# Windows x64
Invoke-WebRequest `
-Uri "https://cli.dfd.security.azure.com/public/v2/latest/Defender_win-x64.exe" `
-OutFile "defender.exe"
Numériser
Par défaut, les scans s’exécutent de manière asynchrone. Cela signifie que lorsque vous soumettez un scan, le scanner n’attend pas qu’il se termine. Il sort immédiatement et vous rend un ID de poste. L’ID de la tâche sert de référence persistante qui peut ensuite être utilisée pour télécharger les artefacts des résultats de la numérisation, annuler la tâche, attendre la fin de la tâche ou interroger son statut actuel.
Dans les commandes suivantes, remplacez l’espace réservé <TARGET_SOURCE> par l’un des chemins vers votre répertoire de code source cible, par exemple my-code\project1. Si vous exécutez la CLI Defender depuis le répertoire de votre code, utilisez . pour vous référer au répertoire actuel.
# 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
Numériser avec une configuration de numérisation (Aperçu)
Une configuration de scan permet de sélectionner quels modèles d’IA effectuent votre scan. Deux configuations sont disponibles :
| Configuration | Models | À utiliser lorsque |
|---|---|---|
Standard |
GPT-5.4, GPT-5.3-Codex, GPT-5.4-Mini | Analyse de code agentique polyvalente (configuration standard). |
mai-cyber (préversion) |
GPT-5.4, GPT-5.3-Codex, GPT-5.4-Mini + MAI-Cyber-1-Flash | Vous souhaitez que les modèles de référence soient enrichis avec le modèle MAI-Cyber-1-Flash spécialisé en cybersécurité. |
Voir les configurations disponibles et les paramètres par défaut actuels :
./defender scan profile model list
./defender scan profile model show-default
Effectuez un scan avec une configuration spécifique (qui supprime la norme par défaut uniquement pour ce scan) :
# Standard:
./defender scan ai-scan submit <TARGET_SOURCE> --model-profile standard
# May Cyber:
./defender scan ai-scan submit <TARGET_SOURCE> --model-profile mai-cyber
Filtrer par gravité
Lors de la soumission d’un scan, vous pouvez limiter les résultats retournés aux résultats de gravité élevée et critique uniquement. Cela réduit la sortie aux problèmes qui présentent le plus grand risque, accélérant ainsi le tri et aidant les équipes à prioriser la remédiation là où cela compte le plus. Utilisez le drapeau --severity pour définir le seuil, avec les valeurs acceptées de low (par défaut), medium, high, ou critical.
./defender scan ai-scan submit <TARGET_SOURCE> --severity high
Gérer les tâches
La commande Defender CLI status permet un accès rapide aux tâches suivies par Codename MDASH. Il vous permet de lister tous les emplois actuellement suivis, de consulter les détails d’un travail spécifique, de bloquer et télécharger un fichier SARIF, de retélécharger le SARIF pour une exécution donnée, et plus encore.
./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
Téléchargez le résultat
Les scans s’exécutent de manière asynchrone par défaut et prennent un certain temps à être terminés. Au lieu de vérifier à plusieurs reprises le statut de la tâche, la wait commande attend que la tâche soit terminée et télécharge les résultats dans un fichier SARIF. Pour plus de détails, voir Consulter les résultats de l’analyse du code agentique depuis le terminal.
La commande suivante attend la fin du scan <JOB_ID> , puis enregistre les résultats sur results.sarif:
./defender status wait <JOB_ID> -o results.sarif
Retéléchargez le résultat
Une fois qu’une tâche a atteint un état terminal (complété ou échoué), téléchargez ses résultats à l’aide de la commande ci-dessous. Cette commande est particulièrement utile si vous avez effacé le fichier SARIF local, si la commande originale wait a été interrompue avant qu’elle ne soit terminée, ou si vous avez soumis la tâche depuis une machine mais souhaitez récupérer les résultats d’une autre. Remplacez-le <JOB_ID> par votre véritable ID de poste.
./defender status result <JOB_ID>
Annuler le travail
L’annulation d’une analyse ne rembourse pas les jetons qui ont déjà été consommés. Lors d’une analyse, MDASH effectue des appels en direct à un LLM qui consomment des tokens au fur et à mesure du traitement. Si vous annulez une analyse déjà en cours d’exécution, MDASH arrête la planification du nouveau travail, mais vous êtes toujours facturé pour tous les jetons consommés avant que l’annulation ne prenne effet. L’annulation d’une analyse peut empêcher toute consommation supplémentaire de jetons pour les opérations à venir, mais elle ne rembourse pas les jetons qui ont déjà été utilisés.
./defender status cancel <JOB_ID>
Résolution des problèmes
Lors du dépannage de problèmes de la ligne de commande Defender, les administrateurs ou les équipes de support peuvent vous demander de fournir le journal sauvegardé automatiquement pour aider à diagnostiquer le problème. Pour trouver le chemin du journal pour une exécution spécifique, utilisez la commande suivante sur la même machine où le scan a eu lieu, en remplaçant <JOB_ID> par l’ID de la tâche du scan.
./defender status log <JOB_ID>
Lors de la résolution de problèmes de comportement inattendu de la CLI, une option est de relancer la commande avec un niveau de journal supérieur, comme debug, qui fait apparaître une sortie de diagnostic plus détaillée que le niveau d’information par défaut. Cela peut vous aider à identifier la cause. Cependant, cette approche ne fonctionne que si vous pouvez reproduire le problème en relançant la commande. Pour adapter l’exemple ci-dessous à votre scénario :
- Remplacez l’espace réservé
<failing-command>par la commande qui échoue. Par exemple :scan ai-scan submit . - Réglez
--log-levelau niveau approprié. Valeurs attendues :trace,debug,info(par défaut),warn,error. - Optionnellement, définissez
--log-filesur un chemin de fichier. Lorsque cette option est utilisée, la CLI écrit la sortie de débogage dans le fichier spécifié au lieu de l’afficher uniquement dans la console.
./defender <failing-command> --log-level debug --log-file ./defender-debug.log
Par exemple, si un balayage échoue, relancez la commande et ajoutez le drapeau --log-level à la commande comme suit :
./defender scan ai-scan submit <TARGET_SOURCE> --log-level debug