摘要
在网络安全领域,传统的被动防御技术越来越无法应对日新月异的网络安全风险,近年来,人们对新型防御的方案的需求愈发强烈,如:主动防御,动态防御,自动化防御等。近期,MITRE公司发布了一个基于主动防御的知识库MITRE Shield的介绍[3]。本文会对该知识库做简单介绍,并进一步探索该知识库应该如何应用于主动防御。
一、背景介绍
1.1MITRE公司
MITRE公司是一个非盈利性组织,该公司近几年在业界最知名的产品就是ATT&CK攻击框架了。事实上,MITRE在网络安全领域的影响力远不止于此,除了ATT&CK框架和即将要介绍的Shield主动防御框架,安全圈所广泛使用的CVE、CWE标准也是由该公司提出的。根据*的介绍[5],其主要资金来源于美国国防部、国土安全部、联邦航空管理局等部门,业务覆盖到了社会生活的方方面面,领域涵盖先进航空系统、企业现代化技术、司法工程、医疗保健等等,提供的解决方案往往具有极强的创造力,研发的项目有如:帮助CDC建设新冠疫情监控系统、机载预警和通讯系统、FBI的社交媒体图像指纹项目等等。总之,MITRE公司以顶尖创新力和执行力向整个产业界贡献着优质的技术方案,在网络空间安全领域有很强的权威性。
1.2主动防御(Active Defense)
Gartner公司曾表明态度,虽然网络安全的预算和市场将会逐渐增加,但是网络防御的能力将会持续下降[7]。面对持续的0-day攻击、漏洞修补的困难、钓鱼攻击等等,企业的网络边界越来越容易被突破。新型的网络防御方案近些年来越来越被关注和提及,其中主动防御技术当属一例。
事实上,主动防御技术早在上世纪90年代就被提出[8],在很多地方都有提及,但是其概念往往难以统一,本部分仅给出简单介绍。
随着网络攻击不断地智能化、自动化、多样化,传统安全防御呈现出明显不足。其本质上是静态、被动的,依赖于对已有网络攻击的先验知识,这种防御方式被称之为被动防御。主动防御技术相较于传统的被动防御技术,强调系统能够在攻击的具体方法和步骤不为防御者所知的情况下实施主动的、前摄的防御部署,提升系统在面临攻击时的生存性和弹性,能够在降低防御成本的同时增加攻击者的攻击成本,即“不对称防御”。常见的主动防御技术手段包括入侵容忍、动态目标防御和拟态安全防御等。另外,一些地方认为欺骗技术或蜜罐也是一种主动防御技术[4],还有一些地方认为自动化事件响应也属于主动防御,通过结合不同的响应策略来增加攻击者的攻击成本[5]。总而言之,主动防御技术是一系列技术的统称,旨在区分与传统IDPS、杀毒软件等以静态特征码对网络攻击进行查杀的被动防御技术。
根据MITRE发布的Shield介绍文章看,Shield也将主要用于主动防御。在建立基础防御能力的基础上,通过增加“欺骗技术”和“对手交战技术”来实现主动防御。
二、MITRE Shield知识库
2.1简介
MITRE Shield是一个防御知识库,包含可用于主动防御用途的各种技术。由于MITRE ATT&CK模型被各大厂商广泛用于检验现有安全能力的不足,以补充缺失的安全能力,MITRE将Shield知识库与MITRE ATT&CK模型形成映射关系,通过对标ATT&CK模型的TTPs来描述各种防御技术,能够加速安全厂商安全能力的建设过程。值得一提的是,这些防御技术是基于红蓝对抗演习和实际运维经验提炼出来的,有很强的现实意义。
面对海量的攻击方式,防御动作往往也很难枚举。目前来说Shield还不甚完善,处于第一版本,主要强调基础防御技术,该部分是其他类型防御技术的基础,如欺骗技术和对手交战技术。
2.2防御技术分类
MITRE将Shield里面涉及到的防御技术统称为主动防御技术,分为:通用防御技术(General Cyber Defense)、欺骗技术(Cyber Deception)、对手交战技术(Adversary Engagement)。
- 通用防御技术。该类技术是适用于所有防御计划的技术,如:日志采集、数据包采集、数据备份等。
- 欺骗技术。欺骗技术相当于一种主动式的检测技术,通过诱捕攻击者进入欺骗系统,可以捕获到更全面、置信度更高的攻击信息,Shield中的欺骗技术可以用于检测、威慑或者其他想到达到的效果。
- 对手交战技术。对手交战技术是为了捕获攻击者的攻击手法,该技术的部署可以进一步提升红蓝对抗的强度,有利于分析对手信息、制定防御计划、获取对未来有用的知识。
虽然MITRE将防御技术分为这3类,但是没有明确指出这3大类中包含哪些具体的技术,只是将具体的技术对应到相应的战术目标中。
2.3Shield模型
Shield的基础是一系列切实可行的防御动作,类似于ATT&CK模型中的TTPs。Shield将这些防御技术抽象到更高层的战术层面:描述防御者通过该攻击想要达到的目的。如图1所示,Shield将这些具体的技术分类到8大战术当中,当实际使用时,防御者可以先选择对应战术,再选择最合适自己的具体技术。
图1. Shield模型
具体来说,Shield所定义的战术分为8种,技术共有34种,战术的具体信息见表1,技术信息在本文中不做展开描述,感兴趣的读者可阅读公众号[1]或者官网[2]。需要注意的是,一个技术通常在会在多个战术中出现。
表1. Shield战术信息
2.4Shield矩阵
Shield中战术和技术的关系可以用表2的矩阵来描述,列名代表战术,单元格名字代表技术,
表2 Shield矩阵
由Shield矩阵可以看出,战术和技术之间是多对多的关系,同一个战术中包含多种技术,同一个技术也可以在多种战术中出现,如Admin Access同时出现于Channel、Contain、Disrupt、Facilitate、Test等5种战术中,各种战术也包含若干种技术。
2.5Shield和ATT&CK的对应关系
MITRE Shield官网中有一个单独页面介绍Shield中技术和ATT&CK模型中技术之间的映射关系,如表3所示,其中ATT&CK Technique代表ATT&CK模型中的技术,AD Technique代表Shield中的技术,Opportunity Space和Use Case为补充说明部分,其中Opportunity Space代表使用相应的防御措施来抵抗攻击的概率,Use Case为相应防御技术的使用方法和使用条件,这两部分的描述过于简单,信息量很少,在研究过程中不是关注的重点。
表3. Shield和ATT&CK之间的映射关系
同样,Shield和ATT&CK技术之间同样是多对多的关系,整体关系如图2所示,能对应上的ATT&CK技术总计有156个,占总数量(184)的84.7%,覆盖率已经较高。需要注意的是,在使用过程中往往不能只看到表面的上的数字,84.7%的仅仅只是基础能力覆盖,并不意味着该防御技术能够100%抵御相应的ATT&CK技术,有些时候甚至完全无法抵御,Shield中包含的防御技术只是抵御ATT&CK技术的必要条件,具体细节我们在第3小节展开描述。
图2. Shield中技术和ATT&CK中技术的映射关系
2.6技术示例
我们通过一个具体的防御技术(API监控),来看Shield知识库的使用逻辑。该技术包含于检测、收集、引导、测试这4个战术当中,需要监控攻击可能利用到的本地API。具体来说,需要捕捉系统函数的使用、参数和返回结果。当防御者捕捉到这些信息后,相较于普通的系统活动监控会对攻击者的行为有更深层次的认知。
以恶意软件检测的场景为例,现在的主流做法分为静态检测和动态检测两种方式,在动态检测中,通过监控软件对于系统API的调用序列,便可区分恶意软件和正常软件[9]。因此通过对系统API调用情况的分析,可以在一定程度上检测出恶意软件,Shield对于使用该方法进行恶意行为检测的检出率评定为“中等级别”,另外对恶意行为的API调用情况进行观察,也有利进一步理解恶意行为,从其他方面进行遏制。
具体来说,在Windows中,可以通过WinSockTCP API函数进行网络活动的监控,通过Win32 DeleteFile() 函数来监控对于指定文件的删除操作等等。Shield框架中技术的具体细节主要针对的是Windows系统,在实际使用中需要根据实际业务系统相应做出改变。
API监控技术与ATT&CK模型中的6个技术相对应:T1007系统服务发现,T1106原生API,T1218 签名的二进制代理执行,T1553 颠覆信任控制,T1140 文件或信息的解混淆或解码,T1569 系统服务。以上6个ATT&CK技术在使用过程当中均会涉及到系统API调用,因此Shield认为对这些API的监控分析可以用于捕捉攻击行为。
2.7未来工作
Shield目前还只是对防御动作做了简单的枚举和分类,未来可以组合这些防御技术来形成更加复杂的防御策略,甚至可以结合ATT&CK中的团伙信息,对特定的攻击者实施特定的防御动作。
三、Shield框架的价值和不足
MITRE Shield框架作为第一个比较完整的主动防御知识库,对于企业安全防御方面有一定的实践价值。但是如前文所述,Shield框架中的具体技术并不能100% 抵御对应的ATT&CK攻击技术,有些时候甚至可以认为完全无法抵御。因此该框架同样存在较多不足之处。本小节我们将对Shield框架做深入分析,探讨该框架对于企业实现主动防御的价值所在,并且通过分析该框架目前存在的问题,给出使用该框架的几点建议。另外,我们给出Shield技术按照通用防御技术、欺骗技术、对手交战技术进行划分的分类方法和结果,MITRE Shield没有给出该分类的公开资料。
3.1Shield框架的价值
Shield框架是第一个比较完整的主动防御知识库,其诞生的目标还是用于主动防御。通过对各种防御方案的总结和分类,Shield提供了对网络防御方案基础的、全面的认知功能,高层次地指引进行网络防御的各种可选方案,总结进行主动防御所需的基础能力。企业可以根据目前防护措施的覆盖缺失,选择性地按照Shield方案进行补充。另外,现代企业对于一般的通用防御技术都有比较好的支持度,如:数据包采集、系统活动监控、系统API监控、行为分析等等。若“通用防御技术”覆盖度比较高,可以选择性部署“欺骗技术”和“对手交战技术”中的子技术,可能会有意想不到的收获。因此,Shield这种网络防御方案的枚举有利于企业进行基础网络防御基础设施的部署决策过程。
有别于传统的基于特征码检测的技术,Shield中的技术从“通用防御技术”到“对手交战技术”都没有使用静态的特征码。在“通用防御技术”中,Shield旨在捕捉各种恶意活动可能触发的事件,采集这些事件对应的数据。这些技术以数据采集技术为主,数据分析技术为辅,整体上类似于数据挖掘的技术架构。假若攻击数据都已经被采集到了,理论上也是可以从海量数据中找到攻击数据的。因此在如今网络安全、大数据等技术的蓬勃发展下,Shield为安全大数据分析领域提供了基础的数据采集方式和分析方法。
虽然Shield初始版本重点还是强调“通用防御技术”,但是其同样对于“欺骗技术”和“对手交战技术”有比较全面的介绍。目前安全厂商通常会在全球各地部署蜜罐来捕捉攻击行为,但是部署的重点还是在于服务的多样化、蜜罐的高交互等方面。Shield从总体上对“欺骗技术”做了详细的介绍,其中很多特性也往往是安全厂商蜜罐所缺乏的,如,诱饵凭证、诱饵进程等,对Shield欺骗技术的系统了解和认识有利于提升蜜罐或其它欺骗设备的威胁捕获能力。更进一步,“对手交战技术”更强调对于攻击的反制,通过部署各种限制措施来捕获攻击行为、设备服务的多样化来迷惑对手等等。这种防御方式类集成了美国提出的动态目标防御(Moving Target Defense,MTD)和我国的拟态防御(Mimic Security Defense,MSD)两者的观念,属于更高级别的防御方案。目前国内厂商也少有这些技术的实现方案。Shield通过枚举这些“对手交战技术”,给企业实现更高级别的主动防御技术提供了方向指引。
总之,Shield框架是一个全面的面向主动防御的网络防御知识库,能够在企业安全的各个阶段起到一定的指导作用。
3.2Shield框架的不足
其实,细心的读者通过上小节中的“技术示例”不难发现:Shield只是表明监控API可以发现网络攻击,但是怎么发现,发现什么类型的攻击却无法给出答案。这便是Shield框架的缺点之一了,笔者总结了Shield框架的以下3点不足,以供参考。
- 分类不当。分类不当有两种含义:1. 分类不清 2. 分类粒度太粗。首先,Shield将防御技术分为34种,但是往往这34种技术之间存在一定的交叉关系或者依赖关系,例如,行为分析(behavioral analytics)技术与基线(Baseline)技术就存在一定的交叉关系,行为分析技术的核心还是在于分析用户或者系统等方面的信息,发现正常行为和异常行为之间的区别,实际上这些往往也是基线技术的核心所在;其次,分类粒度太粗,如,狩猎技术(Hunting)用于使用现有的信息捕捉出攻击者的有关信息,威胁狩猎需要以各种大数据技术、行为分析技术作为依托,并且威胁狩猎也一直是工业界的研究重点,目前来说并没有什么比较成熟的技术,而Shield将之直接划分一个具体的技术,粒度太大,不具备可操作性。
- 防御技术与攻击技术无明显对应关系。Shield将防御技术与ATT&CK攻击技术相对应,但是这些防御技术往往只是必要条件,是万里长征的第一步,以上文中的API监控技术为例,对系统API调用的监控就能做到对攻击行为的检测和狩猎吗?答案显然是否定的。在海量API调用数据中抽取异常的调用行为,甚至分析出攻击路径和手法需要更高级算法的支持,API监控只是其中最基础的一部分,只能形成最原始的数据积累过程,无法直接与ATT&CK技术对应,想要做到相关的攻击防御还远远不够。不仅仅是API监控,数据包采集(Pcap collection)、系统活动监控(System ActivityMonitoring)等等技术都存在这样类似的问题。
- 无优先级区分。Shield中防御技术分类十分全面,覆盖网络安全的方方面面,很难有公司能够做到完整部署,因此就涉及到部署优先级的问题。实际上,很多时候也没有必要部署完整的防御方案。一方面,部署其中任何一项技术都有着不菲的开销,如数据包采集技术,需要高性能网络探针、足够的探测点、大数据集群、足量的存储资源等等。要做出合理可用的数据包采集方案并部署已非易事,并且Shield中的防御方案往往也不具备针对性,很难在短期内有比较良好的成效。因此从成本考虑,大规模部署Shield中提及的防御方案往往不可行;另一方面,网络攻击活动通常都会在很多方面触发异常,择优筛选出防御能力较强的技术一般即可满足要求,大而全的防御设施部署的现实意义并不是很大,因此选择其中几个高性价比的防御方案进行部署是企业进行网络防护的首选,但是Shield缺乏这方面的信息,企业在实际部署防御方案时就要进行更多的考量和评估。
总结来说,从整体上来看,Shield框架还是比较宽泛,很难直接用于网络防御,企业需要研究许多其他的技术,来实现主动防御技术的落地,鉴于Shield框架所存在的不足之处,笔者提出如下意见供使用Shield框架进行主动防御的读者参考:1. 成本和效果考量。举个简单的例子,数据包采集需要耗费大量的资源,而且在数据包层面检测网络攻击的实用范围实在有限,因此Shield技术的部署需要选择性进行、择优进行。2. 不完全依赖Shield框架。虽然Shield和ATT&CK之前存在一定的关联,但这种关系往往是间接的,检测ATT&CK中的各种攻击需要在Shield技术的基础上,研究出检测攻击的特定算法。3. 谨慎使用。不同于传统的阻断和遏制攻击,Shield提供的技术包含大量黑科技,反其道而行之,促进对手的攻击行为,从而捕获更过的攻击手法,该方式可能会对正常的业务系统带来潜在风险,需要谨慎使用。
3.3Shield 技术再分类
Shield框架将其中的34个子技术按照8个战略进行了简单分类,同时,框架的介绍文章中提及这34个子技术也可以按照“通用防御技术”,“欺骗技术”和“对手交战技术”进行分类,但是Shield并没有进行下一步的详细划分。通过前文的分析,该分类方法对于主动防御存在一定的价值,笔者在本部分完成该划分工作,以供读者参考,该部分由笔者自身经验出发,可能部分分类并不正确,欢迎读者批评指正。
笔者按照如下标准对应到这3种分类:1. 若不涉及到与对手进行交互,仅仅是被动的采集数据分析数据,即为“通用防御技术”,2. 若需要建立虚假的载体欺骗对手,即为“欺骗技术”,3. 若需要对已有的系统进行修改,就是“对手交战技术”,其中“对手交战技术”与“欺骗技术”的边界有些不易区分,笔者认为核心在于是否新建了“虚假的载体”,如虚假账户、虚假服务等。具体的分类如表2所示,其中通用防御技术10种,欺骗技术10种,对手交战技术13种。
特别说明,Shield官网给出的防御技术共33种[2],MITRE发布的Shield说明文档中表明有34种[3],多出转移被攻陷系统(Migrate Compromised System)这一项,笔者认为可能是官网没有及时更新,故继续采用包含34种技术这种说法,此外,Shield官网[1]对于防御技术的编号,已经编到36(DTE0036)了,其中缺失了2,9,24号技术,转移被攻陷系统(Migrate Compromised System)属于第24号技术。
3.4小结
Shield目前来看总结了网络安全领域所有可能的防御方案,虽然还有很多的漏洞和不足之处,但是能够给出对于完整防御方案的系统化、结构化认知,指出完成主动防御所需基础能力,能够辅助完成企业网络安全防御基础设施的搭建工作。
四、总结
Shield知识库以枚举的形式给出了防御能力应该包含的各项基础,如:部署蜜罐、用户行为分析、API监控等,但是拥有这些能力对于检测攻击甚至是主动防御是远远不足的。该框架的意义在于全面定义了形成具体防御能力的基础设施,给了使用者实现主动防御技术的高层次指引,拥有这些基础设施并不意味着就能实现主动防御。在具体使用过程中,可以按照该知识库中包含的各项技术,完成各项基础能力的建设,然后再对捕捉到的数据做分析和建模,用于检测和捕获攻击行为,逐步实现主动防御。
同时可以看到,Shield中提及到的主动防御技术更多得还是在于通过被动或主动的方式捕获攻击行为,跟背景介绍中主动防御的概念还存在一定距离,我们期待MITRE对于Shield知识库的不断补充和完善。
参考文献:
[1] https://www.secrss.com/articles/24969
[2] https://shield.mitre.org/
[3] https://shield.mitre.org/resources/downloads/Introduction_to_MITRE_Shield.pdf
[4] "Implementing Active DefenseSystems". SANS White Paper
[5] SANS WhitePaper on Incident Responseand ActiveDefense,https://www.sans.org/reading-room/whitepapers/detection/implementing-active-defense-systems-private-networks-34312
[6] https://en.wikipedia.org/wiki/Mitre_Corporation
[7] https://risk3sixty.com/2019/11/18/an-introduction-to-active-defense/
[8] Crosbie, Mark, and Eugene H. Spafford. "Active defenseof a computer system using autonomous agents." (1995).
[9] Wu, Dong-Jie, et al. "Droidmat: Android malwaredetection through manifest and api calls tracing." 2012 SeventhAsia Joint Conference on Information Security. IEEE, 2012.