复合检测概览
本文档介绍了复合检测,以及如何通过关联多个规则的输出结果来增强威胁检测工作流程。
复合检测是由使用其他规则的检测结果作为输入(结合事件、指标或实体风险信号)的规则生成的。然后,将这些规则与事件、指标或实体风险信号相结合,以检测单个规则可能会遗漏的复杂多阶段威胁。
复合检测有助于通过定义的规则互动和触发器来分析事件。通过关联来自不同来源和攻击阶段的数据,可以提高准确性、减少误报,并全面了解安全威胁。
以下概念定义了复合规则的构建块,并阐明了它们在检测工作流中的运作方式:
复合规则:使用检测结果或提醒(或两者)作为输入。还可以选择使用实体图中的事件、指标和各种情境数据(例如普及率数据、威胁情报或实体风险评分)来丰富这些数据。这些规则必须始终包含匹配部分,并且可以引用输入规则中的元字段、
match
变量和outcome
变量。检测:满足规则条件时生成的输出。
仅检测规则:仅使用检测或提醒作为输入的复合规则。
何时使用复合检测
复合检测有助于实现以下目标:
关联两条或更多条规则的结果(例如,将“恶意软件下载”检测结果与同一主机上后续的 C2 Beaconing 提醒相关联)。
使用相关事件数据丰富提醒。
仅当出现多次嘈杂的低置信度检测或与其他可疑活动结合时,才触发最终提醒,从而减少提醒疲劳。
针对复杂的多阶段攻击创建提醒,其中每个阶段都已通过各自的规则进行识别。
复合检测的优势
复合检测具有以下优势:
揭露多阶段攻击:网络攻击通常是多方面且相互关联的。复合检测通过关联看似孤立的安全事件来揭示更广泛的攻击叙事。例如,复合检测可以识别完整的攻击序列,例如初始入侵,然后是权限升级和数据渗漏。
缓解提醒疲劳:复合规则可整合并过滤嘈杂的提醒,从而让您更专注于响应。这种方法有助于优先处理高影响事件,并减少总体提醒疲劳。
提高检测准确性:将来自统一数据模型 (UDM) 事件、规则检测、实体上下文、用户和实体行为分析 (UEBA) 结果以及数据表的洞见相结合,以构建更准确的检测逻辑。
简化复杂逻辑:将复杂的检测场景分解为可管理、相互关联且可重用的规则,从而简化开发和维护。
在信息中心中使用:将复合检测无缝集成为 Google SecOps 信息中心的数据源。您可以使用它们创建总结多阶段攻击模式的可视化图表,从而更轻松地了解复杂风险。
常见使用场景和示例
本部分列出了复合检测的一些常见用例。
跟踪登录后的用户活动
一种主要用例,侧重于将用户的登录事件与后续的可疑活动相关联。虽然标准的多事件规则可以跟踪短序列,但复合检测更适合构建用户整个会话的全面风险概况。
目标:将单个事件(例如高风险登录)与较长时间内(例如一整天)的一系列后续“弱信号”活动相关联。
示例:创建多个可生成较低级别检测结果的规则。 然后,使用匹配时间窗口较长(例如 24 小时)的复合规则,在检测到初始可疑登录时触发,并将其与同一用户的以下任何检测结果相关联:
用户清除命令行历史记录。
创建新的本地管理员账号。
将大量数据上传到个人 Cloud Storage 网站。
与 UEBA 指标结合使用
此使用情形利用现有的 UEBA 指标作为复合检测的起点,以发现更复杂、更长期的行为。
目标:将 UEBA 指标的峰值与另一项异常活动相关联。
示例:
UEBA 规则检测到某用户登录失败的次数过多。
另一条 UEBA 规则检测到同一用户有大量出站字节。
复合检测会将这两项单独的 UEBA 发现结果在几天内关联起来,以识别可能存在的账号入侵和随后的数据盗窃行为。
检测数据渗漏尝试
这涉及关联多个不同的用户操作,这些操作组合在一起可能表明有人试图窃取数据。
目标:构建单个用户在多个设备和操作中处理风险数据的个人资料。
相关操作:
从多部设备(例如,家用电脑和工作电脑)登录。
访问的数据源比平时多。
同时下载、打印和通过电子邮件发送数据。
统计用户在某个时间范围内接触的已分类文档数量。
已提交辞职信。
复合检测的工作原理
当规则满足预定义条件时,它们会生成检测结果。这些检测结果可以选择性地包含结果变量,用于捕获特定数据或事件状态。
复合规则使用来自其他规则的这些检测结果作为其输入的一部分。评估可以基于原始规则的元部分、结果变量和匹配变量中的信息。
根据此评估,您可以使用复合规则创建新的检测结果,以用作调查的中间表示形式,并通过后续规则进行提醒。这有助于关联不同检测中的多种因素,从而识别复杂的威胁。
制定策略
在开始创建复合规则之前,请先规划策略,确保新规则有效、高效且能解决正确的问题。
评估您当前的检测策略。检查现有规则,找出过于嘈杂、会生成大量误报或过于复杂且难以管理的规则。
确定复合规则可发挥价值的具体场景。 这包括检测多阶段攻击、将多个低置信度提醒关联为单个高置信度提醒,或使用来自其他数据源的额外上下文信息来丰富检测结果。
根据评估结果,制定实施计划。确定哪些嘈杂的规则需要优化,哪些复杂的规则需要简化,以及哪些新的多阶段检测需要优先处理。
此明确的计划为创建有针对性的有效复合规则提供了路线图。不妨考虑以下高级别策略,以便在管理技术限制的同时,充分发挥复合检测的价值。
选择合适的方法
在构建复合检测之前,请考虑是否可以通过其他替代方案实现所需的结果。分析您是否可以通过现有的 UEBA 检测来识别复杂模式。 如果检测过于复杂,可能会增加维护开销并消耗规则配额。
在以下情况下使用复合检测:您的目标是关联两个或更多个不同的现有规则的最终结果。这在概念上将攻击的不同阶段联系起来。
示例:将“检测到恶意软件下载”规则的检测结果与“检测到 C2 信标”规则的后续检测结果相关联。
在以下情况下使用现有的 UEBA 检测:您想了解用户或设备何时打破了正常的活动模式。
示例:自动检测到用户今天下载了 100 GB 的数据,而他们通常只下载 1 GB 的数据。
管理规则配额和风险评分
如需管理组织的资源,请了解不同类型的规则对规则配额的影响。
精选规则不计入自定义规则配额。
复合规则和自定义多事件规则会占用您的配额。
您可以将精选检测设置为仅检测模式,以使用该检测。这样,精选规则就可以在不生成提醒的情况下执行初始的广泛检测。然后,您可以使用复合规则对这些发现应用特定逻辑,从而在战略性地管理配额的同时提供更多价值。
了解风险与情境之间的区别
设计检测逻辑时,请区分评估风险的规则和提供上下文的规则。
风险是对一组活动的危险程度的评估。旨在评估风险的规则通常会汇总多个情境事件或检测结果,以便做出判断。例如,一次登录失败可以提供背景信息,但多次登录失败则表明存在暴力攻击风险。
背景信息是指与事件相关的实际详细信息。旨在丰富上下文的规则会使用另一个事件中的详细信息来丰富一个事件。例如,虽然规则可以检测到用户成功登录,但情境规则可以提供关键的情境信息,即此登录来自新的异常国家/地区。
示例:初始检测可以提醒您存在潜在风险,例如对恶意网域的 DNS 调用。然后,复合规则会将该提醒与 Google SecOps 中的事件日志相关联,以找到发起调用的特定命令行进程。这会为高级风险提醒添加关键的可操作背景信息。
巧妙使用较长的匹配窗口
配置了较长匹配时间范围(例如 14 天)的复合规则的执行频率较低。高延迟可能会导致它们不适合用于时间敏感型提醒。您可以考虑使用这些较长的考量时长来检测长时间内缓慢而持续的恶意活动。
使用检测结果进行可视化
管理嘈杂规则的一种策略是将它们的输出转换为信息中心内的可视化图表。这种方法不会占用规则配额,并且可以将大量低保真度数据转化为有价值的洞见。
通过将规则设置为仅检测,然后在信息中心微件中绘制其检测结果,您可以跟踪趋势、识别离群值,并获得活动的高级审核视图,而不会被单个提醒淹没。
示例:跟踪个人身份信息数据处理情况
规则会跟踪用户每次处理敏感 PII 数据的行为。
它设置为仅检测,而不是每次都发出提醒。然后,信息中心 widget 会显示哪些用户即将达到每日出站流量上限(例如 10,000
字节)。这样一来,您无需不断生成提醒,即可快速查看风险行为的审核情况。
示例:监控特定 DLP 风险:
该 widget 会汇总一组非常具体的 DLP 规则的风险得分。这样,特定团队(例如,数据泄露防护 (DLP) 管理员)就可以仅监控相关风险,过滤掉其他安全领域的干扰信息。
构建复合检测
以下工作流概述了创建复合规则的典型流程。如需了解完整的语法和详细信息,请参阅复合规则语法和示例。
定义威胁场景:定义要检测的具体威胁。
创建或确定输入规则:针对威胁场景的每个阶段,创建或确定可检测到特定活动的输入规则。
定义联接条件:确定用于关联输入规则中的检测结果的共同信息,例如规则标签、变量或检测字段。
构建复合规则:编写可从输入规则中提取检测结果的规则。
定义
events
部分,按名称、ID 或共享元标签引用输入规则。定义
match
部分,以指定联接键和匹配的时间窗口。定义
condition
部分,以设置必须满足的条件,才能触发最终提醒。
测试并部署规则链:我们建议针对序列中的每条规则手动运行一次回溯性搜索。
在复合规则中使用测试规则功能时,该功能仅针对符合规则输入条件的现有检测结果运行。它不会自动执行底层规则来为测试生成新的输入,这意味着您无法通过一次操作验证整个规则链。
如需针对规则序列运行回溯性搜索,请执行以下操作:
从序列中的第一条规则开始手动启动回溯搜索。
等待该流水线完成。
继续执行下一条规则。
查看复合检测结果
您可以在检测页面中查看复合检测结果。如果输入列显示“检测”作为来源,且检测类型列显示“提醒”标签(旁边带有数字,例如 Alert (3)
),则表示检测结果为复合检测。
注意:如果您同时拥有 SIEM 和 SOAR,还可以在支持请求标签页中查看结果。
优化复合检测
我们建议您在构建复合规则时遵循以下做法。
针对延迟时间进行优化
为了最大限度地减少检测流水线的延迟时间,请尽可能使用单事件规则,例如用于初始触发。复合规则可以使用其检测结果与其他事件、实体或检测结果进行更复杂的关联,从而有助于缩短总体延迟时间。
使用高效的方法联接检测结果
我们建议使用结果变量、元标签和匹配变量来联接检测结果。与使用事件样本相比,这些方法可提供更具确定性和可靠性的结果。元标签非常灵活,因为它们可让您对规则进行分类,以便复合规则可以针对带有相应标签的任何检测结果。
例如,如果多个规则共享同一元标签 tactic: exfiltration
,您可以创建一个复合规则,该规则以策略标签值为 exfiltration
的任何检测结果为目标。
使用函数库增强检测功能
您可以在复合规则中的战略位置使用 YARA-L 函数库,以增强信号并添加更复杂的逻辑。
管理规则更新
当您更新一条用于一条或多条复合规则的规则时,系统会自动创建该规则的新版本。复合规则会自动使用新版本。建议您测试整个更新后的规则序列,以验证预期行为。
限制
在设计和实现复合检测时,请考虑以下限制:
复合规则:Google SecOps 支持的复合规则深度上限为 10。深度是指从基本规则到最终复合规则的规则数量。
仅检测规则:匹配窗口期最长为 14 天。不过,以下条件适用:
如果规则使用提取的事件、实体图数据、数据表或参考列表,匹配窗口将限制为 48 小时。
仅检测规则每天的检测次数上限为每条规则 10,000 次。
结果变量:每条规则的结果变量数量上限为 20 个。此外,每个重复的结果变量最多只能包含 25 个值。
事件样本:每个规则中的每个事件变量仅存储 10 个事件样本,例如
$e1
存储 10 个,$e2
存储 10 个。
如需详细了解检测限制,请参阅检测限制。
后续步骤
如需了解如何构建复合检测规则,请参阅复合检测规则。
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。