ATT&CK 在大数据安全分析中的应用思考
星期五, 十一月 15, 2019
若将今年网络安全圈内的热词进行盘点排榜, “ATT&CK” 一定榜上有名。从 2019RSA 大会上分析师分享会的重点关注,到今年 Gartner SIEM 魔力象限考核中将其列为重要参考指标,ATT&CK 无疑迎来了全新的发展机遇。ATT&CK 框架内构建的知识库为安全行业提供了一个标准,对已知的战技术进行收集,促进安全产品的优化改进。本文将从 TTPs 的作用、分析溯源等方面提出关于 ATT&CK 框架在 SIEM 产品中应用的理解和思考,欢迎大家探讨。
“ATT&CK” 的全称为 “Adversary Tactics and Techniques & Common Knowledge”,它设计初衷是构建一个攻击者战术和技术的共享知识库。记得在 2017 年首次关注 ATT&CK 矩阵,那时只有近百个技术,没人会想到今天 ATT&CK 会成为大部分安全从业者都在关注的一个词。MITRE 成功了,ATT&CK 也成功了,现在它逐渐成为一个业界公认的红蓝知识库,越来越多的从业者和厂商向框架内贡献技术点,使得这个框架的发展与应用更加快速。
提到 ATT&CK 框架就不得不提 TTPs (Tactics,Techniques,Procedures),这是一个军事术语,现在被引用到网络安全领域。
• 战术 (Tactics):发起一个攻击的意图
• 技术 (Techniques):实施一个攻击的技术
• 过程 (Procedures):实施一个技术的流程
那么 ATT&CK 究竟能给安全行业带来什么?
• ATT&CK 框架可以成为业界的标准(能力可度量)
目前 ATT&CK 框架主要包含终端相关安全知识,可以根据检测能力的矩阵覆盖率来评估部分安全产品的能力,例如:沙箱、EDR、SIEM 等。
如果顺利发展的话后期也可能加入Web安全相关安全知识,那时 WAF、RASP、代码审计等 Web 相关安全产品也可以凭借框架进行评估。
终端在检测漏洞利用方面的能力较弱,若等漏洞利用子技术丰富后,流量设备是否可以借此来评估检测能力?虽然现在有一个现成的 CVE 库,但和知识库还有一些距离。当然这些只是个人的猜测,毕竟漏洞有点多,这是一个浩大的工程。
能力的度量需要客观、统一的标准,而不是自说自话。当然这里的覆盖率只是指标之一,覆盖规则的质量也是非常重要的,但其实往往质量比数量更难评估。
• ATT&CK框架可以成为业界的通用语言(威胁数据标签化)
经过多年的安全分析工作,每天被不同厂家的不同版本的不同设备所折磨。今天这个设备的告警叫 “smb漏洞利用”,明天相同的告警叫 “MS17-010”,这只是一个简单的例子,就仿佛分析师必须会两种语言甚至更多才能胜任其工作。语言多样性同时造成语言障碍,影响协作能力。都说攻防不对称,但当面对强大的对手,防守方可能从未站在同一阵线 。如果不管是 “smb漏洞利用” 还是 “MS17-010”,以后大家都称其为 T1210-Exploitation of Remote Services,SubTxxxx-MS17010,每个人的一小步,却是行业的一大步。
ATT&CK 模型是在洛克希德-马丁杀伤链的基础上,构建了一套更细化、更贴合实战的知识模型和框架,它主要分为 3 个矩阵:
(1) PRE-ATT&CK:攻击前的准备,例如战略计划制定、武器化、信息收集、脆弱点发现等;
(2) Enterprise:攻击时的部分已知技术手段,例如初始权限获取、执行、防御逃避、横向移动等;
(3) Mobile:移动端的部分已知技术手段,移动框架和 Enterprise 类似,只是适用的平台不同;
目前 SIEM 并没有涉及到太多的移动端安全问题,所以移动端就不放在本次的讨论范围之内。
PRE-ATT&CK 目前对于防御者来说可见性比较低,目前大多数采用预防性防御方法,比如进行安全意识培训抵御社会工程学攻击,定期漏洞扫描来规避易被发现的脆弱点,定期的监控开源代码仓库有无泄露项目源代码、VPN 账号、员工邮箱、敏感密码等。
Enterprise 既是当用户已经在内部有了驻足点后的行为矩阵,在这个矩阵中,企业数据探针较完善的情况下可见度是比较高的,可以更好的利用此矩阵内的数据源进行威胁的捕获与分析,因此Enterprise也是目前备受关注的矩阵,也是我们本篇重点讨论的矩阵。
(图片来源于:网络)
TTP 的标签
1. 数据源的选择
在利用 ATT&CK 的 TTPs 来描述在环境中发现的威胁之前,需要接入相关数据作为底层的支持。在这次 ATT&CKcon 会议上看到的一张数据源排行榜,可见进程创建、进程命令、文件监控占了很大的比重。sysmon 的数据目前可以基本满足需求。
(图片来源于:hxxps://pbs.twimg.com/media/EICsnZ_XYAAyyxd?format=jpg&name=medium)
2. 数据标签化
由于 SIEM 平台本身接入的数据量太大并且有很多没有分析价值的数据,平台需要抽象出一层关注的安全事件,这些事件不一定是恶意攻击,比如 Powershell、CMD 这些运维管理员也会使用的程序,抽象出的事件需要一个标签来描述事件的含义,这时 TTPs 的 ID 就成了最好的标签。TTPs 的背后是完善的知识库,每个技术都可以追溯其利用原理、战术意图。
通常使用规则将数据打上标签,所以需要先梳理技术对应的数据源,以下表为例:
SIEM 做的是数据分析,ATT&CK 可以将数据添加一层标签,标签的生成来自与规则,标签化的流程与利用,如下图:
ATT&CK 的规则是 ATT&CK 框架应用的基础,也是难点。初步可以根据 github 上一些开源的项目进行实施和优化,例如:sentinel-attack、sysmon-config、sigma 等。与其他产品类似,主要的问题在两个方面:
规则的质量一直是厂商头疼的问题,更是困扰安全分析师和运维人员的难题。当底层数据不可信时,分析的都是错数据,分析的结果又怎么能对呢?在开源规则的基础上我们可以在各种环境下测试规则的误报并进行调试,针对特定规则可能需要手动复现提取更加准确的特征。
虽然 ATT&CK 框架号称是原子级技术分解,其实还尚未达到这个程度,例如 T1055 – 进程注入,虽然在它的知识库里也列出了几种注入的方法,但是真正的注入方法就不止 10 种。那么若一个产品覆盖了 T1055 – 进程注入,但覆盖了其中一种技术还是十种技术对应的能力显然是不同的。为此 MITRE 也及时做出了调整推出 Sub-Techniques 的概念,这是真正意义上的原子级技术点。相对于现在的 Techniques,Sub-Techniques 才能客观的标识一个产品的检测能力覆盖面,让我们拭目以待。
(图片来源:hxxps://pbs.twimg.com/media/ECl3z_FXsAE892F?format=jpg&name=900×900)
3. 标签的权重
分析标签时和分析数据一般无二,有的数据只是用参考的,有的数据却标注着企业内部可能正在发生攻击行为。目前,笔者根据规则的置信度、检测粒度将标签粗略分为:失陷告警、参考告警、审计信息三大类。
失陷告警:极低误报率、确切高危行为的告警
参考告警:存在误报情况的高危行为告警、较低误报率的中危告警
审计信息:可能被攻击者利用也可能是用户自己操作的行为
举例:
Powershell目前被攻击者频繁利用,也是终端必须审计的数据源之一。
若规则为定义如下,那么这只能算是一个审计信息。
Image contains ‘powershell.exe’
若规则有了更细致的特征,那么可以定级为一个参考告警甚至失陷告警。
Image contains ‘powershell.exe’ and CommandLine contains (‘-w hidden’ or ‘–Exec Bypass’ or ‘-c’ or ‘-Enc’ or ‘–Nop’ or ‘DownloadFile’)
有了详细的特征为什么还需要使用宽泛的审计规则:世上没有完美的规则,规则总可能被绕过,这时还有审计信息给予我们溯源的可能。
审计规则可以记录所有动作为什么还要颗粒度更高的规则:权重!让机器帮你做初步的筛选,直接关注存在的高风险问题,权重不同的告警在场景化过程中对结果的判断也会有影响。
分析溯源
无论是 APT 还是常规的渗透攻击,可能会用一些目前未知的技术手段或者 0DAY,但也必然会用到其他已知的攻击手段,这时我们的标签化的数据就起到了分析的价值,可以根据标签进行行为分析、异常分析等。
1. 进程树的分析
当我们触发告警时,可以溯源该告警进程的进程树。此时可将进程树的上所有进程附着的 TTP 标签作为数据,分析该进程树是否为一条失陷的攻击链,在进程树生成后也会发现许多没有标签的进程,这些可能就是规则遗漏的检测点。
举个简单一点的判断逻辑:
a. 是否树上可以有多个权重较高的标记
b. 是否树上有超过${Num}个不同的标记
当然实际应用中可能需要其他更完善的算法。假想能否将一台主机上的所有进程导入图数据库,这样就可以获得单台机器某个时间段下全局进程图的视角,这比分析某个进程树呈现的更加直观和全面。
2. 标签分布分析
我们可以为每台主机维护一个矩阵图,把主机上的 TTP 标签作为数据,分析这个主机是否为一个失陷主机。
举个简单一点的判断逻辑:
a. 是否主机上可以有多个权重较高的标记
b. 是否主机上有超过${Num}个不同的标记
c. 是否主机上有超过${Num}个不同的战术意图
当然光靠阈值可能依然存在一些误报情况,我们可以引入机器学习算法辅助确认主机是否失陷。在内网的运维过程中,我们收集以单台主机上的 TTPs 标签分布为样本数据,对主机进行分析后,若手动判定为失陷则加入黑样本,其他认为是白样本。利用样本集训练模型作为一种辅助判断的手法,来提高风险主机的处理优先级。在客户运维的过程中,还可以利用主动学习算法不断的优化辅助模型。
3. 内网的溯源
当检测到失陷主机有进程访问内网其他机器时,展示该机器上检测到的 TTPs 信息及摘要。可以根据此信息来判断是否为横向移动攻击,例如winrs是一种横向移动手段,发现主机10.50.10.100通过winrs连接到内网机器10.50.10.105,又发现主机10.50.10.105上有权重较高的标签T1060-Registry Run Keys / Startup Folder、T1003-Credential Dumping、T1191-CMSTP,那可能大概率横向移动的结果是成功的。
4. 上下文描述
可为每个标签添加更细节和通俗的描述作为场景化描述的基础语句,再将其组合起来成为完整的描述一个场景。以进程树为例,对每一层树中的操作进行战术分类后以时间轴的形式进行描述。
2019/11/07 16:31:05 进程IJIurngei.exe通过漏洞CVE-2018-8120提升权限运行uziYaoqomsfT.exe,进进程用户由User提升到System,达到权限提升目的;
2019/11/07 16:31:07 进程uziYaoqomsfT.exe连接远程域名download.microUpdate.com,疑似达到远控目的;
2019/11/07 16:31:15 进程uziYaoqomsfT.exe释放文件svchost.exe,达到伪装目的;
2019/11/07 16:31:18 进程svchost.exe连接远程域名ginni.go0gle.com,疑似达到远控目的;
2019/11/07 16:31:23 进程uziYaoqomsfT.exe运行程序cmd.exe,达到执行目的;
2019/11/07 16:31:24 进程cmd.exe运行程序tasklist.exe、systeminfo.exe、net.exe、net1.exe、whoami.exe,达到发现目的;
2019/11/07 16:31:32 进程cmd.exe运行程序mimi.exe访问lsass.exe进程,达到凭证获取目的;
2019/11/07 16:32:03 进程cmd.exe运行程序winrs.exe连接远程主机10.50.10.105,目标机器上存在3个较高权重的标签T1060-Registry Run Keys / Startup Folder、T1003-Credential Dumping、T1191-CMSTP,疑似达到横向移动目的;
红蓝知识库
虽然 ATT&CK 框架期望实现建立一个大而全的威胁知识库,但目前的阶段还尚处于初步了解框架概念。MITRE 致力于建立一个 Cyber Analytics Repository,但由于内容太少而不足以提供丰富的检测能力。不过也有很多迫不及待的人已经提前动起了手,例如 Red Teaming Experiments、atomic-red-team,但他们更注重的是 Red Team 攻击过程的复现,我们期望的是 Red Team 代码级复现 +Blue Team 威胁特征提取。
1. 威胁检测
比起说红蓝知识库可以帮助威胁检测,倒不如说为了更好的检测才有了红蓝知识库。为了有更精确的告警采取复现攻击技术,红蓝知识库只是衍生总结出的产物。
2. 用户赋能
既然有了知识库自然要利用起来,SIEM 是一个需要安全知识才能使用起来的安全产品,对于分析师的能力有要求,目前红蓝知识库可以提供给分析人员更多更详细的学习指导。
随着 ATT&CK 框架的认知度越来越高,其完善发展的速度一定会更快,应用的方向也会更广。就目前阶段,我们认为 ATT&CK 最大作用是帮助恶意行为的检测和分析。合抱之木始于毫末,万丈高楼起于垒土。我们将踏实致力于实战,不断完善知识库,通过统一标准的建立,打造高效便捷的交流话语,健全行业生态体系。若文中有描述不足的地方欢迎交流,开放才能更快的进步,共勉。
相关阅读