恶意软件检测(9)Forecasting Malware Capabilities From Cyber Attack Memory Images

Forecasting Malware Capabilities From Cyber Attack Memory Images

  • 项目:https://www.usenix.org/conference/usenixsecurity21/presentation/alrawi-forecasting
  • 文章:https://arxiv.org/abs/1907.07352

摘要

正在进行的网络攻击的补救依赖于及时的恶意软件分析,其目的是发现尚未执行的恶意功能。不幸的是,这需要在不同工具之间重复切换上下文,并且会给分析员带来很高的认知负荷,从而减慢调查速度,并给攻击者带来优势。我们提出了Forecast,这是一种事后检测技术,可使事件响应者自动预测恶意软件的执行能力。预测基于概率模型,该模型允许预测发现能力,并根据其相对执行可能性(即预测)对每个能力进行权衡 Forecast利用当前攻击的执行上下文(来自恶意软件的内存映像)来指导恶意软件代码的符号分析。我们进行了广泛的评估,有6727个真实世界的恶意软件和旨在颠覆预测的未来主义攻击,显示了预测恶意软件能力的准确性和鲁棒性。

Forecast is based on a probabilistic model that allows Forecast to discover capabilities and also weigh each capability according to its relative likelihood of execution

一、说明

网络攻击响应需要对抗阶段性恶意软件功能(即尚未执行的恶意功能),以防止进一步的损害[1]、[2]。不幸的是,检测后预测恶意软件功能仍然是手动的、繁琐的和容易出错的。目前,分析师必须重复执行多个分类步骤。例如,分析员通常会将二进制文件加载到静态反汇编程序中,并执行内存取证,以组合静态和动态工件。这一艰苦的过程需要在二进制分析和取证工具之间进行上下文切换。因此,它给分析员带来了很高的认知负荷,减慢了调查速度,给攻击者带来了优势。

为了自动化事件响应,符号执行很有可能用于恶意软件代码探测,但缺少先前的攻击执行状态,而这种状态在事后可能无法重新实现(例如,来自C&C活动的具体输入)。特定于环境的条件(如预期的C&C命令)限制了动态和协同技术(如[3]–[14])预测无法访问的能力。此外,这些技术依赖于剖析独立恶意软件二进制文件或在沙箱中运行它。然而,已知恶意软件会删除其二进制文件或将自身锁定为仅在受感染的计算机上运行(硬件锁定)。更糟糕的是,研究人员发现,无文件恶意软件事件(即,仅驻留在内存中)继续增加[1]、[15]、[16]

有权访问正确的执行上下文对于引导恶意软件显示其功能是必要的。恶意软件在内部收集来自特定环境源的输入,例如注册表、网络和环境变量,以便做出行为决策【11】、【17】、【18】。因此,恶意软件的理想和实用输入公式可以根据内存中的该内部执行状态进行调整,其中包含已收集的输入工件。事实证明,在检测到恶意进程后,反病毒和IDS已经收集了该进程的内存映像。恶意软件内存映像包含被调查的特定攻击实例特有的这种内部具体执行状态。

在我们的研究过程中,我们注意到,如果我们可以在内存图像中设置代码和数据页的动画,并根据捕获的快照执行向前的代码探索,那么我们就可以重用这些早期的具体执行数据来推断恶意软件的下一步。此外,通过分析这些具体输入如何在代码探索期间诱导路径,我们可以根据恶意软件捕获的执行状态预测哪些路径更有可能执行功能。基于这一思想, 我们提出用通过内存图像取证获得的具体执行状态对恶意软件的预阶段路径进行符号探索。通过这一点,我们克服了分析员之前必须进行的艰苦而繁重的认知过程。

我们介绍了Forecast,这是一种后检测技术,使事件响应者能够从捕获的内存图像中预测可能的功能。Forecast根据发现的每个功能的执行概率(即预测)对其进行排序,以使分析师能够确定其修复工作流的优先级。为了计算这种概率,Forecast会衡量每条路径对具体数据的相对使用情况。这种方法基于内存映像执行状态的具体程度(或DC)的形式化模型。Forecast从内存映像中的最后一个指令指针(IP)值开始,通过象征性地执行每条指令的CPU语义来探索每条路径。在此探索过程中,预测建模符号和具体数据的混合如何影响路径生成和选择。基于这种混合,沿路径计算每个状态的“具体性”分数,以得出每个发现能力的预测百分比。DC(s)还通过动态调整循环边界、处理符号控制流和修剪路径来优化符号分析,以减少路径爆炸。

为了自动识别每个功能,我们开发了几个模块化的功能分析插件:代码注入、文件过滤、滴管、持久性、键和屏幕监视、反分析和C&C URL连接。每个插件根据API序列、它们的参数以及它们的输入和输出约束如何连接每个API来定义一个给定的功能。Forecast插件是可移植的,可以很容易地扩展以捕获基于目标系统API的其他功能。值得注意的是,Forecast的分析只需要一个法医记忆图像,允许它对无文件恶意软件工作,使其非常适合事件响应。

我们使用涵盖274个家族的6727个真实恶意软件(包括打包和解包)的内存图像评估Forecast。与人工专家手动生成的报告相比,Forecast可提供准确的能力预测。此外,我们还表明,Forecast对旨在颠覆Forecast的未来主义攻击具有鲁棒性。我们表明,预测的检测后预测是由早期的具体输入准确诱导的。我们将预测与S2E【6】、angr【22】和Triton【23】进行了经验比较,发现预测在识别能力和减少路径爆炸方面优于它们。预测可在线访问:https://cyfi.ece.gatech.edu/.

