KQL 照会の作成

クート照会言語 (KQL) は、 QRadar® データレイクの照会に使用できる照会言語です。 KQL を使用すると、単純な検索照会からより複雑な集約照会まで、さまざまなタイプの照会を作成できます。

手順

  1. メニュー > Data Explorer > 「検索」に移動します。
    ヒント: ホーム・ページで 「検索の開始」 をクリックすることもできます。
  2. 「照会タイプ」ドロップダウン・リストから、 「ログ/アラート (KQL)」を選択します。
  3. 照会テキスト・フィールドに、照会を入力します。 例えば、以下の照会は、過去 5 分間のすべてのイベント (最大 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

    パイプ文字 (|) の接頭部が付いた各フィルターは、いくつかのパラメーターを持つ 演算子のインスタンスです。

    以下のリストに、照会で使用できる一般的な KQL 演算子をいくつか示します。

    KQL 演算子 説明
    オーダー 結果を 1 つ以上の列の順にソートします。
    プロジェクト 指定された列のサブセットのみを返します。 例えば、プロジェクトの original_time、名前、ペイロードなどです。
    合計 by 式の後に同じ値を持つグループに結果を配置します。
    取得 指定された行数のみを返します (5 を取得)。
    ここで 結果をフィルターに掛けて、引数で指定された行のサブセットにします。
    注意: ISO 8601フォーマットでは、datetime()演算子は引用符で囲んでも囲まなくてもかまいません。 RFC 822、RFC 850、Sortableフォーマットなどの他の標準では、スペースを含むクエリは引用符で囲む必要があります。

結果

照会に構文エラーがある場合、エラーが解決されるまで 「照会の実行」 は無効になります。 各構文エラーは、赤色の下線で強調表示され、構文エラーの詳細を示すツールチップと構文の修正の候補を示すコンテキスト・ヘルパーが表示されます。

照会が実行されると、「アクティブな照会」カードが追加されます。 各照会は、作成されてから 4 日後に有効期限が切れます。 有効期限時刻がカードに表示されます。

イベント表から 100 行を返します。

events
| take 100

イベント数が最も多い 10 個のイベント・カテゴリーを返します。

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

イベント数が最も多い 10 個のデータ・ソースを返します。

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

過去 1 時間のデータ・ソースを返します。

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

過去 5 分間について、最大 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

最大 10000 までの過去 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 the last hour of data
    | where original_time > ago(5m)    
    //--- USER Criteria Here    
    | take 10000

送信元 IP アドレスが 127.0.0.1である過去 24 時間のイベントを検索します。

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

送信元 IP アドレス 127.0.0.1を持たない過去 24 時間のイベントを検索します。

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

ペイロードが svchostに一致する過去 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 payload that has a match on ‘svchost’ over last hour
    | where original_time > ago(1h) and payload has ‘svchost’  
    //--- USER Criteria Here    
    | take 100