UEBA 类别的风险分析概览
本文档概述了“UEBA 风险分析”类别中的规则集、所需的数据,以及可用于调整每个规则集生成的提醒的配置。这些规则集有助于使用 Google Cloud 数据识别 Google Cloud环境中的威胁。
规则集说明
风险分析(UEBA)类别中提供以下规则集,这些规则集按检测到的模式类型进行分组:
身份验证
- 用户登录新设备:用户登录了新设备。
- 按用户细分的可疑身份验证事件:与历史使用情况相比,单个用户实体最近发生了可疑的身份验证事件。
- 按设备划分的身份验证失败次数:与历史使用情况相比,单个设备实体最近的登录尝试失败次数过多。
- 用户身份验证失败次数:与历史使用情况相比,单个用户实体最近的登录尝试失败次数过多。
网络流量分析
- 设备上传入的异常字节数:与历史使用情况相比,最近上传到单个设备实体的数据量显著增加。
- 设备的出站字节数异常:与历史使用情况相比,单个设备实体最近下载了大量数据。
- 设备的总字节数异常:与历史使用情况相比,某个设备实体最近上传和下载了大量数据。
- 用户入站字节数异常:与历史使用情况相比,单个用户实体最近下载了大量数据。
- 用户总字节数异常:与历史用量相比,用户实体最近上传和下载了大量数据。
- 用户先暴力破解,然后成功登录:来自一个 IP 地址的单个用户实体在成功登录之前,对某个应用进行了多次失败的身份验证尝试。
基于同类群组的检测
新创建的用户的登录次数异常或过多:新创建的用户的身份验证活动异常或过多。此属性使用广告情境数据中的创建时间。
新创建的用户的异常或过度可疑操作:新创建的用户的异常或过度活动(包括但不限于 HTTP 遥测、进程执行和群组修改)。此属性使用广告情境数据中的创建时间。
可疑操作
- 设备创建的账号过多:某个设备实体创建了多个新用户账号。
- 用户收到的提醒过多:防病毒软件或端点设备报告了大量与用户实体相关的安全提醒(例如连接被阻止、检测到恶意软件),远超历史模式。
这些事件的
security_result.action
UDM 字段设置为BLOCK
。
基于数据泄露防护的检测
- 具有数据渗漏功能的异常或过量进程:与具有数据渗漏功能的进程(例如键盘记录器、屏幕截图和远程访问)相关的异常或过量活动。此功能使用来自 VirusTotal 的文件元数据丰富功能。
风险分析功能(UEBA 类别)所需的必要数据
本部分详细介绍了每个规则集类别所需的数据,以便获得最佳效果。虽然 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_LAUNCH
、PROCESS_OPEN
、PROCESS_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
}
此示例规则还使用 match 部分执行了自我去重。如果规则检测可能会触发,但在 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 专业人士那里获得解答。