Criar detectionRule

Namespace: microsoft.graph.security

Importante

As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.

Crie um novo objeto detectionRule .

Essa API está disponível nas seguintes implantações de nuvem nacional.

Serviço global Governo dos EUA L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a(s) permissão(s) marcada(s) como menos privilegiada(s) para essa API. Use uma permissão ou permissões com privilégios mais altos somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões com privilégios mais elevados
Delegado (conta corporativa ou de estudante) CustomDetection.ReadWrite.All Indisponível.
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application CustomDetection.ReadWrite.All Indisponível.

Importante

Para acesso delegado usando contas corporativas ou de estudante, o usuário conectado deve receber uma função que conceda as permissões necessárias para esta operação. As regras de detecção personalizadas usam o modelo de RBAC (controle de acesso baseado em função) unificado do Microsoft Defender XDR. As funções a seguir têm suporte:

  • Ajuste de detecção (Gerenciar) - Uma permissão RBAC unificada do Microsoft Defender XDR que concede acesso gerenciado às detecções no portal do Microsoft Defender, incluindo detecções personalizadas, ajuste de alerta e indicadores de ameaça de comprometimento.
  • Administrador de Segurança – uma função do Microsoft Entra que concede permissões de gerenciamento em portais e serviços do Microsoft Defender.
  • Operador de Segurança – uma função do Microsoft Entra. Suficiente para gerenciar regras de detecção personalizadas somente quando o controle de acesso baseado em função está desativado no Microsoft Defender para Ponto de Extremidade. Se o RBAC estiver configurado, a permissão Gerenciar Configurações de Segurança para Defender para Ponto de Extremidade também será necessária.

Permissões adicionais específicas da carga de trabalho podem ser necessárias para gerenciar regras que direcionam dados de cargas de trabalho específicas do Defender (por exemplo, Defender para Ponto de Extremidade, Defender para Office 365). Para obter mais informações, consulte Permissões necessárias para gerenciar detecções personalizadas.

Solicitação HTTP

POST /security/rules/detectionRules

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type application/json. Obrigatório.

Corpo da solicitação

No corpo da solicitação, forneça uma representação JSON do objeto microsoft.graph.security.detectionRule .

Você pode especificar as propriedades e relacionamentos a seguir ao criar um detectionRule.

Propriedade Tipo Descrição
description Cadeia de caracteres Uma descrição fornecida pelo usuário da regra de detecção. Opcional.
detectionAction microsoft.graph.security.detectionAction As ações tomadas quando uma detecção é feita por essa regra, incluindo o alerta criado e quaisquer ações de resposta automatizadas. Opcional.
displayName Cadeia de caracteres O nome de exibição da regra. Obrigatório.
id Cadeia de caracteres O identificador exclusivo da regra fornecido pelo cliente. Obrigatório.
isEnabled Booliano Depreciado. Em vez disso, use status. A isEnabled propriedade será removida deste recurso em 01/10/2026. Opcional.
queryCondition microsoft.graph.security.queryCondition A consulta de busca avançada que define a lógica de detecção dessa regra. Obrigatório.
Cronograma microsoft.graph.security.ruleSchedule O cronograma de acionamento desta regra. Obrigatório.
status microsoft.graph.security.detectionRuleStatus O status de execução atual da regra. Os valores possíveis são: enabled, disabled, autoDisabled, unknownFutureValue. Obrigatório.

Resposta

Se for bem-sucedido, esse método retornará um código de 201 Created resposta e um objeto microsoft.graph.security.detectionRule no corpo da resposta.

Exemplos

Solicitação

O exemplo a seguir mostra uma solicitação.

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

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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