张斌,李立勋,董书琴
基于改进SOINN算法的恶意软件增量检测方法
张斌1,2,李立勋1,2,董书琴1,2
(1. 信息工程大学,河南 郑州 450001;2. 河南省信息安全重点实验室,河南 郑州 450001)
针对基于批量学习的恶意软件检测方法存在检测模型动态更新困难、运算存储开销大的问题,将改进的SOINN算法与有监督分类器有机结合,利用SOINN算法的增量学习特性赋予恶意软件检测模型动态更新能力,有效降低运算存储开销。首先对SOINN算法进行改进:在SOINN算法竞争学习周期内,根据全排列思想搜索所有样本输入次序下神经元的权重调节量,计算所有权重调节量的平均值作为神经元最终权重调节量,避免不同样本输入次序影响训练所得神经网络的稳定性,使所得神经网络更能反映原始数据本质特征,从而提高神经网络针对恶意软件检测的精度。然后采用非负矩阵分解和Z-score归一化对数据进行预处理,将恶意软件行为特征向量从高维高数量级转换至低维低数量级,在提高检测速度的同时有效降低高数量级维度对特征学习的不利影响,进一步提高检测准确性。实验结果表明,所提方法支持检测模型动态更新,对未知新样本的检测准确率显著高于传统检测方法,且运算存储开销更小。
SOINN算法;恶意软件检测;神经网络;增量学习;入侵检测
恶意软件是对怀有恶意目的或完成恶意功能软件的统称,对信息系统危害巨大[1]。提高恶意软件的检测率有助于及时采取防御措施降低和消除恶意软件危害。随着网络攻击技术的发展,恶意软件入侵方式日益复杂、攻击行为愈加隐蔽,给恶意软件检测带来严峻挑战。
目前,恶意软件检测方法目前主要包括静态分析和动态分析。静态分析方法利用反编译等技术提取恶意软件的代码特征,再利用特征匹配等方式进行检测,部署简便且检测速度快,如控制流分析[2]、信息流分析[3]、操作码分析[4]等。但随着攻击者在编码时越来越多地应用代码混淆、信息隐藏等手段,导致大量指令和函数被错误反编译,静态分析准确性有所降低。动态分析方法是指在虚拟环境中运行恶意软件实体,监控并分析其在运行过程中表现出的行为(如文件操作、网络通信等)来实施检测[5-6],对于检测采用代码混淆等技术的恶意软件更具优势,主要包含以下两类方法:一类是基于行为序列分析的方法,通过监控并分析正常行为序列与异常行为序列的差异实施检测,如基于系统调用属性序列的检测[7]、基于shell命令序列的检测[8]和基于内核数据特征序列的检测[9]等,此类方法普遍面临行为序列长度选择问题,序列长度选择过短可能增加误检率,过长又可能增加漏检率;另一类是基于行为特征学习的方法,利用特征工程构建恶意软件行为特征向量并据此训练有监督分类模型实施检测,能够避免行为序列长度选择问题且具有较高准确率[10-11],但是此类方法普遍以批量学习方式训练检测模型,存在模型更新困难和运算存储开销大的不足[12]。
自组织增量式神经网络[13](SOINN,self-organizing incremental neural network)是一种无监督聚类算法,通过对新样本的增量学习支持神经网络动态更新,而且增量学习时可自动保存已学知识避免再次学习历史样本,从而降低学习过程中的存储和运算开销。因此,本文将SOINN算法与有监督分类模型相结合,实现恶意软件检测模型的动态更新并降低运算存储开销。但是将SOINN算法引入恶意软件检测领域必须解决两个问题:一是SOINN算法对样本输入次序敏感,即同一样本集以不同次序训练SOINN可能会得出完全不同的神经网络,这将影响恶意软件检测精度;二是SOINN算法基于距离度量样本相似度并实施聚类,在处理恶意软件行为特征这种高维高数量级数据时运行速度较慢,且偏向于以高数量级维度区分样本而忽略低数量级维度对样本区分的作用,从而影响特征学习的准确性。
为解决上述问题,主要工作如下。
1) 提出WM-SOINN(SOINN with weight modification)算法,在SOINN竞争学习周期内,利用全排列思想搜索所有样本输入次序下神经元的权重调节量,计算所有权重调节量的平均值作为神经元最终权重调节量,避免个别样本输入次序影响训练所得神经网络的稳定性,使所得神经网络更能反映原始数据本质特征,从而提高将神经网络应用于后续恶意软件检测的精度。
2) 采用非负矩阵分解[14](NMF,nonnegative matrix factor)和Z-score[15]归一化方法处理训练数据,对恶意软件行为特征实施降维和数据标准化,在提高检测速度的同时降低高数量级维度对特征学习的不利影响,进一步提高WM-SOINN准确性。
3) 提出基于WM-SOINN的恶意软件增量检测方法,将具有增量更新特性的WM-SOINN与具有高准确率的有监督分类器有机结合,在保证高准确率情况下实现检测模型动态更新,并有效降低运算和存储开销。
SOINN属于在线学习的竞争型神经网络,与传统神经网络算法相比,SOINN可以学习新样本包含的特征,并有效保留已有学习成果,实现神经网络动态更新。同时,SOINN采用基于原型聚类的无监督学习思想,输出的神经网络可以反映原始数据特征,而SOINN的神经元动态调整和网络去噪机制可以保证神经网络的规模远小于原始数据,因此具有良好的数据压缩特性,用于增量学习时可以有效降低存储和运算开销。SOINN算法的主要步骤如下[13]。
否则
6) 更新获胜神经元权重。
算法最后输出神经元集合和连接关系集合。
SOINN算法以顺序学习的方式处理输入样本,而学习率是神经元获胜次数的函数而非一个定值,因此当样本以不同次序训练SOINN时,获胜神经元被增量调整的权重也不相同,进而导致同一样本集以不同次序训练SOINN得出不同结果。为降低SOINN对输入数据次序的敏感性,提出神经元权重修正方法:在每个竞争学习周期内,记忆对神经元实施过权重调整的所有样本,基于全排列思想搜索这些样本在不同输入次序下对神经元权重的调节量,计算所有权重调节量的平均值作为该竞争学习周期结束时神经元的最终权重调节量。根据以上思路,提出WM-SOINN算法如下。
Step5 判断学习周期是否结束,是则继续执行Step6,否则返回Step2。
Step6中的神经元权重修正详细方法如下。
恶意软件主要通过调用操作系统提供的应用编程接口(API,application programming interface)实现文件访问、网络通信等行为,因此可以通过记录API调用情况监控恶意软件行为。为逃避杀毒软件查杀和安全人员分析,恶意软件通常将自身的恶意行为分散到多个不同的进程实施。这些分散执行的进程主要包含两类:①恶意软件主进程创建的子进程;②恶意软件通过代码注入技术注入的受害进程(通常是系统进程和杀毒软件白名单进程,如svchost.exe和excel.exe)。同时监控主进程、子进程和被注入进程的API调用情况,更有利于发现复杂、隐蔽的恶意软件。
根据监控到的API调用情况构建恶意软件行为特征向量,流程如图1所示。
Step1 在虚拟环境中执行待监测样本,防止恶意样本对真实系统造成破坏。
Step2 利用API监控工具监控主进程、子进程和注入进程的API调用情况。
Step3 根据监控结果构建行为特征向量,其中,API(为正整数)字段取值为自然数,表示第种API的调用次数,Child和Injected字段取值为布尔类型,分别表示是否创建子进程和是否有注入进程。
图1 恶意软件行为特征向量构建流程
恶意软件种类繁多、功能各异,利用特征工程构建的恶意软件行为特征向量往往维度过高,且不同维度的取值存在数量级差异。为提高WM-SOINN对恶意软件行为特征向量的处理速度和特征学习的准确性,设计恶意软件行为特征向量预处理算法,通过数据降维提升WM-SOINN运算速度,再实施数据标准化减小训练数据不同维度的数量级差异,进而提高WM-SOINN准确性。
API调用频数具有非负性,因此恶意软件行为特征向量构成的特征空间矩阵也具有非负性,而NMF可通过矩阵分解实现降维,并且降维得到的低维矩阵仍然具有非负性,与原矩阵物理含义相符,便于理解和解释。在降维之后利用Z-score方法实施数据标准化,使矩阵各维度平均值为0、标准差为1,有效减少数据不同维度存在的数量级差异。
恶意软件行为特征向量预处理算法步骤如下。
WM-SOINN属于无监督聚类学习算法,直接用于恶意软件检测需要人为设定检测阈值,通过判断待测样本与神经元的距离是否大于检测阈值而得出结论。这种检测方法存在两点不足:一是检测阈值的设定存在很强主观性,阈值过大会增加漏检率,过小又会增加误检率;二是恶意软件与正常软件在特征空间的重合度极高,这种基于距离阈值实施检测的精度有限。
将WM-SOINN与有监督分类模型结合实施恶意软件检测,可以避免人为设定检测阈值带来的主观性,同时利用有监督学习提高检测精度。方法的基本思想是通过WM-SOINN分类别学习恶意软件与正常软件样本,将学习所得的神经元用于训练有监督分类模型实施检测,再利用检测结果对神经网络和检测模型实施增量更新。具体步骤如下。
Step1 对初始带标签样本集进行降维和标准化处理,根据正负标签划分为正常训练样本-samples与恶意训练样本-samples。
Step2 利用WM-SOINN分别学习-samples和-samples得到正常样本的神经网络-WM- SOINN和恶意样本的神经网络-WM-SOINN。
实验主要验证WM-SOINN与常用有监督分类器结合后的检测性能、算法运算效率和增量学习能力。
在Windows平台上利用Python 3.6.4进行实验,编程工具为PyCharm,CPU为Intel i5-6300HQ,内存为8 GB。实验数据集为机器学习数据仓库UCI中的“Dynamic Features of Virus Share Executables Data Set”,该数据集包含107 888个软件样本的动态行为特征,被广泛应用于恶意软件动态分析领域。数据集中的每一条样本记录均有484个特征维度,其中第一个维度表示样本的评分(0~1.0,评分越高表示样本的危害越大),其余483个维度对应样本的动态行为特征。
随机选取20 000个评分高于0.75的样本作为恶意样本,10 000个评分低于0.25的样本作为正常样本,去除非API冗余特征后再经过NMF降维和Z-score标准化,最终得到30 000个实验样本。
采用下列指标进行评价。
TP (true positive):被正确判定为恶意的恶意样本数。
FP (false positive):被错误判定为恶意的正常样本数。
TN (true negative):被正确判定为正常的正常样本数。
FN (false negative):被错误判定为正常的恶意样本数。
FPR (false positive rate):假阳性率,即被错误判定的正常样本占所有正常样本的比例。
Precision:查准率,在所有被判定为恶意的样本中真实的恶意样本所占的比例。
Accuracy:准确率,所有被准确判定的样本占样本总量的比例。
其中,Precision和Accuracy可以代表算法的准确性,值越大表明算法越准确;FPR可以代表算法的误检率,值越小代表算法造成的误判越少。
由表1可知,原始的SVM、NB和RF中准确性最高的是RF,其Precision和Accuracy超过0.99、FPR小于0.01;其次是SVM,其Precision不低于0.92、Accuracy不低于0.93、FPR不超过0.08;效果较差的是NB,其Precision和Accuracy不超过0.92、FPR超过0.08。与经典-Means算法相比,SOINN和WM-SOINN能够自动确定聚类数目,减少人为设定聚类数目导致的误差,并且检测性能普遍优于经典的-Means算法。在批量学习时,SOINN和WM-SOINN与SVM、RF结合之后只对分类器的准确性和误检率造成了极小的影响,以RF为例,其Precision不低于0.986、Accuracy不低于0.988、FPR不超过0.014。实验结果还表明,WM-SOINN与分类器结合后的Precision和Accuracy高于SOINN与分类器结合后的同类指标,而FPR也更低,证明WM-SOINN训练得出的神经网络更加稳定,输出的神经元也更能代表原始样本,神经元权重修正方法有效。
表1 算法恶意软件检测性能对比
图2 算法运行时间对比
由图2可知,对于同等规模数据集,增加了神经元权重修改操作的WM-SOINN与原始SOINN的运行时间基本相等,证明WM-SOINN不会造成更大的时间开销。此外,无论SOINN还是WM-SOINN,其运行时间均随着数据集规模的增加而近似线性增加,与时间复杂度分析结果相吻合。
下面以SOINN、WM-SOINN与RF结合为例比较算法在增量学习时的空间开销,分别选取规模为1 000、3 000、5 000、7 000、10 000的数据集进行实验,结果如图3所示。其中Sample-stored表示增量学习需要存储的样本数,也是神经网络输出神经元的数目,值越小表示需要的存储空间越少;Max-nodes表示RF中决策树的最大节点数,Max-depth表示RF中决策树的最大深度,在检测率相同的前提下,Max-nodes和Max-depth越小表示检测模型需要的存储空间越小,同时表明检测模型的泛化能力越强,可以避免出现过拟合。
从Sample-stored指标可知,如果直接利用RF进行增量学习,则单次学习完成后需要存储所有样本,而与SOINN或WM-SOINN结合之后,只需要存储神经网络学习所得的极少量神经元即可进行后续增量学习。从图3(a)可以看出,对于同一数据集,在样本分布均匀的情况下,神经网络学习所得的神经元数目是相对稳定的,并不会因数据集规模的扩大而大量增加,甚至可能减少。并且对于本实验所用数据集,当数据集规模大于104时,数据压缩比率超过0.99。由表1可知RF、WM-SOINN-RF具有同等检测性能,SOINN-RF检测性能略差,但是通过比较Max-nodes和Max-depth指标可以看出,经过SOINN或WM-SOINN压缩数据后再训练得到的RF,与利用原始数据直接训练得到的RF相比具有更小的规模,Max-nodes平均减少78.5%,Max-depth平均减少63.4%。比较SOINN-RF和WM-SOINN-RF的Sample-stored指标可以发现两者具有同等的数据压缩能力,而4.2节实验已经表明WM-SOINN- RF的检测性能更优。上述结论表明本文方法可以显著降低训练数据和检测模型的存储开销。
表2 算法增量学习性能
本文将SOINN引入恶意软件检测领域并进行改进,将改进后的WM-SOINN算法与有监督分类器结合构建恶意软件增量检测模型,在保证检测精度的同时实现检测模型的动态更新,并能显著减少运算和存储开销,为恶意软件检测提供了新的解决方法。从检测性能、运算效率和增量学习能力3个角度进行实验分析,证明了所提方法的有效性。下一步将研究WM-SOINN算法与其他分类器相结合的方法,提高算法的适应性。
[1] 刘剑, 苏璞睿, 杨珉,等. 软件与网络安全研究综述[J]. 软件学报, 2018(1): 42-68.
LIU J, SU P R, YANG M, et al. Software and cyber security—a survey[J]. Journal of Software, 2018(1): 42-68.
[2] SONG F, TOUILI T. Efficient malware detection using model-checking[C]//FM: Formal Methods. 2012: 418-433.
[3] YIN H, SONG D. Privacy-breaching behavior analysis[M]. Automatic Malware Analysis. 2013: 27-42.
[4] TODERICI A H, STAMP M. Chi-squared distance and metamorphic virus detection[J]. Journal in Computer Virology, 2013, 9(1): 1-14.
[5] EGELE M, SCHOLTE T, KIRDA E, et al. A survey on automated dynamic malware-analysis techniques and tools[J]. ACM Computing Surveys, 2008, 44(2): 1-42.
[6] 陈志锋, 李清宝, 张平, 等. 基于聚类分析的内核恶意软件特征选择[J]. 电子与信息学报, 2015, 37(12): 2821-2829.
CHEN Z F, LI Q B, ZHANG P, et al. Signature selection for kernel malware based on cluster analysis[J]. Journal of Electronics & Information Technology, 2015, 37(12): 2821-2829.
[7] 李珍, 田俊峰, 杨晓晖. 基于系统调用属性的程序行为监控[J]. 计算机研究与发展, 2012, 49(8): 1676-1684.
LI Z, TIAN J F, YANG X H. Program behavior monitoring based on system call attributes[J]. Journal of Computer Research and Development, 2012, 49(8): 1676-1684.
[8] 田新广, 段洣毅, 程学旗. 基于shell命令和多重行为模式挖掘的用户伪装攻击检测[J]. 计算机学报, 2010, 33(4): 697-705.
TIAN X G, DUAN M Y, CHENG X Q. Masquerade detection based on shell commands and multiple behavior pattern mining[J]. Chinese Journal of Computers, 2010, 33(4): 697-705.
[9] 陈志锋, 李清宝, 张平, 等. 基于数据特征的内核恶意软件检测[J].软件学报, 2016, 27(12): 3172-3191.
CHEN Z F, LI Q B, ZHANG P, et al. Data characteristics-based kernel malware detection[J]. Journal of Software, 2016, 27(12): 3172-3191.
[10] GREENGARD S. Cyber security gets smart[J]. Communications of the ACM, 2016, 59(5): 29-31
[11] SADEGHI A, BAGHERI H, GARCIA J. A taxonomy and qualitative comparison of program analysis techniques for security assessment of android software[J]. IEEE Transactions on Software Engineering, 2016.
[12] 杨雅辉, 黄海珍, 沈晴霓, 等. 基于增量式GHSOM神经网络模型的入侵检测研究[J]. 计算机学报, 2014(5): 1216-1224.
YANG Y H, HUANG H Z, SHEN Q N, et al. Research on intrusion detection based on incremental GHSOM[J]. Chinese Journal of Computers, 2014(5): 1216-1224.
[13] 邱天宇, 申富饶, 赵金熙. 自组织增量学习神经网络综述[J]. 软件学报, 2016, 27(9): 2230-2247.
QIU T Y, SHEN F R, ZHAO J X. Review of self-organizing incremental neural network[J]. Journal of Software, 2016, 27(9): 2230-2247.
[14] LEE D D, SEUNG H S. Learning the parts of objects by non-negative matrix factorization[J]. Nature, 1999, 401(6755): 788-791.
[15] WANG W, ZHANG X, GOMBAULT S, et al. Attribute normalization in network intrusion detection[C]//International Symposium on Pervasive Systems, Algorithms, and Networks. 2010: 448-453.
Malware detection approach based on improved SOINN
ZHANG Bin1,2, LI Lixun1,2, DONG Shuqin1,2
1. Information and Engineering University, Zhengzhou 450001, China; 2. Key Laboratory of Information Security of Henan Province, Zhengzhou 450001, China
To deal with the problems of dynamic update of detection model and high computation costs in malware detection model based on batch learning, a novel malware detection approach is proposed by combing SOINN and supervised classifiers, to reduce computation costs and enable the detection model to update dynamically with the assistance of SOINN′s incremental learning characteristic. Firstly, the improved SOINN was given. According to the whole alignment algorithm, search the adjusted weights of neurons under all input sequences in the learning cycle and then calculate the average value of all adjusted weights as the final result, to avoid SOINN′s stability under different input sequences and representativeness of original data, therefore improve malware detection accuracy. Then a data preprocessing algorithm was proposed based on nonnegative matrix factor and Z-score normalization to transfer the malware behavior feature vector from high dimension and high order to low dimension and low order, to speed up and avoid overfitting and further improve detection accuracy. The results of experiments show that proposed approach supports dynamic updating of detection model and has a significantly higher accuracy of detecting unknown new samples and lower computation costs than tradition methods.
SOINN algorithm, malware detection, neural network, incremental learning, intrusion detection
s: Henan Province Foundation and Frontier Technology Research Project (No. 2014302903); New Research Direction Cultivation Fund for Information Engineering University (No. 2016604703)
TP393.08
A
10.11959/j.issn.2096−109x.2019059
张斌(1969− ),男,河南南阳人,信息工程大学教授、博士生导师,主要研究方向为网络空间安全。
李立勋(1994− ),男,四川都江堰人,信息工程大学硕士生,主要研究方向为动态目标防御。
董书琴(1990− ),男,河北邢台人,信息工程大学博士生,主要研究方向为网络安全态势感知。
2019−01−08;
2019−03−20
董书琴,dongshuqin377@126.com
河南省基础与前沿技术研究计划基金资助项目(No. 2014302903);信息工程大学新兴科研方向培育基金资助项目(No. 2016604703)
论文引用格式:张斌, 李立勋, 董书琴. 基于改进SOINN算法的恶意软件增量检测方法[J]. 网络与信息安全学报, 2019, 5(6): 21-30.
ZHANG B, LI L X, DONG S Q, et al. Malware detection approach based on improved SOINN[J]. Chinese Journal of Network and Information Security, 2019, 5(6): 21-30.