Créer detectionRule

Espace de noms : microsoft.graph.security

Importante

Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .

Créez un objet detectionRule .

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme moins privilégiées pour cette API. Utilisez une autorisation ou des autorisations privilégiées plus élevées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, consultez Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez les informations de référence sur les autorisations.

Type d’autorisation Autorisations avec privilèges minimum Autorisations privilégiées plus élevées
Déléguée (compte professionnel ou scolaire) CustomDetection.ReadWrite.All Non disponible.
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application CustomDetection.ReadWrite.All Non disponible.

Importante

Pour l’accès délégué à l’aide de comptes professionnels ou scolaires, l’utilisateur connecté doit se voir attribuer un rôle qui accorde les autorisations requises pour cette opération. Les règles de détection personnalisées utilisent le modèle de contrôle d’accès en fonction du rôle (RBAC) Microsoft Defender XDR unifié. Les rôles suivants sont pris en charge :

  • Réglage de la détection (Gérer) : Microsoft Defender XDR autorisation RBAC unifiée qui accorde un accès géré aux détections dans le portail Microsoft Defender, y compris les détections personnalisées, le réglage des alertes et les indicateurs de menace de compromission.
  • Administrateur de la sécurité : rôle Microsoft Entra qui accorde des autorisations de gestion sur Microsoft Defender portails et services.
  • Opérateur de sécurité : rôle Microsoft Entra. Suffisant pour gérer les règles de détection personnalisées uniquement lorsque le contrôle d’accès en fonction du rôle est désactivé dans Microsoft Defender pour point de terminaison. Si RBAC est configuré, l’autorisation Gérer les paramètres de sécurité pour Defender pour point de terminaison est également requise.

Des autorisations supplémentaires spécifiques à la charge de travail peuvent être nécessaires pour gérer les règles qui ciblent les données de charges de travail Defender spécifiques (par exemple, Defender pour point de terminaison, Defender pour Office 365). Pour plus d’informations, consultez Autorisations requises pour la gestion des détections personnalisées.

Requête HTTP

POST /security/rules/detectionRules

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.
Content-Type application/json. Obligatoire.

Corps de la demande

Dans le corps de la demande, fournissez une représentation JSON de l’objet microsoft.graph.security.detectionRule .

Vous pouvez spécifier les propriétés et relations suivantes lors de la création d’une règle detectionRule.

Propriété Type Description
description String Description fournie par l’utilisateur de la règle de détection. Facultatif.
detectionAction microsoft.graph.security.detectionAction Actions effectuées lorsqu’une détection est effectuée par cette règle, y compris l’alerte créée et toutes les actions de réponse automatisées. Facultatif.
displayName String Nom d’affichage de la règle. Obligatoire.
id String Identificateur unique fourni par le client de la règle. Obligatoire.
isEnabled Boolean Déconseillé. Utilisez status à la place. La isEnabled propriété sera supprimée de cette ressource le 01/10/2026. Facultatif.
queryCondition microsoft.graph.security.queryCondition Requête de repérage avancée qui définit la logique de détection de cette règle. Obligatoire.
planifier microsoft.graph.security.ruleSchedule Planification de déclenchement de cette règle. Obligatoire.
status microsoft.graph.security.detectionRuleStatus Exécution actuelle status de la règle. Les valeurs possibles sont : enabled, disabled, autoDisabled, unknownFutureValue. Obligatoire.

Réponse

Si elle réussit, cette méthode renvoie un 201 Created code de réponse et un objet microsoft.graph.security.detectionRule dans le corps de la réponse.

Exemples

Demande

L’exemple suivant illustre une demande.

POST https://graph.microsoft.com/beta/security/rules/detectionRules
Content-Type: application/json

{
  "@odata.type": "#microsoft.graph.security.detectionRule",
  "id": "office-encoded-powershell",
  "displayName": "Suspicious encoded PowerShell from Office",
  "description": "Detects encoded PowerShell processes launched by Office applications, a common phishing payload pattern.",
  "status": "enabled",
  "queryCondition": {
    "queryText": "DeviceProcessEvents | where InitiatingProcessFileName in~ ('winword.exe','excel.exe','outlook.exe') | where FileName == 'powershell.exe' | where ProcessCommandLine has '-enc'"
  },
  "schedule": {
    "frequency": "PT1H"
  },
  "detectionAction": {
    "alertTemplate": {
      "title": "Suspicious encoded PowerShell from Office",
      "description": "An Office app launched an encoded PowerShell command, which may indicate phishing-driven code execution.",
      "severity": "high",
      "recommendedActions": "Investigate the parent Office document, isolate the device, and review the user's recent email activity.",
      "entityMappings": {
        "accounts": [
          {
            "nameColumn": "AccountName",
            "ntDomainColumn": "AccountDomain",
            "sidColumn": "AccountSid"
          }
        ],
        "hosts": [
          {
            "deviceIdColumn": "DeviceId",
            "nameColumn": "DeviceName"
          }
        ],
        "files": [
          {
            "nameColumn": "FileName",
            "sha1Column": "SHA1",
            "sha256Column": "SHA256"
          }
        ]
      },
      "tactics": [
        {
          "tactic": "Execution",
          "techniques": [
            {
              "technique": "T1059.001"
            }
          ]
        }
      ]
    }
  }
}

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

HTTP/1.1 201 Created
Content-Type: application/json
Location: https://graph.microsoft.com/beta/security/rules/detectionRules/office-encoded-powershell

{
  "@odata.type": "#microsoft.graph.security.detectionRule",
  "id": "office-encoded-powershell",
  "displayName": "Suspicious encoded PowerShell from Office",
  "description": "Detects encoded PowerShell processes launched by Office applications, a common phishing payload pattern.",
  "status": "enabled",
  "createdBy": "alice@contoso.com",
  "createdDateTime": "2026-05-25T10:15:00Z",
  "lastModifiedBy": "alice@contoso.com",
  "lastModifiedDateTime": "2026-05-25T10:15:00Z",
  "queryCondition": {
    "queryText": "DeviceProcessEvents | where InitiatingProcessFileName in~ ('winword.exe','excel.exe','outlook.exe') | where FileName == 'powershell.exe' | where ProcessCommandLine has '-enc'"
  },
  "schedule": {
    "frequency": "PT1H"
  },
  "detectionAction": {
    "alertTemplate": {
      "title": "Suspicious encoded PowerShell from Office",
      "description": "An Office app launched an encoded PowerShell command, which may indicate phishing-driven code execution.",
      "severity": "high",
      "recommendedActions": "Investigate the parent Office document, isolate the device, and review the user's recent email activity.",
      "entityMappings": {
        "accounts": [
          {
            "nameColumn": "AccountName",
            "sidColumn": "AccountSid"
          }
        ]
      },
      "tactics": [
        {
          "tactic": "Execution",
          "techniques": [
            {
              "technique": "T1059.001"
            }
          ]
        }
      ]
    },
    "automatedActions": {
      "isolateDevices": [
        {
          "deviceIdColumn": "DeviceId",
          "isolationType": "full"
        }
      ],
      "initiateInvestigations": [
        {
          "deviceIdColumn": "DeviceId"
        }
      ]
    }
  }
}