恶意软件的操作码可视化方法研究

2021-09-26 10:43任卓君卢文科
计算机工程与应用 2021年18期
关键词:重排可视化卷积

任卓君,陈 光,卢文科

东华大学 信息科学与技术学院,上海201620

从广义上说,恶意软件是任何有害于用户、计算机或网络的可执行程序,包括病毒、木马、后门、蠕虫、Rootkits、勒索软件、间谍程序等。为了实现恶意软件分析,需要一个高效且准确的检测机制以免误报查杀了合法的正常文件。经典的处理方法是提取能代表该样本静态特征的二进制签名,或者是在运行时动态跟踪由应用程序执行的函数。然而,这些方法完全是由人工操作来实现,且签名特征的构建是一个非常耗时且容易出错的过程。相反地,恶意攻击者借助病毒编写引擎批量地生产恶意代码。面对数以亿计的待测可疑样本而不得不手工逐一分析的事实,使得恶意代码分析工作不仅十分的繁琐,而且对安全研究人员的业务水平和专业知识有着很高的要求。更严重的是,随着网络攻击技术(如混淆技术、反跟踪调试技术等)的迅速进步,使得原本攻击能力弱化的传统恶意代码(如病毒、蠕虫等)通过多态、变形等手段,进化出更具威胁的变种,屡屡逃脱安全防御扫描,暴露了现有检测手段的局限性。Lee等人[1]通过研究发现使用可视化技术可以加速恶意代码的检测进程。大量的数据、复杂的分析要求、及时地反馈专家推理,这些客观需求使得这一研究领域非常需要可视化分析技术。

恶意代码可视化可以通过交互界面进行科学的推理,极大地补充人类的认知,近年来,这一领域涌现出很多有意义的研究成果。例如Zhuo等人[2]研发的MalwareVis系统重点研究恶意样本的网络行为。Trinius等人[3]设计的线图分析系统直观地呈现了待测恶意样本所执行的系统调用。Gove等人[4]实现的视觉分析系统以交互的方式探索大型的恶意属性集。Nataraj等人[5]从灰度图像上提取各种纹理特征用于分类。Yoo[6]采用自组织映射的方法来呈现文件中受感染的区域。Ren等人[7-9]设计了一系列基于字节和熵的可视化映射。另外,还有一些研究使用可视化技术来表达分层聚类[10],如Anderson等人[11]绘制热图来反映恶意样本对内核的使用情况。

为了有效地分类恶意代码,本文提出了基于操作码频率的恶意代码可视化分析方法。该方法将恶意代码分析转化为图像间的比较,使用VGG16[12]卷积网络和支持向量机分类器构成的深度融合网络来学习恶意代码生成的图像并分类。

1 方法描述

不受混淆技术干扰的情况下,逆向反汇编能够提供恶意代码较全面的信息。汇编源程序文件中包含了丰富的信息,其中CPU指令反映了恶意样本的核心功能,因此本文着重研究恶意代码的操作码特征。相关的研究工作有,Billar等人[13]分别统计了正常文件和恶意软件中操作码的分布情况后发现罕见的操作码可以作为恶意代码检测的指示器。Santos等人[14]提出了基于操作码N-gram模型的恶意代码检测方法。该方法通过挖掘各操作码间的相关性来给不同的操作码赋予权重,以此计算文件间的相似度。Feher等人[15-16]基于操作码词频使用随机森林分类器分析了3万个样本,取得了96%的正确率。Sekar等人[17]通过研究执行系统调用的异常操作码序列来构建入侵检测模型。

在可视化分析方面,Han等人[18]提出了图像矩阵的方法,该方法将恶意代码静态分析得到的操作码序列转换成图像矩阵上的RGB像素点,通过比较图像矩阵之间的相似度来识别恶意代码。由于该方法只分析了三类恶意代码族的9个样本,因此在应用上缺乏普适性。此外,该方法使用SimHash和djb2函数获得像素点的坐标值和颜色值,鉴于哈希值的唯一性,只有完全相同的操作码序列才能以相同的颜色出现在图像矩阵的同一位置,而实现相同恶意功能的基本块并不一定由完全相同的操作码序列构成,这会导致实现相似功能的同族恶意代码所生成的图像矩阵在视觉表现上并不一定相似。

为了解决上述问题,本文以同族的操作码频率相近、而异族的操作码频率差别较大为前提,设计了基于操作码频率的恶意代码可视化分析方法。该方法以空间填充曲线遍历RGB颜色空间的顺序重排样本中的操作码,令同一操作码以相同颜色聚集,形成反映操作码频率的可视化表征。如图1所示,该方法由以下三个步骤来实现:(1)操作码的字符提取、采样与转换;(2)像素标记;(3)空间映射重排。

图1 所提方法的实现流程Fig.1 Implement process of proposed method

(1)操作码的字符提取、采样与转换。首先从反汇编的恶意样本中提取操作码字符序列;再以缩放采样的方式将其固定为65 536长度的新操作码序列;之后按首字母顺序,将操作码字符转换成[0,253]之间的整数。

(2)像素标记。按图2设计的色谱标记微软样本集中出现数量最多的前15种操作码,其余操作码则用其对应的整数值C来标记灰度,即颜色向量为(C,C,C)。

图2 出现数量排名前15位的操作码对应的色谱Fig.2 Corresponding chromatogram of the top 15 opcodes

