基于ATT & CK技术矩阵,在工业控制系统安全防护的实践

2021-11-30 14:47:23来源:深圳融安网络科技有限公司

前言

ATT&CK是近几年最火的攻防框架,通过公开的信息和安全社区对攻击者的行为进行研究,汇聚了攻击者使用的各种战术和技术,同时也提供了如何缓解和检测各项入侵技术的方法,以便防御者能了解到攻击者入侵时使用的各种手段以及如何进行防御,彻底改变了长期以来“防”落后于“攻”的局面。


ATT&CK中不但汇聚了对手攻击企业使用的技术,而且汇聚了对手攻击工业控制系统使用的各种技术,对研究如何做好工业系统的安全具有重大意义。



一、什么是ATT&CK?


ATT&CK (Adversarial Tactics, Techniques & Common Knowledge) 是 MITRE 公司开发的、基于真实环境观察攻方战术和技术的知识库,ATT&CK于 2015 年 5 月发布 。

MITRE 作为一家由美国政府资助的非盈利研发机构,向美国政府提供系统工程、研究开发和信息技术的支撑,主要包括航空、国防、医疗保健、国土安全和网络安全领域。


ATT&CK 专注于外部对手如何在内部破坏和操作计算机网络。起源于一个记录和分类针对 Windows 系统的对手战术(tactics) 、技术(techniques)和程序(procedures)(TTP) 的项目,主要用于增强恶意行为的检测。目前,已经发展到包括 Linux 和macOS,并且已经扩展到移动设备、基于云系统和工业控制系统。


下图是ATT&CK的企业技术矩阵,里面包含了攻击者用到的各种战术和技术。


ATT&CK 为工业控制系统打造了专属的技术矩阵

在高层次上,ATT&CK 是一种行为模型,包括以下内容核心组件:

Ø 战术,表示攻击期间对手的短期战术目标;

Ø 技术,描述对手实现战术目标的手段;

Ø 子技术,描述对手实现战术的更具体的手段;

Ø 记录对手对技术、其程序和其他元数据的使用。



核心组件一、战术(Tactics)



在ATT&CK内,战术(Tactics)代表了 ATT&CK 技术的“原因”,是攻击者执行行动的战术目标。而作为单个技术有用上下文类别,涵盖了对手在操作期间所做事情的标准、更高级别的表示,例如权限维持、信息收集、横向移动、执行文件和窃取数据等,可以认为是对攻击者使用的技术按攻击目的来进行分类。

ATT&CK框架的十四个战术)


核心组件二、技术(Techniques)


在ATT&CK技术中,技术(Techniques)是代表了对手“如何”通过执行行动来实现战术目标。例如,攻击者可能会转储凭证以获得密码凭证(一种技术),这些凭证可在以后用于横向移动。技术也可以代表对手通过执行行动获得的“什么”。实现战术目标的方法或技术可能有多种,因此每个战术类别中都有多种技术。如下图所示:


核心组件三、程序 procedures


在 ATT&CK 内,程序是对手使用技术或子技术的具体实现,又是TTP概念的另一个重要组成部分。例如,APT28 的一个程序是使用 PowerShell 注入 lsass.exe ,以实现在受害主机上抓取 LSASS 内存来转储凭据。程序示例如下图:


关于 ATT&CK 中的程序需要注意的两个重要方面:一是、对手如何使用技术和子技术;二是、程序可以跨越多种技术和子技术的问题。

扩展前面的例子,对手用来转储凭据的程序包括 PowerShell、进程注入和抓取LSASS 内存,都是属于不同的行为,并且,程序还可能包括在执行过程中使用的特定工具。在 ATT&CK 技术和子技术页面的“程序示例”部分中把技术的在野利用记录为程序。


其中,ATT&CK 中的缓解措施表示可以使用的安全概念和技术类别防止技术或子技术被成功执行。


核心组件四、组 (Groups)软件(Software)


组 Groups:ATT&CK的组是一组相关的入侵活动,通过安全社区中的通用名称进行跟踪。分析师使用各种分析方法和术语(例如威胁组、活动组、威胁参与者、入侵集和活动)跟踪活动组。由于不同的组织以不同的名称跟踪类似的活动,一些团体可能有多个名称与类似的活动相关联。


