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

このドキュメントでは、ルールでエンティティ リスクスコア情報を使用する方法について説明します。このプロセスは、ルールでエンティティのコンテキストを使用する場合と同様です。詳細については、コンテキストアウェア分析の作成をご覧ください。

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

次の例は、UDM イベントに一致するユーザー名を持つエンティティの正規化されたリスクスコアが 100 より大きいかどうかを確認する方法を示しています。

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

    $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 $risk_score and $entity_risk_score > 100
}

エンティティ リスクスコアルールで可能なリスク時間枠は、24 時間または 7 日(それぞれ 86,400 秒または 604,800 秒)です。ルールにリスク ウィンドウ サイズを含めないと、不正確な結果が返されます。

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

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
}