上一篇讨论了什么是安全对抗,以及它为什么会表现为检测失效。这一篇从攻防两侧拆解一个问题:一个样本或行为从进入系统到最终被处置,中间会经过哪些检测环节?每个环节到底在看什么、可能漏什么,以及为什么单点规则不等于完整的检测能力。
一、为什么要理解检测链路
在日常安全工作中,漏报和弱告警经常出现,但很难直接判断问题到底出在哪个环节。如果不清楚一个样本从进入系统到最终告警经历了哪些步骤,就很难解释为什么某个阶段没有看到、某个规则没有命中、某条证据没有被关联。
反过来看,攻击侧在设计对抗方案时,也需要对整条检测链路有比较清楚的理解——不同阶段的检测假设、触发条件和证据强度是不同的,围绕不同环节展开的对抗策略是有区别的。
因此,可以把检测链路理解为一条分析坐标:
<code>攻击侧问:哪些检测假设可以被改变? 防御侧问:哪些证据、规则和关联是可靠的?</code>
这篇会从这条检测链路出发,逐个阶段拆解。
二、完整的检测链路
一个样本从进入系统到最终被处置,通常经过以下阶段:

注意,这只是一条简化的逻辑链路,真实产品可能并行、交叉或跳过某些阶段。但它可以帮助建立概念框架。
下面逐个阶段拆解。
三、第一阶段:文件来源与落地
检测什么
文件落地是检测链路的起点。这个阶段关注的不是文件内容本身,而是文件从哪来、怎么来的、落在哪。
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
攻击侧关注
攻击侧在这个阶段通常会考虑:文件从什么渠道进入,落在哪些路径不容易触发高优先级规则,如何让来源上下文看起来更”正常”。例如利用压缩包解压、脚本间接落地、浏览器另存为、IM 文件传输等都是常见方式。
防御侧关注
防御侧需要做的不是逐一封堵路径,而是尽可能完整地采集文件来源、落地路径、创建进程、时间窗口和互联网标记等上下文信息,为后续阶段的关联判断提供基础。
四、第二阶段:静态扫描
检测什么
静态扫描是对文件本身进行分析,不执行文件。它的速度最快,覆盖面最广,也是绝大多数样本接触到的第一道检测。
典型检测对象:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
攻击侧关注
静态扫描的检测假设比较依赖”已知特征”。攻击侧通常会关注:如何让特征发生变化。比如改变字符串、调整 PE 结构、替换节区名称、移除明显签名,或者把可疑内容打包到多层的压缩或编码中。
防御侧关注
静态扫描失效的常见原因不是”静态特征没有价值”,而是规则依赖了过于脆弱的单点特征。补强方向通常不是拒绝静态方法,而是增加更多维度的组合特征和家族级特征。
五、第三阶段:云信誉与情报查询
检测什么
在静态扫描之后,很多安全产品会将文件 Hash、签名、域名等提交到云端的信誉和情报系统进行查询。这个阶段的优势在于可以利用更丰富的知识库,包括历史告警、流行度、传播范围、关联威胁活动。
攻击侧关注
云信誉阶段的检测假设是”历史上已经有人遇到并上报了这个样本”。攻击侧可以利用的是:新样本在一段时间内可能没有信誉记录,或者仅在某些特定环境下才会被触发和上报。
防御侧关注
云信誉阶段的价值在于补充本地规则的不足。防御侧需要关注的是:新样本、低流行度样本、仅内网传播的样本,以及利用合法云服务传播的样本,都可能在这个阶段获得较弱的结论。这提示我们需要把云信誉和其他阶段的证据并行考虑,而不是依赖单一结果。
六、第四阶段:沙箱分析
检测什么
沙箱会实际执行文件并观察其行为,可以补充静态扫描中看不到的动态证据。典型的沙箱会监控文件操作、进程创建、注册表修改、网络通信、内存行为等。
攻击侧关注
沙箱的检测假设有明确的边界:它的运行环境和真实环境之间存在差异。攻击侧通常会利用这些差异,比如依赖特定时间、用户交互、屏幕分辨率、域环境、特定文件或进程、特定系统语言等条件。如果这些条件在沙箱中不存在,某些行为路径就不会触发。
防御侧关注
沙箱行为漏报的常见原因不是沙箱本身无效,而是某些行为路径没有被触发。因此,防御侧需要的不是”更换沙箱”,而是持续补环境、补触发条件,并确保沙箱的观测范围和时间窗口足够覆盖这类需要特定条件才能触发的路径。
七、第五阶段:运行时监控与行为关联
检测什么
样本启动后会进入运行时监控阶段。这一阶段关注的是进程及其相关对象的活动:进程创建、文件读写、注册表操作、服务安装、任务计划、进程注入等。
行为关联的关键是:将这些单点事件连接成一条或多条行为链,判断是否存在有组织、有目的的恶意意图。
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
攻击侧关注
攻击侧在这个阶段通常不会把所有行为集中到一个进程或一个时间窗口内。相反,行为会被分散到不同进程、不同时间点,或借助合法进程和系统服务来混淆行为来源。
防御侧关注
行为关联是运行时监控中最难做好的部分。常见的缺口包括:父子进程链不完整、跨进程事件没有形成时间窗口关联、通过合法进程的行为没有额外上下文、日志字段不足导致无法判断行为意图。
补强方向是:不只是看单个事件,而是把进程创建、文件操作、网络、内存、注册表等事件放入同一时间窗口进行多维度关联。
八、第六阶段:内存检测
检测什么
内存检测关注的是运行时内存中是否存在异常形态:进程内存中是否加载了可疑 DLL、是否存在注入痕迹、是否存在无文件执行的迹象、是否存在异常的权限令牌或执行上下文。
攻击侧关注
内存形态是可以被改变的。典型手段包括:修改加载方式、跳过写磁盘、利用 PEB 修改、调整内存属性和权限等。
防御侧关注
内存检测的缺口通常来自三个方面:扫描时机不对、遥测字段不足、上下文关联缺失。补强方向是在关键事件节点(如进程创建、远程线程创建、句柄操作、驱动加载)触发内存扫描,同时将内存证据与行为链路关联起来。
九、第七阶段:网络检测
检测什么
网络检测关注的是样本产生的网络流量:发起连接到哪些 IP 和域名、使用什么协议、发送和接收什么数据、流量是否有明显的 C2 或数据外传特征。
攻击侧关注
网络侧的对抗常常围绕以下几个方面展开:使用加密协议、利用合法 CDN 或云服务、调整通信频率、使用域名前置、利用 DNS 或 HTTPS 等常规协议传输数据、在流量中加入伪装内容。
防御侧关注
网络检测的缺口通常不是”看到了连接但没有告警”,而是”没有进程与网络事件的关联”、”没有流量上下文与行为链路的关联”、”只看到了弱特征需要更多维度补充”。
补强方向是:把网络事件连接到具体进程、具体行为,结合进程上下文判断流量是否合理,并补足流量元数据和周期性分析。
十、第八到十阶段:告警聚合、关联与响应
告警聚合与关联
单条告警的价值有限。真正的威胁判断需要把不同来源、不同阶段、不同侧面的告警聚合在一起,形成事件链。聚合不充分时,即使每个阶段都产生了日志,最终也可能因为噪声过多、置信度不够或上下文缺失而没有形成有效告警。
响应处置
响应是检测链路的终点。处置策略的设计需要考虑阻断时机、阻断范围、阻断失败后的降级处理。如果响应阶段执行不完整,前面的所有检测都没有实际效果。
十一、为什么单点规则不等于完整检测能力
把上面所有阶段放在一起,可以看到一个关键结论:单点规则不等于完整检测能力。
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
这四点也是后续文章逐步展开的基础。
十二、小结
一次有效的检测,需要整条链路中多个阶段协同完成:从文件进入开始,到静态扫描、云信誉查询、沙箱分析、运行时监控、行为关联、内存检测、网络检测,最终到告警聚合和响应处置。
每个阶段都有自己的检测假设和证据强度。任何一个环节缺少关键证据或上下文关联,整体结果就可能出现缺口。
理解了检测链路,下一步就可以进一步讨论:各类检测失效现象是如何在不同阶段之间发生并相互影响的。这也是后续文章要展开的重点。
转自:https://mp.weixin.qq.com/s/DgTh_5hxGca5Wn06AITWew?cur_album_id=4593893496704729094&scene=189&color_scheme=light#wechat_redirect