1.小序
我们在前文中重点先容了基于图像分类的恶意代码同源剖析要领,,,,,该要领实质上是凭证恶意代码字节约内容的特征举行分类。。。。。。。然而,,,,,这种要领从逆向工程的角度来看不具有可诠释性。。。。。。。
众所周知,,,,,汇编代码具有较为鲜明的语法可读性。。。。。。。若是先把恶意代码举行反汇编,,,,,然后用自然语言处置惩罚(Natural Language Processing)手艺提取代码语义特征,,,,,再举行同源剖析,,,,,这样的要领就容易诠释,,,,,这就是本文将先容的基于代码语义的同源剖析要领。。。。。。。目今,,,,,这种要领不但被用于恶意代码检测领域,,,,,还被用在代码克隆搜索、代码侵权判断等领域。。。。。。。
本文首先先容了基于代码语义同源剖析的基础知识;;;;;;;其次先容了基于代码语义的同源剖析相关事情;;;;;;;最后,,,,,给出了基于代码语义的同源剖析手艺计划设计,,,,,并通过实验验证了计划的有用性。。。。。。。
2.基础知识
基于代码语义的恶意代码同源剖析的基础是语义提取。。。。。。。PV-DM和TextCNN是NLP领域有关代码语义提取的两种常见的模子, 说明如下:
(1)句向量的漫衍式影象模子(Distributed Memory Model of Paragraph Vectors,,,,,PV-DM)
在PV-DM模子中,,,,,词向量和句向量相拼接,,,,,用来展望文本中的下一个词,,,,,通过在句子上的窗口滑动,,,,,使句向量影象句子中所有词的上下文关系。。。。。。。在代码语义提取中使用PV-DM模子,,,,,能简朴有用地解决向量长度纷歧致问题(图1).

图1 PV-DM模子
(2)TextCNN模子
TextCNN通过拼接词向量将文本转化成矩阵,,,,,然后应用卷积神经网络施展深度学习的优势。。。。。。。相比于一样平常的卷积神经网络模子,,,,,TextCNN在卷积层中应用多个差别尺寸的卷积核(图2)。。。。。。。TextCNN具有网络结构简朴、逊з度快并且效果较好等优点。。。。。。。可是,,,,,在嵌入层中接纳预训练的词向量模子(如Word2Vec)举行语义提取,,,,,因而会有长度纷歧致的问题。。。。。。。

图2 TextCNN模子
3.相关事情
Zhang等[2]围绕勒索软件的家族分类问题,,,,,提出一种特征提取要领,,,,,该要领将样本指令序列转换为差别n值时的n-gram荟萃,,,,,盘算每个n-gram的TF-IDF(term frequency–inverse document frequency)并选择家族中TF-IDF值较高的t个n-gram作为特征。。。。。。。然而,,,,,n-gram特征仅仅反应序列化特征,,,,,不可提取代码文本的语义信息。。。。。。。
陈等提出一种基于代码语义的恶意代码同源判断要领[3],,,,,使用Word2Vec获取指令的词向量,,,,,并使用TextCNN举行分类。。。。。。。Fang等人则接纳了FastText模子提取JavaScript代码的词向量[4],,,,,FastText将多个单词及其n-gram作为输入,,,,,直接输出模子判断的种别。。。。。。。
Ding等提出一种汇编代码的语义模子-Asm2Vec[5],用于提取指令代码的语义信息。。。。。。。该要领基于句向量的漫衍式影象模子PV-DM设计,,,,,并思量了汇编代码名堂的顺应性问题。。。。。。。由于控制流程图能在一定水平上反应代码的动态顺序信息,,,,,一些研究事情先构建代码的控制流程图,,,,,再使用图匹配、图神经网络(Graph Neural Network,,,,,GNN)等手艺评估代码相似性。。。。。。。GNN虽然性能比古板的图匹配更好,,,,,但在语义学习上仍有缺乏。。。。。。。为此,,,,,Yu等提出一种同时捕获代码的语义、结构以及顺序的要领[6],,,,,使用Bert模子举行展望训练以获取语义信息,,,,,使用新闻转达神经网络(Message Passing NeuralNetwork,,,,,MPNN)获取结构信息,,,,,使用Resnet模子提取顺序信息。。。。。。。
4.计划设计
基于代码语义的同源剖析计划主要由语义特征提取和同源分类训练两大部分组成。。。。。。。详细处置惩罚流程上,,,,,主要包括了如下办法(图3)
第一步:数据准备。。。。。。。网络样本并标注种别,,,,,构建训练数据集;;;;;;;
第二步:反汇编。。。。。。。对可移植可执行的恶意代码文件举行反汇编,,,,,获得汇编代码;;;;;;;
第三步:预处置惩罚。。。。。。。使用NLP手艺对汇编举行分词、要害词筛选等预处置惩罚;;;;;;;
第四步:语义提取。。。。。。。构建语义模子,,,,,使用训练数据举行训练,,,,,并提取出每个样本的语义特征。。。。。。。本文使用了PV-DM以及TextCNN中的Word2Vec作为语义提取模子。。。。。。。
第五步:同源分类。。。。。。。凭证语义特征,,,,,接纳相似性怀抱或聚类/分类算法剖析同源性。。。。。。。本文使用了DNN、KMeans聚类、CNN等手艺。。。。。。。

