YARA-L 2.0 で参照リストとデータテーブルを使用する

以下でサポートされています。

参照リストとデータテーブルを使用すると、イベント フィールドとカスタム データセットを比較してロジックを構造化できます。これらのオブジェクトを使用して、基盤となる構文を変更することなく、検索、ダッシュボード、検出全体で大量の指標(既知の不正な IP や承認済みのホスト名など)を管理します。

リファレンス リストまたはデータテーブルは、ルールの events セクションまたは outcome セクションで使用できます。リファレンス リストとデータテーブルの動作と構文の詳細については、リファレンス リストデータテーブルを使用するをご覧ください。

参照リストとデータテーブルの構文を適用する

参照リストとデータテーブルは、オブジェクト ID とオペレーションに必要な照合タイプ(stringregexCIDR)で定義される同様の構文に従います。このセクションでは、さまざまな種類のリファレンス リストを使用する構文の例を示します。

Google Security Operations では、YARA-L ルールの events セクションまたは outcome セクション内で参照リストとデータテーブルを使用して、イベントデータをアップロードされたデータセットと比較します。これらは、ルール評価プロセス中に実行され、イベントをフィルタリングしたり、検出結果を拡充したりします。

参照リストは、単一のフィールドが事前定義されたリスト(既知の悪意のある IP のリストなど)のいずれかの値と一致するかどうかを確認する必要がある場合に使用します。

  • STRING: $e.principal.hostname in %string_list_name
  • 正規表現: $e.principal.hostname in regex %regex_list_name

  • CIDR: $e.principal.ip in cidr %cidr_list_name

参照データに行または列の構造がある場合は、データテーブルを使用して、特定のフィールドを特定の列にマッピングできます。

  • STRING: $e.target.hostname in %table_name.column_name

  • 正規表現: $e.target.hostname in regex %table_name.column_name

  • CIDR: $e.principal.ip in cidr %table_name.column_name

例: リファレンス リストの構文と動作

次の例は、さまざまなデータセット タイプに対してクエリを構造化し、一致に条件付きロジックを適用する方法を示しています。

例: クエリ内の参照リストの構文

// STRING reference list
$e.principal.hostname in %string_reference_list

// Regular expression reference list
$e.principal.hostname in regex %regex_reference_list

// CIDR reference list
$e.principal.ip in cidr %cidr_reference_list

例: データテーブルの構文

// STRING data table
$e.target.hostname in %data_table_name.column_name

// Regular expression data table
$e.target.hostname in regex %regex_table_name.column_name

// CIDR data table
$e.principal.ip in cidr %cidr_table_name.column_name

例: not 演算子と nocase 演算子

nocase 演算子は、STRING リストおよび REGEX リストと互換性があります。

// Exclude events whose hostnames match substrings in my_regex_list.
not $e.principal.hostname in regex %my_regex_list

// Event hostnames must match at least one string in my_string_list (case insensitive).
$e.principal.hostname in %my_string_list nocase
    

nocase 演算子は、STRING リストおよび REGEX リストと互換性があります。

パフォーマンス上の理由から、Detection Engine では、リファレンス リストの使用が制限されています。

  • ルール内の in ステートメントの最大数(特殊演算子の有無を問わず): 10
  • regex 演算子を含む in ステートメントの最大数: 5
  • cidr 演算子を含む in ステートメントの最大数: 5

リファレンス リストの動作とリファレンス リストの構文の詳細については、リファレンス リストをご覧ください。

検索、ダッシュボード、検出で最適なパフォーマンスを維持するため、YARA-L エンジンには次の制限が適用されます。

  • 特別な演算子を使用する / しないクエリ内の in ステートメントの最大数: 7
  • regex 演算子を含む in ステートメントの最大数: 4
  • cidr 演算子を含む in ステートメントの最大数: 2

ご不明な点がございましたら、コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。