seguridad: runHuntingQuery

Espacio de nombres: microsoft.graph.security

Consulta un conjunto especificado de datos de eventos, actividades o entidades compatibles con Microsoft 365 Defender para buscar de forma proactiva amenazas específicas en su entorno.

Este método es para la búsqueda avanzada en Microsoft 365 Defender. Este método incluye una consulta en el Lenguaje de consulta Kusto (KQL). Especifica una tabla de datos en el esquema de búsqueda avanzada y una secuencia canalizada de operadores para filtrar o buscar esos datos y dar formato al resultado de la consulta de maneras específicas.

Obtenga más información sobre cómo buscar amenazas en dispositivos, correos electrónicos, aplicaciones e identidades. Obtenga más información sobre KQL.

Para obtener información sobre el uso de la búsqueda avanzada en el portal de Microsoft 365 Defender, consulte Búsqueda proactiva de amenazas con la búsqueda avanzada en Microsoft 365 Defender.

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) ThreatHunting.Read.All No disponible.
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación ThreatHunting.Read.All No disponible.

Solicitud HTTP

POST /security/runHuntingQuery

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.

Nota:

Si usa caracteres no ANSI en la consulta, por ejemplo, para consultar asuntos de correo electrónico con caracteres mal formados o similares, úselos application/json; charset=utf-8 para el encabezado Content-Type.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione un objeto JSON con la Query propiedad y, opcionalmente, incluya las Timespan propiedades and workspaceId .

Parámetro Tipo Descripción Ejemplo
Consulta Cadena Obligatorio. La consulta de búsqueda en el Lenguaje de consulta Kusto (KQL). Para obtener más información, consulte la referencia rápida de KQL.
Intervalo de tiempo Cadena Opcional. El intervalo de tiempo durante el cual consultar datos, en formato ISO 8601. El valor predeterminado es 30 días, lo que significa que si no se especifica startTime, la consulta mirará hacia atrás dentro de 30 días. Si se especifica un filtro de tiempo tanto en la consulta como en el parámetro startTime, se aplica el intervalo de tiempo más corto. Por ejemplo, si la consulta tiene un filtro de los últimos siete días y el valor startTime es de hace 10 días, la consulta solo retrospectivo hace siete días.
workspaceId Guid Opcional. El GUID de un área de trabajo de Log Analytics específica a la que se va a dirigir. Si se omite, el servicio usa el área de trabajo principal del autor de la llamada. Si no se encuentra el área de trabajo o no se puede acceder a ella, el servicio vuelve al área de trabajo principal del autor de la llamada. 00000000-0000-0000-0000-000000000001

Los siguientes ejemplos muestran los formatos posibles para el Timespan parámetro:

  • Fecha/Fecha: "2024-02-01T08:00:00Z/2024-02-15T08:00:00Z": fechas de inicio y finalización.
  • Duración/endDate: "P30D/2024-02-15T08:00:00Z" - Un período antes de la fecha de finalización.
  • Inicio/duración: "2024-02-01T08:00:00Z/P30D": fecha de inicio y duración.
  • ISO8601 duración: "P30D" - Duración desde ahora hacia atrás.
  • Fecha y hora única: "2024-02-01T08:00:00Z": hora de inicio con la hora de finalización predeterminada en la hora actual.

Respuesta

Si se realiza correctamente, esta acción devuelve un código de respuesta y un 200 OKhuntingQueryResults en el cuerpo de la respuesta.

Ejemplos

Ejemplo 1: Consulta con intervalo de tiempo predeterminado

Solicitud

En el ejemplo siguiente se especifica una consulta KQL y se realiza lo siguiente:

  • Busca en la tabla DeviceProcessEvents en el esquema de búsqueda avanzada.
  • Se filtra según la condición de que el proceso de powershell.exe inicie el evento.
  • Especifica la salida de tres columnas de la misma tabla para cada fila: Timestamp, FileName, InitiatingProcessFileName.
  • Ordena la salida por el Timestamp valor.
  • Limita la salida a dos registros (dos filas).
POST https://graph.microsoft.com/v1.0/security/runHuntingQuery

{
    "Query": "DeviceProcessEvents | where InitiatingProcessFileName =~ \"powershell.exe\" | project Timestamp, FileName, InitiatingProcessFileName | order by Timestamp desc | limit 2"
}

Respuesta

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.security.huntingQueryResults",
    "schema": [
        {
            "name": "Timestamp",
            "type": "DateTime"
        },
        {
            "name": "FileName",
            "type": "String"
        },
        {
            "name": "InitiatingProcessFileName",
            "type": "String"
        }
    ],
    "results": [
        {
            "Timestamp": "2024-03-26T09:39:50.7688641Z",
            "FileName": "cmd.exe",
            "InitiatingProcessFileName": "powershell.exe"
        },
        {
            "Timestamp": "2024-03-26T09:39:49.4353788Z",
            "FileName": "cmd.exe",
            "InitiatingProcessFileName": "powershell.exe"
        }
    ]
}

Ejemplo 2: Consulta con opcional el parámetro de intervalo de tiempo especificado

Solicitud

En este ejemplo se especifica una consulta de KQL y se examina la tabla deviceProcessEvents en el esquema de búsqueda avanzada hace 60 días.

POST https://graph.microsoft.com/v1.0/security/runHuntingQuery

{
    "Query": "DeviceProcessEvents",
    "Timespan": "P90D"
}

Respuesta

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

HTTP/1.1 200 OK
Content-type: application/json

{
    "schema": [
        {
            "name": "Timestamp",
            "type": "DateTime"
        },
        {
            "name": "FileName",
            "type": "String"
        },
        {
            "name": "InitiatingProcessFileName",
            "type": "String"
        }
    ],
    "results": [
        {
            "timestamp": "2020-08-30T06:38:35.7664356Z",
            "fileName": "conhost.exe",
            "initiatingProcessFileName": "powershell.exe"
        },
        {
            "timestamp": "2020-08-30T06:38:30.5163363Z",
            "fileName": "conhost.exe",
            "initiatingProcessFileName": "powershell.exe"
        }
    ]
}