适用于 UEBA 类别的风险分析概览

支持的平台:

本文档概要介绍了“适用于 UEBA 的风险分析”类别中的规则集、所需数据,以及您可以用来调整每个规则集生成的提醒的配置。这些规则集有助于使用 Google Cloud 数据在 Google Cloud环境中识别威胁。

规则集说明

“适用于 UEBA 的风险分析”类别中提供了以下规则集,这些规则集按检测到的模式类型分组:

身份验证

  • 用户首次登录设备:用户登录了新设备。
  • 按用户显示异常身份验证事件:与历史使用情况相比,单个用户实体最近出现了异常身份验证事件。
  • 按设备划分的身份验证失败次数:与历史使用情况相比,单个设备实体最近有许多登录尝试失败。
  • 用户身份验证失败次数:与历史使用情况相比,单个用户实体最近的登录尝试失败次数很多。

网络流量分析

  • 按设备划分的异常入站字节数:与历史用量相比,最近向单个设备实体上传了大量数据。
  • 按设备划分的异常出站字节数:与历史使用情况相比,最近从单个设备实体下载了大量数据。
  • 按设备划分的异常总字节数:与历史使用情况相比,某个设备实体最近上传和下载了大量数据。
  • 按用户显示异常的入站字节数:与历史使用情况相比,单个用户实体最近下载了大量数据。
  • 用户的总字节数异常:与历史用量相比,用户实体最近上传和下载了大量数据。
  • 用户先尝试暴力破解,然后成功登录:来自某个 IP 地址的单个用户实体在成功登录某个应用之前,曾对该应用尝试过多次身份验证失败。

基于同类群组的检测

  • 新创建的用户的登录行为异常或过多:新创建的用户的身份验证活动异常或过多。此维度使用的是 Google Ads 情境数据中的创建时间。

  • 新创建的用户存在异常或过多可疑操作:新创建的用户存在异常或过多活动(包括但不限于 HTTP 遥测、进程执行和群组修改)。此维度使用 AD 情境数据中的创建时间。

可疑操作

  • 设备创建的账号过多:设备实体创建了多个新用户账号。
  • 用户收到过多提醒:针对某个用户实体,杀毒软件或端点设备报告了大量安全提醒(例如连接被屏蔽检测到恶意软件),远远超出历史模式。这些事件的 security_result.action UDM 字段设置为 BLOCK

基于数据泄露防护的检测

  • 具有数据渗漏功能的异常或过多进程:与数据渗漏功能(例如键盘记录器、屏幕截图和远程访问)相关联的进程存在异常或过多活动。这会使用 VirusTotal 提供的文件元数据丰富功能。

风险分析针对 UEBA 类别所需的数据

以下部分介绍了各类规则集为了发挥最大效用而需要的数据。如需查看所有支持的默认解析器的列表,请参阅支持的日志类型和默认解析器

身份验证

如需使用其中任何规则集,请从 Azure AD 目录审核 (AZURE_AD_AUDIT) 或 Windows 事件 (WINEVTLOG) 收集日志数据。

网络流量分析

如需使用上述任一规则集,请收集用于捕获网络活动的日志数据。例如,从 FortiGate (FORTINET_FIREWALL)、Check Point (CHECKPOINT_FIREWALL)、Zscaler (ZSCALER_WEBPROXY)、CrowdStrike Falcon (CS_EDR) 或 Carbon Black (CB_EDR) 等设备中导入。

基于同类群组的检测

如需使用其中任何规则集,请从 Azure AD 目录审核 (AZURE_AD_AUDIT) 或 Windows 事件 (WINEVTLOG) 收集日志数据。

可疑操作

此组中的规则集各自使用不同类型的数据。

“设备创建账号过多”规则集

如需使用此规则集,请从 Azure AD 目录审核 (AZURE_AD_AUDIT) 或 Windows 事件 (WINEVTLOG) 收集日志数据。

“按用户发送过多提醒”规则集

如需使用此规则集,请收集用于捕获端点活动或审核数据的日志数据,例如 CrowdStrike Falcon (CS_EDR)、Carbon Black (CB_EDR) 或 Azure AD 目录审核 (AZURE_AD_AUDIT) 记录的数据。

基于数据泄露防护的检测

如需使用上述任一规则集,请收集捕获进程和文件活动的日志数据,例如 CrowdStrike Falcon (CS_EDR)、Carbon Black (CB_EDR) 或 SentinelOne EDR (SENTINEL_EDR) 记录的数据。

此类别中的规则集取决于具有以下 metadata.event_type 值的事件:PROCESS_LAUNCHPROCESS_OPENPROCESS_MODULE_LOAD

规则返回的调整提醒属于此类别

您可以使用规则排除对象来减少规则或规则集生成的检测数量。

规则排除项用于定义排除某个事件的条件,以免该事件被规则集或规则集中的特定规则评估。创建一条或多条规则排除项,以帮助减少检测量。如需了解具体操作方法,请参阅配置规则排除项

针对 UEBA 类别的风险分析规则示例

以下示例展示了如何创建规则,以便针对风险得分高于 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 秒)。如果您未在规则中添加风险信号期长,则规则会返回不准确的结果。

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

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 专业人士寻求解答。