"震网"病毒曾通过精密的七步"舞蹈",在没有互联网连接的核设施中撕开缺口,导致伊朗核计划遭受重创。十年后,SolarWinds攻击则从供应链源头"下毒",让全球18,000家企业组织的防御形同虚设。
当你已为网络部署了坚固的防火墙、为邮件配置了SPF/DKIM、为通信启用了端到端加密后,为何攻击仍能得手?
答案或许在于,最好的技术堆砌也无法弥补认知模型的落后。要真正防御攻击,必须首先像攻击者一样思考。
01 为何需要攻击模型
在传统的安全思维中,防御往往是点状的。配置防火墙、更新补丁、查杀病毒。这如同仅观察敌人"开了一枪"的动作,却不了解其战前侦察、潜入路径、内部行动与撤离计划的全貌。
随着攻击的复杂性和破坏性急剧上升,仅依赖技术工具的"散兵游勇"式防御已捉襟见肘。
网络犯罪预计到2025年每年将造成10.5万亿美元的损失,单次数据泄露的平均成本持续攀升。在这种形势下,防御者迫切需要一套系统性的框架,用以理解攻击者完整的思维方式和行动路径。
对抗性框架的诞生,正是为了将防御从被动的响应,提升为主动的预见和系统性阻断。
02 CKC模型
由洛克希德·马丁提出的网络杀伤链模型,是首个将军事领域的"杀伤链"概念系统性地引入网络安全的框架。它将复杂的网络攻击解剖为七个连续的阶段,揭示了攻击从一个想法演变为实际损害的必经之路。
这一模型构建了我们对网络攻击的基础认知:攻击是一场精心编排的、有步骤的入侵。
侦察追踪:攻击者像情报人员一样,通过社交媒体、开源信息、端口扫描等手段,为目标"画像",寻找最脆弱的突破口。
武器构建:基于侦察结果,将远程访问木马与漏洞利用工具结合,制作成定向攻击载荷,例如一个携带恶意宏的Office文档。
载荷投递:通过钓鱼邮件、恶意网站挂马或物理U盘,将"武器"送入目标环境。一封伪装成"系统紧急更新"的邮件,可能就是攻击的起点。
漏洞利用:当目标员工点击附件,精心构造的攻击代码便会触发系统或应用漏洞,在后台悄然执行。
安装植入:攻击者在系统中安装后门或木马,以获得持久、隐蔽的访问权限。
持续控制:受控主机与攻击者控制的服务器建立隐秘通信,接受指令。攻击者在此阶段会竭力擦除痕迹,许多攻击因此隐匿数年才被发现。
目标达成:最终,攻击者实现其意图,无论是窃取数据、加密文件勒索,还是实施物理破坏。
CKC模型的防御哲学简单而有力:只要在这条线性链条的任一环节成功拦截,整个攻击即告失败。 这为防御者提供了清晰的行动地图,例如,在"载荷投递"环节部署强大的邮件安全网关和员工培训,就能提前瓦解大量攻击。
03 震网病毒
2010年曝光的"震网"病毒是诠释CKC模型的绝佳案例。它的目标是物理隔离的伊朗纳坦兹核设施,其攻击链完美对应了七个阶段:
- 侦察:攻击者对西门子工业控制系统进行了长达数年的针对性研究。
- 武器构建:开发了利用多个Windows"零日漏洞"的超级病毒。
- 投递:由于网络隔离,攻击者创新地使用感染U盘,通过承包商带入内部网络。
- 利用与安装:U盘插入后,病毒利用漏洞传播,并最终植入到控制离心机的PLC程序中。
- 命令与控制:在隔离网内,病毒通过内部节点进行传播和指令传递。
- 目标达成:恶意代码悄无声息地修改离心机转速,导致其物理损毁,成功达成了战略目的。
震网案例展示了CKC模型在分析高级、复杂攻击时的强大解释力。
纵深防御映射
| CKC 阶段 | 攻击者目标 | 示例防御控制/策略 |
|---|---|---|
| 侦察 | 收集目标信息,识别漏洞。 | 威胁情报平台、网络入侵检测系统 (NIDS)、限制公开信息的策略、防火墙访问控制列表 (ACL) 。 |
| 武器化 | 创建恶意载荷。 | 由于此阶段在攻击者端进行,防御方无法直接干预。但可以通过威胁情报了解最新的恶意软件技术。 |
| 载荷投递 | 将载荷传输到目标环境。 | 邮件安全网关、Web代理过滤、应用程序白名单、终端恶意软件防护、员工安全意识培训。 |
| 漏洞利用 | 利用系统漏洞执行恶意代码。 | 及时进行补丁管理、安全配置强化、数据执行保护(DEP)、基于主机的入侵防御系统 (HIPS)。 |
| 安装 | 在目标系统上建立持久性后门。 | 终端检测与响应 (EDR)、主机入侵检测系统 (HIDS)、权限分离、双因素认证 (2FA)、监控系统配置变更。 |
| 命令与控制 | 建立远程控制渠道。 | 出口流量过滤、DNS防火墙/ DNS Sinkholing、代理服务器、网络分段、NIDS/HIDS 。 |
| 目标达成 | 窃取、破坏或加密数据。 | 数据丢失防护 (DLP)、文件完整性监控、数据加密、事件响应计划、蜜罐 (Honeypot) 。 |
04 ATT&CK模型
网络杀伤链的不足
- 严格的线性结构:最大的局限性在于其严格的线性假设。现代攻击往往是非线性的,攻击者可能会跳过某些阶段,或者从中间阶段开始(例如,使用已窃取的凭证直接进行横向移动),这使得线性模型难以准确描述其行为。
- 过分关注边界:该模型主要关注来自外部的、由外向内的传统网络攻击,对于内部威胁、云环境攻击或已在内部立足的攻击者的描述能力较弱。
- 缺乏后渗透阶段的细节:CKC将所有后渗透活动笼统地归为"目标达成",未能详细刻画横向移动、权限提升、防御规避等高级攻击中至关重要的复杂行为。此外,如前所述,"武器化"阶段对防御方是不可见的,这使得该阶段在实际防御中缺乏可操作性。
为此,MITRE公司于2013年推出了ATT&CK模型 。如果说CKC是一部线性剧本,那么ATT&CK就是一个庞大的、离散的战术技术知识库。
ATT&CK不再关注攻击的固定顺序,而是聚焦于攻击者为了实现某个战术目标,可以采取哪些具体技术。其核心是 TTPs模型:
- 战术(Tactics)-"为何做" :
代表了攻击者在攻击过程中的短期战术目标,即他们执行某个动作的原因。如,"凭证访问 "是为了获取账户名和密码,"横向移动(Lateral Movement)"是为了在网络中扩展控制范围。在ATT&CK矩阵中,战术表现为列标题。 - 技术(Techniques)-"如何做" :
技术描述了攻击者为实现其战术目标所采用的具体手段。例如,在"凭证访问 "战术下,攻击者可能会使用"键盘记录 "或"哈希传递"等技术。在ATT&CK矩阵中,技术是每个战术列下的单元格。 - 子技术(Sub-techniques)-"具体如何做" :
子技术是对技术的更精细化描述,解释了实现某个技术的不同方式。例如,技术"命令与脚本解释器 (T1059)"下面包含了多个子技术,如"PowerShell (T1059.001)"和"Unix Shell(T1059.003)"。 - 程序(Procedures) :
程序是指特定攻击组织或恶意软件实现某个技术的具体方式。例如,某攻击组织喜欢的固定攻击链:"发送钓鱼邮件→用PowerShell执行恶意代码→哈希传递横向移动→窃取数据"。
ATT&CK构建了一个矩阵式的知识体系,横轴是十余项核心战术,纵轴是数百项具体技术和上千项子技术,全部基于对全球真实攻击案例的观察。
05 ATT&CK视角下的SolarWinds攻击分析
2020年的SolarWinds供应链攻击,鲜明地体现了ATT&CK模型相对于CKC的优越性。
攻击者篡改了IT管理软件SolarWinds Orion的官方更新程序,植入了后门。全球数万家机构在信任中下载并安装了这一"毒更新"。
使用ATT&CK来分析SolarWinds攻击
用ATT&CK模型可以清晰地解剖其高级手法:
-
- 战术 :初始访问 → 技术 :供应链妥协 → 子技术:软件更新投毒(T1195.002)------攻击者没发钓鱼邮件,而是篡改合法软件更新,突破边界;
-
- 战术 :执行 → 技术:合法软件代理执行(T1218.007)------恶意代码通过合法更新机制运行,系统认为是正常程序;
-
- 战术 :持久化 → 技术:后门休眠(T1027.011)------后门潜伏数周,不做任何动作,避开检测;
-
- 战术 :防御规避 → 技术:伪装正常流量(T1027.009)------后门和控制服务器通信时,伪装成软件更新流量,绕过IDS/IPS;
-
- 战术 :凭证访问 → 技术:窃取Windows凭证(T1003.001)------拿到管理员账号密码;
-
- 战术 :横向移动 → 技术:远程桌面协议(T1021.001)------用偷来的凭证登录其他服务器;
-
- 战术 :数据渗出 → 技术 :隐蔽传输(T1020.001)------把敏感数据打包,通过加密信道发送出去。
若强行套用CKC模型,此次攻击的"载荷投递"(合法更新)和"漏洞利用"(合法安装)阶段都显得怪异,其精妙的后续活动也会被笼统地塞进"目标达成",无法展现攻击全貌。
- 战术 :数据渗出 → 技术 :隐蔽传输(T1020.001)------把敏感数据打包,通过加密信道发送出去。
使用CKC来分析SolarWinds攻击
试图用CKC来分析SolarWinds攻击,会立即遇到困难:
- 其"载荷投递"是一个受信任的、经过数字签名的软件更新,这使得传统的边界防御措施完全失效。
- 其"漏洞利用"在传统意义上并不存在,因为恶意代码是通过合法的更新机制被安装和执行的。
- 最关键的是,这次攻击的绝大部分复杂性和精妙之处都发生在"安装"之后------包括长达数周的潜伏、复杂的防御规避、隐蔽的C2通信以及精巧的横向移动和凭证窃取。
- 在CKC模型中,所有这些高度复杂的操作都会被笼统地归入"目标达成"阶段,从而完全掩盖了攻击的真实面貌。
06 攻击模型的融合与实战映射
CKC与ATT&CK并非互斥,而是互补。在实际防御中,最佳实践是将两者结合:
- CKC建宏观认知:用于安全规划、事件响应的高层沟通和培训,帮助团队理解攻击的全生命周期。
- ATT&CK落地精细化防御:将ATT&CK中的具体技术和子技术,映射到防御体系的每一个环节。
| 防御层级 | CKC阶段对应 | ATT&CK战术/技术示例 | 具体防御措施 |
|---|---|---|---|
| 预防 | 侦察、武器化、投递 | 网络钓鱼、漏洞利用 | 员工安全意识培训、邮件安全网关、漏洞管理和补丁程序 |
| 检测 | 利用、安装、命令控制 | 可疑进程创建、异常网络连接、横向移动(如WMI、PsExec滥用) | 端点检测与响应、网络流量分析、用户行为分析 |
| 响应 | 目标达成 | 数据渗出、影响 | 数据丢失防护、事件响应预案、自动化遏制(如强制密码重置) |
真正的防御核心,是从盲目的"技术堆砌"转向"模型驱动"的精准布防。 让每一个安全控制措施,都明确对应到攻击链的某个环节或攻击者的某种TTP上。