Crear regla de detección

Espacio de nombres: microsoft.graph.security

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Crea un nuevo objeto detectionRule .

Esta API está disponible en las siguientes implementaciones en la nube nacional.

Servicio global Administración pública de EE. UU. Gobierno de EE. UU. L5 (DOD) China operado por 21Vianet
✅ ❌ ❌ ❌

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use uno o varios permisos con privilegios más altos solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) CustomDetection.ReadWrite.All No disponible.
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación CustomDetection.ReadWrite.All No disponible.

Importante

Para el acceso delegado con cuentas profesionales o educativas, se debe asignar al usuario que ha iniciado sesión un rol que conceda los permisos necesarios para esta operación. Las reglas de detección personalizadas usan el modelo de control de acceso basado en roles unificado (RBAC) de Microsoft Defender XDR. Se admiten los siguientes roles:

  • Ajuste de detección (administrar): un permiso RBAC unificado de Microsoft Defender XDR que concede acceso de administración a las detecciones en el portal de Microsoft Defender, incluidas las detecciones personalizadas, el ajuste de alertas y los indicadores de amenaza de riesgo.
  • Administrador de seguridad: rol de Microsoft Entra que concede permisos de administración en los portales y servicios de Microsoft Defender.
  • Operador de seguridad: un rol de Microsoft Entra. Suficiente para administrar reglas de detección personalizadas solo cuando el control de acceso basado en roles está desactivado en Microsoft Defender para punto de conexión. Si RBAC está configurado, también se requiere el permiso Administrar configuración de seguridad para Defender para punto de conexión.

Es posible que se requieran permisos específicos de la carga de trabajo adicionales para administrar reglas que se destinan a datos de cargas de trabajo específicas de Defender (por ejemplo, Defender para punto de conexión, Defender para Office 365). Para obtener más información, consulta Permisos necesarios para administrar detecciones personalizadas.

Solicitud HTTP

POST /security/rules/detectionRules

Encabezados de solicitud

Nombre Descripción
Authorization {token} de portador. Obligatorio. Obtenga más información sobre autenticación y autorización.
Content-Type application/json. Obligatorio.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione una representación JSON del objeto microsoft.graph.security.detectionRule .

Puedes especificar las siguientes propiedades y relaciones al crear un detectionRule.

Propiedad Tipo Descripción
description Cadena Una descripción proporcionada por el usuario de la regla de detección. Opcional.
detectionAction microsoft.graph.security.detectionAction Las acciones que se realizan cuando esta regla realiza una detección, incluida la alerta que se crea y las acciones de respuesta automatizadas. Opcional.
displayName String Nombre para mostrar de la regla. Necesario.
id Cadena Identificador único de la regla proporcionado por el cliente. Obligatorio.
isEnabled Boolean Obsoleto. Use estado en su lugar. La isEnabled propiedad se eliminará de este recurso el 2026-10-01. Opcional.
queryCondition microsoft.graph.security.queryCondition La consulta de búsqueda avanzada que define la lógica de detección de esta regla. Obligatorio.
schedule microsoft.graph.security.ruleSchedule La programación desencadenante de esta regla. Obligatorio.
status microsoft.graph.security.detectionRuleStatus El estado de ejecución actual de la regla. Los valores posibles son: enabled, disabled, autoDisabled y unknownFutureValue Obligatorio.

Respuesta

Si se realiza correctamente, este método devuelve un 201 Created código de respuesta y un objeto microsoft.graph.security.detectionRule en el cuerpo de la respuesta.

Ejemplos

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

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