ATT&CK 专栏 ATT&CK 实战指南 ATT&CK 框架作为安全领域继承 Kill Chain 的安全攻防框架,在全世界的信息安全领域正在如火如荼的发挥着影响。通过 Google Trends 可以看出在最近两年的热度呈指数级增长。 图 1:ATT&CK 框架的热度增长趋势 ATT&CK 框架早在 2014 年就已提出,但当时的框架还比较简单。 图 2:2014 年时的 ATT&CK 框架 102 ATT&CK 专栏 目前,这个框架还在不断演进,在今年 10 月份的 ATT&CKcon 2.0 大会上,披露的更新内容如下: 图 3:ATT&CK 框架的新增内容(数字解读) 值得一提的是,ATT&CK 框架中加入了云相关方面的一些支持: 图 4:ATT&CK 新增云支持 目前,国内目前已经有一些文档从理论层面来介绍该框架,但很少从框架落地角度来介绍。而本文将更着重于如何使用该框架, 毕竟该框架不像其它理论只是提供理论指导作用,这个框架的可落地性很强。 理论学习使用 ATT&CK ™ Navigator 项目 对于 ATT&CK 的学习是第一步的,首先需要介绍的就是 ATT&CK ™ Navigator 项目。与普通的大型矩阵图片相比,这个导航 工具看上去给人的压力更小,而且具有良好的交互性。通过简单地点击鼠标,就能学习到很多知识,这个项目主要是为之后的工 作有很好的标记作用。这个项目比较好用的几个功能都是筛选类的功能,比如你可以根据不同的 APT 组织以及恶意软件进行筛选, 可以看出组织和恶意软件使用的 Technique,并进行着色,这样就可以很明显看出来这个组织的攻击使用技术。 103 ATT&CK 专栏 图 5:APT29 使用的攻击技术 同时也可以根据不同的需求,保存为其它格式导出,包括 Json、Excel 以及 SVG,也支持根据平台和阶段进行选择。 图 6:根据平台和阶段进行选择 从上图可以看出,ATT&CK 框架支持三种常见系统 Windows、Linux 和 MacOS,最近还新增了对云安全的支持,包括了国外 主流的三个公有云 AWS、Azure 和 GCP,同时还加入了一些 SaaS 安全框架 Azure AD、Office 365 和 SaaS。虽然 ATT&CK 框架中有 关云计算的内容并不多,但也是一种有价值的尝试。云安全的这块针对云平台更像是 CSPM 产品解决的问题,SaaS 安全的是 CASB 产品解决的问题。这里不详细描述,之后会有另外一篇文章说明。这个项目主要关注的是 pre-attack 和 attack-enterprise 的内容,包 括 mobile 这块是有单独的项目支持。 104 ATT&CK 专栏 还有比较常见的场景就是标记红蓝对抗的攻守情况,可以一目了然安全的差距在哪里,能够进行改进。从下图可以看出,蓝 色的是能够被检测到的红队攻击技术,红色是蓝队没有检测到的。这在一定程度上与罚点球相似,蓝队是守门员,红队是射手, 最后是衡量攻守结果。 图 7:红蓝对抗攻守图 105 ATT&CK 专栏 还有一种用法是对目前安全产品的技术有效性进行 coverage 的评估,如下图所示: 图 8:EDR 产品安全技术覆盖度 ATT&CK ™ 的 CARET 项目 CARET 项目是 CAR(Cyber Analytics Repository)项目的演示版本,有助于理解 CAR 这个项目表达的内容。CAR 这个项目主 要是分析攻击行为,并如何检测的一个项目,在 Blue Team 中详细介绍。这里,介绍一下 CARET 的网络图。该图从左到右分为五 个部分:APT 团体、攻击技术、分析技术、数据模型、Sensor 或者 Agent。APT 组织从左到右,安全团队从右到左,在“分析”这 一列进行交汇。APT 组织使用攻击技术进行渗透,安全团队利用安全数据进行数据分类并进行分析,在“分析”环节进行碰撞。 图 9:CARET 网络图 最左侧两列已在上文有所介绍,此处不再赘述。我们从最右侧的 Sensor 开始分析。Sensor 主要是用于数据收集,基本是基于 sysmon、autoruns 等 windows 下的软件来收集信息。数据模型受到 CybOX 威胁描述语言影响,对威胁分为三元组(对象、行为和字段) 进行描述,对象分为 9 种:驱动、文件、流、模块、进程、注册表、服务、线程、用户 session。数据模型是关键所在,它决定了 sensor 或者 agent 要收集哪些数据、怎样组织数据,也为安全分析奠定了基础。“分析”列主要是基于数据模型进行安全分析,大 部分都有伪代码表示。 106 ATT&CK 专栏 Red Team 使用 Red Canary ™ Atomic Red Team 项目 红队使用 ATT&CK 框架是比较直截了当的场景,可以根据框架的技术通过脚本的自动化攻击,这里重点推荐 Red Canary 公 司的 Atomic Red Team 项目,也是目前 Github 上 Star 最多的关于 ATT&CK 的项目。MITRE 与 Red Canary 的关系已经非常密切, MITRE 的项目 CALDERA 也是类似的项目,但是场景和脚本的丰富度离这家新兴的 MDR 公司还是有差距,在今年 SANS 的 CTI 会议上发布的内容也可以看出。 图 10:MITRE 与 Red Canary 的用例数量示意图 这个项目使用起来也好上手,首先搭建相关环境,然后选择相关的测试用例,包括 Windows、Linux 以及 MacOS 的用例,然 后可以根据每个用例的描述以及提供的脚本进行测试,可能有些用例需要替换某些变量。之后可以根据部署的产品进行检测,看 是否发现了相关入侵技术,如果没有发现需要进行检测技术的改进情况。最后,可以根据这个过程反复操作,能够得到一个入侵 检测进步的进展图,最终可以更好的覆盖 ATT&CK 的整个攻击技术图。 图 11:入侵检测进展示意图 其它红队的模拟攻击项目更新较少,也可以参考 Endgame 的 RTA 项目、Uber 的 Metta 项目。比较好的实践是自己的攻击测试 库,可以基于 Red Canary 的项目,然后结合其它的测试项目,同时可以结合自身来完善这个自己的红队攻击测试库,可以根据实 际情况不断进行测试和回归测试,可以让安全攻击水准达到一个比较好的水平。 ATTACK-Tools 项目 这个项目有两个重要作用:第一是用作模拟攻击的计划工具;第二是用作 ATT&CK 关系型数据库的查询工具。首先,我们先 107 ATT&CK 专栏 从用作模拟攻击的计划工具这个角度来介绍。以 APT3 为例(好尴尬,是美国分析中国的 APT 组织),先不考虑地缘政治因素, 只考虑技术层面。首先,分析一个 APT 组织的行为报告就较为复杂,国内也是只有为数不多的几个比较有技术实力的公司每年在 分析 APT 组织的行为;然后,基于这些攻击技术抽象成模拟这些组织攻击的内容更是复杂。从下图可以看出,模拟 APT3 有三个步骤, 但其实前面还有个重要的步骤——工具选择。 图 12:APT3 模拟计划示意图 根据这三个阶段进行模拟,第一步是初步试探渗透;第二步是网络扩展渗透;第三步是真正的实施攻击渗出。虽然该示意图 相对比较简单,但该项目根据 ATT&CK 框架,充分展示了对 APT 组织的模拟攻击计划覆盖了哪些技术。 图 13:ATT&CK ™ View 示意图 这类示意图可以很好地将 APT 组织或者软件的行为按照 ATT&CK 框架表示出来,能够做好更全面的模拟攻击。关于 ATT&CK ™ Data Model 这个内容更多的是把 ATT&CK 的内容根据关系数据库设计模式导入,以便按照不同维度进行查询和筛选。 Blue Team 使用 ATT&CK ™ CAR 项目 CAR(Cyber Analytics Repository)安全分析库项目主要是针对 ATT&CK 的威胁检测和追踪。上面的 CARET 项目就是 CAR 的 UI 可视化项目,可以更利于 CAR 项目的理解。这个项目主要基于四点考虑:根据 ATT&CK 模型确认攻击优先级;确认实际分析方法; 根据攻击者行为确认要收集的数据;确认数据收集主体 sensor 的数据收集能力。后面三个方面与 CARET 项目图示中的 Analytics、 Data Model、Sensor 相对应。这个分析库是由对每一项攻击技术的具体分析构成的。我们以该分析库中最新一条的分析内容为例: CAR-2019-08-001: Credential Dumping via Windows Task Manager(通过 Windows 任务管理器进行凭据转储),这项分析主要是 108 ATT&CK 专栏 对转储任务管理器中的授权信息这一安全问题进行检测。分析中还包含单元测试部分: 图 14:单元测试示例 分析中还包括三种检测方式:伪代码、splunk 下的 sysmon 的代码实现、及 EQL 语言的实现。通过各种方式的检测方法的实现, 可以大大增强蓝队的检测能力。 图 15:实现方式示例 CAR 这个架构可以作为蓝队很好的内网防守架构,但是毕竟是理论架构,内容丰富度上比较欠缺。 Endgame ™ EQL 项目 EQL(Event Query Language)是一种威胁事件查询语言,可以对安全事件进行序列化、归集及分析。如下图所示,该项目可以 进行事件日志的收集,不局限于终端数据,还可以是网络数据,比如有国外使用 sysmon 这种 windows 下的原生数据,也有 osquery 类型的基本的缓存数据,也有 BRO/Zeek 的开源 NIDS 的数据,这些数据对接个 EQL 语言进行统一分析。 图 16:EQL 语言示意图 109 ATT&CK 专栏 这个语言的形式有 shell 类型 PS2,也有 lib 类型。比较局限的是要输入 Json 类似的文件才可以进行查询,但是语法比较强大, 可以理解为 sql 语言和 shell 的结合体。既有 sql 的条件查询和联合查询,也有内置函数,同时也有 shell 的管道操作方式,有点类似 于 splunk 的 SPL(Search Processing Language)语言。 这个语言本质上属于 Threat Hunting(威胁捕获)领域,因为这个领域目前也比较受关注,后面还会有文章专门讲解。该语言 在开源领域影响力较大,尤其是跟 ATT&CK 的结合比较好,除了提供语言能力外,还有很多跟 TTPs 结合的分析脚本。 DeTT&CT 项目 DeTT&CT(
青藤云安全 ATT&CK 实战指南
文档预览
中文文档
14 页
50 下载
1000 浏览
0 评论
0 收藏
3.0分
温馨提示:本文档共14页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 路人甲 于 2022-08-16 03:37:01上传分享