Erstellen von detectionRule

Namespace: microsoft.graph.security

Wichtig

Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.

Erstellen Sie ein neues detectionRule-Objekt .

Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Weltweiter Service US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.

Berechtigungstyp Berechtigungen mit den geringsten Berechtigungen Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto) CustomDetection.ReadWrite.All Nicht verfügbar.
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt Nicht unterstützt
Application CustomDetection.ReadWrite.All Nicht verfügbar.

Wichtig

Für den delegierten Zugriff mithilfe von Geschäfts-, Schul- oder Unikonten muss dem angemeldeten Benutzer eine Rolle zugewiesen werden, die die für diesen Vorgang erforderlichen Berechtigungen gewährt. Benutzerdefinierte Erkennungsregeln verwenden das Microsoft Defender XDR RBAC-Modell (Unified Role-Based Access Control, rollenbasierte Zugriffssteuerung). Die folgenden Rollen werden unterstützt:

  • Erkennungsoptimierung (Verwalten): Eine Microsoft Defender XDR einheitliche RBAC-Berechtigung, die zugriff auf Erkennungen im Microsoft Defender-Portal verwaltet, einschließlich benutzerdefinierter Erkennungen, Warnungsoptimierung und Bedrohungsindikatoren für Gefährdung.
  • Sicherheitsadministrator: Eine Microsoft Entra Rolle, die Verwaltungsberechtigungen für Microsoft Defender Portale und Dienste gewährt.
  • Sicherheitsoperator: Eine Microsoft Entra Rolle. Ausreichend für die Verwaltung benutzerdefinierter Erkennungsregeln nur, wenn die rollenbasierte Zugriffssteuerung in Microsoft Defender for Endpoint deaktiviert ist. Wenn RBAC konfiguriert ist, ist auch die Berechtigung Sicherheitseinstellungen verwalten für Defender für Endpunkt erforderlich.

Möglicherweise sind zusätzliche workloadspezifische Berechtigungen erforderlich, um Regeln zu verwalten, die auf Daten aus bestimmten Defender-Workloads abzielen (z. B. Defender für Endpunkt, Defender für Office 365). Weitere Informationen finden Sie unter Erforderliche Berechtigungen zum Verwalten benutzerdefinierter Erkennungen.

HTTP-Anforderung

POST /security/rules/detectionRules

Anforderungsheader

Name Beschreibung
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über Authentifizierung und Autorisierung.
Content-Type application/json. Erforderlich.

Anforderungstext

Geben Sie im Anforderungstext eine JSON-Darstellung des Objekts microsoft.graph.security.detectionRule an .

Sie können die folgenden Eigenschaften und Beziehungen angeben, wenn Sie eine detectionRule erstellen.

Eigenschaft Typ Beschreibung
description Zeichenfolge Eine vom Benutzer bereitgestellte Beschreibung der Erkennungsregel. Optional.
detectionAction microsoft.graph.security.detectionAction Die Aktionen, die ausgeführt werden, wenn eine Erkennung durch diese Regel durchgeführt wird, einschließlich der erstellten Warnung und aller automatisierten Reaktionsaktionen. Optional.
displayName Zeichenfolge Der Anzeigename der Regel. Erforderlich.
id Zeichenfolge Der vom Client bereitgestellte eindeutige Bezeichner der Regel. Erforderlich.
isEnabled Boolescher Wert Veraltet. Verwenden Sie stattdessen status. Die isEnabled Eigenschaft wird am 01.10.2026 aus dieser Ressource entfernt. Optional.
Querycondition microsoft.graph.security.queryCondition Die erweiterte Huntingabfrage, die die Erkennungslogik dieser Regel definiert. Erforderlich.
Zeitplan microsoft.graph.security.ruleSchedule Der auslösende Zeitplan dieser Regel. Erforderlich.
status microsoft.graph.security.detectionRuleStatus Die aktuelle Ausführung status der Regel. Mögliche Werte sind: enabled, disabled, autoDisabled, unknownFutureValue. Erforderlich.

Antwort

Bei erfolgreicher Ausführung gibt die Methode den 201 Created Antwortcode und ein microsoft.graph.security.detectionRule-Objekt im Antworttext zurück.

Beispiele

Anforderung

Das folgende Beispiel zeigt eine Anfrage.

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"
            }
          ]
        }
      ]
    }
  }
}

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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"
        }
      ]
    }
  }
}