图3 基于代码语义的同源剖析流程
5.实验剖析
本节通过实验验证两种基于代码语义模子的同源剖析要领。。。。。。。实验所用样原泉源于网络,,,,,包括Application、Backdoor、Generic、Trojan、Variant、Virus及Worm等种别(表1)。。。。。。。

表1. 实验数据集
实验一:基于PV-DM模子的同源剖析
图4为PV-DM语义模子的训练历程。。。。。。。提取出256维的语义向量,,,,,应用神经网络举行分类,,,,,凭证比例4:1划分训练集和测试集,,,,,总体准确率为0.74。。。。。。。另外,,,,,对提取的语义特征接纳KMeans算法举行了聚类,,,,,测试准确率同样是0.74。。。。。。。

图4 基于 PV-DM的DNN模子训练及测试

图5 基于PV-DM的KMeans聚类(Accuracy=0.74)
实验二:基于TextCNN的同源剖析
图6为样本中指令数目的统计,,,,,平均指令数目为28,,,,,最小为1(195个样本),,,,,最大为74(1个样本)。。。。。。。构建TextCNN模子,,,,,设置差别巨细的一维卷积核,,,,,将特征图最大池化并拼接,,,,,将数据集凭证比例4:1划分为训练集和验证集,,,,,如图7所示,,,,,测试准确率为0.65左右。。。。。。。

图6 指令数目统计

图7 TextCNN训练及测试
6.总结
本文通过实验证实晰基于代码语义的恶意代码同源剖析要领具备一定的可行性。。。。。。。然而,,,,,PV-DM、TextCNN要领直接应用于提取汇编代码语义时,,,,,完全将汇编代码类比成纯文本,,,,,语义提取的准确性略低。。。。。。。文献[5]是针对汇编代码而设计的语义提取要领,,,,,能够越发准确地提取语义信息,,,,,后续将围绕此要领作进一步研究。。。。。。。
参考文献
[1]智能清静研究组 人工智能清静|AI清静应用|基于图像分类的同源剖析. 2021.10.15
[2]Hanqi Zhang, Xi Xiao.Classification of ransome families with machine learning based on N-gram ofopcodes[J]. Future generation computer system, 2019(90):211-221.
[3]陈涵泊,,,,,吴越,,,,,邹福泰 . 基于 Asm2Vec 的恶意代码同源判断要领 [J]. 通讯手艺 ,2019,52(12):3010-3015.
[4]Yong Fang, Cheng Huang.Detecting malicious JavaScript code based on semantic analysis[J].Computer&Security, 2020(93):1-9.
[5]Steven H H Ding, Benjamin C MFung. Asm2Vec: Boosting Static Representation Robustness for Binary CloneSearch against Code Obfuscation and Compiler Optimization[C]. S&P,2019:1-18.
[6]Zeping Yu, Rui Cao, Qiyi Tang,et al. Order Matters:Semantic-Aware Neural Networks forBinary Code Similarity Detection[C]. AAAI, 2020:1-8.
版权声明
转载请务必注明来由。。。。。。。
版权所有,,,,,违者必究。。。。。。。
- 要害词标签:
- 3377体育网官网入口 人工智能清静 AI清静应用

京公网安备 11010802026257号