YARA-L 2.0 で参照リストとデータテーブルを使用する
参照リストとデータテーブルを使用すると、イベント フィールドとカスタム データセットを比較してロジックを構造化できます。これらのオブジェクトを使用して、基盤となる構文を変更することなく、検索、ダッシュボード、検出全体で大量のインジケーター(既知の不正な IP や承認済みのホスト名など)を管理します。
リファレンス リストまたはデータテーブルは、ルールの events セクションまたは outcome セクションで使用できます。リファレンス リストとデータテーブルの動作と構文の詳細については、リファレンス リストとデータテーブルを使用するをご覧ください。
参照リストとデータテーブルの構文を適用する
参照リストとデータテーブルは、オブジェクト ID とオペレーションに必要な照合タイプ(string、regex、CIDR)で定義される同様の構文に従います。このセクションでは、さまざまな種類のリファレンス リストを使用する構文の例を示します。
Google Security Operations では、参照リストとデータテーブルは YARA-L ルールの events セクションまたは outcome セクション内で使用され、イベントデータとアップロードされたデータセットが比較されます。これらは、ルールの評価プロセス中に実行され、イベントのフィルタリングや検出結果の拡充を行います。
参照リストは、単一のフィールドが事前定義されたリスト(既知の悪意のある IP のリストなど)のいずれかの値と一致するかどうかを確認する必要がある場合に使用します。
- STRING:
$e.principal.hostname in %string_list_name REGEX:
$e.principal.hostname in regex %regex_list_nameCIDR:
$e.principal.ip in cidr %cidr_list_name
参照データに行または列の構造があり、特定のフィールドを特定の列にマッピングできる場合は、データテーブルを使用します。
STRING:
$e.target.hostname in %table_name.column_nameREGEX:
$e.target.hostname in regex %table_name.column_nameCIDR:
$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ステートメントの最大数: 5cidr演算子を使用したinステートメントの最大数: 5
リファレンス リストの動作とリファレンス リストの構文の詳細については、リファレンス リストをご覧ください。
検索、ダッシュボード、検出で最適なパフォーマンスを維持するため、YARA-L エンジンには次の上限が適用されます。
- クエリ内の
inステートメントの最大数(特別な演算子あり / なし): 7 regex演算子を含むinステートメントの最大数: 4cidr演算子を含むinステートメントの最大数: 2
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。