软件 Software:ATT&CK的软件是自定义或商业代码、操作系统实用程序、开源软件或用于在 ATT&CK 中建模的其他工具的通用术语。由于各种组织以不同的名称跟踪同一组软件,因此某些软件实例具有与同一实例相关联的多个名称。示例包括 PsExec、Metasploit、Mimikatz,以及 Windows 实用程序,如 Net、netstat、Tasklist 等。



ATT&CK 对象模型关系


ATT&CK 的每个高级组件都以某种方式与其他组件相关


一个持续威胁组织(APT)的示例,其中 APT28 使用 Mimikatz针对 Windows LSASS 进程内存的凭证转储:


基于威胁行为的安全方法论


MITRE ATT&CK 基于威胁行为的网络入侵检测方法论以五项原则为指导。



二、ATT&CK的作用



ATT&CK 提出了现代检测方法的不足之处:

Ø 大多数 AV 应用程序可能无法可靠地检测自定义工具,因为这些工具在使用前,就已经经过对手专门的产品测试,甚至可能已使用了逃避其他类型恶意软件检测的混淆技术。

Ø 攻击者也有能力在系统上使用合法功能来实现他们的目的。

Ø 其他当前的网络安全方法,例如威胁情报订阅或共享可能对于检测对手作用不大,因为对手指标变化太快。典型的网络流量检查也没有用,因为APT的流量一般是通过有效的SSL加密的。


ATT&CK可用于对手模拟、红队演练、行为分析开发、防御短板评估、SOC成熟度评估和丰富网络威胁情报。

对手模拟:ATT&CK可作为创建对手模拟场景的工具,进行测试和验证防御常见的对手技术。特定对手组织的配置文件可以是根据 ATT&CK 中记录的信息构建而成。防御团队也可以使用这些配置文件来调整和改进防御措施。

红队演练:在不使用已知威胁情报的情况下应用对抗性思维进行演习。红队专注于在未被检测到的情况下完成最终目标。ATT&CK可用作创建红队计划和组织操作来绕过某些网络中可能采取的防御措施。它也可以用作开发新的攻击路线图,执行常见防御手段无法检测到的操作。

行为分析开发:超越传统的入侵指标(IoC)或恶意活动签名,行为检测分析可用于识别系统或网络中潜在恶意活动而不依赖已知的对手工具和指标。ATT&CK 可用作构建和测试行为分析以检测对手的行为。网络分析资料库(CAR)就是一个行为分析的例子,可用作组织开发行为分析的起点。

防御短板评估:防御短板评估允许组织确定企业的哪些部分缺乏防御和可见性。这些短板代表盲点,允许攻击者在未被发现的情况下访问其网络。ATT&CK可以作为一种以行为为中心的对抗模型来规避企业组织内现有的防御短板。对于已发现的盲点,可以优先投资可以检测该盲点的安全产品。

SOC成熟度评估:一个组织的安全运营中心是许多大中型企业持续监控网络威胁活动的关键组件。ATT&CK 可用作一种测量,以确定SOC在检测、分析和响应入侵时的有效性。类似于防御短板评估,SOC成熟度评估侧重于SOC 用于检测、理解和响应不断变化的网络威胁的过程。

丰富网络威胁情报:网络威胁情报包括影响网络安全的网络威胁和威胁组织的知识。它包括有关恶意软件的信息,工具、TTP、技巧、行为和其他与威胁相关的指标。ATT&CK可用于通过行为的视角来理解和记录对手组织的信息,而与团队可能使用的工具无关。分析师和防御者可以更好地了解跨多个组织的常见行为并更有效地防御。了解多个组如何使用相同的技术行为,使分析师能够专注于跨越多种威胁的有效防御。



三、ATT&CK在工业控制系统安全防护的实践



