ルールでエンティティ リスクスコアを指定する

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

このドキュメントでは、ルールでエンティティ リスクスコアを使用する方法について説明します。ルールでは、エンティティ リスクスコアはエンティティ コンテキストと同様に動作します。YARA-L 2.0 ルールを記述して、リスクスコアをメインの検出方法として使用できます。リスク分析のルールの詳細については、リスク分析のルールを作成するをご覧ください。リスクベースのコンテキストの詳細については、コンテキスト対応分析の作成をご覧ください。

エンティティ リスクスコアを取得するには、エンティティを UDM イベントと結合し、EntityRisk から指定したフィールドを取得します。

次の例は、リスクスコアが 100 を超えるエンティティのホスト名で検出を生成するためのルールを作成する方法を示しています。

rule EntityRiskScore {
  meta:
  events:
    $e1.principal.hostname != ""
    $e1.principal.hostname = $hostname

    $e2.graph.entity.hostname = $hostname
    $e2.graph.risk_score.risk_window_size.seconds = 86400 // 24 hours
    $e2.graph.risk_score.risk_score >= 100

    // Run deduplication across the risk score.
    $rscore = $e2.graph.risk_score.risk_score

  match:
    // Dedup on hostname and risk score across a 4 hour window.
    $hostname, $rscore over 4h

  outcome:
    // Force these risk score based rules to have a risk score of zero to
    // prevent self feedback loops.
    $risk_score = 0

  condition:
    $e1 and $e2
}

この例のルールでは、一致セクションを使用して自己重複除去も実行します。ルール検出がトリガーされる可能性があるが、ホスト名とリスクスコアが 4 時間以内に変更されていない場合、新しい検出は作成されません。

エンティティ リスクスコア ルールで指定できるリスク期間は、24 時間または 7 日間(それぞれ 86,400 秒または 604,800 秒)のみです。リスク期間のサイズをルールに含めないと、ルールは不正確な結果を返します。

エンティティ リスクスコア データは、エンティティ コンテキスト データとは別に保存されます。両方を 1 つのルールで使用するには、ルールに 2 つの個別のエンティティ イベント、1 つはエンティティ コンテキスト用、もう 1 つはエンティティ リスクスコア用が必要です。次に例を示します。

rule EntityContextAndRiskScore {
  meta:
  events:
    $log_in.metadata.event_type = "USER_LOGIN"
    $log_in.principal.hostname = $host

    $context.graph.entity.hostname = $host
    $context.graph.metadata.entity_type = "ASSET"

    $risk_score.graph.entity.hostname = $host
    $risk_score.graph.risk_score.risk_window_size.seconds = 604800

  match:
    $host over 2m

  outcome:
    $entity_risk_score = max($risk_score.graph.risk_score.normalized_risk_score)

  condition:
    $log_in and $context and $risk_score and $entity_risk_score > 100
}

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