基于纹理特征的恶意代码检测方法测试
2017-09-29汪应龙黄祖源刘爱莲李川
汪应龙++黄祖源++刘爱莲++李川
【摘 要】为了有效避免恶意代码给网络信息安全帶来的破坏,对恶意代码检测方法进行研究。在恶意代码可视化的理论基础上提出一种基于纹理特征的恶意代码检测方法,通过可视化算法实现对恶意代码二进制程序的可视化显示,即映射为灰度图像,再提取图像的纹理特征,并在恶意代码语料库中进行特征匹配,输出检测结果。最后利用在某公司安全部门捕获到的5种出现次数最多的恶意代码种类进行实际检测实验,实验结果表明,基于纹理特征的恶意代码检测方法实用性强,对恶意代码的分类较精确。
【关键词】恶意代码检测 可视化算法 纹理特征 特征匹配
1 引言
恶意代码是指没有作用但却会带来危险的代码,它与正常代码的主要区别在于,恶意代码是完全为了实现某种恶意功能而故意编制出来的一段计算机程序,通常融合在其它正常程序中,然后在特定的环境下被执行。恶意代码有三个主要特征:以实现某种恶意功能为目的;本身仍是计算机程序;要先被执行操作才能实现目的,造成的后果包括破坏计算机系统和网络功能,毁坏数据的保密性等。恶意代码经过近几年的快速发展,已经对我国乃至全世界的网络安全产生了严重影响,他不仅会令用户蒙受巨大的经济损失,甚至可能威胁到国家安全。静态检测和动态检测方法是当前最常采用的恶意代码检测方法,但都已经被证实在检测过程中存在有检测结果的重复性和滞后性等缺陷,且误报率和漏报率较高。虽然现在也有很多专家为了解决这些问题提出了改进方法,但实验结果显示改进效果仍然不太理想。比如Christodorescu等人针对静态检测方法中代码加壳等三种恶意代码保护技术提出恶意代码标准化算法,但该方法对其它保护技术仍无能为力[1];C Willems等人在动态检测方法中使用虚拟机作为辅助分析工具用以加强分析,但同时也增强了算法复杂度,导致检测时间更长[2]。
目前针对恶意代码的基于某种特征值的检测方法主要是依据行为特征和语义特征,这两者分别是从代码的行为角度和语义角度提取特征值[3]。2005年Christodorescu等人提取恶意代码指令中的语义特征进行特征提取检测[4],2006年Krida等人还有王蕊团队根据恶意代码映射出的行为特征进行检测[5-6],但这两种方法都由于在检测过程中抗干扰能力不足,匹配过程复杂而不能应用于实际。同时,还有学者提出利用恶意代码的其他特征进行检测识别。文献[7]中提出的恶意代码可视化的理论基础使得基于图像纹理特征的恶意代码检测方法得到进一步发展,在检测过程中将恶意代码的二进制可执行文件转化为灰度图像实现代码的可视化,然后提取图像的纹理特征,同时对用作匹配的恶意代码语料库进行同样的转换提取操作以获取各种纹理特征,最后对所有提取到的纹理特征进行匹配,这样就可以根据匹配结果完成恶意代码检测。本文将对基于纹理特征的恶意代码检测方式进行测试分析。
2 代码特征提取原理
通过可视化算法将恶意代码转换为一幅灰度图像,然后对图像的纹理特征进行提取和分析[8]。首先对提取到的图像纹理特征通过频移、滤波等信号处理方式进行信号变换,再提取出变换后仍相对稳定的特征值进行特征分析,这种基于信号处理的分析方法在最终可得到相对稳定的特征值,从而使得对纹理特征周期性和方向性的描述更准确[9]。其中,基于Gabor滤波器法的应用广泛且具有良好的提取效果,原理如下:
Gabor滤波器的应用可以看作是对处理对象进行小波变换[10],对于某一图像f(x,y),对其进行二维小波变换后得到公式(1):
(1)
其中,p和q为采样像素的位置,?x和?y为采样的空间间隔,m、l分别表示变换的尺度和方向[11]。φml(x,y)由该二维小波变换的母小波φ(x,y)变换而得,如公式(2)所示:
(2)
其中,,,
a-m、θ分别表示母小波φ(x,y)变化的尺度和方向[12]。Gabor滤波器母小波的函数表达式如公式(3)所示,即为Gabor函数:
(3)
其中,u、v为Gabor滤波器的表示频率的空间坐标轴。对Gabor函数进行频谱平移得到其频域特征,频移如公式(4)所示:
(4)
其中,W表示函数复调制频率,σx表示函数在空间域中横轴方向上的窗口半径,σy则表示纵轴方向上的窗口半径,σu和σv表示的是在频域中横纵轴方向上的窗口半径,且σu=1/2πσx,σv=1/2πσy[12-13]。
通过对Gabor函数进行适当的尺度和角度变化即可
得到Gabor小波变换滤波器组[14]。Gabor滤波器组对预处理图像的各像素点(p, q)进行滤波处理,并输出处理后的图像信息Fmlpq=|Imlpq|,这些信息值都只保留了像素的灰度信息,能更准确地映射出该图像具有的纹理特征。对于一幅图像,其纹理特征可由公式(5)计算:
(5)
其中,分母的作用是对图像进行简单的校正,增加图像的灰度内容,忽略拍摄时对比度或亮度对纹理特征造成的影响[15]。
3 算法验证试验结果分析
3.1 验证实验方法设计
基于图像纹理特征的的恶意代码检测算法是先将恶意代码转换为灰度图像,然后提取出图像纹理特征,并与匹配语料库中的代码特征值进行特征匹配,过程如图1所示。在建立索引结构时,根据文献[7]的实验结果,选择总体效率最优的B-树索引结构算法作为本实验的索引算法建立索引结构。
3.2 验证试验结果分析
验证实验中选用6种测试样本集,分别为:Hacktool、
Packed、Worm、Bagle、Eviljs、Backdoor,他们的基本信息如表1所示:
根据图1所示流程对恶意代码测试集进行检测。与此同时,对相同的测试样本集分别进行恶意代码静态检测和动态检测,最后得到三种关于准确率的检测结果,如表2所示。endprint
根据表2中的准确率对比,在这6类恶意代码中,基于圖像纹理特征的恶意代码检测法对Bagle类恶意代码的检测准确率最高,达到90.0%;检测Worm类的准确率最低,为80.4%,准确率普遍比另外两种检测方法高出大约10%。验证结果表明,基于图像纹理特征的算法对恶意代码检测的准确率较高。检测效率方面,图2为三种检测算法所消耗的检测时间对比:
由图2可知,对于不同的恶意代码种类,基于纹理特征的检测方法所用的时间各不一样,但基本都要比静态检测和动态检测所用的时间少。检测时间变化趋势与恶意代码数据集的大小变化趋势一样,即恶意代码数据集越大,检测时间就越长。
4 算法检测实验结果分析
某公司安全部门在2016年12月至2017年4月期间多次检测到公司网站遭恶意代码攻击。在这期间捕获到的所有恶意代码种类中选取出数量排在前5位的种类(A~E),分别通过基于纹理特征的检测算法进行检测,检测匹配结果如表3所示。
从表3中可以看出,恶意代码种类A与Appaple和Backdoor两类恶意代码出现匹配相似度,而与其他三种恶意代码的相似度为0。以此类推,可以从实验中看出,恶意代码A类和C类的匹配效果是最好的,只与两类代码匹配;种类B最差,与所有的五类代码都有匹配相似度。根据匹配相似度的大小可以推出A类恶意代码为Appaple,B类恶意代码为Looper,C类恶意代码为Backdoor,D类恶意代码为Swizzor,E类恶意代码为Bancos,但是该结果也同时说明了某几类恶意代码的纹理特征存在一定的相似度,会导致匹配结果有一定的误差。
5 结论
提出一种基于映射图像纹理特征的恶意代码检测算法,并进行了验证实验,结果表明该算法相比于静态和动态检测方法,在检测准确率和检测效率方面有明显的改进,但依然还有较大的提升空间。下一步而恶意代码检测算法的改进方向主要如下:
(1)在实验过程中所采用的恶意代码语料库容量可能偏小,恶意代码样本不足。计划综合venus-2M恶意代码语料库、Symantec恶意代码语料库等主流的语料库,将云电恶意代码语料库扩容。
(2)实验时是直接采用的他人之前验证有效的索引算法,但在之后的算法改进中将计划自主寻求效率更优的索引算法,对采用加壳加密等恶意代码生存技术的代码纹理特征进行更好地分析和处理。
参考文献:
[1] M Christodorescu, J Kinder, S Jha, et al. Malware Normalization[D]. Madison: University of Wisconsin, 2005.
[2] C Willems, T Holz, F Freiling. Toward Automated Dynamic Malware Analysis Using CW Sandbox[J]. IEEE Security and Privacy, 2007,5(2): 32-39.
[3] 韩晓光,曲武,姚宣霞,等. 基于纹理指纹的恶意代码变种检测方法研究[J]. 通信学报, 2014,35(8): 125-136.
[4] M Christodorescu, S Jha, S A Seshia, et al. Semantics-Aware Malware Detection[C]//The 2005 IEEE Symposium on Security and Privacy. California, USA, 2005: 32-46.
[5] E Kirda, C Kruegel, G Banks, et al. Behavior-based spyware detection[C]//Conference on 15th Usenix Security Symposium. Canada, 2006: 273-288.
[6] 王蕊,冯登国,杨轶,等. 基于语义的恶意代码行为特征提取及检测方法[J]. 软件学报, 2012,23(2): 378-393.
[7] 王博. 基于行为分析的恶意代码分类与可视化[D]. 北京: 北京交通大学, 2015.
[8] L Nataraj, S Karthikeyan, G Jacob, et al. Malware images visualization and automation classification[J]. International Symposium on Visualization for Cyber Security, 2011,56(56): 1-7.
[9] A K Jain, F Farrokhnia. Unsupervised texture segmentation using Gabor filters[C]//IEEE International Conference on Systems. 1990: 14-19.
[10] 蒲鑫. 基于Gabor滤波器的掌纹纹理特征的提取[J]. 科技创新导报, 2011(3): 24-25.
[11] 李钰,孟祥萍. 基于Gabor滤波器的图像纹理特征提取[J]. 长春工业大学学报: 自然科学版, 2008,29(1): 78-81.
[12] 赵英男,杨静宇. 基于Gabor 滤波器的特征抽取技术[J].吉首大学学报: 自然科学版, 2006,27(5): 59-62.
[13] 许宗敬,胡平. 显微图像纹理特征提取方法综述[J]. 微计算机应用, 2009,30(6): 6-13.
[14] M R Turner. Texture discrimination by Gabor functions [J]. Biological Cybernetics, 1986,55(2-3): 71.
[15] 韩晓光. 恶意代码检测关键技术研究[D]. 北京: 北京科技大学, 2015.★endprint