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),并有效指导安全投资的优先级(比如针对某个战役识别到的风险采取措施,或者高度聚焦于某个攻击对手或技术的安全措施)。情报驱动防御必然是一个持续、迭代的过程,通过分析、协同发现指标,利用“指标”去检测新的攻击活动,在调查过程又获得更丰富的指标。所谓弹性,是指从完整杀链看待入侵的检测、防御和响应,可以通过前面某个阶段的已知指标遏制链条后续的未知攻击;针对攻击方技战术重复性的特点,只要防守方能识别到、并快于对手利用这一特点,必然会增加对手的攻击成本。
下面先简要介绍杀链在整个情报驱动防御模型中的作用,然后重点介绍情报驱动的安全分析以及情报能力的建设。
作者认为,在APT 场景下需要对入侵有一个全新的理解,也即入侵是攻击者分阶段的进展而不局限于单次事件。于是他们将美国军方的 Kill Chain 概念(F2T2EA模型)应用到信息安全领域,用七个阶段结构化整个入侵过程:踩点 (Reconnaissance)、组装(Weaponization)、投送(Delivery)、攻击(Exploitation)、植入(Installation)、控制(C2)、收割(Actions on Objectives)。对应入侵每一阶段,防守方通过对入侵信息的了解,分析提炼出描述入侵信息的指标(Indicator)形成情报,并映射为相应的行动步骤(courses of action,CoA ),起到检测、缓解以及响应的作用。
除了阶段性的解构,杀链模型有如下两个重要价值,在动态攻防对抗中,使防守方可能具备优势。
关于情报驱动的安全分析,文中介绍了两类重要的方法:入侵重构(Intrusion Reconstruction )和战役分析(Campaign Analysis )。
杀链分析用于指导分析师完整地理解入侵过程。在这种新的分析模型下,分析师需要尽可能多地发现每阶段的属性,而不局限于单点信息。文中介绍了两种入侵重构的分析场景例子。一种是检测到入侵后期的活动,分析师需要完成针对之前所有阶段的分析。第二种检测发生在入侵前期,则需要对后续阶段做分析。
第一种情况,如下图所示,在C2控制阶段检测到某次入侵。分析师必须认为攻击者在之前所有阶段都已成功,并需要对此进行还原分析。举例来说,如不能复现入侵的投送阶段,那么就不可能在同一对手下次入侵的投送阶段采取有效的行动。而攻击方考虑经济性,一定会重用工具和架构,防守方在杀链中应用这类情报,将迫使对手在后续入侵中进行调整。
第二种情况,则是指针对失败入侵的分析也同样重要。文中提出了一种叫合成分析(Synthesis)的方法,如下图所示。防守方需要对已检测和防御到的入侵活动、尽可能全面地收集和分析数据,合成出未来入侵中可能绕过当前有效防御机制、在后续阶段采用的技战术。文中举例说明,基于已知指标,阻断掉了一次定向恶意邮件。通过杀链分析,发现在后续阶段会用到新的exploit或者后门。防守方针对该分析结果,比攻击方更快采取措施,则可继续保持战术优势。
文章第四节有一个实际案例分析,针对第一次入侵,应用情报防御了一个已知 0-day。通过每一次入侵的完整分析,获得更多指标。最后针对第三次入侵,通过投送阶段的已知指标(downstream IP地址:)遏制住了本次入侵后续阶段的未知0-day攻击。
上面入侵重构主要基于杀链的完整分析,而基于多次入侵的横向关联分析则可以识别彼此共性和重叠指标。上升到战略级别,防守方可以识别或定义战役(Campaigns ),将多年的活动与特定的持续威胁联系起来。通过战役分析,可以确定入侵者的模式与行为、技战术以及过程(TTP),旨在检测他们是“如何”操纵的、而不仅仅是他们做了“什么”。对于防守方的价值在于,基于逐个战役评估自身的安全能力,并基于单个战役的风险评估,制定战略行动路线弥补差距。战役分析的另一核心目标在于理解对手的攻击意图和目标,从而可能高度聚焦于针对某个攻击对手或技术的安全措施。
文中抽象出了两种战役分析方法。下图中左边的两次入侵,在杀链各阶段具有高度相关性,通过里面共性指标(白色)可以确认它们同属一个战役。右边的三次入侵,则具有不同程度的关联性。其中相对稳定、保持一致性的白色拐点指标,可被识别为关键指标,也即很大程度在同一战役的后续入侵中会被重复使用到的指标。这于防守方而言是可利用的有利条件。
源: [5]
介绍了这篇文章中核心的情报驱动分析方法,势必会提出对情报能力的要求。情报能力建设本身是一个比较大的话题,下面仅介绍文中作者提出的理论。
文中定义指标(Indicator)为“情报”的基本要素,用于客观描述入侵的信息,具体分为三类:
如前所述,情报驱动防御必然是一个持续、迭代过程,分析师通过分析、协同发现指标,将其应用到工具中做进一步完善,再将这些指标用于检测新的入侵活动。在针对这项活动的调查过程中,分析师通常又会获得更多的指标,而这些指标将受到同一套活动和指标状态的约束。这一行动周期和相应的指标状态形成了下图所示的指标生命周期。
源: [6]
关于指标的有效性,需要考虑如下几种可能:
综上,这篇文章最主要阐述了三个主题:
最后想说,其实这篇文章不但是威胁情报领域的经典,也更深地阐述了弹性防御这种较主动防御更高阶的防御方式。