(3)空间映射重排。分别使用Gray曲线、Hilbert曲线、Sweep曲线和Zigzag曲线(见图3)遍历RGB空间(RGB颜色的数量为2563个),所得关于颜色的排序是不同的。因此,按这4种RGB颜色顺序重新排列上一步骤的像素序列,使得相同的操作码在图像中集中在一起,形成关于操作码频率的可视化结果。需要解释的是,遍历RGB颜色空间需用12阶曲线(因为412=2563);而65 536定长像素序列则使用8阶曲线填充构图(因为48=65 536=2562)。

图3 四种空间填充曲线Fig.3 Four types of space filling curves

2 实验结果分析

本文采用微软公开的恶意样本集来验证所提的方法。(BIG 2015|Kaggle)的训练集包括了10 868个来自9种恶意代码族的样本,每个恶意样本都有一个唯一识别的ID(一个20字符的哈希值)。从图4统计的各族样本数量上可以看出,该数据集的分布很不均匀。需要说明的是,该样本集中有些恶意样本不能由反汇编工具解析,因此无法提取到任何指令信息,故将其剔除(剔除数量见图4)。

图4 恶意样本集的构成Fig.4 Composition of malware samples

2.1 可视化结果的视觉分析

将所提方法应用于微软恶意样本集,可视化结果见图5、6。图5给出了以12阶Gray曲线遍历RGB颜色空间的顺序重排像素位置后,再按8阶Gray曲线填充256×256分辨率图像的结果。该结果能明显地反映出同族样本相似而异族样本不同,说明该方法具有较好的视觉区分度。为节省篇幅,图6只展示了第8类示例样本对应的各种映射重排图。图7给出了图像矩阵方法的可视化结果。

图5 使用Gray曲线映射重排的图像示例Fig.5 Results of Gray mapping rearrangement

图6 样本0aVNj3qFgEZI6Akf4Kuv的四种映射重排结果Fig.6 Four mappings rearrangement results of sample 0aVNj3qFgEZI6Akf4Kuv

图7 样本0aVNj3qFgEZI6Akf4Kuv的图像矩阵Fig.7 Image matrice of sample 0aVNj3qFgEZI6Akf4Kuv

分析图5~7可知本文所提方法以醒目的颜色标记不仅能让分析人员直观地了解样本中存在哪些常规的操作码,还能对少数罕见的操作码进行定位;而图像矩阵方法,即使采用交互技术放大图像,也无法从像素点的颜色上判断出被映射的基本块属性。因此,本文所提方法在视觉分析上的优势更显著。

2.2 分类性能比较

需要说明的是,将图像矩阵方法应用于微软样本集并计算各恶意样本族的类内相似度均为0,而人为观察图像显示并非完全不相似。这一矛盾说明基于向量角距离的相似度算法[19]并不适用于大规模的图像分类,故本文仅对图像矩阵本身具备的可分性进行比较。

(1)不同的图像特征对分类结果的影响

为了评估不同的图像特征对分类结果的影响,本项实验以L2范式分别对Gist特征[20]和卷积神经网络(ResNet50[21]、VGG16、VGG19)学习到的特征使用最近邻决策算法分类,结果见表1。需要说明的是,本文要解决的恶意代码分类任务不同于各深度卷积网络最初的ImageNet分类应用,因此本项实验只迁移基本的网络结构和部分权重,去除卷积网络原先的全连接层和softmax分类器。

表1 不同图像特征对分类的影响Table 1 Influence of different image features on classification

由表1可知,本文所提方法在各项比较中均优于其他方法,尤其以Sweep映射重排图的整体分类效果最好,当使用VGG16网络时获得最佳的分类正确率为97.96%。

(2)不同的深度融合网络对分类性能的影响

为了比较不同的卷积神经网络对所提方法分类性能的影响,本项实验使用卷积网络叠加支持向量分类算法(SVC)[22]的深度融合网络进行验证,结果如表2所示,使用VGG系列网络学习特征可以比残差网络ResNet50获得更优的分类结果,尤其是VGG16网络取得最高98.50%的分类正确率(由Zigzag重排映射获得)。通过分析可视化结果中不同的空间排序及其分类效果可知:在使用相同VGG网络结构的前提下,非递归的空间填充曲线映射与递归的空间填充曲线映射相比,其提供的特征更利于分类决策。

表2 不同深度融合网络对分类的影响Table 2 Influence of different deep fusion networks on classification

本文还将Inception V3[23]、Xception[24]深度卷积网络应用于分类效果最优的Zigzag映射重排图,结果分别是95.05%和95.21%,该结果明了Xception网络稍微优于Inception V3,但并不适合恶意代码分类。

3 结束语

本文提出了基于操作码频率的恶意代码可视化分析方法,主要贡献体现在以下三个方面:(1)在视觉表现方面,所提方法在安全分析人员与恶意样本之间建立了直接的视觉通信,降低了人工分析的难度,并能从视觉效果上有效地区分各类恶意代码族。(2)在恶意代码分类方面,所提方法充分地利用了卷积神经网络在图像分类上取得的有益成果,其分类正确率优于其他方法。(3)在分析效率方面,所提方法能以自动执行的方式实现,极大地提高了工作效率。

猜你喜欢
重排可视化卷积
基于CiteSpace的足三里穴研究可视化分析
基于Power BI的油田注水运行动态分析与可视化展示
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于CGAL和OpenGL的海底地形三维可视化
环己酮肟重排反应酸肟比联锁方案评析
重排滤波器的实现结构*
“融评”:党媒评论的可视化创新
从滤波器理解卷积
EGFR突变和EML4-ALK重排双阳性非小细胞肺癌研究进展
基于傅里叶域卷积表示的目标跟踪算法