命名空间: microsoft.graph.security
创建新的 detectionRule 对象。
权限
为此 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 | 客户端提供的规则的唯一标识符。 必填。 |
| 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/v1.0/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/v1.0/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"
}
]
}
}
}