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
Describir la consulta y especificar las tablas que se van a buscar
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 DeviceNetworkEvents
agregamos 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 true or false states.
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.
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.
A continuación, puede ejecutar consultas diferentes sin abrir nunca una nueva pestaña del explorador.
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.
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.
Temas relacionados
- Información general sobre la búsqueda avanzada de amenazas
- Trabajar con resultados de consulta
- Usar consultas compartidas
- Buscar entre dispositivos, correos electrónicos, aplicaciones e identidades
- Entender el esquema
- Aplicar procedimientos recomendados de consulta
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.