面对攻击手段不断变化的对手,即使部署了防火墙、入侵检测、终端安全、堡垒机、安全管理中心等设备,也不能保证能够抵御通过精心准备的APT攻击。因此我们需要一个面向实战攻防的技术框架。通过使用威胁情报了解最新对手的行为,将用到的技术映射到ATT&CK中去,接着使用对手模拟来模拟对手的行为,然后分析当前的安全设备能否检测到最新的威胁,最后评估目前的防御短板,思考当前的防御需要做哪些调整,需要添加哪些安全设备来覆盖短板。最终实现安全运营能力的不断上升。


那么,如何把 ATT&CK 应用到工业控制系统的安全防护中去?可以从威胁情报、检测和分析、对手模拟和红队,以及评估和工程化四个方面去进行实践。


威胁情报


网络威胁情报就是了解你的对手做了什么,并使用这些信息来改进决策。例如我们关注的是工业控制系统中普遍存在的勒索病毒的 TTPs,可以使用 attack-navigator 把所有想关注的勒索病毒添加到技术矩阵中,以查看它们使用的所有技术,以及哪些技术是高频使用的。https://mitre-attack.github.io/attack-navigator/

下图是使用 attack-navigator 生成的 REvil 和 EKANS 勒索病毒使用的技术,其中红色的为 REvil 使用的技术,黄色的为 EKANS 使用的技术,绿色的是两个勒索病毒共同使用的技术,可以优先进行研究。


检测和分析


在研究完工业控制系统中勒索病毒的行为后,可以开始构建分析以检测勒索病毒的TTPs。基于 ATT&CK 的分析不是识别已知的问题并阻止它们,而是收集有关系统上发生的事情的日志和事件数据,并使用这些数据来识别 ATT&CK 中描述的可疑行为。

创建和使用 ATT&CK 分析的第一步是了解您拥有哪些数据和搜索能力。

下面几个数据来源在检测大量技术方面很有价值:

Ø 进程和进程命令行监控,通常由 Sysmon、Windows 事件日志和许多终端安全平台收集;

Ø 文件和注册表监控,也经常由 Sysmon、Windows 事件日志和许多终端安全平台平台收集;

Ø 身份验证日志,例如通过 Windows 事件日志从域控制器收集;

Ø 数据包捕获,例如由 Zeek 等传感器在网络中的主机之间收集的数据包。

将这些数据收集到某种搜索平台 (Security Information and Event Management,SIEM) 中,例如SOC、态势感知等平台,以便对其进行分析。


MITRE Cyber Analytics Repository (CAR) 是MITRE基于MITRE ATT&CK对手模型开发的分析知识库。CAR 定义了一个以伪代码表示的数据模型,但也包括直接针对特定分析工具(例如,Splunk、EQL)的实现。https://car.mitre.org/

在 SOC、态势感知等平台中获得数据后,就可以尝试进行一些分析。一个很好的起点是查看其他人创建的分析并针对你的数据来运行它们。一个很好的入门分析是 CAR-2016-03-002。这将尝试找到使用 WMI 在远程系统上执行命令的方法,这是Windows Management Instrumentation描述的常见攻击技术。

在伪代码中,通过搜索 wmic.exe 进程创建时的命令行,并检查其中是否含有 process call create 和 /node 关键字来检测 wmi 技术。


可以通过 ATT&CK 导航器评估目前已经覆盖了哪些检测,首先找出需要优先检测的技术。其次,集成来自 CAR 的分析并将这些分析着色为黄色,以表明至少有了一些覆盖范围。再次,改进这些分析,并可能添加更多内容以提高对这些技术的覆盖率。最后,对其中一些检测感到满意,并将它们涂成绿色。并再逐步增加检测范围。


对手模拟和红队


对手模拟是一种红队参与,它通过模仿一个已知组织的威胁来定义红队使用的行动和行为。这就是对手模拟不同于渗透测试和其他形式的红队的原因。对手模拟器构建一个场景来测试对手的战术、技术和程序 (TTP) 的某些方面。然后,红队在目标网络上运行时遵循该场景,以测试防御对模拟对手的影响。


可以先从单个技术测试开始。

Atomic Red Team 是映射到MITRE ATT&CK框架的测试库。安全团队可以使用Atomic Red Team快速、可移植和可重复地测试他们的环境。

