文献标识码:A
DOI:10.19358/j.issn.2096-5133.2022.06.001
引用格式: 申高宁,陈志翔,王辉,等. 基于挤压激励网络的恶意代码家族检测方法[J].信息技术与网络安全,2022,41(6):1-9.
0 引言
在过去几年里随着互联网的飞速发展,恶意代码数量也呈爆发式增长。2020年瑞星“云安全”系统共截获病毒样本总量1.48亿个[1],病毒感染次数为3.52亿次,病毒总体数量比2019年同期上涨43.71%,恶意代码已经成为网络安全的重要威胁之一[2]。恶意软件作者经常会重用代码用来生成具有相似特征的其他恶意变体,而这些恶意变体通常可以归类为同一个恶意软件家族。因此,识别恶意软件家族的能力变得十分重要,通过对恶意代码的分类,可以更好防范恶意代码攻击。
近年来,恶意软件检测分类出现了静态分析和动态分析。静态分析侧重于统计特征,例如API调用、操作码序列等。Wang[3]等人通过提取权限、硬件功能和接收者动作等122个特征,使用多种机器学习分类器进行训练和测试,并使用随机森林(Random Forest)分类器获得较高的分类准确率。动态分析则是使用虚拟的环境来分析恶意应用程序的行为[4]。但是这些技术大多数需要提取大量特征,检测效率不高,对特征的选择需要一些专家知识,并且有一定的主观性。
为了降低特征工程成本和领域专家知识,一些研究人员使用可视化方法来解决恶意软件家族分类问题。例如,Nataraj等人[5]提出把恶意代码二进制文件转化为灰度图,然后利用k近邻算法对恶意代码进行分类,这种方法相比于之前未转换灰度图,直接分类的方法准确率有一定提高,但是该方法用GIST提取图片特征需要耗费大量时间,导致效率不高。
随着深度学习在图像分类领域的快速发展,有学者将深度学习引入到恶意代码检测领域。Choi等人[6]把恶意代码二进制文件转化为灰度图像,运用深度学习的技术,在12 000个样本中达到了95.66%的准确率。Su等人[7]用light-weight DL技术进行恶意代码家族分类,取得94.00%的成绩,但是他们提出的网络只对两类家族进行分类,有一定的局限性。Cui等人利用卷积神经网络在图像分类的出色表现,并分别利用蝙蝠算法[8]和NSGA-Ⅱ算法[9]处理恶意代码样本数量不均的问题,该方法准确率明显高于传统机器学习方法,且算法复杂度较低。随着更深网络的提出,Rezende等人提出将VGG16网络[10]以ResNet网络[11]运用在恶意代码检测分类上,该方法准确率有所提升,但是参数量变得巨大,分类效率有待提升。
基于上述方法产生的问题,本文提出了一种基于卷积神经网络[12]的分类方法SE-CNN,实现恶意代码家族分类。首先将恶意代码的二进制文件转化成灰度图得到灰度图像数据集,然后构建SE-CNN网络模型对灰度图像数据集进行训练,最后实现对恶意代码的检测分类。该方法采用CNN对灰度图像自动提取特征,解决了特征提取慢且耗时的问题;通过结合SE模块自适应学习通道重要程度信息,并赋予特征通道权重,从而激励有用特征信息,同时抑制无用信息,提升了模型分类准确率。实验结果表明,本文方法准确率高于传统机器学习方法,且参数量相较于先进的深度学习方法更低。
本文详细内容请下载:http://www.chinaaet.com/resource/share/2000004527
作者信息:
申高宁1,2,陈志翔3,王 辉3,陈 姮1,2
(1.闽南师范大学 计算机学院,福建 漳州363000;
2.数据科学与智能应用福建省高校重点实验室,福建 漳州363000;
3.闽南师范大学 物理与信息工程学院,福建 漳州363000)