UEBA 的风险分析

支持:

本文档概述了 UEBA 类别风险分析中的规则集、所需数据以及可用于调整每个规则集生成的提醒的配置。这些规则集有助于通过评估支持的日志来源来识别威胁。

规则集说明

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

身份验证

  • 用户登录到新设备:用户登录到新设备。
  • 用户异常身份验证事件:与历史使用情况相比,单个用户实体最近发生了异常 身份验证事件。
  • 设备身份验证失败:与历史使用情况相比,单个设备实体最近发生了多次 登录尝试失败。
  • 用户身份验证失败:与历史使用情况相比,单个用户实体最近发生了多次 登录尝试失败。

网络流量分析

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

基于对等群组的检测

  • 新创建的用户异常或过度登录:新创建的用户发生了异常或过度 身份验证活动。此规则使用 AD 上下文数据中的创建时间。

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

可疑操作

  • 设备创建的账号过多:设备实体创建了多个 新用户账号。
  • 用户收到的提醒过多:防病毒 或端点设备(例如 connection was blockedmalware was detected)报告了大量关于用户实体的安全提醒,远超历史模式。 这些事件是指 security_result.action UDM 字段设置为 BLOCK 的事件。

基于数据泄露防护的检测

  • 具有数据渗漏功能的进程异常或过多:与具有数据渗漏功能的进程(例如键盘记录器、屏幕截图和远程访问)相关的活动异常或过多。此规则使用 VirusTotal 中的文件元数据扩充功能。

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

本部分详细介绍了每个规则集类别实现最佳 性能所需的数据。虽然 UEBA 检测旨在与所有受支持的默认 解析器搭配使用,但使用以下特定数据类型可以最大限度地发挥其优势。 如需查看受支持的默认解析器的完整列表,请参阅 支持的日志类型和默认解析器

身份验证

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

对于 WINEVTLOG,您必须将数据收集配置配置为在 Security 事件日志 Channel 中包含以下 Windows Event IDs。 这些事件直接映射到检测引擎使用的 Event types(例如 USER_LOGINPROCESS_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 目录审核 (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) 记录的数据。

字段依赖项

本部分介绍了 Google SecOps UEBA 规则使用的指标和维度字段。

指标依赖项

下表列出了指标以及定义构成每个指标的事件的相应 UDM 搜索查询。

指标 构成该指标的事件的 UDM 搜索查询
AUTH_ATTEMPTS_FAIL metadata.event_type = "USER_LOGIN"
AND security_result.action != "UNKNOWN_ACTION"
AND security_result.action != "ALLOW"
AUTH_ATTEMPTS_SUCCESS metadata.event_type = "USER_LOGIN"
AND (security_result.action = "UNKNOWN_ACTION" OR security_result.action = "ALLOW")
AUTH_ATTEMPTS_TOTAL metadata.event_type = "USER_LOGIN"
AND security_result.action >= "UNKNOWN_ACTION"
DNS_BYTES_OUTBOUND network.sent_bytes > 0
AND (network.ip_protocol = "UDP" AND target.port = 53)
OR (network.ip_protocol = "TCP" AND (target.port = 53 OR target.port=3000))
DNS_QUERIES_FAIL network.dns.id > 0
AND network.dns.response_code != 0
DNS_QUERIES_SUCCESS network.dns.id > 0
AND network.dns.response_code = 0
DNS_QUERIES_TOTAL network.dns.id > 0
FILE_EXECUTIONS_FAIL metadata.event_type = "PROCESS_LAUNCH"
AND security_result.action != "ALLOW"
FILE_EXECUTIONS_SUCCESS metadata.event_type = "PROCESS_LAUNCH"
AND security_result.action = "ALLOW"
FILE_EXECUTIONS_TOTAL metadata.event_type = "PROCESS_LAUNCH"
HTTP_QUERIES_FAIL network.http.method != ""
AND (network.http.response_code >= 400 OR network.http.response_code = 0)
HTTP_QUERIES_SUCCESS network.http.method != ""
AND network.http.response_code < 400
HTTP_QUERIES_TOTAL network.http.method != ""
NETWORK_BYTES_INBOUND network.received_bytes > 0
AND network.received_bytes < 1000000000000000
NETWORK_BYTES_OUTBOUND network.sent_bytes > 0
AND network.sent_bytes < 1000000000000000
NETWORK_BYTES_TOTAL (network.received_bytes > 0 AND network.received_bytes < 1000000000000000)
OR (network.sent_bytes > 0 AND network.sent_bytes < 1000000000000000)
NETWORK_FLOWS_INBOUND network.received_bytes > 0
AND network.received_bytes < 1000000000000000
NETWORK_FLOWS_OUTBOUND network.sent_bytes > 0
AND network.sent_bytes < 1000000000000000
NETWORK_FLOWS_TOTAL (network.received_bytes > 0 AND network.received_bytes < 1000000000000000)
OR (network.sent_bytes > 0 AND network.sent_bytes < 1000000000000000)
RESOURCE_READ_FAIL (metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ")
AND security_result.action != "UNKNOWN_ACTION"
AND security_result.action != "ALLOW"
RESOURCE_READ_SUCCESS (metadata.event_type = "FILE_OPEN" OR metadata.event_type = "RESOURCE_READ")
AND (security_result.action = "UNKNOWN_ACTION" OR security_result.action = "ALLOW")
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")
AND security_result.action != "UNKNOWN_ACTION"
AND security_result.action != "ALLOW"
RESOURCE_WRITTEN_SUCCESS (metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION")
AND (security_result.action = "UNKNOWN_ACTION" OR security_result.action = "ALLOW")
RESOURCE_WRITTEN_TOTAL (metadata.event_type = "FILE_CREATION" OR metadata.event_type = "RESOURCE_CREATION")

维度依赖项

下表列出了维度以及可用于过滤或分组的相应 UDM 字段选项。

维度 字段选项
主设备 principal.asset.asset_id
principal.asset.hostname
principal.asset.ip
principal.asset.mac
principal.asset.product_object_id
目标设备 target.asset.asset_id
target.asset.hostname
target.asset.ip
target.asset.mac
target.asset.product_object_id
主用户 principal.user.email_addresses
principal.user.employee_id
principal.user.product_object_id
principal.user.userid
principal.user.windows_sid
目标用户 target.user.email_addresses
target.user.employee_id
target.user.product_object_id
target.user.userid
target.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
}

此示例规则还使用匹配部分执行自我重复数据删除。如果规则检测可能会触发,但主机名和风险得分在 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 专业人士的解答。