该系列文章将系统整理和深入学习系统安全、逆向分析和恶意代码检测,文章会更加聚焦,更加系统,更加深入,也是作者的慢慢成长史。漫漫长征路,偏向虎山行。享受过程,一起加油~
前文带大家学习了软件Procmon。这篇文章将从学术角度去普及和总结一个新的概念——溯源图,文章将详细介绍和总结基于溯源图的攻击检测安全顶会内容,花了作者一个多月时间。希望这篇文章对您有所帮助,这些大佬是真的值得我们去学习,献上小弟的膝盖~fighting!
本次分享主要是作者对APT攻击部分顶会论文阅读的阶段性总结,将从以下四个方面开展,包括APT攻击背景知识、APT攻击检测研究、基于溯源图的APT攻击检测方法对比、下一步工作及讨论。其重点是对基于溯源图的APT攻击检测进行总结。同时,由于作者科研能力和英文还较弱,写得不好或理解不到位的地方,还请各位老师和博友指正和批评,谢谢!
作者作为网络安全的小白,分享一些自学基础教程给大家,主要是关于安全工具和实践操作的在线笔记,希望您们喜欢。同时,更希望您能与我一起操作和进步,后续将深入学习网络安全和系统安全知识并分享相关实验。总之,希望该系列文章对博友有所帮助,写文不易,大神们不喜勿喷,谢谢!如果文章对您有帮助,将是我创作的最大动力,点赞、评论、私聊均可,一起加油喔!
文章目录:
- 一.背景知识
- 二.APT攻击检测研究 1.APT攻击检测相关研究 2.基于异常检测的方法 3.基于溯源图的方法 SLEUTH [USENIX’17] Poirot [CCS’19] HOLMES [S&P’19] Extrator [EurS&P’21] HINTI [RAID’20] UNICORN [NDSS’20] ProvDetector NDSS’20 RapSheet [S&P’20] ATLAS [USENIX’21]
- 三.方法对比 1.基于溯源图的方法研究趋势分析 2.方法优缺点对比 3.数据集对比
- 四.总结
作者的github资源:
- 逆向分析: https://github.com/eastmountyxz/ SystemSecurity-ReverseAnalysis
- 网络安全: https://github.com/eastmountyxz/ NetworkSecuritySelf-study
声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。该样本不会分享给大家,分析工具会分享。(参考文献见后)
一.背景知识
1.什么是APT攻击? APT攻击(Advanced Persistent Threat,高级持续性威胁) 是利用先进的攻击手段对特定目标进行长期持续性网络攻击的攻击形式。APT攻击也称为定向威胁攻击,指某组织对特定对象展开的持续有效的攻击活动。这种攻击活动具有极强的隐蔽性和针对性,通常会运用受感染的各种介质、供应链和社会工程学等多种手段实施先进的、持久的且有效的威胁和攻击。
2.APT攻击的特点 上图的表格展示了APT攻击和普通攻击的区别。可以简单地将APT攻击特点总结为:
- 隐蔽性 0-day漏洞、needle in a haystack(通常不到0.01%)、无文件攻击、加密流量
- 持续性 low-and-slow(潜伏时间长)、攻击时间跨度大
- 针对性 Stuxnet、SolarWinds
- 模块化(自适应) Stuxnet、WannaCry
3.APT攻击检测存在的困难 下图展示了2016到2020年,亚太地区AP攻击事件的停留时间,可以看到其潜伏期很长,想要发现一起APT攻击极为困难。同时,传统APT攻击检测存在一定的缺陷,包括:
- 无法捕获长期运行的系统行为
- 0-day漏洞导致攻击艰难检测
- 实时攻击检测、真实场景检测效果不佳
- 容易遭受投毒攻击 注意,这里的投毒攻击是指因APT攻击持续时间长,导致ML模型学习攻击特征时,会将恶意行为逐渐训练学习为正常行为
- …
接着补充下两个辅助APT攻击的经典知识框架,它们分别是 kill-chain Model 和 ATT&CK Model。它们既能帮助我们理解、检测和溯源APT攻击流程,又在论文中作了相应的贡献,现已被广泛用于APT攻击检测领域研究,后面会详细介绍。
- kill-chain Model 洛克希德·马丁公司开发的“网络杀伤链”模型描述了网络攻击的各阶段流程,具体包括七个阶段,即目标侦查、武器构建、载荷投递、漏洞利用、安装植入、命令与控制、任务执行。
- ATT&CK ModelATT&CK(Adversarial Tactics, Techniques, and Common Knowledge )是一个攻击行为知识库和模型,主要应用于评估攻防能力覆盖、APT情报分析、威胁狩猎及攻击模拟等领域。网址:https://attack.mitre.org/
最后展示了常见APT组织。
二.APT攻击检测研究
该部分从APT攻击检测相关研究、基于异常检测的方法和基于溯源图的方法三个方面介绍,重点以基于溯源图的方法为主。
1.APT攻击检测相关研究
APT攻击检测研究方法的分类很多,作者这里仅将其分成了两大块(不一定合适),主要和作者阅读的论文相关,也欢迎大家交流分类方法。即:
(1) Anomaly-based detectors for APTs
– 主机日志(审计日志) – 系统调用 – 网络流量 | 警报信息 – 恶意行为
(2) Provenance graph-based detectors for APTs
– 溯源图 – 引入外部知识 – 融合ATT&CK框架 – 因果关系图 NLP
我们先看看图中下半部分基于 溯源图(Provenance Graph)
的APT检测方法。主要包括:
- 伊利诺伊大学芝加哥分校团队
首先,USENIX’17提出的
SLEUTH
,将溯源图应用于APT攻击检测领域。然后,该团队紧接着在2019年CCS会议上提出Poirot
,在S&P’19上提出Holmes
,该方法融合了Kill Chain和ATT&CK框架。此外,在2021年EurS&P提出Extrator
,并引入外部知识。 - 伊利诺伊大学香槟分校团队
另一个研究溯源图的团队来自伊利诺伊大学香槟分校,他们分别在NDSS’20提出了
UNICORN
和ProvDetector
,同时在2020年的S&P上提出RapSheet
,它融合了ATT&CK框架。 - 普渡大学团队
第三个团队是来自普渡大学,当然各团队之间有很多合作团队。他们的核心成果包括NDSS’13提出的
BEEP
,NDSS’16提出的ProTracer
和USENIX’21提出的ATLAS
。
整个基于溯源图的APT检测方法是在Baseline的基础上不断优化,包括溯源图 引入外部知识、溯源图 融合ATT&CK框架、因果关系图 NLP等。后面的论文和框架图作者会更详细的介绍,从而梳理出溯源图方法的研究路线。另外,基于异常检测的方法图中也列举了部分方法。
2.基于异常检测的方法
基于异常检测的方法这里简单例举了利用C&C域名、数学模型、恶意流量和恶意行为实现APT攻击检测的框架图,如下图所示。
上述传统APT攻击检测方法主要存在的缺陷包括:
- APT攻击时间跨度长,缺乏方法或工具有效将信息进行关联,还原攻击链
- 实时检测困难,较难高效地从百万条日志中筛选数据,并检测出最可能的攻击行为
- 较难让分析人员通过数据有效地进行推理,从而检测未知攻击
- 缺乏对真实场景的APT攻击进行检测,并且IDS和SIEM会产生大量的信息,传统方法识别真实的攻击更加困难
- 无法有效解决投毒攻击,即由于APT攻击时间跨度较长,深度学习会将恶意特征训练为正常特征
结合上述原因,产生了改进方法,即:
- 基于溯源图的APT攻击检测(Provenance graph-based detector for APTs)
接下来开始详细介绍基于溯源图的APT攻击检测方法。
3.基于溯源图的方法
SLEUTH [USENIX’17]
第一篇论文是USENIX’17的 SLEUTH
。
Md Nahid Hossain, et al. SLEUTH: Real-time Attack Scenario Reconstruction from COTS Audit Data. USENIX’17
- https://www.usenix.org/system/files/conference/usenixsecurity17/sec17-hossain.pdf
- 石溪大学、伊利诺伊大学芝加哥分校
这篇文章的主要贡献如下:
- 首次利用溯源图重构APT攻击,即利用因果关系跟踪和溯源图构造模型
- 提出一种可以在企业主机上实时重构攻击场景的方法和系统
- 开发一种平台无关、基于主存的审计日志数据依赖图抽象
整个SLEUTH的框架图如下图所示,核心内容如下:
- (1) 输入的是Linux、Windows和FreeBSD平台的审计日志信息
- (2) 构建并标记依赖关系图,标签将提供重要的上下文信息,对应论文中良性可信、良性和未知三种类型
- (3) 实现基于标签和策略的攻击检测,并定制的策略,根据审计日志的秘密性分为公开、隐私、敏感和秘密,通过引入标签和策略实现对依赖关系图赋予不同的权重
- (4) 经过依赖图反复构建后,会到达警报计算阶段,通过定义规则来匹配更高的威胁攻击,生成对应的分数,基于标签的分析后会生成并还原场景图(Scenario Graph)
同时,依赖关系图中的节点和关系表示如下:
- 节点:表示subjects(进程)和objects(文件、sockets)
- 关系:表示审计事件(读、写、执行、连接等操作)
接着介绍它的警报(Alarms)计算策略,以下四个会引发警报,包括:
- 不受信任的代码执行:高等级标签去执行低等级时触发
- 被低等级标签修改:修改文件权限时产生
- 秘密文件泄露:不可信对象执行写的操作
- 执行不可信的数据:比如执行command等指令操作
下图是攻击场景的重构,它是对FireFox浏览器漏洞的场景还原。
- 审计数据还原fireFox后门攻击场景 – Backdoor insertion – Clean-up
整个场景还原如下:它的入口点是在firefox.exe位置,首先它会去接收IP地址,然后fork下载器(dropper),接着它会发送请求到443端口;接下来会多次调用cmd执行命令,如whoami、netstat、hostname等,并将数据写入到指定路径的thumbs.db文件中;然后执行git.exe实现数据过滤操作;最后执行burnout.bat批处理文件清除场景的痕迹。
整个实验采用 DARPA TC
数据集实验,它有8个攻击场景重构及攻击阶段映射,该论文对每个场景进行了图还原,涉及阶段如下图所示:
实验统计了APT攻击场景每个阶段的实体数量:关键文件、网络连接、执行程序等,如下图所示。
其他实验效果如下,建议读者阅读原文。
最后,简单总结SLEUTH与传统方法的区别:
- Sleuth方法 – Sleuth实时检测、运行效率更高 – Sleuth基于标签的检测方法更精确(规则 策略 警报)
- 传统方法,如Bactracker [SOSP’03] – 无法实时且效率低 – Bactracker依赖外部工具生成警报,无法剪枝和溯源
补充:DARPA TC是经典的APT攻击检测数据集 美国国防高级研究计划局(Defense Advanced Research Projects Agency, DARPA)运营了多个重量级的网络空间安全研究项目,召集了诸多美国顶级研究机构参与,可谓是集中力量办大事。其中,透明计算(Transparent Computing, TC)项目正是期望通过基于终端数据的采集与分析增强终端上系统细粒度行为的可视能力,以实现企业级网络空间APT检测、取证等关键任务。 现代操作系统的功能逻辑越来越复杂,计算系统的低透明度成为精细化记录、分析、预测系统级别行为的重要限制,而封闭的系统黑盒为具有高隐蔽性、高对抗性的APT攻击者提供了绝佳的潜伏场所。为了打开系统行为黑盒,实现在较低开销下提供系统各层级软件模块行为可见性,DAPRA组织了Transparent Computing项目。该项目的目标技术及系统需实现:
- 采集、保存系统组件(输入、软件模块、进程等)的溯源数据;
- 动态追踪网路系统组件的交互与因果依赖关系;
- 整合数据依赖,测绘端到端的系统行为;
- 从取证和实时检测的角度,实现对系统行为的推理。
基于以上能力的实现,TC项目旨在完成细粒度系统级行为的关联,实现在大规模行为中识别异常与恶意意图,发现潜在的APT或其他高级威胁,并提供完整的溯源分析与相关损失评估。同时,TC项目能够实现网络推理能力与企业规模网络监控和管控系统的整合,以增强关键节点的安全策略有效性。 从2016年10月到2019年5月,DARPA TC项目共组织了5次较大规模的红蓝对抗交战演习(Engagement)。在每次对抗中,TC总共划分为5个技术域(Technical Areas, TAs),其时间跨度超过20天。TA5.1实现了包括Carbanak、Uroburos、DustySky、OceanLotus、njRAT、HawkEye、DeputyDog等多种恶意软件在攻防平台中的投放。DARPA TC的攻击模拟展现了参与团队在APT技战术的深厚积累。
- 参考绿盟的文章并强烈推荐
- https://www.nsfocus.com.cn/html/2020/21_0824/605.html
Poirot [CCS’19]
第二篇论文是来自CCS’19的 Poirot
。
Sadegh M, et al. Poirot: Aligning Attack Behavior with Kernel Audit Records for Cyber Threat Hunting. CCS’19
- https://dl.acm.org/doi/pdf/10.1145/3319535.3363217
- 伊利诺伊大学芝加哥分校、密歇根大学迪尔伯恩分校
这篇文章的主要贡献如下:
- 利用网络威胁情报(CTI)关联性检测APT攻击
- 使用审计日志,将威胁检测建模为一个非精确的图模式匹配(Graph Pattern Matching, GPM)问题– 在大图中搜索与某个特定图相匹配的子图
- 相似性度量,攻击行为与内核审计日志对齐– 内核审计日志构建溯源图(provenance graph) – CTI关联构建查询图(query graph)
整个Poirot的框架图如下图所示,核心内容如下:
- (1) 该图右边部分是上篇论文的基本流程,即从三个操作系统(BSD、Linux、Windows)审计日志信息中构建 溯源图(Provenance Graph),然后还原攻击场景
- (2) 左边引入了外部IOC关系信息,提取并构建攻击行为的查询图(Query Graph),这里引入了图对齐或图匹配
- (3) 最后通过对齐和阈值计算算法生成对应的分数,实现最终的分析取证并生成警报 – 图中顶点表示实体,边表示信息流和因果关系
接下来补充查询图(Query Graph)构建的过程。相当于给你一篇APT分析报告,它会自动生成对应的查询图,如下图所示,A执行B的exe程序,并写入C,然后写入D注册表,再想E发送请求。
- 椭圆-进程
- 菱形-套接字
- 矩形-文件
- 五边形-注册表
对应的匹配过程如下图所示,Gq表示查询图,Gp表示溯源图。个人理解,DARPA TC数据会生成溯源图,然后和查询图匹配出来两个对应的结果子图,如最右边所示。从而更好地发现那部分子图是在实施APT攻击。
该方法还包括两种类型的对齐:node alignment和graph alignment。
由于作者能力有限且理解不够,一些细节未能很好地表达,还请见谅。建议大家去阅读原文,这些公式及算法非常重要,当然我也会继续努力提升自己的阅读能力,多向这些大佬学习并力争撰写好的论文,共勉。
实验结果如下图所示,比如不同恶意软件(如海莲花OcenLotus)对应的查询图以及对其过程。
其他的实验结果如下,比如选择阈值的对比结果,这也将决定对齐算法的分数。
实验结果表明:
- CTI相关性可用于威胁猎杀,并且具有较好的鲁棒性和可靠性
- Poirot方法能有效从溯源图中实现APT组织查询图(攻击链)匹配及对齐
本文方法与传统方法对比如下:
- 不同于基于符号执行的方法,Poirot不依赖于符号表达式,而是寻找系统的相关性和信息流
- 传统方法的网络威胁情报相关性被完全忽视,未被用于威胁检测
- 本文方法引入图匹配算法,这与之前的方法不同
HOLMES [S&P’19]
第三篇论文是S&P’19经典的 HOLMES
。
Sadegh M. Milajerdi, et al. HOLMES: Real-time APT Detection through Correlation of Suspicious Information Flows. S&P’19
- https://arxiv.org/pdf/1810.01594.pdf
- 伊利诺伊大学芝加哥分校、密歇根大学迪尔伯恩分校、石溪大学
这篇文章的主要贡献如下:
- 构建一种可以实时检测APT攻击的系统,有效利用攻击活动可疑信息流的相关性
- 将APT活动信息映射到杀伤链,设计高级场景图(high-level scenario graph,HSG)实现低层次(日志、警报)信息到高层次的映射(语义鸿沟),从而使得HOLMES能有检测良性或攻击场景
- 系统和实验完整性:虚假依赖关系剪枝、降噪处理(紧密性)、HSG排序
其框架图如下所示,前面基本类似,但右端增加了一个高级场景图(high-level scenario graph,HSG),从而实现低层次(日志、警报)信息到高层次的映射,解决论文中提到的语义鸿沟。该方法能够实时检测系统,产生APT报警;并能实时产生高级别的攻击图来描述攻击者的行为,协助防御者进行实时地安全响应。
HSG对应如下图所示,传统比如是审计日志信息,直接到上层的APT攻击阶段(杀伤链)会存在语义损失,即:低级别审计数据与攻击目标意图与高级杀伤链(kill-chain)视角之间存在巨大的语义差距。因此引入TTPs和HSG,通过ATT&CK框架映射的中间层来提升实验效果。
APT攻击检测存在的难点可以概括如下三点,该方法能有效解决这些困难。
- 攻击隐蔽(Stealthy Attacks)
- 大海捞针(Needle in a haystack)
- 实时检测(Real-time detection)
下面简单介绍一个运行时APT攻击溯源图(Provenance Graph)示例。如下图所示,可以看到攻击行为是从初始入侵到C&C通信,再到内部侦查、数据读取、权限提升,以及内部侦查、清除痕迹、窃取信息等。这其实就是一个溯源图,通过数据之间的因果关系生成这样的图,比如C&C通讯、提权、文件操作等进行关联。而上面是正常操作行为。
- 椭圆、菱形、 矩形、五边形、七边形、圆柱
实验结果表明,HOLMES能有效区分良性场景和攻击场景。下图是攻击场景所涉及流程(七维对应杀伤链)及阈值分数,能有效识别APT攻击。
下图展示了APT攻击和良性事件的有效区分。
传统方法存在的缺点如下:
- 基于统计特征的方法对时间跨度长、执行缓慢攻击的检测不佳
- 基于系统调用日志的方法对实时攻击检测效果不佳
- 对比方法:ProTracer[NDSS’16]、MPI[USENIX’17]、SLEUTH [USENIX’17]、PrioTracker[NDSS’18]
本文HOLMES的优点如下:
- 攻击粒度更细
- 从溯源图到攻击链的映射引入了HSG解决语义鸿沟问题
- 能有效检测长期潜伏实时的APT攻击
- 通过引入降噪算法解决HSG紧密性问题
正是综合各种优点,论文的故事叙述非常棒,并结合之前的成果,所以他们能发到S&P,非常值得我学习。
Extrator [EurS&P’21]
第四篇论文是EurS&P’21的 Extrator
。
Kiavash Satvat, et al. EXTRACTOR: Extracting Attack Behavior from Threat Reports. EurS&P’21
- https://arxiv.org/pdf/2104.08618.pdf
- 伊利诺伊大学芝加哥分校
由于CTI报告海量且非结构化,安全人员很难从文本中提取出真正有效的信息,本文提出了融合自然语言处理的Extrator方法。其主要贡献如下:
- 提出一个自动化工具Extrator,用于自动从网络威胁情报(CTI)报告中提取出攻击行为信息
- 利用自然语言处理(NLP)从CTI报告中精确地提取攻击行为
- 使用语义角色标注(SRL)进行语义分析,理解攻击行为关系,并将非结构化文本转化为溯源图
其框架图如下图所示,包括:
- 标准化 拆分、同义词、主动语态
- 消歧 主语省略句消除或补齐、带刺消除、同义词消除
- 文本归纳 去除语句冗余、去掉单词冗余
- 溯源图构建 语义角色标注、溯源图构建
实体识别和实体消歧示例如下图所示:
实验表明Extrator可以有效提取CTI报告的攻击信息,并以溯源图形式展现。同时,生成的溯源图与人工生成的溯源图能够进行匹配,验证了方法的有效性,并且溯源图可以进一步作为威胁情报检测系统的输入。下图展示了不同攻击场景的精确率、召回率和F1值。
方法对比:
- 与iACE等方法不同,本文专注于提取攻击行为,并以溯源图的形式捕获系统级因果关系
本文仍然存在一些缺陷。
- 由于NLP复杂性,提取精度会损失,某些未知实体无法有效识别
- 受到CTI报告作者的风格影响,需要专家协作
- 审计日志提取的信息限制了细粒度攻击建模
简单总结 写到这里,作者简单总结下伊利诺伊大学芝加哥分校的五个工作,可以很好地看到他们逐年的优化和改进。分别对应:SLEUTH[USENIX’17]、NODOZE[NDSS’19]、Poirot[CCS’19]、HOLMES[S&P’19]、Extrator[EurS&P’21]。
- SLEUTH[USENIX’17] 引入溯源图检测APT攻击
- NODOZE[NDSS’19] 增加了威胁检测和异构图构建
- Poirot[CCS’19] 融合IOC信息,增加了查询图和溯源图的对齐算法
- HOLMES[S&P’19] 融合HSG和ATT&CK框架解决语义损失问题,增加去噪剪枝等操作
- Extrator[EurS&P’21] 结合NLP方法(消歧)和外部APT分析报告抽取知识,并构建溯源图
欢迎大家继续补充作者写得的不足,因为阅读有限,也可能漏掉一些重要论文和方法。这里简单补充几个作者分享不足之处和疑惑。
- 问题1:实验怎么评价它的精确率、召回率和F1值呢?是算APT攻击正确识别数量,还是实体识别数量,还是溯源图中子图匹配数量呢?
- 问题2:如何去鉴别一个APT攻击,这点也非常重要。是将进程、文件、通信等不同对象标注成不同类别,构建相互之间的关联呢?
- 问题3:如何生成溯源图,并且代码细节如何实现呢?
- 问题4:论文中算法核心实现过程需要秀璋进一步精读和理解,有机会复现文中的论文。
- 问题5:DARPA TC数据集是否开源,我们能否继续优化方法。
PS:下面的论文由于阅读还存在一些疑惑,作者就进行简单介绍,还请读者见谅。
HINTI [RAID’20]
第五篇论文是RAID’20的 HINTI
。
Jun Zhao, et al. Cyber Threat Intelligence Modeling Based on Heterogeneous Graph Convolutional Network. RAID’20
- https://www.usenix.org/system/files/raid20-zhao.pdf
- 北京航天航空大学、密西根州立大学
这篇文章的主要贡献如下:
- 提出一种基于异构图卷积网络的威胁情报模型,建模IOC之间的依赖关系
- 从非结构化威胁描述中自动提取网络威胁对象,多粒度注意力机制学习特征的重要性
- 攻击偏好建模:将具有相同偏好的攻击聚集(DBSCAN算法)
与现有的CTI框架不同,HINTI旨在实现一个CTI计算框架,它不仅可以有效提取IOC,而且还可以建模和量化它们之间的关系。下表展示了17种元路径关系。
HINTI能有效挖掘隐藏在IOCs之间相互依赖关系和安全知识,并应用于威胁模型,其核心四个步骤如下。
- (1) 首先,通过B-I-O序列标注方法对安全相关帖子进行标注,用于构建IOC提取模型。
- (2) 然后将标记的训练样本输入我们提出的神经网络,以训练提出的IOC提取模型。
- (3) HINTI利用句法依赖性解析器(e.g.,主-谓-宾,定语从句等)提取IOC之间的关联关系,每个关系都表示为三元组。
- (4) 最后,HINTI集成了基于异构图卷积网络的CTI计算框架,以有效量化IOC之间的关系并进行知识发现。
本文提取的13种主要的IOC性能如表3所示。总的来说,我们的IOC提取方法在精确率、召回率、平均F1值都表现出了优异的性能。然而,我们观察到在识别软件和恶意软件时的性能下降,这是因为大多数软件和恶意软件是由随机字符串命名,如md5。
图8显示了不同类型元路径下的前3个聚类结果,其中元路径 AVDPDTVTAT(P17) 在紧凑和分离良好的集群中性能最好,这表明它比其他元路径在描述攻击偏好方面具有更丰富的语义关系。
与之前的方法对比,本文也存在一些缺陷:
- 未在真实攻击场景实现
- 未实现对未知攻击的预测(知识推理)
- 未实现运行时检测及长期潜伏的APT攻击检测
- 没有和主流的知识框架融合
UNICORN [NDSS’20]
第六篇论文是NDSS’20的 UNICORN
。
Xueyuan Han, et al. Unicorn: Runtime Provenance-Based Detector for Advanced Persistent Threats. NDSS’20
- https://arxiv.org/pdf/2001.01525.pdf
- 哈佛大学、布里斯托大学、伊利诺伊大学香槟分校、不列颠哥伦比亚大学
这篇文章的主要贡献如下:
- 针对APT特性设计一种基于溯源图(Provenance Graph)的运行时APT检测方法(直方图和概要图)
- UNICORN能在没有先验攻击知识的前提下实现APT攻击检测,且准确率高和误报率低
- 第一个对本地完整系统进行运行分析的APT入侵检测系统,概要图能对抗长时间潜伏的投毒攻击
其框架如下图所示,包括四个核心步骤:
- ①构建溯源图
- ②建立运行时直方图
- ③计算概要图
- ④聚类
直方图生成算法如下,建议读者精读原文。
实验结果如下图所示:
同时包括一些详细的性能对比。
UNICORN与之前的方法对比结果如下:
- Holmes[S&P’19]和Poirot[CCS’19]:需要先验专家知识(先决条件-结果模式)
- 基于系统调用和日志事件的检测方法:由于数据过于密集,难以对长时间的攻击行为进行建模
- 由于APT潜伏时间长且持久化,攻击行为会缓慢改变传统模型以逃避检测系统(投毒攻击)
UNICORN的局限性和改进如下:
- 需要定期重新训练
- 正常行为改变可能会产生误报
- 未考虑异质性行为
- 更大的实验评估(IDS数据集)
ProvDetector NDSS’20
第七篇论文是NDSS’20的 ProvDetector
。
Qi Wang, et al. You Are What You Do: Hunting Stealthy Malware via Data Provenance Analysis. NDSS’20
- https://www.ndss-symposium.org/wp-content/uploads/2020/02/24167-paper.pdf
- 伊利诺伊大学香槟分校、NEC实验室、德克萨斯州大学达拉斯分校
首先,我们先介绍下离地攻击。
- 只使用预安装的软件并且攻击者没有在系统上安装额外的二进制可执行文件。带有宏、VB脚本、Powershell脚本或者使用系统命令(如netsh命令)的文档属于离地攻击的范围。
由于现有反病毒软件和方法很难检测到该类攻击,本文提出一种ProvDetector方法,它需要依赖内核级的溯源监控来捕获目标程序的动态行为。
这篇文章的主要贡献如下:
- 提出一种基于溯源图的系统,用于检测伪装技术的隐蔽恶意软件(离地攻击 | 无文件攻击)
- 提出一种新的路径选择算法来识别溯源图中潜在的恶意部分(恶意行为与底层操作系统交互)
- 设计一个新的神经嵌入和机器学习管道,自动为每个程序建立一个轮廓并识别异常进程
ProvDetector的核心ProvDetector分为四部分:图构建、特征提取、嵌入和异常检测。部署监控代理,按照定义收集系统数据放入数据库。定期扫描数据库检查是否有新添加的进程被劫持。对于每个进程,先构建起起源图(图构建)。然后从源点图中选择路径子集(特征提取)并将路径转换为数值向量(嵌入)使用一个新颖的检测器来获得嵌入向量的预测并报告最终决定(异常检测)。
实验结果如下图所示:
你可能会疑惑为什么分享这篇文章呢? 一方面由于它也用到了溯源图概念,另一方面同样来自于伊利诺伊大学香槟分校团队(同UNICORN),并且将溯源图应用于其他领域,即检测伪装技术的隐蔽恶意软件。这也是我们探索论文idea的一个思路,可能其他领域或方法也会给我们带来灵感喔。当然,目前作者科研能力太弱,需要不断提升,学习嘛,一辈子的事情。加油!
RapSheet [S&P’20]
第八篇论文是S&P’20的 RapSheet
。
Wajih Ul Hassan, et al. Tactical Provenance Analysis for Endpoint Detection and Response Systems. S&P’20
- https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9152771
- 伊利诺伊大学香槟分校、NortonLifeLock
本文首先指出已有的EDR(端点检测和响应)工具存在的三个主要弊端:
- (1) EDR工具会产生大量的虚假警报,从而为分析人员积压了调查任务;
- (2) 确定这些威胁警报的准确性需要大量的低级系统日志,人工任务繁琐;
- (3) 由于日志占用巨大资源,系统日志通常在进行调查之前就被删除。
因此,本文提出了战术源图(Tactical Provenance Graphs, TPGs)的概念,个人感觉TTPs 溯源图,并研发了RapSheet系统,直接推理EDR系统生成的威胁警报之间因果关系。其主要贡献如下:
- 首次将溯源图引入商业EDR(Endpoint Detection and Response)
- 提出战术溯源图(Tactical Provenance Graphs, TPGs)表示EDR生成威胁警报间的因果依赖关系
- 引入一种威胁评分方法:根据TPGs中存在的单个威胁警报之间的时间顺序来评估风险
本文是用商业赛门铁克EDR软件进行真实检测和实验。其实验结果表明:
- 提升商业EDR效果,检测未知攻击行为
- 减少系统日志降低系统存储开销
- 提高赛门铁克EDR的威胁检测精确度
- 保留警报之间的因果关联性
RapSheet与传统方法对比:
- Holmes商业EDR部署复杂(保留100%日志)
- holmes16条TTP匹配规则 vs RapSheet增加至67条
- 实践中EDR工具会限制日志缓冲区
- NoDoze防止投毒攻击假设(正常行为数据库)
- 未跟踪ALPC消息(Windows),会断开溯源图
- 利用DTaP高效分布式存储提高查询响应时间
ATLAS [USENIX’21]
最后一篇是2021年USENIX的论文,作者仅作了简单的阅读。即 ATLAS
。该文章来自普度大学团队,针对APT研究成果还包括NDSS’13的BEEP、NDSS’16的ProTracer等。此外,CCS21也发现了新的溯源图研究成果,说明基于溯源图的研究仍然是一个值得探索的方向。
Abdulellah Alsaheel, et al. ATLAS: A Sequence-based Learning Approach for Attack Investigation. USENIX’21
- https://www.usenix.org/system/files/sec21-alsaheel.pdf
- 普度大学
本文提出一种基于序列的攻击调查学习方法ATLAS。其主要观察结果是:无论所利用的漏洞和执行的有效载荷如何,不同的攻击可能共享相似的抽象攻击策略。ATLAS是利用因果关系分析、自然语言处理和机器学习技术的新颖组合来构建基于序列的模型,该模型从因果图建立攻击和非攻击行为的关键模式。在推断时间,给定威胁警报事件,确定因果图中的攻击症状节点。然后,ATLAS构造一组与攻击症状节点关联的候选序列,使用基于序列的模型来识别顺序中有助于攻击的节点,并将识别出的攻击节点统一起来构建攻击记录。
- 参考Serendipity老师的文章:https://zhuanlan.zhihu.com/p/393375355
本文的主要贡献如下:
- 利用审计日志生成端到端攻击故事(end-to-end attack story)的框架
- 构建一个基于序列的模型:因果关系图(causal graph) 自然语言处理 深度学习
- 真实APT攻击事件(10个)进行实验,并能恢复攻击关键步骤及还原攻击故事
- 研究发现不同的攻击可能共享相似的抽象攻击策略
个人感觉生成Attack Story还原攻击故事是本文的一大亮点。
实验结果如下图所示,建议阅读原文。
ATLAS 主要涉及支持审计日志溯源追踪的三个子主题,包括:溯源图的因果关系分析、基于异常的分析以及 ML 技术在攻击调查中的应用。当然也存在一定的缺陷,即:
- 当前工作仅限制于Windows平台
- 无法检测到使用类似正常事件序列的隐藏攻击行为,比如模拟攻击
- 模型性能很大程度上取决于所收集的训练日志条目的质量
三.方法对比
写到这里,上述方法已经介绍完毕,接下来我们对所有文章进行简单的研究趋势梳理和方法对比研究。
1.基于溯源图的方法研究趋势分析
研究趋势如下,还原各位老师和读者指正及补充。
2.方法优缺点对比
方法对比主要从溯源图、知识框架、先验知识和优缺点进行比较,得出如下表所示结果。个人感觉,溯源图、是否引入知识框架(ATT&CK)、是否有先验知识、是否融入NLP(消歧 | 对齐 | 去噪合真实场景应用是该方向研究的重要进步补充。
3.数据集对比
数据集的对比如下图所示,主要以DARPA TC、公开威胁情报文本和真实场景攻击数据为主。
四.总结
最后做一个简单总结,写得不足之处还请批评和指正。写这篇文章只希望帮助更多的APT攻击研究者和初学者,同时也是对自己阶段知识的总结,虽然很少有人分享类似正在研究或未发表的总结,但还是想先分享出来,与大家一起探讨和进步,真诚地希望对您有帮助吧!感恩遇见,不负青春,读博路上相互鼓励着前行。
基于溯源图的APT攻击检测是APT检测领域中一个非常重要的分支,由于APT攻击的隐蔽性、威胁性、实时性、针对性,传统的方法艰难检测,因此提出了溯源图的方法。当前的研究趋势主要表现在:
- 基于溯源图和知识图谱的APT攻击检测
- 结合APT攻击阶段特点,融合ATT&CK知识框架进行中间层特征表示,解决语义损失
- 全系统真实场景的细粒度APT攻击检测
- 引入外部威胁情报知识(NLP消歧对齐)来辅助APT检测
- 无先验专家知识
- 对未知APT攻击实现预测
未来的研究趋势,个人感觉如下,不喜勿喷,哈哈!
- 基于图神经网络的APT攻击检测,图可能更好地表达攻击之间的关系
- 从NLP角度分析APT攻击以揭示其特性(融合恶意代码分析)
- 检测并定位APT攻击样本中0-day漏洞是否存在及位置,感觉很难
- 场景迁移:EDR、无文件攻击、在线场景、真实场景
- 加密、混淆、对抗样本、无文件
学安全一年,认识了很多安全大佬和朋友,希望大家一起进步。这篇文章中如果存在一些不足,还请海涵。作者作为网络安全初学者的慢慢成长路吧!希望未来能更透彻撰写相关文章。同时非常感谢参考文献中的安全大佬们的文章分享,深知自己很菜,得努力前行。
最后感谢CSDN和读者们十年的陪伴,不论外面如何评价CSDN,这里始终是我的家,在这里写文章很温馨,也认识了很多大佬和朋友。此外,个人感觉今年是我近十年文章质量最高的一年,每一篇都写得很用心,都是我的血肉,很多都要自己从零去学习再分享,也希望帮助更多初学者。总之,希望自己还能写二十年,五十年,一辈子。
《珈国情》 明月千里两相思, 清风缕缕寄离愁。 燕归珞珈花已谢, 情满景逸映深秋。
最感恩的永远是家人的支持,知道为啥而来,知道要做啥,知道努力才能回去。夜已深,虽然笨,但还得奋斗。
欢迎大家讨论,是否觉得这系列文章帮助到您!任何建议都可以评论告知读者,共勉。
(By:Eastmount 2022-06-09 夜于月球)