UEBA 风险分析
本文档简要介绍了“UEBA 风险分析”类别中的规则集、所需数据以及可用于调整每个规则集生成的提醒的配置。这些规则集通过评估支持的日志来源来帮助识别威胁。
规则集说明
“Risk Analytics for UEBA”类别中提供了以下规则集,并按检测到的模式类型进行分组:
身份验证
- 用户登录新设备:用户登录了新设备。
- 按用户划分的异常身份验证事件:与历史使用情况相比,单个用户实体最近发生了异常身份验证事件。
- 按设备划分的失败身份验证:与历史使用情况相比,单个设备实体最近有许多失败的登录尝试。
- 用户身份验证失败:与历史使用情况相比,单个用户实体最近有许多失败的登录尝试。
网络流量分析
- 按设备划分的异常入站字节数:与历史用量相比,最近上传到单个设备实体的数据量很大。
- 按设备划分的异常出站字节数:与历史用量相比,最近从单个设备实体下载的数据量很大。
- 按设备划分的异常总字节数:与历史用量相比,设备实体最近上传和下载了大量数据。
- 用户入站字节数异常:与历史使用情况相比,单个用户实体最近下载了大量数据。
- 用户总字节数异常:与历史用量相比,用户实体最近上传和下载了大量数据。
- 暴力破解后用户成功登录:来自一个 IP 地址的单用户实体在成功登录之前,对某个应用进行了多次失败的身份验证尝试。
基于同类群组的检测
新创建的用户登录异常或过多:最近创建的用户身份验证活动异常或过多。这会使用 AD 情境数据中的创建时间。
新创建的用户出现异常或过多的可疑操作:新创建的用户出现异常或过多的活动(包括但不限于 HTTP 遥测、进程执行和群组修改)。此字段使用 AD Context 数据中的创建时间。
可疑操作
- 设备创建的账号过多:设备实体创建了多个新用户账号。
- 用户发出的过多提醒:系统报告了大量来自杀毒软件或端点设备的用户实体安全提醒(例如,连接被屏蔽、检测到恶意软件),数量远超历史模式。这些事件的
security_result.actionUDM 字段设置为BLOCK。
基于数据泄露防护的检测
- 具有数据渗漏功能的异常或过度进程:与数据渗漏功能(例如键盘记录器、屏幕截图和远程访问)相关的进程出现异常或过度活动。这会使用 VirusTotal 的文件元数据丰富功能。
UEBA 类别中的风险分析所需的必要数据
本部分详细介绍了每个规则集类别为实现最佳性能所需的数据。虽然 UEBA 检测旨在与所有受支持的默认解析器搭配使用,但使用以下特定数据类型可最大限度地发挥其优势。 如需查看受支持的默认解析器的完整列表,请参阅支持的日志类型和默认解析器。
身份验证
如需使用这些规则集,请从 Azure AD 目录审核 (AZURE_AD_AUDIT) 或 Windows 事件 (WINEVTLOG) 收集日志数据。
对于 WINEVTLOG,您必须配置数据收集配置,以在 Security 事件日志 Channel 中包含以下 Windows Event IDs。这些事件直接映射到检测引擎使用的 Event types(例如 USER_LOGIN 或 PROCESS_LAUNCH)。
Windows 事件 ID 要求
| 事件类型 | Windows 事件 ID |
|---|---|
| USER_LOGIN | 529, 4624, 4625, 4626, 4648, 4672, 4768, 4769, 4770, 4771, 4777, 4820, 4821, 4964 |
| USER_CREATION | 4720 |
| NETWORK_CONNECTION | 4096, 4097, 4321, 5156, 5632, 5633, 5157 |
| GROUP_MODIFICATION | 4728, 4729, 4732, 4733, 4735, 4737, 4745, 4746, 4747, 4750, 4751, 4752, 4755, 4756, 4757, 4760, 4761, 4762, 4764, 4784, 4785, 4786, 4787, 4788, 4791 |
| PROCESS_LAUNCH | 4688 |
| PROCESS_OPEN | 4663, 4670, 4691, 8002 |
网络流量分析
如需使用这些规则集,请收集捕获网络活动的日志数据。
例如,来自 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 Directory Audit (AZURE_AD_AUDIT) 或 Windows Event (WINEVTLOG) 收集日志数据。
“用户发出的提醒过多”规则集
如需使用此规则集,请收集捕获端点活动或审核数据的日志数据,例如 CrowdStrike Falcon (CS_EDR)、Carbon Black (CB_EDR) 或 Azure AD Directory Audit (AZURE_AD_AUDIT) 记录的数据。
基于数据泄露防护的检测
如需使用这些规则集,请收集捕获进程和文件活动的日志数据,例如 CrowdStrike Falcon (CS_EDR)、Carbon Black (CB_EDR) 或 SentinelOne EDR (SENTINEL_EDR) 记录的数据。
字段依赖项
本部分介绍了 Google SecOps UEBA 规则使用的指标和维度字段。
指标依赖项
下表列出了指标以及相应的 UDM 搜索查询,这些查询定义了对每个指标有贡献的事件。
| 指标 | 针对影响指标的事件的 UDM 搜索查询 |
|---|---|
AUTH_ATTEMPTS_FAIL |
metadata.event_type = "USER_LOGIN" |
AUTH_ATTEMPTS_SUCCESS |
metadata.event_type = "USER_LOGIN" |
AUTH_ATTEMPTS_TOTAL |
metadata.event_type = "USER_LOGIN" |
DNS_BYTES_OUTBOUND |
network.sent_bytes > 0 |
DNS_QUERIES_FAIL |
network.dns.id > 0 |
DNS_QUERIES_SUCCESS |
network.dns.id > 0 |
DNS_QUERIES_TOTAL |
network.dns.id > 0 |
FILE_EXECUTIONS_FAIL |
metadata.event_type = "PROCESS_LAUNCH" |
FILE_EXECUTIONS_SUCCESS |
metadata.event_type = "PROCESS_LAUNCH" |
FILE_EXECUTIONS_TOTAL |
metadata.event_type = "PROCESS_LAUNCH" |
HTTP_QUERIES_FAIL |
network.http.method != "" |
HTTP_QUERIES_SUCCESS |
network.http.method != "" |
HTTP_QUERIES_TOTAL |
network.http.method != "" |
NETWORK_BYTES_INBOUND |
network.received_bytes > 0 |
NETWORK_BYTES_OUTBOUND |
network.sent_bytes > 0 |
NETWORK_BYTES_TOTAL |
(network.received_bytes > 0 AND network.received_bytes < 1000000000000000) |
NETWORK_FLOWS_INBOUND |
network.received_bytes > 0 |
NETWORK_FLOWS_OUTBOUND |
network.sent_bytes > 0 |
NETWORK_FLOWS_TOTAL |
(network.received_bytes > 0 AND network.received_bytes < 1000000000000000) |
RESOURCE_READ_FAIL |
(metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ") |
RESOURCE_READ_SUCCESS |
(metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ") |
RESOURCE_READ_TOTAL |
(metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ") |
RESOURCE_WRITTEN_FAIL |
(metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION") |
RESOURCE_WRITTEN_SUCCESS |
(metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION") |
RESOURCE_WRITTEN_TOTAL |
(metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION") |
维度依赖项
下表列出了可用于过滤或分组的维度和相应的 UDM 字段选项。
| 维度 | 字段选项 |
|---|---|
| 主要设备 | principal.asset.asset_idprincipal.asset.hostnameprincipal.asset.ipprincipal.asset.macprincipal.asset.product_object_id |
| 目标设备 | target.asset.asset_idtarget.asset.hostnametarget.asset.iptarget.asset.mactarget.asset.product_object_id |
| 主要用户 | principal.user.email_addressesprincipal.user.employee_idprincipal.user.product_object_idprincipal.user.useridprincipal.user.windows_sid |
| 目标用户 | target.user.email_addressestarget.user.employee_idtarget.user.product_object_idtarget.user.useridtarget.user.windows_sid |
| 目标服务 | target.application |
| 目标 IP | target.ip |
| 主进程文件路径 | principal.process.file.full_path |
| 主进程文件哈希 | principal.process.file.sha256 |
| 主体文件哈希 | principal.file.sha256 |
| 主要国家/地区 | principal.ip_geo_artifact.location.country_or_region |
| 安全类别 | security_result.category |
| 主要网络组织名称 | principal.ip_geo_artifact.network.organization_name |
| 目标广告资源网组织名称 | target.ip_geo_artifact.network.organization_name |
| 客户端证书哈希 | network.tls.client.certificate.sha256 |
| DNS 查询类型 | network.dns.questions.type |
| DNS 域名 | network.dns_domain |
| HTTP 用户代理 | network.http.user_agent |
| 事件类型 | metadata.event_type |
| 操作系统 | principal.platform |
调整此类别中的规则集返回的提醒
您可以使用规则排除项来减少规则或规则集生成的检测数量。
规则排除项定义了用于排除事件的标准,使其不被规则集或规则集中的特定规则评估。创建一项或多项规则排除项,以帮助减少检测数量。如需了解详情,请参阅配置提醒抑制。
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 专业人士的解答。