什么是ATT&CK?
ATT&CK的重要维度
- Matrix:矩阵是ATT&CK框架的宏观模型。
- Tactics:战术表示攻击者的攻击目标。
- Techniques:攻击技术是实现攻击目标时使用的技术。
- Procedures:攻击过程指攻击者使用某项攻击技术的真实案例。
- Mitigations:缓解措施指企业应对不同的攻击技术时可采用的消减措施。
各个维度的主要集合关系如下图:
ATT&CK究竟是什么
ATT&CK框架共分为三大类Matrixs:
- ATT&CK for Enterprise 针对企业的攻击链
- ATT&CK for Mobile 针对移动平台的攻击链
- ATT&CK for Industrial Control Systems针对工控系统的攻击链
以Enterprise Matrix为例,其包含了PRE(攻击准备)和Linux等平台的攻击链。ATT&CK将整个攻击阶段划分为14项战术,其中PRE包含了Reconnaissance(侦察)、Resource Development(武器开发),其他各平台包含了Initial Access(初始访问)、Eexcution(执行命令)、Persistence(权限维持)、Privilege Escalation(权限提升)、Defense Evasion(防御绕过)、Discovery(信息发现)、Lateral Movement(横向移动)、Collection(采集数据)、Command and Control(命令和控制)、Exfiltration(数据渗出)、Impact(影响)。
Enterprise Matrix示例图如下所示:
在上述表格中,展示了14项战术,同时每个战术包含了若干攻击技术。以Initial Access战术为例,其包含了9项攻击技术:Drive-by Compromise(水坑攻击)、Exploit Public-Facing Application(利用公网应用程序)、External Remote Services(外部远程服务)、Hardware Additions(硬件附加)、Phishing(钓鱼)、Replication Through Removable Media(可移动媒体进行复制)、Supply Chain Compromise(供应链攻击)、Trusted Relationship(可信关系)、Valid Accounts(有效账户),如下图所示:
ATT&CK的应用场景
官方应用场景指南
- Detections and Analytics(检测与分析)
ATT&CK可以帮助网络防御者开发检测程序,以及时识别攻击者使用的技术。
- Threat Intelligence(威胁情报)
ATT&CK为安全分析人员提供了一种通用语言,可以组织、比较和分析威胁情报,ATT&CK的Groups较好的展现了威胁组织的攻击特征。
- Adversary Emulation and Red Teaming(对手模拟和红蓝对抗)
ATT&CK提供了一种通用语言和框架,蓝军(国外常以红军代指攻击队)可以使用该框架来制定攻击计划并模拟特定的威胁攻击。
- Assessment and Engineering(评估和工程设计)
ATT&CK可用于评估组织的防御能力并推动防御体系建设,例如您应该实施哪些工具或日志。
上述四类应用场景,ATT&CK提供了很多参考知识,其中每类应用场景又以三个不同等级的安全能力分别进行了阐述。我们以Adversary Emulation and Red Teaming为例,介绍ATT&CK在红蓝对抗中的主要应用。
在《Getting Started with ATT&CK: Adversary Emulation and Red Teaming》中,根据组织的安全能力不同,划分了3个不同的等级:
Level 1:安全建设刚起步,没有太多资源的安全团队
Level 2:相对成熟的中等级安全团队
Level 3:具备更高级安全团队和资源的组织
针对Level 1等级的组织,在没有蓝军帮助发现威胁的情况下,依然可以使用一些简单测试来模拟攻击情况。作者推荐了Atomic Red Team,Atomic Red Team执行简单的“原子测试”来测试相关防御组件,这些“原子测试”均已映射到ATT&CK。比如 Network Share Discovery (T1135)可以通过T1135 来完成测试:
如上图所示,我们可以在相应平台执行对应的测试命令,来检测我们的防御体系是否有响应的告警提示,是否可以做一定的防御优化。然后继续扩展,不断完善,如下图所示循环:
针对Level 2等级的组织,已具备一定蓝军能力的组织可以将已知攻击技术、攻击工具的使用映射到ATT&CK框架,此时的蓝军以“阶段测试”来完成ATT&CK的应用,同时使得在撰写报告和讨论缓解措施时具备通用语言。比如我们使用渗透利器Cobalt Strike来模拟攻击,最终可以将其覆盖的各类攻击技术映射到ATT&CK框架中,如下图所示:
针对Level 3等级的组织,已具备红军、强大蓝军,甚至具备自己的威胁情报机构,此时蓝军可以利用威胁情报挑选具备特定攻击目标的威胁组织来模拟攻击,达到“完整测试”的目的。
- Gather threat intel:收集威胁情报,选择特定对手
- Extract techniques:将威胁组织及蓝军的攻击技术映射到ATT&CK
- Analyze & organize:分析组织攻击计划
比如针对APT3威胁组织的模拟攻击计划的制定:
- Develop tools and procedures:开发攻击工具和程序
- Emulate the adversary:蓝军依据计划开始执行模拟攻击
优秀应用场景示例
除了官方推荐的几种应用场景,业内也有一些优秀的ATT&CK的实践。
Using ATT&CK As a Teacher
Travis Smith 在MITRE ATT&CKcon 大会中将ATT&CK矩阵按照漏洞利用的难易程度加以组织,并使用不同的颜色进行标识,作者称之为“ATT&CK彩虹表”,如下图所示:
- Blue:该技术并不是真正的漏洞利用,而是通过使用其他常见功能来实现,比如net view
- Green:容易利用的技术,不需要POC、脚本或其他工具,比如有效的账户凭证
- Yellow:通常需要某种工具或POC,例如Metasploit
- Orange:需要不同程度的基础架构来完成或研究,这些技术范围可以从非常简单到非常复杂,作者将这些技术打包到“橙色等级”,比如webshell。
- Red:指更先进或底层的技术,需要对OS或者DLL/EXE/ELF等有深入的理解,比如进程注入。
- Purple:作者后面更新了一个更高等级的技术,结合ATT&CK彩虹表,我理解是需要较高攻击门槛或者利用成功率较低的攻击技术。
此时ATT&CK彩虹表,包括ATT&CK矩阵本身,都可以作为个人或者团队的指导学习指南,比如研究横向渗透时,可以从哪几个角度入手?它们的检测和缓解措施分别是什么?能否绕过?ATT&CK会是非常好的参考。
ATT&CK对于网络整体风险有较好的整合分析,但是针对一些特定系统、平台的分析会稍显粒度不足。阿里云安全曾针对云上容器这个特定框架,基于ATT&CK做了更细粒度的攻击拓扑,如下图所示:
虽然没有严格按照ATT&CK的通用语言展开,但更细粒度的展示了各个战术下使用的技术,更加方便指导蓝军实施攻击。至于通用语言的使用,在企业内,甚至国内,对红蓝军都是不难达成一致理解的。
因此针对如云容器、私有云、公有云、大数据平台等特定系统框架,也可以参照此方式完成ATT&CK的基本映射。
总结
ATT&CK作为优秀的攻击模型框架,提供了相对完善的攻击矩阵,对攻与防都具备良好的指导意义。我们可以不断精细化ATT&CK的技术集合,提升红蓝对抗的能力,也可针对企业内不同场景、框架因地制宜地去映射ATT&CK。
参考链接
https://mitre-attack.github.io/attack-navigator/
https://medium.com/mitre-attack/getting-started-with-attack-red-29f074ccf7e3
https://github.com/redcanaryco/atomic-red-team
https://github.com/TravisFSmith/mitre_attack
https://zhishihezi.net/
https://www.tripwire.com/state-of-security/mitre-framework/using-attck-teacher/
https://www.freebuf.com/articles/blockchain-articles/251496.html
https://www.freebuf.com/articles/network/254613.html
https://www.freebuf.com/articles/container/240139.html
http://vulhub.org.cn/attack
来源:OPPO
原创文章,作者:首席安全官,如若转载,请注明出处:https://cncso.com/the-attck-framework-for-cyber-security-attack-and-defense.html