https://github.com/redcanaryco/atomic-red-team


以 T1047 – WMI 工具使用的测试为例,在原子测试中有测试该技术的命令,复制到命令行中执行该命令。

wmic /user:#{user_name} /password:#{password} /node:"#{node}" process call create #{process_to_execute}

完成此操作后,可以查看我们期望检测到的行为是否是我们实际检测到的。例如,SOC、态势感知等平台工具中有一个行为分析工具,它应该在“wmic.exe”执行时发出警报,但我们发现它没有触发,所以我们发现日志没有正确从我们的主机导出。您对问题进行了故障排除和修复,现在您已经取得了显着的改进,以帮助您在将来使用此程序有更好的机会抓住对手。

这些单一测试允许重点关注单个 ATT&CK 技术,因此它可以更轻松地构建基于 ATT&CK 的防御覆盖,因为您可以从单个技术的单个测试开始,然后从那里扩展。


原子测试的流程可以总结如下:

1. 选择一个 ATT&CK 技术。

2. 选择一个该技术的原子测试。

3. 执行测试流程。

4. 分析你的检测程序是否有效。

5. 提升检测能力。


原子测试的进阶是创建对手模拟,模仿特定对手的行为。建议采用下图所示的五步流程来创建对手模拟计划、执行操作并推动防御改进。

1.收集威胁情报 — 根据您的组织面临的威胁选择对手,并与 CTI 团队合作分析有关对手所作所为的情报。

2.提取技术——将你拥有的情报映射到特定的技术。

3.分析和组织——以一种易于制定具体计划的方式将这些信息绘制成操作流程。

4.开发工具和程序——弄清楚如何实施该行为。考虑:威胁组织是如何使用这种技术的?该小组是否根据环境背景改变了使用的技术?我们可以使用哪些工具来复制这些 TTP?

5.模仿对手——有了一个适当的计划,红队现在有能力执行和执行仿真任务。


评估和工程化

评估和工程化展示如何使用 ATT&CK 来衡量你的防御并实现改进。主要包括以下过程

1. 评估防御目前如何与 ATT&CK 中的技术和对手相抗衡;

2. 确定当前覆盖范围内最高优先级的短板;

3. 修改防御,或获得新的防御,以解决这些短板。


刚开始起步时:选择要关注的单一技术,确定该技术的覆盖范围,然后进行适当的工程增强以开始检测它。通过这种方式开始,可以练习如何进行更大的评估。

一旦熟悉这一过程,并能够访问更多的资源,理想情况下,将希望扩展您的分析以跨ATT&CK矩阵的一个相当大的子集。此外,您可能还想使用更高级的覆盖方案来保证SOC工具检测的可信度。在这里,建议将其分为低、一些或高可信度。


除了查看分析之外,还需要开始分析相应的安全产品。建议迭代每个安全产品,为每个安全产品创建一个单独的热图,并提出以下问题:

Ø 该安全产品在哪里运行?根据安全产品运行的位置。例如,在外围或在每个端点——它可能通过特定的策略做得更好或更糟。

Ø 该安全产品如何检测?它是否使用了一组静态的“已知不良”指标?或者使用行为检测?

Ø 该安全产品监控哪些数据源?了解安全产品监控的数据源可以让您推断它可能检测到哪些技术。

Ø 是否可以通过修改现有安全产品的配置来覆盖防御短板?

Ø 是否需要新的安全产品来覆盖防御短板?


运行评估可以了解当前的覆盖范围,可通过威胁情报对其进行扩充,并对防御短板进行优先级排序,然后通过编写分析来调整现有的防御。

从长远来看,不应该设想自己每周甚至每个月都进行一次评估。相反,应该对上次评估的内容保持记录,每次获得新信息时更新它,并定期运行对手模拟练习以抽查您的结果。随着时间的推移,网络和收集到的内容的变化可能会产生意想不到的后果,从而降低先前测试过的防御的有效性。通过利用 ATT&CK 展示您的防御如何与真实威胁相叠加,将能够更好地了解您的防御态势并确定改进的优先级。

分享:

微博
微信公众号