在规则中指定实体风险得分

支持的语言:

本文档介绍了如何在规则中使用实体风险得分。在规则中,实体风险得分的行为方式与实体情境类似。您可以编写 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
}

此规则示例还使用 match 部分执行了自我去重。如果规则检测可能会触发,但在 4 小时内主机名和风险评分保持不变,则不会创建新的检测。

实体风险得分规则唯一支持的风险窗口期分别为 24 小时(86,400 秒)或 7 天(604,800 秒)。如果您未在规则中指定风险窗口大小,系统会默认将其设置为 24 小时或 7 天。

实体风险得分数据与实体上下文数据分开存储。如需在一条规则中同时使用这两个变量,该规则必须包含两个单独的实体事件,一个用于实体情境,另一个用于实体风险评分,如以下示例所示:

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 专业人士那里获得解答。