これらの FAQ、ヒント、および例を使用して、データ フォワーダのカスタム クエリ フィルタから開始できます。Carbon Black Cloud は、アラート、イベント、プロセス検索、およびクエリベースのウォッチリストに、強力なクエリ構文である Lucene を使用します。

どのフィールドでフィルタリングできますか?
データ フォワーダ データ ガイド」には、フィルタ可能なフィールドのリストがあります。
データ フォワーダで調査またウォッチリスト クエリを使用できますか?
  • 調査/ウォッチリストとデータ フォワーダのカスタム クエリ フィルタの構文には、いくつかの違いがあります。
  • 一部のフィールドは、データ フォワーダのカスタム クエリ フィルタで使用できない場合があります。検索可能なフィールドとフィルタ可能なフィールドの完全なリストについては、「検索フィールド ガイド」および「データ フォワーダ データ ガイド」を参照してください。
  • 一部のフィールドの名前は若干異なりますが、最も顕著なのは次の通りです。
    • 調査/ウォッチリスト: process_name、カスタム クエリ フィルタ: process_path
    • 調査/ウォッチリスト: event_type、カスタム クエリ フィルタ: type
  • ワイルドカードは、データ フォワーダのカスタム クエリ フィルタのほとんどのフィールドで必須です。
    • 調査/ウォッチリスト: process_name:powershell.exe
    • カスタム クエリ フィルタ: process_path:*\\powershell.exe
  • データ フォワーダのカスタム クエリは、値のみの検索をサポートしていません。フィールド名を指定する必要があります。
      • 調査/ウォッチリスト: powershell
      • カスタム クエリ フィルタ: process_path:*powershell*
エスケープする必要がある文字
クエリ フィルタの値に次の文字が含まれている場合は、単一の \ でエスケープする必要があります。

文字: + - && || ! ( ) { } [ ] ^ " ~ * ? : \ / space

  • [例 1]: 通常の Windows パス c:\windows\system32\ をエスケープします。

    コロンとディレクトリの区切り文字がエスケープされていることに注意してください。末尾のアスタリスクはワイルドカードであるため、プロセス パスでリテラルのアスタリスク文字を検索しません。

    • process_path:c\:\\windows\\system32\\*
  • [例 2]: プロセス cmdline で –encoded フラグを探します
    • process_cmdline:\-encoded
  • [例 3]: スペースをエスケープします
    • process_path:*Google\ Chrome*
    • process_publisher:Google\ LLC
ワイルドカードまたはトークン化された検索では大文字と小文字が区別されますか?
次のクエリ タイプは比較時に小文字に変換されるため、これらのクエリでは大文字と小文字は区別されません。元のクエリは小文字で保存されません。
  • CIDR (IPv6 の場合)
  • フィールド
  • 引用符で囲まれたフィールド
  • ワイルドカード
  • ファジー

フィルタリングでは大文字と小文字が区別されます。明示的なフィルタの場合は、1 文字/複数文字のワイルドカード(すなわち、"X" ! = "x")を使用して、直接文字列/ルーン一致(すなわち、process_path== "value")を実行します。

ワイルドカードの使用
データ フォワーダのカスタム クエリ フィルタは、次の 2 つのワイルドカード文字をサポートします。
  • * は 0 文字以上と一致します
  • ? は 1 文字と一致します
  • [例 1]: 末尾が \powershell.exe のプロセス パス
    • process_path:*\\powershell.exe
  • [例 2]: temp と呼ばれるディレクトリを含む Mac または Linux プロセス パス
    • process_path:*\/temp\/*
  • [例 3]: 間に単一の文字を含む temp と command を含むプロセス パス。Windows (\temp\command\) および Mac/Linux (\temp\command\) に一致しますが、予期しないディレクトリ (/stempocommandcenter/) にも一致する可能性があります
    • process_path:*temp?command*
パス
Carbon Black Cloud では、Windows のパスは通常、区切り文字に「\」を使用しますが、Linux のパスは通常、区切り文字に「/」を使用します。
  • [例 1]: Windows c:\windows\system32
    • process_path:c\:\\windows\\system32\\*
  • [例 2]: Linux /usr/bin/bash
    • process_path:\/usr\/bin\/bash
CIDR の使用
IP フィールドは CIDR 範囲をサポートします。範囲を示す「/」はエスケープする必要があります。
  • [例]: 標準の IPv4 内部範囲
    • remote_ip:(10.0.0.0\/8 OR 172.16.0.0\/12 OR 192.168.0.0\/16)
範囲の使用
現在、範囲はアルファベット順の並べ替えのみをサポートします。
  • [例 1]: c:\ ドライブと d:\ ドライブには一致するが e:\ ドライブには一致しない
    • process_path:[c TO d]
  • [例 2]: 数値範囲はまだサポートされず、アルファベット順が適用されています。これは、ポート 20、25、30、2500 と一致しますが、ポート 40 とは一致しません。
    • remote_port:[20 TO 300]
グループ分け
括弧、AND、OR、および NOT ステートメントを含むグループは、より複雑なクエリをサポートします。
  • AND/OR/NOT は大文字にする必要があります
  • [例 1]: 単一のフィールドの複数の値
    • process_path:(*\\powershell.exe OR *\\pwsh.exe)
  • [例 2]: ネットワーク接続 (Chrome からポート 443 または 80 への接続を除く)
    • type:endpoint.event.netconn AND NOT (process_path:*\\chrome.exe AND remote_port:(443 OR 80) AND netconn_inbound:false)
  • [例 3]: ファイルレス スクリプトロード イベント、すべてのスクリプトロード イベント
    • type:endpoint.event.fileless_scriptload OR (type:endpoint.event.scriptload AND (device_os:(WINDOWS OR MAC) OR scriptload_publisher_state:FILE_SIGNATURE_STATE_NOT_SIGNED))
クエリ深度
クエリ深度は、カスタム クエリ フィルタ内のネストされたグループの数です。
  • 最大クエリ深度は 3 です。

    深度が 3 を超えるクエリを実行すると、「クエリが深すぎます」というエラーが発生します。

  • [例 1]: このクエリは深度が 4 で、エラーが発生します。
    event_origin:NGAV OR (type:endpoint.event.netconn AND (remote_port:80 OR (remote_port:443
              AND process_path:*\\chrome.exe)))
  • [例 2]: これらの 2 つのクエリの組み合わせは、例 1 と同じロジックですが、深さの制限に違反しません。remote_port フィールドは endpoint.event.netconn イベントにしか表示されないため、2 番目のクエリではイベント タイプを指定する必要はありません。
    • (フィルタ 1 を含む) event_origin:NGAV
    • (フィルタ 2 を含む) remote_port:80 OR (remote_port:443 AND process_path:*\\chrome.exe)