Conozca el lenguaje de consulta de búsqueda avanzada

La búsqueda avanzada se basa en el lenguaje de consulta Kusto. Puede usar instrucciones y operadores de Kusto para construir consultas que busquen información en un esquema especializado.

Vea este breve vídeo para aprender algunos conceptos básicos del lenguaje de consulta Kusto.

Para entender mejor estos conceptos, ejecute la primera consulta.

Pruebe la primera consulta

En el portal de Microsoft Defender, vaya a Búsqueda para ejecutar la primera consulta. Utilice el ejemplo siguiente:

// Finds PowerShell execution events that could involve a download
union DeviceProcessEvents, DeviceNetworkEvents
| where Timestamp > ago(7d)
// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
 "DownloadFile",
 "DownloadData",
 "DownloadString",
"WebRequest",
"Shellcode",
"http",
"https")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp

Ejecución de esta consulta en la búsqueda avanzada

Se ha agregado un breve comentario al principio de la consulta para describir para qué sirve. Este comentario es útil si luego decide guardar la consulta y compartirla con otras personas de su organización.

// Finds PowerShell execution events that could involve a download

La propia consulta normalmente comenzará con un nombre de tabla seguido de varios elementos que comienzan por una canalización (|). En este ejemplo, comenzamos creando una unión de dos tablas, DeviceProcessEvents y , y DeviceNetworkEventsagregamos elementos canalados según sea necesario.

union DeviceProcessEvents, DeviceNetworkEvents

Establecer el intervalo de tiempo

El primer elemento canalado es un filtro de tiempo con el ámbito de los siete días anteriores. Limitar el intervalo de tiempo ayuda a garantizar que las consultas funcionan bien, devuelven resultados administrables y no agotan el tiempo de espera.

| where Timestamp > ago(7d)

Nota:

Los filtros de hora de Kusto están en UTC independientemente de la zona horaria que haya especificado en la configuración.

Comprobación de procesos específicos

El intervalo de tiempo va seguido inmediatamente de una búsqueda de nombres de archivo de proceso que representan la aplicación de PowerShell.

// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")

Buscar cadenas de comandos específicas

Después, la consulta busca cadenas en las líneas de comandos que se usan normalmente para descargar archivos mediante PowerShell.

// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
    "DownloadFile",
    "DownloadData",
    "DownloadString",
    "WebRequest",
    "Shellcode",
    "http",
    "https")

Personalización de las columnas de resultado y la longitud

Ahora que la consulta identifica claramente los datos que desea localizar, puede definir cómo se ven los resultados. project devuelve columnas específicas y top limita el número de resultados. Estos operadores ayudan a garantizar que los resultados tengan un formato correcto y sean razonablemente grandes y fáciles de procesar.

| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp

Seleccione Ejecutar consulta para ver los resultados.

Sugerencia

Puede ver los resultados de la consulta como gráficos y ajustar rápidamente los filtros. Para obtener instrucciones, lea sobre cómo trabajar con los resultados de la consulta.

Obtenga información sobre los operadores de consulta comunes

Acaba de ejecutar la primera consulta y tiene una idea general de sus componentes. Es el momento de retroceder ligeramente y aprender algunos conceptos básicos. El lenguaje de consulta Kusto que utiliza la búsqueda avanzada es compatible con una gama de operadores, entre ellos los siguientes operadores comunes.

Operador Descripción y uso
where Filtra una tabla hasta llegar al subconjunto de filas que satisfacen un predicado.
summarize Crea una tabla que agrega el contenido de la tabla de entrada.
join Combina las filas de dos tablas para formar una nueva tabla mediante la coincidencia de los valores de la columna o columnas especificadas de cada tabla. Vea Combinación de tablas en KQL para obtener información sobre cómo hacerlo.
count Devuelve el número de registros en el conjunto de registros de entrada.
top Devuelve los primeros N registros ordenados según las columnas especificadas.
limit Devuelve hasta el número de filas especificado.
project Selecciona las columnas que desea incluir, cambia el nombre o elimina e inserta nuevas columnas calculadas.
extend Crea columnas calculadas y las anexa al conjunto de resultados.
makeset Devuelve una matriz dinámica (JSON) del conjunto de valores distintivos que Expr toma en el grupo.
find Busca las filas que coinciden con un predicado en un conjunto de tablas.

