摘要:
词向量和循环神经网络(Recurrent Neural Network,RNN)能够识别语义和时序信息,在自然语言识别方面中取得了巨大成功.同时,代码运行时产生的API调用序列也反映了代码的真实意图,因此我们将之应用于恶意代码识别中,期望在取得较高正确率的同时减少人工提取和分析代码特征工作.然而仍然存在三个问题:1)不少恶意代码故意通过随机混合调用敏感API和非敏感API破坏正常的上下文,对这两种API同等对待可能产生漏报;2)为尽可能全面收集代码行为,代码运行期间产生的API序列长度较长,这将导致RNN学习时间过长;3)经典RNN常用的softmax分类函数泛化能力不强,准确率有待提高.为了解决上述问题,本文提出了一种基于分片RNN(Sliced Recurrent Neural Network,SRNN)的敏感高效的恶意代码行为检测架构SEMBeF.在SEMBeF中,我们提出了一种安全敏感API权重增强的敏感词向量算法,使得代码表示结果既包含上下文信息又包含安全敏感权重信息;我们还提出了一种SGRU-SVM网络结构,通过并行计算大幅降低了因代码API调用序列过长引起的训练时间过长的问题,提高了检测正确率;最后针对样本平衡和网络模型超参数选择问题进行了优化,进一步提高了检测正确率.本文还实现了SEMBeF验证系统,实验表明,与其他基于经典词向量和RNN的深度学习方法以及常用的机器学习方法相比,SEMBeF不仅检测正确率最高,训练效率也得到了显著提升.其中,检测正确率和训练时间分别为99.40%和210分钟,与传统RNN相比,正确率提高了0.48%,训练时间下降了96.6%.