Создать detectionRule

Пространство имен: microsoft.graph.security

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Создание нового объекта detectionRule .

Этот API доступен в следующих национальных облачных развертываниях.

Глобальное обслуживание Правительство США L4 Правительство США L5 (DOD) Китай, обслуживаемый 21Vianet

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более высокий уровень привилегий или разрешений, только если это требуется вашему приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в статье Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшим объемом привилегий Разрешения с более высоким уровнем привилегий
Делегированные (рабочая или учебная учетная запись) CustomDetection.ReadWrite.All Недоступно.
Делегированные (личная учетная запись Майкрософт) Не поддерживается. Не поддерживается.
Приложение CustomDetection.ReadWrite.All Недоступно.

Важно!

Для делегированного доступа с помощью рабочих или учебных учетных записей вошедшему пользователю должна быть назначена роль, которая предоставляет разрешения, необходимые для этой операции. Пользовательские правила обнаружения используют модель единого управления доступом на основе ролей (RBAC) Microsoft Defender XDR. Поддерживаются следующие роли:

  • Настройка обнаружения (управление)унифицированное разрешение RBAC для Microsoft Defender XDR, предоставляющее управление доступом к обнаружениям на портале Microsoft Defender, включая пользовательские средства обнаружения, настройку оповещений и индикаторы угроз компрометации.
  • Администратор безопасностироль Microsoft Entra, которая предоставляет разрешения на управление порталами и службами Microsoft Defender.
  • Оператор безопасностироль Microsoft Entra. Достаточно для управления пользовательскими правилами обнаружения, только если в Microsoft Defender для конечной точки отключено управление доступом на основе ролей. Если настроен RBAC, также требуется разрешение " Управление параметрами безопасности " для Defender для конечной точки.

Для управления правилами, нацеленными на данные из определенных рабочих нагрузок Defender (например, Defender для конечной точки, Defender для Office 365), могут потребоваться дополнительные разрешения для конкретных рабочих нагрузок. Дополнительные сведения см. в разделе Необходимые разрешения для управления пользовательскими обнаружениями.

HTTP-запрос

POST /security/rules/detectionRules

Заголовки запросов

Имя Описание
Авторизация Bearer {token}. Обязательно. Дополнительные сведения об аутентификации и авторизации.
Content-Type application/json. Обязательно.

Текст запроса

В тексте запроса укажите JSON-представление объекта microsoft.graph.security.detectionRule .

При создании правила обнаружения можно указать следующие свойства и связи.

Свойство Тип Описание
description String Предоставленное пользователем описание правила обнаружения. Необязательный параметр.
detectionAction microsoft.graph.security.detectionAction Действия, выполняемые при обнаружении этим правилом, включая создаваемое оповещение и любые автоматические ответные действия. Необязательный параметр.
displayName String Отображаемое имя правила. Обязательный.
id String Предоставленный клиентом уникальный идентификатор правила. Обязательно.
isEnabled Boolean Устарело. Вместо этого используйте статус . Собственность isEnabled будет удалена из этого ресурса 2026-10-01. Необязательный параметр.
queryCondition microsoft.graph.security.queryCondition Запрос расширенного поиска, определяющий логику обнаружения этого правила. Обязательно.
schedule microsoft.graph.security.ruleSchedule Расписание срабатывания данного правила. Обязательно.
status microsoft.graph.security.detectionRuleStatus Текущее состояние выполнения правила. Допустимые значения: enabled, disabled, autoDisabled, unknownFutureValue. Обязательно.

Отклик

В случае успеха этот метод возвращает код отклика 201 Created и объект microsoft.graph.security.detectionRule в тексте ответа.

Примеры

Запрос

Ниже показан пример запроса.

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

Отклик

Ниже показан пример отклика.

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

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