Forecasting Malware Capabilities From Cyber Attack Memory Images

发现正在进行的网络攻击需要及时的恶意软件分析,目标是发现目前还没被执行的恶意功能。但是这需要重复的上下文切换,增加了分析员的负担,降低了研究效率。本文提出了Forecast,一种后探测技术,允许应急响应人员预测哪些恶意软件已准备执行。Forecast基于概率论模型,能够发现功能并根据功能执行的相对概率评估功能。利用正在执行的功能上下文(内存镜像)来引导恶意软件代码的符号执行。使用6727个恶意软件和未来要对抗Forecast的攻击进行了测试,展示了预测恶意软件功能的鲁棒性和准确性。

Motivation

网络攻击需要应对阶段性恶意软件功能来阻止更多的破坏,但是检测后预测恶意软件功能仍然是手动巨大并且易出错的任务。分析人员不得不重复进行一系列步骤,有巨大负担。

为了自动化应急响应,在代码研究中符号执行很好用,但是无法复现某些攻击状态,例如具体的C&C攻击指令。特定的环境条件,例如特定的C&C指令,限制使用动态和concolic技术预测功能。这些技术都依赖于在沙箱中执行恶意软件。恶意软件还会删除自身、锁定自己,甚至有无文件恶意软件。

给恶意软件正确的执行环境是必要的,收集环境信息后,恶意软件会决定下一步做什么。反病毒软件和IDS也会在检测到恶意软件后进行内存镜像。恶意软件内存镜像包含内部执行状态和特定的攻击实例。

如果可以让代码和数据页动起来,就能进行前向代码探索,然后重用执行数据推断恶意软件下一步的动作。通过分析这些具体的输入路径,就可以预测哪些路径更可能执行。

Methodology

本文提出了FORECAST,一种探测后技术,允许应急响应人员取证哪个功能会执行。根据功能执行的可能性排名,方便分析人员设定补救流程。

计算概率的方法如下

  1. 评估每一条路径的相对数据使用量。基于形式化模型:内存镜像执行状态的degree of concreteness(DCs)。

  2. 从内存镜像中最后的指针寄存器IP值开始,通过符号执行探索每一个路径的CPU语义

  3. 探索中FORECAST会对模拟符号和具体输入如何影响路径生成和选择进行建模

  4. 基于这种混合,一个具体度的分数会给到一个带有状态的路径上,得出已发现能力的预测百分比

  5. DCs也通过动态适应循环优化了符号执行,处理符号执行控制流,和剪枝从而减少路径爆炸。

为了自动化识别每一个功能,还开发了一系列模块化的功能分析插件:代码注入,文件泄漏,Dropper,持久化,案件&屏幕间谍,反分析,C&C URL连接。每个插件定义了对应功能的API序列和参数,输入和输出如何约束。FORECAST只需要分析内存镜像,所以对于无文件恶意软件也有用。

结果

使用6727个恶意软件镜像分析,这些恶意软件来自于274个家族。和人类专家手动分析相比可以产生精确的功能分析。另外对于对抗FORECAST的未来攻击是鲁棒的。检测后预测是由早期输入准确引导的。和已有的符号执行引擎相比,可以更好地减少路径爆炸。

https://cyfi.ece.gatech.edu/