条件セクションで or を使用する

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

このドキュメントでは、or 演算子を使用して、クエリの condition セクション内に柔軟で簡潔な検出ロジックを記述する方法について説明します。

イベント変数またはプレースホルダ変数間に or を使用すると、複数の条件を組み合わせることができ、クエリ構文の全体的な複雑さを軽減できます。

  • 指定された変数のいずれかが存在するかどうかを確認します。たとえば、$e1 or $e2 には、$e1 のインスタンスが 1 つ以上、または $e2 のインスタンスが 1 つ以上必要です。

条件セクションの or 構文

変数の間に or キーワードを直接使用します。次の例は、COUNT($e1)>0 or COUNT($e2)>0 と同等です。

condition:
  $e1 or $e2  // True if $e1 exists or $e2 exists

ルールの例: 危険な IP または不正なハッシュの実行

次のルール例では、リスクの高い IP アドレスからのプロセス起動が検出された場合、または既知の不正なハッシュが実行された場合に、脅威を検出します。

rule MultiEventOr {
  meta:
    author = "google-secops"
  events:
    $e1.principal.ip = "1.1.1.1"
    $e1.metadata.event_type = "PROCESS_LAUNCH"
    $e2.target.file.sha256 = "badhash..."
    $user = $e1.principal.user.userid
    $user = $e2.principal.user.userid
  match:
    $user over 5m
  condition:
    $e1 or $e2
}

検索例: 危険な IP または不正なハッシュ実行

次の例は、ルールの例を検索クエリとして再フォーマットする方法を示しています。

$e1.principal.ip = "1.1.1.1"
$e1.metadata.event_type = "PROCESS_LAUNCH"
$e2.target.file.sha256 = "badhash..."
$user = $e1.principal.user.userid
$user = $e2.principal.user.userid

match:
  $user over 5m

condition:
  $e1 or $e2

既知の制限事項

  • リソース消費量: イベント変数間で or を使用すると、and を使用するよりも多くのリソースが消費され、クエリの実行時間が長くなる可能性があります。

  • イベント変数の上限: 検索とダッシュボードでは、複数イベントの or 構文で最大 3 つのイベントを使用できます。ルールでは、マルチイベントの or 構文で最大 2 つのイベントを使用できます。

  • 必須のイベントの存在: or を使用する式は無制限にできません。イベントの存在は、句が true になるための要件である必要があります(例: $e1#e1 > 0)。

  • 変数タイプの混在: 同じ or リスト内で、UDM 以外の変数と UDM イベント変数を組み合わせることはできません。

  • ウィンドウの制限: or 構文でタンブリング ウィンドウを使用することはできません。

次のステップ

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。