创建 detectionRule

命名空间:microsoft.graph.security

重要

Microsoft Graph /beta 版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。

创建新的 detectionRule 对象。

此 API 可用于以下国家级云部署

全局服务 美国政府 L4 美国政府 L5 (DOD) 由世纪互联运营的中国

权限

为此 API 选择标记为最低特权的权限。 只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考

权限类型 最低特权权限 更高特权权限
委派(工作或学校帐户) CustomDetection.ReadWrite.All 不可用。
委派(个人 Microsoft 帐户) 不支持。 不支持。
应用程序 CustomDetection.ReadWrite.All 不可用。

重要

对于使用工作或学校帐户的委派访问权限,必须为已登录用户分配授予此操作所需权限的角色。 自定义检测规则使用Microsoft Defender XDR统一的基于角色的访问控制 (RBAC) 模型。 支持以下角色:

  • 检测优化 (管理) - 一种Microsoft Defender XDR统一 RBAC 权限,授予对Microsoft Defender门户中检测的管理访问权限,包括自定义检测、警报优化和泄露威胁指示器。
  • 安全管理员 - 授予跨Microsoft Defender门户和服务管理权限的Microsoft Entra角色。
  • 安全操作员 - Microsoft Entra角色。 仅当Microsoft Defender for Endpoint中关闭基于角色的访问控制时,才足以管理自定义检测规则。 如果配置了 RBAC,还需要 Defender for Endpoint 的管理 安全设置 权限。

可能需要其他特定于工作负载的权限来管理针对特定 Defender 工作负载的数据的规则, (例如 Defender for Endpoint、Defender for Office 365) 。 有关详细信息,请参阅 管理自定义检测所需的权限

HTTP 请求

POST /security/rules/detectionRules

请求标头

名称 说明
Authorization 持有者 {token}。 必填。 详细了解 身份验证和授权
Content-Type application/json. 必需。

请求正文

在请求正文中,提供 microsoft.graph.security.detectionRule 对象的 JSON 表示形式。

创建 detectionRule 时,可以指定以下属性和关系。

属性 类型 说明
说明 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 规则的当前运行状态。 可能的值包括 enableddisabledautoDisabledunknownFutureValue。 必填。

响应

如果成功,此方法在 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": "[email protected]",
  "createdDateTime": "2026-05-25T10:15:00Z",
  "lastModifiedBy": "[email protected]",
  "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"
        }
      ]
    }
  }
}