文/唐勇
MalGen:自动提取恶意代码躲避检测的签名
文/唐勇
唐勇
博士,副研究员,硕士生导师。在恶意代码分析与检测、二进制代码保护、DPI技术及设备研制、网络设备安全、APT检测等技术方面有15年研究经验。现任国防科技大学计算机学院网络安全研究室主任,作为负责人承担了国家自然科学基金、国家863、国防科技研究项目近十项,获得国家发明专利授权十余项,获省部级科技进步二等奖3项、三等奖2项,以第一作者在IEEE Transaction on Computers 、Elsevier Computer & Security 等期刊和会议上发表论文十余篇。
自动动态分析是用于检测恶意软件的常用方法。然而,许多恶意软件在辨认出软件分析环境后,便不再执行恶意行为,从而骗过分析环境的扫描。为了检测出这样的恶意软件,一种可行的方法是将恶意软件在多种环境(其中包括裸机环境)下运行,通过比对它在不同环境下的行为序列,来判断恶意软件是否会躲避检测。但是,在应用这样的方法后,还需要人工地去分析恶意软件为了躲避检测所采用的技术。同时,一些分析工具需要手动地去输入许多多余的信息。因此,该方法不适合批量处理大量恶意代码样本。
为此,2015年ACM CCS大会上Kirat和Vigna在论文“MalGene: Automatic Extraction of Malware Analysis Evasion Signature”中提出了一个自动提取恶意代码躲避检测签名的系统MalGene,其中躲避检测签名指的是恶意代码运行时系统调用事件和比较事件(CMP指令的执行)的集合。该系统利用数据挖掘、数据流分析技术实现自动化提取躲避检测签名。
首先,该工作采用序列比对算法实现对躲避检测代码段的定位。接下来就可以从定位得到的代码段中识别出用于实现躲避检测的系统调用和比较事件。为了过滤躲避检测代码段中无关的系统调用事件,文中对系统调用事件在没有躲避检测特性的恶意软件的调用序列组成的集合中的IDF指数(逆文本频率指数)进行了计算。系统调用事件的IDF指数越小,则说明在没有躲避检测特性的恶意软件中出现的频率越高,因此和实现躲避检测功能的关系也就越小。由此,可以根据IDF指数过滤掉部分与躲避检测无关的系统调用。
最后,作者对2810个具有躲避检测特性的恶意代码进行了签名的提取,并根据提取得到的签名计算它们之间的Jaccard相似度,进而采用层次聚类,最终得到了78种恶意代码躲避检测的方式。