Para ver un ejemplo dinámico de estos operadores, ejecútelos desde la sección Comenzar en la búsqueda avanzada.

Comprender los tipos de datos

La búsqueda avanzada admite tipos de datos kusto, incluidos los siguientes tipos comunes:

Tipo de datos Descripción e implicaciones de la consulta
datetime Información sobre datos y hora que representan las marcas de tiempo del evento Consulte los formatos de fecha y hora admitidos
string Cadena de caracteres en UTF-8 entre comillas simples (') o comillas dobles ("). Obtenga más información sobre las cadenas.
bool Este tipo de datos admite trueor falsestates. Consulte los literales y operadores admitidos
int Entero de 32 bits
long Entero de 64 bits

Para obtener más información sobre estos tipos de datos, lea sobre los tipos de datos escalares de Kusto.

Obtener ayuda mientras escribe consultas

Aprovéchese de las funciones siguientes para escribir consultas más rápido:

  • Autouggest : a medida que escribe consultas, la búsqueda avanzada proporciona sugerencias de IntelliSense.
  • Árbol de esquema: se proporciona una representación de esquema que incluye la lista de tablas y sus columnas junto al área de trabajo. Para obtener más información, mueva el puntero sobre un elemento. Haga doble clic en un elemento para insertarlo en el editor de consultas.
  • Referencia de esquema : referencia en el portal con descripciones de tabla y columna, así como tipos de eventos admitidos (ActionType valores) y consultas de ejemplo

Trabajar con varias consultas en el editor

Puede usar el editor de consultas para experimentar con varias consultas. Para usar varias consultas:

  • Separe cada consulta con una línea vacía.

  • Coloque el cursor en cualquier parte de una consulta para seleccionar esa consulta antes de ejecutarla. Esto solo ejecutará la consulta seleccionada. Para ejecutar otra consulta, mueva el cursor en consecuencia y seleccione Ejecutar consulta.

    Ejemplo de ejecución de varias consultas en la página **Nueva consulta** del portal de Microsoft Defender

    Para un área de trabajo más eficaz, también puede usar varias pestañas en la misma página de búsqueda. Seleccione Nueva consulta para abrir una pestaña para la nueva consulta.

    Para abrir una nueva pestaña, seleccione Crear nuevo en búsqueda avanzada en el portal de Microsoft Defender

    A continuación, puede ejecutar consultas diferentes sin abrir nunca una nueva pestaña del explorador.

    Ejecutar consultas diferentes sin salir nunca de la página de búsqueda avanzada en el portal de Microsoft Defender

Nota:

El uso de varias pestañas del explorador con búsqueda avanzada puede hacer que pierda las consultas no guardadas. Para evitar que esto suceda, use la característica de tabulación dentro de la búsqueda avanzada en lugar de pestañas de explorador independientes.

Usar las consultas de ejemplo

La sección Comenzar ofrece algunas consultas sencillas con operadores de uso habitual. Pruebe a ejecutar estas consultas y realizar pequeñas modificaciones en ellas.

La sección **Introducción** de la página **Búsqueda avanzada** del portal de Microsoft Defender

Nota:

Además de los ejemplos de consultas básicas, también puede acceder a consultas compartidas done encontrará escenarios específicos de búsqueda de amenazas. Explore las consultas compartidas en el lado izquierdo de la página o en el repositorio de consultas de GitHub.

Acceso a documentación del lenguaje de consulta

Para más información sobre el lenguaje de consulta Kusto y los operadores compatibles, vaya a la documentación del lenguaje de consulta Kusto.

Nota:

Es posible que algunas tablas de este artículo no estén disponibles en Microsoft Defender para punto de conexión. Active Microsoft Defender XDR para buscar amenazas mediante más orígenes de datos. Puede mover los flujos de trabajo de búsqueda avanzados de Microsoft Defender para punto de conexión a Microsoft Defender XDR siguiendo los pasos descritos en Migración de consultas de búsqueda avanzadas desde Microsoft Defender para punto de conexión.

Sugerencia

¿Desea obtener más información? Participe con la comunidad de Seguridad de Microsoft en nuestra Tech Community: Tech Community de Microsoft Defender XDR.