“S2E: A platform for in-vivo multi-path analysis of software systems,” 2011

“SoK: (State of) The Art of War: Offensive Techniques in Binary Analysis,” 2016

“Triton: A Dynamic Symbolic Execution Framework” 2015

二、概述

本节介绍了结合记忆图像取证和符号分析技术的挑战和好处。以DarkHotel事件[2]为例,我们将展示事件响应者如何利用预测加快调查并补救网络攻击。

运行示例:DarkHotel APT。DarkHotel是一种APT,通过矛式网络钓鱼攻击C&C服务器【2】。感染后,DarkHotel会从受害者的文件系统中删除其二进制文件,与C&C服务器通信,将线程注入Windows资源管理器,并最终过滤侦察数据。当IDS检测到受感染主机上的异常活动时,终端主机代理会捕获可疑进程内存(即DarkHotel内存),终止其执行,并生成通知。此时,事件响应者必须从不同的可用取证来源(网络日志、事件日志、内存快照等)快速了解DarkHotel的能力,以防止进一步的损坏。

动态技术【11】–【14】可能需要一个激活的C&C以诱使恶意软件二进制文件显示其功能,然而该C&C可能已被取下。由于DarkHotel只驻留在内存中,这些通过在沙盒中运行恶意软件而起作用的技术无法应用。

  • 只有内存图像,分析员可以使用取证工具,如Volatility【24】,来“切割”内存图像代码和数据页。基于提取的代码页,符号分析可以模拟恶意软件的执行,以探索所有潜在的路径。
  • 不幸的是,现有的符号工具需要一个格式正确的二进制文件,并且没有针对内存图像进行优化[7]、[22]、[23]。

理想情况下,分析员可以手动将这些代码片段投影到符号分析中,并从数据页中获取具体值,以告诉哪一个代码分支会导致某个功能。然而,这种用提取的内存工件“缝合”代码的来回过程涉及符号执行和取证工具之间的上下文切换。这给分析员带来了很高的认知负担。分析员还必须处理路径爆炸、API调用模拟[4]、[22]、[25]–[27]和具体化API参数(例如攻击者的URL)等挑战,这些挑战可能无法在内存映像中静态访问。最后,分析师必须沿每条路径手动检查API,以推断高级功能。

2.1混合事件响应

事件响应者依靠内存取证来识别内存图像中的攻击瑕疵。然而,仅仅是基于签名的记忆取证,由于高漏报率,会遗漏重要的数据结构【21】。另一方面,符号执行可以正向探索代码,但会遇到路径爆炸等问题[22]。为了解决这些限制,Forecast通过反馈循环将符号执行和内存取证结合起来,以解决这两种技术的缺点。

上下文感知记忆取证。符号分析提供代码探索上下文,以准确识别内存取证遗漏的数据构件。例如,DarkHotel内存图像的传统法医解析遗漏了C&C URL字符串,因为它们通过自定义编码方案进行了混淆。然而,对引用这些字节作为参数的指令(如strncpy API)进行的后续符号分析允许Forecast正确识别和利用内存映像中的这些数据瑕疵。此外,有针对性的恶意软件可能会采用旨在颠覆预测的策略,使用反取证和反符号分析,这是我们在设计和评估中仔细考虑的。

内存图像取证提供了具体的输入,可以帮助符号分析执行地址具体化、控制流解析和循环边界。此外,内存取证可以识别内存中加载的库地址,从而允许Forecast执行库函数模拟。

路径概率。给定一个内存映像,目标是利用可用的具体数据来探索潜在的代码路径,并预测沿途的功能。通过分析具体内存图像数据是如何产生不同路径的,Forecast可以得出一条路径相对于其他路径达到某种能力的概率。Forecast基于建模具体和符号数据操作如何影响路径生成和选择来计算此概率。Forecast还利用此概率度量作为一种启发式方法来修剪具有最少具体数据的路径。

2.2 Incident Response with Forecast

Forecast可识别来自自动管道中恶意软件内存映像的功能。为了证明这一点,我们模拟了DarkHotel的攻击和内存捕获,其中包括使用DarkHotel的网络签名设置IDS并执行高级持久性威胁(APT)。检测完成后,IDS向终端host agent发出信号,以捕获DarkHotel进程内存。然后,我们输入该内存图像进行预测以进行分析。在459秒内, Forecast显示了DarkHotel的功能:C&C通信(即mse.vmmnat.com)、文件过滤(即主机信息)和代码注入(即注入Windows Explorer)。

image-20220624145017568

处理法医记忆图像有六个阶段,如图1所示。1 Forecast以取证方式解析内存映像,并通过将最后一个CPU和内存状态加载到符号环境中进行分析来重建先前的执行上下文。在分析内存映像时,Forecast检查加载的库,以识别导出的函数名和地址。接下来,2 Forecast继续探索可能的路径,利用内存映像中可用的具体数据来具体化路径约束。3预测模型和权重每个路径如何由具体数据归纳,并为每个生成的路径分配概率。4 Forecast然后使用此概率作为权重来调整循环边界并修剪错误路径,从而允许Forecast缩小诱导能力相关路径的范围。5 Forecast将已识别的API与功能分析插件库相匹配,以向分析师报告功能。最后,6 Forecast确定了三种能力,并从路径概率中得出了它们的预测百分比,分别为31%、15%和54%。