Creación de consultas KQL

Kusto Query Language (KQL) es un lenguaje de consulta que puede utilizar para consultar el lago de datos QRadar® . KQL le permite crear diversos tipos de consultas, desde consultas de búsqueda simples a consultas agregadas más complejas.

Procedimiento

  1. Vaya a Menú > Data Explorer > Buscar.
    Sugerencia: También puede pulsar Iniciar búsqueda en la página de inicio.
  2. En la lista desplegable de tipos de consulta, seleccione Registros/Alertas (KQL).
  3. En el campo de texto de consulta, especifique la consulta. Por ejemplo, la consulta siguiente devuelve todos los sucesos de los últimos 5 minutos, hasta un máximo de 10000 sucesos.
    events    
        | project original_time, data_source_name, name, user_id, low_level_categories,
            src_ip, src_port, dst_ip, dst_port, payload
        //--- Search for the last 5 minutes of data
        | where original_time > ago(5m)    
        //--- USER Criteria Here    
        | take 10000

    Cada filtro con el prefijo del carácter de barra vertical (|) es una instancia de un operador, con algunos parámetros.

    La lista siguiente contiene algunos operadores KQL comunes que puede utilizar en las consultas.

    operador KQL Descripción
    pedido Ordena los resultados en orden por una o más columnas.
    proyecto Devuelve sólo un subconjunto de columnas especificadas. Por ejemplo, project original_time, name y payload.
    Resumir Organiza los resultados en grupos que tienen los mismos valores después de las expresiones by .
    tomar Devuelve sólo el número de filas especificado (toma 5).
    donde Filtra los resultados al subconjunto de filas tal como se especifica en los argumentos.
    Nota: Para el formato ISO 8601, el operador datetime() puede ir entre comillas o sin ellas. Para otras normas como RFC 822, RFC 850 y el formato Sortable, las consultas que incluyan espacios deben ir entre comillas.

Resultados

Si hay un error de sintaxis en la consulta, Ejecutar consulta se inhabilita hasta que resuelva el error. Cada error de sintaxis se resalta con un subrayado rojo, una ayuda contextual con detalles de error de sintaxis y un asistente contextual con sugerencias de arreglo de sintaxis.

Cuando se ejecuta una consulta, se añade una tarjeta de 'consulta activa'. Cada consulta caduca 4 días después de su creación. La hora de caducidad se muestra en la tarjeta.

Ejemplo

Devuelve 100 filas de la tabla de sucesos.

events
| take 100

Devuelve 10 categorías de sucesos que tienen más sucesos.

events_all
| summarize Count=count() by qid_event_category
| order by Count desc
| take 10

Devuelve 10 orígenes de datos que tienen el mayor recuento de sucesos.

events
| project data_source_name, original_time
| where data_source_name != ''
| summarize Events=count() by data_source_name
| order by Events desc
| take 10

Devuelve los orígenes de datos durante la última hora.

events
| project original_time, data_source_name
| where original_time > ago(1h)  
| summarize Count=count() by Time=bin(original_time, 5m), data_source_name  
| order by Time, data_source_name desc

Devuelve sucesos de los últimos 5 minutos hasta un máximo de 10000.

events    
    | project original_time, data_source_name, name, user_id, low_level_categories,
        src_ip, src_port, dst_ip, dst_port, payload
    //--- Search for the last 5 minutes of data
    | where original_time > ago(5m)    
    //--- USER Criteria Here    
    | take 10000

Devuelve sucesos de la última hora hasta un máximo de 10000

events    
    | project original_time, data_source_name, name, user_id, low_level_categories,
        src_ip, src_port, dst_ip, dst_port, payload
    //--- Search for the last hour of data
    | where original_time > ago(5m)    
    //--- USER Criteria Here    
    | take 10000

Buscar sucesos para las últimas 24 horas que tienen la dirección IP de origen 127.0.0.1.

events    
    | project original_time, data_source_name, name, user_id, low_level_categories,
        src_ip, src_port, dst_ip, dst_port, payload
    //--- Search for IP = 127.0.0.1 over the last 24 hour of data
    | where original_time > ago(24h) and src_ip = ‘127.0.0.1’  
    //--- USER Criteria Here    
    | take 100

Buscar sucesos de las últimas 24 horas que no tienen la dirección IP de origen 127.0.0.1.

events    
    | project original_time, data_source_name, name, user_id, low_level_categories,
        src_ip, src_port, dst_ip, dst_port, payload
    //--- Search for IP not equal to 127.0.0.1 over the last 24 hour of data
    | where original_time > ago(24h) and src_ip != ‘127.0.0.1’  
    //--- USER Criteria Here    
    | take 100

Buscar sucesos para la última hora en la que la carga útil tiene una coincidencia en svchost.

events    
    | project original_time, data_source_name, name, user_id, low_level_categories,
        src_ip, src_port, dst_ip, dst_port, payload
    //--- Search for payload that has a match on ‘svchost’ over last hour
    | where original_time > ago(1h) and payload has ‘svchost’  
    //--- USER Criteria Here    
    | take 100