Lockheed Martin 公司的《Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion Kill Chains》[1],除了大家耳闻能详的杀链模型,更多在介绍如何利用杀链进行安全分析和情报能力建设。这部分内容之前介绍不多,于是根据自己的理解形成一则读书笔记在此分享。
背景
文章发表于2011年,时值 APT 兴起。文中认为,传统“以漏洞为中心”的防御机制失效。同时传统的事件响应方法也并不适用,原因在于传统方法有两个错误的前提假设:响应只会发生在失陷之后(对应杀链模型,需要在入侵前期进行响应),且失陷由可修补的缺陷导致(对应APT中采用0-day)。因此,针对 APT 入侵的事件响应,需要在分析方法、流程以及技术上的演进。甚而希望基于对威胁的理解,能预计到并能缓解未来的入侵风险。
在此背景下,三位作者提出了以杀链为分析框架,并进一步阐述如何分析攻击对手,如何生成和应用情报,如何进行动态检测、防御和响应,建立“情报驱动的网络防御(Intelligence-driven Computer Network Defense 或 Intelligence Driven Defense)”。
所谓情报驱动防御,文中认为是一种以威胁为中心的风险管理战略,核心是针对对手的分析,包括了解对方的能力、目标、原则以及局限性,帮助防守方获得弹性的安全态势(resilient security posture),并有效指导安全投资的优先级(比如针对某个战役识别到的风险采取措施,或者高度聚焦于某个攻击对手或技术的安全措施)。情报驱动防御必然是一个持续、迭代的过程,通过分析、协同发现指标,利用“指标”去检测新的攻击活动,在调查过程又获得更丰富的指标。所谓弹性,是指从完整杀链看待入侵的检测、防御和响应,可以通过前面某个阶段的已知指标遏制链条后续的未知攻击;针对攻击方技战术重复性的特点,只要防守方能识别到、并快于对手利用这一特点,必然会增加对手的攻击成本。
下面先简要介绍杀链在整个情报驱动防御模型中的作用,然后重点介绍情报驱动的安全分析以及情报能力的建设。
杀链(Intrusion/Cyber Kill Chain)
作者认为,在APT 场景下需要对入侵有一个全新的理解,也即入侵是攻击者分阶段的进展而不局限于单次事件。于是他们将美国军方的 Kill Chain 概念(F2T2EA模型)应用到信息安全领域,用七个阶段结构化整个入侵过程:踩点 (Reconnaissance)、组装(Weaponization)、投送(Delivery)、攻击(Exploitation)、植入(Installation)、控制(C2)、收割(Actions on Objectives)。对应入侵每一阶段,防守方通过对入侵信息的了解,分析提炼出描述入侵信息的指标(Indicator)形成情报,并映射为相应的行动步骤(courses of action,CoA ),起到检测、缓解以及响应的作用。
除了阶段性的解构,杀链模型有如下两个重要价值,在动态攻防对抗中,使防守方可能具备优势。
- “chain”的概念,意味着攻击方需要完成上述七个阶段的步骤才能达成目标,而防御方在某个阶段采取相应措施后就可能破坏整个链条、挫败对手。
- APT攻击的特点,对手会反复多次进行入侵,并根据需要在每次入侵中进行技战术调整。考虑经济性,多次入侵中技战术必然有重复性和连续性。只要防守方能识别并快于攻击方利用好这一特点,必然迫使对手进行调整、从而增加其攻击成本。
情报驱动的安全分析
关于情报驱动的安全分析,文中介绍了两类重要的方法:入侵重构(Intrusion Reconstruction )和战役分析(Campaign Analysis )。
入侵重构(Intrusion Reconstruction )
杀链分析用于指导分析师完整地理解入侵过程。在这种新的分析模型下,分析师需要尽可能多地发现每阶段的属性,而不局限于单点信息。文中介绍了两种入侵重构的分析场景例子。一种是检测到入侵后期的活动,分析师需要完成针对之前所有阶段的分析。第二种检测发生在入侵前期,则需要对后续阶段做分析。
第一种情况,如下图所示,在C2控制阶段检测到某次入侵。分析师必须认为攻击者在之前所有阶段都已成功,并需要对此进行还原分析。举例来说,如不能复现入侵的投送阶段,那么就不可能在同一对手下次入侵的投送阶段采取有效的行动。而攻击方考虑经济性,一定会重用工具和架构,防守方在杀链中应用这类情报,将迫使对手在后续入侵中进行调整。
源:[2]
第二种情况,则是指针对失败入侵的分析也同样重要。文中提出了一种叫合成分析(Synthesis)的方法,如下图所示。防守方需要对已检测和防御到的入侵活动、尽可能全面地收集和分析数据,合成出未来入侵中可能绕过当前有效防御机制、在后续阶段采用的技战术。文中举例说明,基于已知指标,阻断掉了一次定向恶意邮件。通过杀链分析,发现在后续阶段会用到新的exploit或者后门。防守方针对该分析结果,比攻击方更快采取措施,则可继续保持战术优势。
源:[3]
文章第四节有一个实际案例分析,针对第一次入侵,应用情报防御了一个已知 0-day。通过每一次入侵的完整分析,获得更多指标。最后针对第三次入侵,通过投送阶段的已知指标(downstream IP地址:216.abc.xyz.76)遏制住了本次入侵后续阶段的未知0-day攻击。
源:[4]
战役分析(Campaign Analysis )
上面入侵重构主要基于杀链的完整分析,而基于多次入侵的横向关联分析则可以识别彼此共性和重叠指标。上升到战略级别,防守方可以识别或定义战役(Campaigns ),将多年的活动与特定的持续威胁联系起来。通过战役分析,可以确定入侵者的模式与行为、技战术以及过程(TTP),旨在检测他们是“如何”操纵的、而不仅仅是他们做了“什么”。对于防守方的价值在于,基于逐个战役评估自身的安全能力,并基于单个战役的风险评估,制定战略行动路线弥补差距。战役分析的另一核心目标在于理解对手的攻击意图和目标,从而可能高度聚焦于针对某个攻击对手或技术的安全措施。
文中抽象出了两种战役分析方法。下图中左边的两次入侵,在杀链各阶段具有高度相关性,通过里面共性指标(白色)可以确认它们同属一个战役。右边的三次入侵,则具有不同程度的关联性。其中相对稳定、保持一致性的白色拐点指标,可被识别为关键指标,也即很大程度在同一战役的后续入侵中会被重复使用到的指标。这于防守方而言是可利用的有利条件。
源:[5]
介绍了这篇文章中核心的情报驱动分析方法,势必会提出对情报能力的要求。情报能力建设本身是一个比较大的话题,下面仅介绍文中作者提出的理论。
情报能力的建设
文中定义指标(Indicator)为“情报”的基本要素,用于客观描述入侵的信息,具体分为三类:
- 原子指标(Atomic):为保持其在入侵语境下的意义、不能再做分拆的指标,如IP地址、email地址以及漏洞编号。
- 计算指标(Computed):从事件中所涉及数据派生出的指标。 常用计算指标包括Hash值和正则表达式。
- 行为指标(Behavioral):计算和原子指标的集合,通常受到指标数量和可能组合逻辑的限制。 举例来说,可能是一段类似这样的描述,“入侵者最初使用后门,匹配“正则表达式”以某“频率”访问某个“IP地址”,一旦访问建立,就会用另一后门(MD5 hash值)进行替换。”
如前所述,情报驱动防御必然是一个持续、迭代过程,分析师通过分析、协同发现指标,将其应用到工具中做进一步完善,再将这些指标用于检测新的入侵活动。在针对这项活动的调查过程中,分析师通常又会获得更多的指标,而这些指标将受到同一套活动和指标状态的约束。这一行动周期和相应的指标状态形成了下图所示的指标生命周期。
源:[6]
关于指标的有效性,需要考虑如下几种可能:
- 通过某些IOC识别到攻击团伙,回到杀链的其他阶段做进一步分析,可能提取到更多关于对手新的IOC。
- 随着某个攻击团伙使用的技战术或工具被曝光以后,可能为他人所用,那么这类IOC在分析时就不再具备唯一性和排他性。
- 应用自身的变化可能导致IOC的失效,比如原来用的都是标准端口,但可能后面会变化、使用一些非标端口。
小结
综上,这篇文章最主要阐述了三个主题:
- 安全形势变化下安全观念的转变,催生了情报驱动防御模型。
- 杀链提供了一个攻击对手视角的分析框架。在杀伤链模型中存在防守方可利用的两个有利条件。
- 在杀链分析框架下,只有情报和安全分析能力作为基石,防守方可利用的有利条件才可能转化为防守优势,形成弹性防御。
最后想说,其实这篇文章不但是威胁情报领域的经典,也更深地阐述了弹性防御这种较主动防御更高阶的防御方式。
- Eric M. Hutchins, Michael J. Cloppert, Rohan M. Amin, "Intelligence-driven Computer Network Defense Informed by Adversary Campaigns and Intrusion Kill Chains", Lockheed Martin Corporation, URL: https://www.lockheedmartin.com/content/dam/lockheed/data/corporate/documents/LM-White-Paper-Intel-Driven-Defense.pdf
- 同上
- 同上
- 同上
- 同上
- 同上