从事网络安全的人员都或多或少听说过ATT&CK框架,该框架最近几年发展得如火如荼,备受欢迎,其中一个原因在于ATT&CK框架的出现,将高度复杂的网络攻击从“玄学”变成了“显学”。通过多年对ATT&CK的研究探索,青藤积累了大量较为成熟和系统化的研究材料,基于此,青藤CEO张福、COO程度和产品副总裁胡俊联合编写了全球首部系统化研究ATT&CK的专著——《ATT&CK框架实践指南》。本书由邬贺铨院士作序,并得到10余位权威专家的联袂推荐,将于2022年1月13日正式发布!(感兴趣的读者可以预约直播,当天限时5折)
鉴于ATT&CK在网络安全领域的巨大潜力和应用价值,许多企业也想将其应用在安全运营中,但是却面临两个问题:如何利用ATT&CK提高安全运营能力?如何快速实现ATT&CK在安全运营中的价值?本文将围绕这两个问题展开,介绍在安全运营中如何有效地应用ATT&CK。
一、利用ATT&CK提高企业安全运营能力
首先,我们将详细讲述企业如何利用 ATT&CK 来提高安全运营能力。概括来说,企业可以通过ATT&CK的应用做到知己知彼,并进行安全运营实践。
1.知彼:收集网络威胁情报
ATT&CK 的一个主要目标是实现威胁防御,因此,将威胁情报映射到ATT&CK框架中是企业利用该框架的一项主要工作。
防守方主要有两种方式利用 ATT&CK 获取威胁情报:作为数据的消费者和作为数据的生产者。作为数据的消费者(每个企业都应该这样做),就是利用已经创建的数据来改进防御决策。第二种方式是获取额外的信息,并以此为基础提供额外的情报,有能力的团队也考虑以这种方式利用ATT&CK。
作为数据消费者,利用已创建的数据改进防御决策
作为 ATT&CK 信息的消费者,首先要将威胁范围缩小到可能对企业数据、资产感兴趣的特定潜在威胁组织。为了缩小威胁范围,可以研究与自己类似的企业和同行曾遭受的攻击以及原因。确定潜在的威胁组织后,就可以利用ATT&CK框架中“攻击组织”相关信息来查看这些组织的 TTP。通过研究企业潜在威胁组织中常用的 TTP,企业就可以着手编制安全运营团队必须具备的检测和预防功能的优先级列表。这是利用 MITRE 团队已创建数据的基本方法,无论企业规模大小都可以使用,并体会到它在威胁防御中发挥的巨大价值。
作为数据的生产者,获取额外信息提供额外情报
推荐的第二种做法是,在获得潜在威胁组织信息的基础上,生成自己的威胁情报信息,并添加到ATT&CK数据集中。这种做法需要企业为分析人员提供充足的时间和培训,让他们对现有的事件报告(包括内外部的闭源代码和开源代码)进行分析,并提取分析数据将其映射到 ATT&CK 框架中。分析人员在实际操作中要逐字逐句地研究现有报告;标注出工具、技术、战术和威胁组织名称等信息;将这些信息提供给团队人员,让他们掌握相关攻击组织的所有信息。有了更多的额外信息,安全防御决策就会得到进一步改进。
2.知己:分析现有数据源缺口
使用 ATT&CK 框架映射网络威胁情报,是企业在研究外部威胁环境,但ATT&CK 框架另一个常见用途是深度挖掘企业自身的情况。由于ATT&CK中每种技术都列出了安全运营团队该如何识别、检测和缓解该技术的信息,因此,获取这些信息对于安全运营团队了解和改善自身防御能力很有帮助。
确定重要的缺失数据
要确定安全团队缺失哪些重要数据源,首先需要使用 MITRE 提供的 API 或 GitHub 上的其他开源工具,提取有用的技术或整个框架的数据源信息。在此基础上,再去了解安全团队有权访问的数据源,以及有权访问这些数据源的用户组和系统,这样可以发现对于关键攻击技术在数据收集和数据可见性方面存在的差距。例如,收集的威胁情报表明,计划任务技术是攻击组织使用的主要技术,想要知道安全团队是否可以检测到它,在ATT&CK框架中列出的该技术的数据源——文件监控、进程监控、进程命令行参数和 Windows 事件日志可以提供答案,如下图展示了计划任务技术的数据源。如果安全团队没有这些数据源,或者只有环境中的部分系统有这些数据源,那么安全团队需要优先考虑改善这个重要数据源缺失的问题。
找到合适的安全分析工具
收集所需的数据源非常重要,但这仅仅是第一步。在获取数据并将其发送到收集系统(例如 SIEM)后,下一步是找到一个合适的分析工具来分析攻击者何时会使用某项技术。MITRE预先编写的网络分析存储库(CAR)简化了许多技术的分析步骤,甚至提供了开源分析方案,例如 BZAR 项目,其中包含一组用于检测某些 ATT&CK 技术的 Zeek/Bro 脚本。虽然并非所有技术都有 CAR,但当安全运营团队开始实施新的检测功能时,它是一个寻找指导的好地方,因为存在的许多实例都有用伪代码,以及特定于 EQL、Sysmon、Splunk 和其他产品语言编写的分析逻辑。下面这段代码展示了用于捕获未从 explorer.exe 交互式启动PowerShell 进程的伪代码示例。
process = search Process : Create
powershell = filter process where
(exe == “powershell.exe”AND parent_exe != “explorer.exe” )
output powershell
当然,这些分析也可以内置到安全厂商的工具中。如果安全厂商提供的解决方案中有预先创建的分析方案,可以保证在使用过程中标示出攻击技术(前提是要有正确的数据),那么采购这样的解决方案也是快速进入分析流程的简单方法。
3.实践:分析测试
在完成外部威胁环境的分析,并对内部的数据收集能力和ATT&CK 技术的覆盖范围评估后,就该开始进行测试了。安全运营团队应该按照不同的抽象层次进行多次测试。对于企业来说,需要清楚地知道自身不能进行某项分析或者当前缺失某项关键分析,这一点很重要。因为攻击者可能将企业漏掉的项目串联在一起进行漏洞利用,这可能会使攻击者入侵成功。因此,企业可以根据存储在 ATT&CK 知识库中的情报,进行红队和蓝队演习,并使用 ATT&CK 作为指导进行攻击模拟,在更高的抽象层次上进行测试。
原子测试
安全运营团队可能有自以为可行的分析,但它实际上却不能正常发挥作用。警报测试的第一步也是关键的一步,是对分析进行原子测试。大多数安全运营中心的分析人员都知道,操作环境中不断变化的状态,再加上为减少误报而进行的一致调整,意味着多年运行的分析规则可能会突然失效,而原子测试是解决这个问题的有效方法。
原子测试通常采用运行单个命令行的命令或单个动作的形式,这些命令或动作可以在 SIEM、IDS 或 EDR 中触发警报,商业和开源工具都有助于这些测试。无论以何种方式实现测试,最重要的是对武器库中与特定技术或子技术相对应的分析进行持续、可靠的测试,以确保其仍正常发挥作用。在一个理想的系统中,每当发生可能影响分析功能的变更时,就要启动一个原子测试,验证分析功能没有受影响。
红队评估、紫队评估与攻击模拟
在原子测试的基础上,联合使用多种测试方法,会让测试更加接近真实攻击。现在介绍几种最常用的模拟攻击测试方法。
大多数安全团队采用的初始测试方法是紫队评估,它通常以合作、交互和迭代的方式进行。紫队评估通常使用与原子测试不同的方法,逐步检查武器库中的每种攻击技术。其目标是评估安全分析是否可以通过多种不同的方法触发,例如发送带有10种不同类型恶意附件的钓鱼邮件。通过紫队评估让渗透测试人员在分析中使用最新、最隐蔽的方法,可能会发现未知的漏洞,并确保分析如预期的那样可靠。
结合 ATT&CK 框架中每个战术的原子测试设计紫队活动,紫队评估可以发现攻击技术链,当这些攻击技术一起使用时,可能导致入侵成功。这些评估基于网络和主机的数据源,可以说明攻击者是如何成功地完成最初的载荷投递和漏洞利用,以及漏洞利用后如何指挥控制和使用渗透技术。针对 SOC 预期进行的分析,以及其他不可检测的技术进行紫队测试,以便发现存在哪些重大安全缺口。通过紫队测试保证安全运营团队的分析对真实攻击有效。如果安全运营团队在紫队评估中表现很好,就该转向第二种类型的测试了——红队测试。
红队测试是以攻击者战术和技术的威胁模型驱动的评估,其目标是验证攻击者是否可能在不被发现的情况下,访问环境中最重要的数据或资产。要测试蓝队的 ATT&CK 覆盖和检测能力,红队应该选择以前用原子或紫队形式测试过,并且 SOC 有信心在真实场景中可以有效抵挡攻击的项目,这是从红队评估中获得价值的关键点。红队测试通常是一种突袭攻击,所以它相比原子和紫队测试更接近真实攻击。而且红队测试不仅测试蓝队的分析情况,还测试他们评估和及时响应真实警报的能力。
最接近真实攻击情况的是攻击模拟测试,它旨在尽可能真实地模拟威胁组织的攻击。同时,在规划攻击模拟测试的方法时,也可以按照ATT&CK的规则来维护威胁情报。红队可以参考这些威胁情报信息来调整他们的攻击,让自己看起来更像真实的攻击组织。
在许多方面,这些类型的测试,例如渗透测试或红队测试,它们只限于最高威胁攻击者所使用的攻击技术。作为蓝队,最好的表现就是能够快速、准确地响应攻击模拟测试,这表明安全团队已经优化了检测方法,并制定了必要的响应流程,以应对来自最高威胁攻击组织的潜在入侵。如下图基于 ATT&CK 的测试类型图谱,图中总结了各种测试类型的关键内容。
在安排这些类型的测试频次时,我们建议每季度或每六个月安排一次评估,这具体取决于安全团队的规模和团队职责。对于原子测试而言,威胁环境、技术、工具或数据源的任何变化都会给攻击方创造隐藏的机会。因此,应该频繁进行复杂测试,以确保安全团队的能力。在这方面,若有任何工具可以缩短计划和执行这些测试所需的时间,都值得采购,因为工具的采购成本是可以轻松收回的。对于原子测试和更接近真实攻击的测试来说,将潜在破坏性事件的发现与重新测试特定分析的触发因素联系起来,让安全运营团队的能力始终领先于攻击者。通过频繁、持续开展各种测试,打造一支能力可靠的蓝队来检测和应对攻击者的攻击。
二、将ATT&CK应用于安全运营中的方法
首次将ATT&CK框架用于安全运营时,可以通过下面介绍的三种方式尽快实现ATT&CK的价值。
1.利用现有安全工具
在日常的安全运营中,许多安全团队使用安全厂商提供的安全工具和设备,可以通过这些系统的内置功能将 ATT&CK 模型集成到自身环境中。安全厂商的产品(例如 EDR、IDS、SIEM等)都带有签名集,并根据 ATT&CK 相应的技战术进行分类,标记不同警报。这样就可以轻松地创建指标,并根据 ATT&CK 技术标记提醒 SOC 需要警惕的活动。
与 ATT&CK 相关的安全警报从企业各种安全设备中随其他警报同时发送,如果在一定周期内这个警报仍然存在,企业可以轮询所有已解决事件的信息,并查看攻击者针对其环境所采用的ATT&CK技术。这是威胁情报的最佳形式——信息来源于组织内已经发生的实际攻击。此时通过安全厂商的工具创建这些情报,让安全团队能够快速果断地采取行动。安全团队可以根据已解决的事件,制作攻击者对其最常用攻击技术的可视化地图。这些信息可以反馈给威胁情报部门,用于更进一步确认攻击者的具体信息。
2.利用多维度数据源
ATT&CK 框架中列出了大量数据源,这些数据主要基于网络数据和主机数据。
从分路器或分光镜端口拉取的网络数据源的优点是,能够真实地反映网络上发生的情况。但由于加密技术的普及,网络数据越来越难以使用。虽然一些协议可以被即时解密并以明文形式记录,但许多企业不使用这些功能,选择忽略网络上正在发生的事情。
基于可信的主机数据源(如进程创建日志、防病毒、EDR工具信息和主机入侵防御产品)可以了解每个主机上发生情况的详细信息。主机上承载着企业的核心资产,也是攻击者的攻击目标和最终的活动场所,因此,主机防护非常关键。青藤猎鹰基于ATT&CK框架,帮助用户解决安全数据汇集、数据挖掘、事件回溯、安全能力整合等各类问题;提供了上百类ATT&CK攻击场景,用户可直接对数据进行深度挖掘,及时发现潜在威胁。
基于主机和网络的数据是互补的,它们从两种不同的视角关注攻击者活动。安全团队可以同时使用这两种类型的数据来实现最全面的技术可见性。此外,也有更好的办法,例如制定开源的 Community ID 标准(已经得到许多安全工具的支持),这有助于防守方在多个数据源查看同一事务的不同视图,并将使两种类型数据的利用更加方便。还有一点需要注意的是,有些策略在主机上更容易被发现,如持久化、权限提升和执行。如果企业发现自身的弱点是ATT&CK框架中的某项战术,则可关注与该战术下的技术最匹配的(网络或主机)数据类型,从而更有效地提升针对相应战术中所有技术的响应能力。
3.进行历史衡量和能力趋势分析
应用 ATT&CK最后一个关键点在于,跟踪安全运营团队在一段时间内的进步。虽然SOC在人力和技术层面都很贵,但它能提供额外的保护,防止业务中断,因而物有所值。然而实现这种价值并不容易。幸运的是,进行基于 MITRE ATT&CK 的测评不仅提供了一种客观衡量安全团队能力的方法,而且还可以展示某一阶段安全能力提升的效果。以下是一些提高安全防御能力的具体方法:
增加原子和自动分析测试可以检测的技术数量。
提高可以检测到的已知攻击技术的百分比。
根据紫队测试的结果发现问题——有多少技术被遗漏、被检测到和被拦截?
根据红队测试和攻击模拟测试的结果发现问题——攻击者被抓住了吗?用了多久?SOC 的响应速度有多快?
蓝队如果能够证明这些指标随着时间的推移有所改善,就可以证明将ATT&CK应用于安全运营给企业带来的价值。这种价值本质上会形成一个良性循环,让安全团队成员、管理层和企业都从中受益。
三、写在最后
近年来,有很多企业利用ATT&CK提升了威胁防御能力。但是我们也要明白ATT&CK 并不是解决所有企业安全问题的灵丹妙药。只有不断深入地了解它,理解它的价值所在,并清楚地知道想要通过它解决什么问题,ATT&CK才能成为企业改善防御能力的有效方法。而且,企业利用ATT&CK提高安全运营能力只是第一步,更深入的应用是在了解ATT&CK框架的基础上,建立企业自己的ATT&CK,从而在安全运营中更好地发挥它的价值。
为进一步帮助网络安全从业人员更好地了解、认识和使用ATT&CK,学习先进的理论体系,提升防守方的技术水平,青藤云安全将于2022年1月13日举办“ATT&CK应用发展论坛”,同时发布《ATT&CK框架实践指南》。观看直播活动,享限时5折购书优惠!