自动动态分析是用于检测恶意软件的常用方法。然而,许多恶意软件在辨认出软件分析环境后,便不再执行恶意行为,从而骗过分析环境的扫描。为了检测出这样的恶意软件,一种可行的方法是将恶意软件在多种环境(其中包括裸机环境)下运行,通过比对它在不同环境下的行为序列,来判断恶意软件是否会躲避检测。但是,在应用这样的方法后,还需要人工地去分析恶意软件为了躲避检测所采用的技术。同时,一些分析工具需要手动地去输入许多多余的信息。因此,该方法不适合批量处理大量恶意代码样本。
为此,2015年ACM CCS大会上Kirat和Vigna在论文“MalGene:Automatic Extraction of Malware AnalysisEvasion Signature”中提出了一个自动提取恶意代码躲避检测签名的系统MalGene,其中躲避检测签名指的是恶意代码运行时系统调用事件和比较事件(CMP指令的执行)的集合。该系统利用数据挖掘、数据流分析技术实现自动化提取躲避检测签名。
首先,该工作采用序列比对算法实现对躲避检测代码段的定位。接下来就可以从定位得到的代码段中识别出用于实现躲避检测的系统调用和比较事件。为了过滤躲避检测代码段中无关的系统调用事件,文中对系统调用事件在没有躲避检测特性的恶意软件的调用序列组成的集合中的IDF指数(逆文本频率指数)进行了计算。系统调用事件的IDF指数越小,则说明在没有躲避检测特性的恶意软件中出现的频率越高,因此和实现躲避检测功能的关系也就越小。由此,可以根据IDF指数过滤掉部分与躲避检测无关的系统调用。
最后,作者对2810个具有躲避检测特性的恶意代码进行了签名的提取,并根据提取得到的签名计算它们之间的Jaccard相似度,进而采用层次聚类,最终得到了78种恶意代码躲避检测的方式。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。