基于N-grams和灰度图特征融合的恶意代码检测方法

2022-05-10 05:25杨宇夏孙皓月高燚
电脑知识与技术 2022年9期
关键词:特征融合机器学习

杨宇夏 孙皓月 高燚

摘要:把恶意代码转成灰度图,再用深度神经网络自主学习灰度图的特征给恶意代码检测提供了新的思路,但是恶意代码图像化方案就是无差别地把恶意代碼转换后的灰度图进行识别,该方法存在样本大小不一且由于采用裁剪而丢失恶意代码的信息和提取特征单一抗混淆能力不足等缺点,本文采用N-grams和灰度图特征融合的方法检测恶意代码,解决了不同恶意代码样本大小不一的问题,而且从文本和灰度图这两个不同的维度提取恶意代码的特征,提高了恶意代码检测的抗混淆能力,再使用k最近邻、随机森林、朴素贝叶斯和SVM算法检测该方法,实验结果表明融合特征比单特征的准确率高,且随机森林的准确率达到98.71%。

关键词:恶意代码;机器学习;特征融合;灰度共生矩阵;局部二值化

中图分类号:TP399        文献标识码:A

文章编号:1009-3044(2022)09-0080-03

1  引言

1.1背景

受新型冠状病毒的影响,原本的生活、生产方法被彻底打乱。为了控制疫情恢复生产,大量的新型互联网服务和高新产品闪亮登场,这进一步推进社会的数字化转型,但是各类安全事件穷出不尽,境外著名的APT攻击组织“白象”“海莲花”“毒云藤”以“新冠病毒”等热点话题向我国重要的相关政府部门、高等研究机构投放钓鱼邮件,诱导相关人员访问虚假高仿的网页网站,从而实现盗取个人账号和密码,非法收集个人信息以及窃取国家机关的机密。Silent Librarian APT黑客组织通过伪装的COVID-19调查邮件,对全球范围内的大学进行钓鱼攻击活动。

从2020年中国互联网网络安全报告中可了解到,国家信息安全漏洞共享平台(以下简称“CNVD”)全年捕获恶意程序样本涉及恶意程序家族近34.8万个而且数量超过4,200万个,482万余次的日均传播次数更是令人惊叹。

而在移动互联网恶意程序数量方面,由厂商交换和自主新增捕获大约302.8万个,同比增长8.5%,如图1所示。就恶意程序的恶意行为来统计,可以发现流氓行为类、资费消耗类和信息窃取类分别为前三名,这三类的行为的恶意代码总和超过了80%,占所有恶意程序的恶意行为的绝大多数,如图2所示。

1.2研究意义

恶意代码的数量和种类每年都在大幅度上涨,而且变种病毒更是五花八门,使个人用户、企业防不胜防。破坏程度和影响范围都越来越大。由于个人用户在上网时自身的安全意识不足而不可避免会感染恶意病毒,这些病毒会非法收集用户的个人信息甚至窃取用户的个人账号和密码,使用户利益受损;恶意代码会对感染病毒的企业的重要数据库进行脱库,盗取企业数据库中客户个人信息,会对公司的运营产生重大影响,使客户对企业的可信度和满意度降低;而现代战争中,恶意病毒的攻击首当其冲,是战争的重要部分,使得网络空间安全成为国家战略地位。因此对恶意代码检测技术的研究已经深入的分析恶意代码的原理已经迫在眉睫,刻不容缓。

2  研究现状

文献[1]提出了一种新的恶意代码预处理方法,利用图像处理技术进行恶意代码可视化,使得基于图像特征的恶意代码检测方法得到进一步发展,在预处理阶段把恶意代码可视化为灰度图,然后用神经网络进行灰度图的检测,从而达到分类的目的。唐永旺等[2]在读取恶意代码样本的二进制数据流后,按照每8bit转化为一个无符号的整型数值,把恶意代码转换成灰度图,再用改进的卷积神经网络训练转换好的灰度图,从而达到检测恶意代码的目的。蒋晨等[3]把Android和Windows下可执行二进制文件生成相应的灰度图像后; 利用卷积神经网络(CNN)算法自动学习这些灰度图的特征,该方法在Android和Window平台下的准确率为79.6%和97.6%;Zhihua Cui等采用非支配排序遗传算法II(NSGA-II)处理恶意代码的图像的不平衡问题,然后利用卷积神经网络对恶意代码灰度图进行识别和分类。Rajesh Kumar等[4]从视觉实验室下载的包含25个不同家族的恶意代码的9458张灰度图与3000个不同类型的非恶意代码的灰度图利用卷积神经网络进行分类。

在数据预处理时先把恶意代码二进制可进行文件转换为灰度图,再使用神经网络自动学习这些灰度图的特征并加以学习训练以实现分类。该方法存在两个缺陷,第一是恶意代码文件大小不一。由于不同的恶意代码的功能、破坏力等的不同,导致其编译成二进制可执行文件的大小就不同,而直接把恶意代码二进制可执行文件转成二维的灰度图,这样的灰度图大小不一,不符合神经网络的输入条件。必须对大的灰度图进行采取截断,使所有样本大小一致,被丢弃的信息可能是该恶意代码的关键信息,这样会造成准确率不高,模型的泛化能力不足等问题。第二是提取的特征单一,抗混淆能力不足。由于已经把恶意代码转成灰度图了,其文本特征遭到破坏,因此用卷积神经网络提取不了恶意代码的文本特征。而且神经网络在分类图片时对噪声比较敏感,有研究表明,一张加入了人眼辨认不出的噪声图片就能使神经网络分类错误,故单从恶意代码灰度图提取特征不够安全,容易被黑客绕过。

