KQL-Abfragen erstellen

Die Abfragesprache Kusto (KQL) ist eine Abfragesprache, mit der Sie den QRadar® Data Lake abfragen können. KQL ermöglicht Ihnen die Erstellung einer Vielzahl unterschiedlicher Abfragetypen von einfachen Suchabfragen bis hin zu komplexeren zusammengefassten Abfragen.

Vorgehensweise

  1. Rufen Sie Menü > Data Explorer > Suchenauf.
    Tipp : Sie können auf der Homepage auch auf Suche starten klicken.
  2. Wählen Sie in der Dropdown-Liste für den Abfragetyp Protokolle/Alerts (KQL)aus.
  3. Geben Sie im Abfragetextfeld Ihre Abfrage ein. Die folgende Abfrage gibt beispielsweise alle Ereignisse der letzten 5 Minuten bis zu einem Maximum von 10000 Ereignissen zurück.
    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

    Jeder Filter mit dem Pipezeichen (|) als Präfix ist eine Instanz eines Operatorsmit einigen Parametern.

    Die folgende Liste enthält einige allgemeine KQL-Operatoren, die Sie in Abfragen verwenden können.

    KQL-Operator Beschreibung
    Bestellung Sortiert Ergebnisse in Reihenfolge nach einer oder mehreren Spalten.
    Projekt Gibt nur eine Untergruppe der angegebenen Spalten zurück Beispiel: project original_time, name, and payload.
    auswerten Ordnet die Ergebnisse in Gruppen an, die nach den by -Ausdrücken dieselben Werte haben.
    nehmen Gibt nur die angegebene Anzahl von Zeilen zurück (5).
    Wo Filtert Ergebnisse auf die Untergruppe von Zeilen, wie in den Argumenten angegeben.
    Anmerkung: Für das Format ISO 8601 kann der Operator datetime() mit oder ohne Anführungszeichen angegeben werden. Bei anderen Standards wie RFC 822, RFC 850 und Sortable-Format müssen die Abfragen, die Leerzeichen enthalten, in Anführungszeichen gesetzt werden.

Ergebnisse

Wenn Ihre Abfrage einen Syntaxfehler enthält, wird Abfrage ausführen inaktiviert, bis Sie den Fehler behoben haben. Syntaxfehler sind rot unterstrichen und für jeden Syntaxfehler werden eine QuickInfo mit Details zum Syntaxfehler sowie ein Kontexthelper mit Vorschlägen für die Syntaxkorrektur angezeigt.

Wenn eine Abfrage ausgeführt wird, wird eine Karte 'aktive Abfrage' hinzugefügt. Jede Abfrage läuft 4 Tage nach ihrer Erstellung ab. Die Ablaufzeit wird auf der Karte angezeigt.

Beispiel

Gibt 100 Zeilen aus der Ereignistabelle zurück.

events
| take 100

Gibt 10 Ereigniskategorien mit den meisten Ereignissen zurück.

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

Gibt 10 Datenquellen mit der höchsten Ereignisanzahl zurück.

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

Gibt die Datenquellen der letzten Stunde zurück.

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

Gibt Ereignisse für die letzten 5 Minuten bis zu einem Maximum von 10000 zurück.

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

Gibt Ereignisse für die letzte Stunde bis zu maximal 10000 zurück.

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

Suchen Sie nach Ereignissen für die letzten 24 Stunden mit der Quellen-IP-Adresse 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

Suchen Sie nach Ereignissen für die letzten 24 Stunden, die nicht über die Quellen-IP-Adresse 127.0.0.1verfügen.

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

Suchen Sie nach Ereignissen für die letzte Stunde, bei denen die Nutzdaten mit svchostübereinstimmen.

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