一、什么是ATT&CK
ATT&CK(Adversarial Tactics, Techniques, and Common Knowledge )是一个攻击行为知识库和模型,主要应用于评估攻防能力覆盖、APT情报分析、威胁狩猎及攻击模拟等领域。
二、ATT&CK 发展历史
-
1996年:美空军参谋长罗纳德ž福格尔曼在空军协会研讨会上提出F2T2EA“杀伤链”概念。
-
2011年1月:洛马公司提出使用网空“杀伤链”模型来描述入侵的阶段。
-
2013年9月:MITRE推出了ATT&CK模型,根据网空观察数据来描述和分类敌手行为。
-
2015年5月:ATT&CK模型公开发布,其中包括9种战术下的96种技术。
-
2018年:ATT&CK获得爆发式关注,众多安全厂商开始在产品中增加针对ATT&CK的支持。
-
2019年3月:RSA大会上,有10多个议题讨论ATT&CK的应用。
-
2019年6月:Gartner Security & Risk Management Summit会上,ATT&CK被评为十大关注热点。
-
2020年1月:MITRE公布了针对工业控制系统的ATT&CK知识库ATT&CK for ICS。
-
2021年4月:ATT&CK for Enterprise V9进行了数据源重构,将数据源与攻击行为的检测相关联。
-
2021年8月:ISC 2021设立“ATT&CK安全能力衡量论坛”,聚焦ATT&CK安全能力建设的衡量讨论。
-
2021年10月:ATT&CK v10发布,包括 14 个战术,188 个技术, 和 379 个子技术,129 个组织、638 个软件。这个版本,一共包括 38 类数据源。
-
2022年4月:ATT&CK v11发布,包含14个战术,191个技术,386个子技术,134个组织和680个软件。
-
2022年10月:ATT&CK v12版本更新了适用于企业、移动设备和 ICS(工业控制系统)框架的技术、组和软件。v12最大的变化是在ATT&CK中增加了ICS的检测,描述了检测各种ICS技术的方法,每种方法都与特定的数据源和数据组件相关联,检测功能既利用了传统的主机和基于网络的采集,也利用了ICS特定的来源,如资产和运营数据库等。v12包含14个战术、193个技术、401个子技术、135个组织、718个软件。
-
2023年4月:ATT&CK v13发布,最大的变化是为ATT&CK中的一些技术添加了详细的检测指导,用于企业,移动数据源和两种新类型的更改日志(包括一个人类可读的详细更改日志,更具体地显示更新的ATT&CK对象中的更改,以及一个机器可读的JSON更改日志,其格式在ATT&CK的Github中描述)。v13 包含14个战术、196个技术、411个子技术、138个组织和740个软件。
三、ATT&CK 应用场景
ATT&CK在各种日常环境中都很有价值。开展任何防御活动时,可以应用ATT&CK分类法,参考攻击者及其行为。ATT&CK不仅为网络防御者提供通用技术库,还为渗透测试和红队提供了基础。常见的主要应用场景如下:
1) 恶意文件分析
ATT&CK知识库的总结来源之一有APT对抗,并有大量涉及终端的操作,有较多的研究在针对恶意文件的检测与分析中使用了ATT&CK。
2) 威胁检测
“杀伤链”模型较为粗粒度,自定义的威胁模型跟实际威胁的检测需求存在差异,ATT&CK的体系性有助于多维度的威胁检测关联和实际需求映射。
3) 攻击模拟和防御评估
ATT&CK作为攻击知识库,天然地能提供攻击模拟的指导,通过战术阶段提供对攻击过程的宏观认识,也为风险评估研究提供了可参考的风险模型。ATT&CK可用于创建攻击模拟场景,红队、紫队和渗透测试活动的规划、执行和报告可以使用ATT&CK,以便防御者和报告接收者以及其内部之间有一个通用语言。
ATT&CK可以测试和验证针对常见攻击技术的防御方案,ATT&CK可用于构建和测试行为分析方案,以检测环境中的攻击行为。
4) 攻击归因与攻击者画像
攻击溯源与取证是还原攻击过程的重要基础,也有助于完成攻击者的刻画,基于低层级IOC的溯源取证容易被攻击者规避,而ATT&CK层次的攻击手法则反映了攻击者长期且较为本质的特征。
5) 漏洞挖掘与漏洞分析
对漏洞利用的检测、利用方法和造成影响研究分析的话,基于现有CVE和CWE的方法较少体现攻击与防御的联动视角,通过与ATT&CK技战术关联,可丰富漏洞的利用路径、造成影响等上下文。
6) SOC成熟度评估
ATT&CK可用作一种度量,确定SOC在检测、分析和响应入侵方面的有效性。SOC团队可以参考ATT&CK已检测到或未涵盖的技术和战术。这有助于了解防御优势和劣势在哪里,并验证缓解和检测控制措施,并可以发现配置错误和其他操作问题。
四、2023 ATT&CK v13版本更新说明
2023年 4月25日,MITRE ATT&CK 发布了最新版本 V13,最大的变化是为ATT&CK中的一些技术添加了详细的检测指导,用于企业,移动数据源和两种新类型的更改日志(包括一个人类可读的详细更改日志,更具体地显示更新的ATT&CK对象中的更改,以及一个机器可读的JSON更改日志,其格式在ATT&CK的Github中描述)。
ATT&CK for Enterprise v13 包含14个战术、196个技术、411个子技术、138个组织和740个软件。
4.1 检测指导更详细
以 T1543.003创建或修改系统进程:Windows服务 技术为例,攻击者可以创建或修改Windows服务,通过重复执行恶意有效载荷保持持久性。当Windows启动时,它会启动执行服务程序或应用程序。Windows注册表中存储了Windows服务配置信息,包括服务可执行或恢复程序/命令的文件路径。
攻击者可以安装新服务或修改现有服务以在启动时执行, 可以使用系统程序设置、修改服务配置、修改注册表或者直接与Windows API交互方式。
攻击者可使用服务来安装和执行恶意驱动程序。攻击者会利用这些驱动程序作为Rootkit来隐藏系统上恶意活动的存在。攻击者还可以将已签名但易受攻击的驱动程序加载到受损的计算机上实现特权升级。
V12及之前版本检测指导如下:
ID | 数据源 | 数据组件 | 检测 |
DS0017 | 命令 | 命令执行 | 监控来自已知服务的异常过程调用命令。 |
DS0027 | 驱动程序 | 驱动程序负载 | 监控新的服务驱动程序(例如:SYSMON事件ID 6),这些驱动程序不是已知的软件更新或补丁。 |
DS0022 | 文件 | 创建文件 | 监控新创建的文件。 |
文件修改 | 监控与系统级进程关联的文件的更改。 | ||
DS0009 | 进程 | OS API执行 | 监控可能创建或修改系统级进程的API调用。 |
进程创建 | 监控新创建的进程。 | ||
DS0019 | 服务 | 服务创建 | 监控新建的服务。 |
服务修改 | 监控未知的服务更改。 | ||
DS0024 | Windows注册表 | Windows注册表项创建 | 监控新建的Windows注册表项。 |
Windows注册表项修改 | 监控对Windows注册表项的修改。 |
V13版本检测指导更详细,增加了检测注意事项以及检测示例,提供了降低误报提高检测准确性的方法,有效提升检测落地执行能力。
ID | 数据源 | 数据组件 | 检测 |
DS0017 | 命令 | 命令执行 | 监控可以创建或修改服务的操作的进程和命令行参数。 也可以通过Windows系统管理工具(如Windows Management Instrumentation和PowerShell)修改服务,因此可能需要配置其他日志记录以收集适当的数据。还收集用于分析的服务实用程序执行和服务二进制路径参数。 服务二进制路径甚至可以更改为执行命令或脚本。 |
DS0027 | 驱动程序 | 驱动程序负载 | 监控不属于已知软件更新/修补程序周期的新服务驱动程序安装和加载(例如:Sysmon事件ID6)。 检测注意事项: Sysmon事件ID6(驱动程序加载)提供有关加载的驱动程序是否使用有效签名(通过Signature和SignatureStatus字段)进行签名的信息。 因此,帮助减少与此事件相关联的警报和误报量的一种方法是过滤并排除由Microsoft等常见和合法发布者签名的任何驱动程序加载事件。 |
DS0009 | 进程 | OS API执行 | 监控可能创建或修改Windows服务(例如:CreateServiceW())以重复执行恶意有效负载作为持久性的一部分的API调用。 |
进程创建 | 通过服务执行的可疑程序可能显示为异常进程,在与历史数据进行比较时,这些进程以前从未见过。 从已知服务中查找异常进程调用树,并执行可能与发现或其他对手技术相关的其他命令。不应孤立地看待数据和事件,而应将其视为可能导致其他活动的行为链的一部分,例如为指挥和控制而建立的网络连接、通过发现了解环境的细节以及横向移动。 实现1:服务异常值可执行文件 检测伪代码 服务=过滤进程(parent_image_path=="C:\Windows\System32\services...exe")historic_services=filter services(其中timestamp<now-1day和timestamp>now-1day)current_services=filter services(其中timestamp>=now-1day)new_services=historic_services-current_services 检测注意事项 创建过去30天内看到的服务基线和今天看到的服务列表。 从今天看到的服务中删除基线中的服务,留下新服务列表。 实现2:服务启动CMD 检测伪代码 event_processes=过滤其中(event_id=="1"或event_id=="4688")和(exe=="cmd的进程.exe"和parent_exe=="服务.exe") 检测注意事项 返回所有名为cmd.exe的流程,其中cmd.exe将services.exe作为父进程。 因为这种情况永远不会发生,所以 /c标志在搜索中是多余的。 Windows在Process Services.exe中运行服务控制管理器(SCM)。 Windows在svchost.exe组中以独立的进程或DLL负载启动服务。 要成为合法服务,过程(或DLL)必须具有适当的服务入口点SVCMAIN。 如果应用程序没有输入点,则它将超时(默认为30秒),并且该过程将被杀死。 攻击者可以直接创建使用flag /c的cmd.exe的服务,然后是所需的命令。 /c标志会导致命令壳运行命令并立即退出,所需的程序将保持运行,它将报告启动服务的错误。 该分析将捕获用于启动实际恶意可执行文件的命令提示符实例。 此外,默认情况下,子服务将以系统用户的身份运行。 | ||
DS0019 | 服务 | 服务创建 | 新服务的创建可能会产生一个可改变的事件(例如:事件ID4697或7045),特别是那些与未知/异常驱动程序相关联的事件。 在安装新软件期间,可能会创建新的良性服务。 实现1:创建具有异常目录路径的新服务,例如APPDATA中的临时文件 检测伪代码 servic_services=filter ServiceName,ServiceFilePath,ServiceType,ServiceStartType,ServiceAccountName其中(event_id=="7045"或event_id=="4697")和(ServiceFilePath像'%APPDATA%'或ServiceImagePath像'%PUBLIC%') 检测注意事项 对于安全审核事件id4697,为类别系统和子类别安全系统扩展启用成功事件。 |
服务修改 | 监控对Windows服务所做的更改,以重复执行恶意有效负载作为持久性的一部分。 实施1:通过注册表修改提供系统服务 检测伪代码 s_processes=filter ProcessGuid,ProcessFilePath,RegistryKeyPath,UserName where event_id=="13"And EventType=="SetValue"和RegistryKeyPath像'%HKLM\System\CurrentControlSet\Services\%'和(RegistryKeyPath像'%ImagePath%'或RegistryKeyPath像'%Type%'或RegistryKeyPath像'%DisplayName%'或RegistryKeyPath像'%Objectname%') 检测注意事项 对于Windows Sysmon事件id13,需要安装带有配置文件的应用程序。 对于Windows Sysmon事件id13,需要在配置文件中添加SetValue事件。 | ||
DS0024 | Windows注册表 | Windows注册表项创建 | 监控可能创建或修改Windows服务以重复执行恶意有效负载作为持久性的一部分的新构造的windows注册表项。 实现1:创建HKLM\System\CurrentControlSet\Services注册表项 检测伪代码 el_processes=过滤器ProcessGuid,ProcessFilePath,RegistryKeyPath,用户名其中event_id=="12"和RegistryKeyPath像'%HKLM\System\CurrentControlSet\Services\%' 检测注意事项 对于Windows Sysmon事件id12,需要安装带有配置文件的应用程序。 对于Windows Sysmon事件id12,需要在配置文件中添加CreateKey和DeleteKey事件。 |
Windows注册表项修改 | 查找与已知软件、补丁周期等不相关的服务注册表项的更改。服务信息存储在HKLM\SYSTEM\CurrentControlSet\Services的注册表中。 对二进制路径和服务启动类型的更改从手动或禁用更改为自动,如果通常不这样做,则可能是可疑的。 Sysinternals Autoruns等工具也可用于检测可能尝试持久化的系统服务更改。 实现1:修改HKLM\System\CurrentControlSet\Services注册表项 检测伪代码 suspicious_registry=过滤进程指南,进程FilePath,RegistryKeyPath,用户名where(event_id=="13"event_id=="14")和RegistryKeyPath类似'%HKLM\System\CurrentControlSet\Services\%' |
4.2 新技术
4.2.1 企业版
新技术:
-
获取访问权限
-
获取基础设施:Malvertising
-
云管理命令
-
命令和脚本解释器:云API
-
设备驱动程序发现
-
过滤Web服务:过滤到文本存储站点
-
削弱防御:欺骗安全警报
-
伪装:伪装文件类型
-
修改身份验证过程:网络提供程序DLL
-
混淆文件或信息:命令混淆
-
混淆文件或信息:无文件存储
-
远程服务:云服务
-
不安全的凭据:聊天消息
4.2.2 ICS版
新技术:
-
更改凭证
-
本地系统数据
4.3. 新软件
4.3.1 企业版
新软件:
-
AvosLocker
-
Black Basta
-
BlackCat
-
Brute Ratel C4
-
DEADEYE
-
DarkTortilla
-
Industroyer2
-
KEYPLUG
-
Mafalda
-
Prestige
-
Royal
-
Rubeus
-
SVCReady
-
Woody RAT
-
metaMain
4.3.2 移动版
新软件:
-
Abstract Emu
-
Drinik
-
FluBot
-
S.O.V.A.
-
SharkBot
-
TangleBot
-
TianySpy
4.3.3 ICS版
新软件:
-
Industroyer2
4.4. 新攻击组织
-
CURIUM :CURIUM是2021年11月首次报道的伊朗威胁组织,在几个月的时间里投资通过社交媒体与潜在目标建立关系,以在发送恶意软件之前建立信任和信心。安全研究人员指出,CURIUM通过每天与潜在目标聊天并发送文件来帮助降低他们的安全意识,表现出了极大的耐心和毅力。
-
Luminous Moth:夜光蛾是一个讲汉语的网络间谍组织,至少从2020年10月开始活跃。LuminousMoth已经瞄准了缅甸,菲律宾,泰国和东南亚其他地区的组织,包括政府。
-
Metador:斗牛士是一个可疑的网络间谍组织,于2022年9月首次报道。斗牛士的目标是数量有限的电信公司、互联网服务提供商和中东和非洲的大学。
4.5. 网络安全事件
-
2016年乌克兰电力攻击
-
C0017
-
C0018
-
C0021
-
Operation Dream Job
-
Operation Ghost
-
SolarWinds 攻击
4.6. 新缓解措施
验证程序输入:设计用于与控制系统参数交互的设备和程序应验证所有用户输入和操作的格式和内容,以确保值在预期的操作范围内。这些值应通过现场控制器上运行的程序逻辑进行评估并进一步执行。如果识别出有问题或无效的输入,程序应该使用预定的安全值或进入已知的安全状态,同时还记录或警告事件。
4.7. 新数据源
移动版新增数据源:
-
申请审核
-
命令
-
网络流量
-
流程
-
传感器健康
-
用户界面
4.8. 新数据组件
移动版新增数据组件:
-
API调用
-
命令执行
-
主机状态
-
网络通讯
-
网络连接创建
-
网络流量内容
-
权限请求
-
进程创建
-
进程元数据
-
进程终止
-
受保护的配置
-
系统通知
-
系统设置
五、总结
MITRE ATT&CK 是一个全球可访问的基于现实世界观察的对手战术和技术知识库。ATT&CK 知识库被用作在私营部门、政府以及网络安全产品和服务社区中开发特定威胁模型和方法的基础。
V13版本主要更新了更为详细的检测指导,有效提升网络安全防御技术,针对ATTCK每一类攻击技术,可以根据V13版本输出的细粒度检测指导,清晰地了解防御检测思路,选择合适的数据源进行数据采集分析,细化告警规则模型,有效提升告警精准度,降低告警误报,缩短从威胁检测-溯源分析-处置响应的闭环时间,从被动防御向纵深主动防御持续提升!