3  相关理论

3.1灰度共生矩阵

灰度共生矩阵被定义为从灰度为i的像素点出发,离开某个固定位置(相隔距离为d,方位为θ)的点上灰度值的概率,即所有估计的值可以表示成一个矩阵的形式,以此被称为灰度共生矩阵。用符号[5]定义为:对任一二维灰度图,图中的任一点灰度值都可以表示为f(x,y),f(x,y)处的灰度共生矩阵为:

式(1)中x,y为图像的像元坐标,Dx,Dy为像素的偏移量,具有方向性;i,j为图像中任两像素的灰度,d为灰度共生矩阵的生成步长,θ为灰度共生矩阵的生成方向。由于灰度共生矩阵的数据量较大,一般不直接作为区分纹理的特征,而是基于它构建的一些统计量作为纹理分类特征。本文使用的灰度矩阵统计量有能量、熵、对比度、均匀性、相关性、方差、和平均、和方差、和熵、差方差、差平均、差熵、相关信息测度以及最大相关系数。

3.2局部二值化理论

原始的LBP算子定义为在3*3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经比较可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。公式[6]为:

3.3 N-grams特征提取

Jeremy提出的n-gram字节特征提取方法是将样本文件看成一个十六进制字符串,对每个连续的n个字节(n-gram)计算信息增益,并选择信息增益最大的N个 n-gram作为特征数据[7]。本文的N-grams特征提取方法概括为:把恶意代码的汇编程序里的操作码全部取出来,按照操作码在汇编程序里出现的顺序排列,每三个操作码作为一个子序列,统计这些子序列的个数作为恶意代码的特征。

4  实验结果与分析

4.1数据集

本文选取的数据集是由微软2015年举办恶意软件分类挑战赛(BIG 2015)所提供,该数据集一共有10868个恶意代码样本,在该数据集中包含两类文件,一类是.byte文件,它是没有PE头部的恶意代码的二进制可执行文件,另一类是.asm文件,它是恶意代码二进制可进行文件经过反汇编得到的文件。这个数据集里的恶意代码有九类,他们分别为:Ramnit、Lollipop、Kelihos_ver3、Vundo、Simda、Tracur、Kelihos_ver1、Obfuscator.ACY、Gatak。

4.2实验流程

本文先提取恶意代码反编译后的n-gran特征和把恶意代码可执行二进制的文件转换为灰度图后的GLCM特征和LBP特征,在把提取到这三种特征融合,使用k最近邻、随机森林、朴素貝叶斯和支持向量机进行分类,实验流程图如图3。

4.3实验结果

使用k最近邻、随机森林、朴素贝叶斯和支持向量机在单特征和三种特征融合上进行分类,实验结果表明三种特征融合比单一特征的准确率更高。

而且随机森林的准确率明显比其他三种算法的准确率高,达到98.71%。

5  结束语

把恶意代码转成灰度图,再用深度神经网络自主学习灰度图的特征给恶意代码检测提供了新的思路,但是恶意代码图像化方案就是无差别地把恶意代码转换后的灰度图进行识别,该方法存在样本大小不一且由于采用裁剪而丢失恶意代码的信息和提取特征单一抗混淆能力不足等缺点,本文采用N-grams和灰度图特征融合的方法检测恶意代码,解决了不同恶意代码样本大小不一的问题,而且从不同的维度提取恶意代码的特征,提高了抗混淆能力,用k最近邻、随机森林、朴素贝叶斯和SVM算法检测该方法,实验结果表明融合特征比单特征的准确率高,且随机森林的准确率达到98.71%,所以有更强的实用性。

参考文献:

[1] Nataraj L,Yegneswaran V,Porras P, et al. A comparative assessment of malware classification using binary texture analysis and dynamic analysis[C]//AISec'11:Proceedings of the 4th ACM workshop on Security and artificial intelligence.2011:21-30.

[2] 唐永旺,王刚,魏晗.基于改进卷积神经网络的恶意代码检测技术[J].信息工程大学学报,2019,20(2):192-196,209.

[3] 蒋晨,胡玉鹏,司凯,等.基于图像纹理和卷积神经网络的恶意文件检测方法[J].计算机应用,2018,38(10):2929-2933.

[4] Cui Z H,Du L,Wang P H,et al.Malicious code detection based on CNNs and multi-objective algorithm[J].Journal of Parallel and Distributed Computing,2019,129:50-58.

[5] 李静,杨玉倩,沈伟,等.基于灰度共生矩阵的织物纹理研究[J].现代纺织技术,2013,21(3):12-16.

[6] 陈昱辰,曾令超,张秀妹,等.基于图像LBP特征与Adaboost分类器的垃圾分拣识别方法[J].南方农机,2021,52(21):136-138,144.

[7] 张福勇.基于n-gram词频的恶意代码特征提取方法[J].网络安全技术与应用,2015(11):88-89.

【通联编辑:闻翔军】

猜你喜欢
特征融合机器学习
基于多特征融合的图像匹配算法
人体行为特征融合与行为识别的分析
基于移动端的树木叶片识别方法的研究
基于SIFT特征的港口内舰船检测方法
融合整体与局部特征的车辆型号识别方法
基于词典与机器学习的中文微博情感分析
基于网络搜索数据的平遥旅游客流量预测分析
前缀字母为特征在维吾尔语文本情感分类中的研究
基于支持向量机的金融数据分析研究
机器学习理论在高中自主学习中的应用