基于多尺度融合CNN的恶意软件行为描述语句抽取模型

2019-01-18 01:11陈文强周安民
网络安全技术与应用 2019年1期
关键词:特征向量语句向量

◆陈文强 周安民 刘 亮



基于多尺度融合CNN的恶意软件行为描述语句抽取模型

◆陈文强 周安民 刘 亮

(四川大学网络空间安全学院 四川 610065)

恶意软件是网络空间安全的重要威胁之一,安全厂商和从业人员发布了大量的恶意软件分析报告。从报告中自动化识别并提取出恶意软件行为与能力描述的相关文本语句,能够帮助分析人员快速了解恶意软件的关键信息。本文使用一种基于多尺度融合的卷积神经网络模型抽取上述信息,该模型仅使用预训练词向量作为输入,利用卷积层提取特征,减少对人工特征依赖。基于Phandi等人构建的数据集MalwareTextDBv2.0数据集进行测试,准确率为71.33%、F1值为66.48%。相对于该数据集上的其它识别方法,本模型具有更高准确率和F1值。

恶意软件;信息抽取;卷积神经网络

0 引言

随着世界联系越来越紧密和高度数字化,网络攻击也越来越普遍,这给社会带来严重问题。2010年,破坏了伊朗核设施中离心机的Stuxnet蠕虫病毒是世界上首例专门针对工业控制系统的破坏性病毒[1]。2017年,WannaCry勒索病毒在短时间内席卷全球,大量政府部门、企业单位及教育机构受到病毒侵害[2]。这些攻击影响范围从个人电脑到工业设施。

互联网中存在大量与恶意软件相关的文本,例如赛门铁克和Cylance等各种安全机构发布的恶意软件报告。研究人员可以方便地从此类文本中快速了解恶意软件的行为能力信息,而不是手工对各个恶意软件样本进行分析。网络安全研究人员经常收集这类文本,但是由于这些文本的庞大数量和多样性使得研究人员难以快速获得特定恶意软件的行为或能力信息。因为不同安全机构会对同一样本发布分析报告,一篇报告中也只有少数语句是包含恶意软件行为或者能力信息,图1是一文本示例,该段文本中仅有一句包含此类信息(图示中加黑部分)。自然语言处理是网络安全研究中的关键技术[3],可以帮助研究人员从恶意软件报告中快速获取这些信息。本文使用一种多尺度融合卷积神经网络,仅使用词嵌入作为输入,从网络安全相关文本中提取描述恶意软件行为或者能力的语句。

The malicious DLL file that is dropped is hidden in a resource of the dropper binary. This is a relatively common technique used by malware dropper files to optimize the number of files required to infect a machine. The resource language of the malicious DLL is set to "Chinese (Simplified)", this is a compiler artifact which indicates the language setting on the compiler used by the person who built the binary was set to "Chinese (Simplified)" at the time the dropper was compiled.

1 相关工作

从恶意软件报告中提取描述恶意软件行为或者能力的语句可以看作是文本分类问题。

高明霞等人首先训练维基百科语料库并获取word2vec 词模型,然后建立基于此模型的短文本特征,通过SVM、贝叶斯等经典分类器对短文本进行分类[4]。任勉等人使用采用CBOW模型训练词向量,基于双向长短时记忆循环神经网络模型(Bi-LSTM),结合栈式自编码深度神经网络作为分类器[5]。Kim首次提出将卷积神经网络应用在文本分类中[6],其模型使用词嵌入层,卷积层,池化层和全连接层对输出标签类别进行预测。Sikdar等人通过构造词性、是否为停用词等特征使用朴素贝叶斯和条件随机场对原始语句进行建模[7],训练一个二元分类器,用于检测当前语句是否与恶意软件的行为和能力相关。Brew等人构造词性、二元语法和词干化处理等特征后使用一种在线学习算法对用于描述恶意软件行为语句分类[8]。Padia等人使用词袋模型训练词嵌入,然后使用一个多层感知机模型对此类文本分类[9]。Loyola等人使用在维基百科文本上训练的Glove向量初始化词嵌入,然后训练一个BiLSTM从恶意软件报告中提取包含恶意软件能力的语句[10],取得较好的结果。

以上方法在使用词性等额外特征时,容易造成误差积累,降低文本分类的准确率。Loyola等人仅使用预训练词向量,大大减少特征工程难度,但通用领域与特定领域下词分布存在差异,需要根据特定任务对词分布微调。本文使用一种多尺度融合卷积神经网络完成此文本分类任务。本方法仅使用在维基百科文本预训练Glove向量初始化词嵌入作为每个词特征向量,并在学习过程中对词向量微调,通过卷积层提取特征经池化操作由分类器输出结果。卷积层有优秀的特征提取能力,减少对人工特征依赖性。通过融合不同窗口大小卷积结果使模型能够关注不同距离词汇信息。与其它方法比较,结果显示本方法有更高准确率和F1值。

2 基于多尺度融合卷积神经网络模型

模型结构如图2所示,嵌入层将one-hot词向量线性变换到词特征向量,将稀疏且不相关的one-hot向量转换到稠密且相关的词特征向量,利于神经网络特征提取。卷积层使用不同大小卷积核对整个语句滑动扫描,每个卷积核生成对应句子级特征向量。最大时序池化对每个卷积核生成的特征向量提取最大值,保留最重要特征值,池化层可在保留最重要信息同时减少时间复杂度。最后全连接层将所有特征向量池化结果拼接后采用全连接方式连接到输出层,用以表示模型对当前语句分类的评分。

图2 模型结构

2.1 嵌入层

深度学习进行文本分类第一步是文本向量化,利用词向量表示文本。传统文本表示方法采用one-hot表示方式,one-hot表示方式虽然简单,但是忽略了词与词间相关性,并且当词库扩大时会面临数据稀疏性和维度灾难问题。

在使用卷积神经网络提取文本特征前,嵌入层使用一个嵌入矩阵将one-hot向量线性转换为另一空间下的词特征向量,词特征向量由嵌入矩阵与one-hot向量的乘积表示。这种转换能对数据进行压缩,将词从高维稀疏one-hot向量转换为低维稠密词特征向量,并且语义相近词语之间距离会更近,利于神经网络特征提取和学习。

嵌入矩阵可随机初始化或由预训练生成词特征向量初始化。采用随机初始化方式,神经网络可自动学习当前数据集下的词分布。但词库过小时,随机初始化嵌入矩阵在学习时可存在过拟合风险。预训练词特征向量通常在较大文本集下训练生成,其词分布泛化能力更好。因此本文使用维基百科文本语料上训练的Glove[11]向量初始化词嵌入矩阵。

2.2 卷积层

卷积过程使用卷积核扫描句中连续h个词,得到这连续h个词特征值,通过卷积核在整个语句滑动生成句子级特征向量。假定xi表示一句话中第i个词,一个包含n个词的语句表示为:

x = x1⊕x2⊕x3⊕…⊕xn(1)

其中⊕表示连接符号。假设xi:i+j表示句中第i个词到第j个词,卷积则通过卷积核在一个窗口大小为h的词上操作产生一个新特征ci,

ci= f(w·xi:i+h-1+b) (2)

其中b表示偏置项,f是一个非线性函数。卷积核在语句上滑动产生特征向量c,

c=[c1,c2,c3,…,cn-h+1] (3)

使用多窗口大小和数量卷积核,用以从句中提取多种不同特征。

2.3 池化层

在卷积核生成特征向量上应用时序最大池化操作,将最大值

cmax= max{c} (4)

作为与该特定卷积对应特征。最大池化操作在每个特征向量中捕获最重要信息,同时降低数据维度,提高计算效率。这种池化方式也使神经网络能自然处理不同长度语句。

2.4 全连接层

采用最大池化操作后,每个特征向量仅保留一个特征值,将所有特征值连接成一个向量,采用全连接方式,连接所有特征值到输出层,输出层结果表示模型对该语句的分类评分。嵌入层、卷积层和池化层等操作是将原始数据映射到特征空间,全连接层则将学到的“分布式特征表示”映射到样本标记空间。

3 对比实验与结果分析

3.1 实验数据

本文所使用来自Phandi等人构建的数据集MalwareTextDBv2.0[12],Lim等人首先选择了39篇恶意软件报告[13],对其中描述恶意软件行为语句进行标注。Phandi等人在此基础上,将标注报告数量扩充到85篇。实验数据分布如表1所示,训练集包含65篇文档,共9424条语句,其中2204条语句是描述恶意软件行为或者能力。

表 1 实验数据分布

本文选择训练集所有数据以及验证集和测试集的正样本作为实验数据,选择其中80%作为实验训练数据,其余20%作为实验测试数据。

3.2 超参数与训练

实验中使用rectified linear units(RELU)作为卷积操作中的非线性激活函数,卷积核窗口大小分别设置为3,4,5,卷积核对应数量分别为100,100,100。将各个特征向量池化结果连接成一个300维向量后随机丢弃一半值,然后采用全连接方式连接到输出层作为分类结果。为应对过拟合问题,设置l2正则系数为0.001。选择adam优化器,设置学习速率为0.001,批量大小为64。在整个训练数据上迭代训练30次后停止,使用测试数据进行测试。采用多次实验计算均值的方式降低误差。

3.3 对比实验与结果分析

(1)评价标准

现有评价文本分类方法是通过模型对文本标签预测正确情况来判断,本文分类效果评估主要是以精确率(precision),召回率(recall),F1值和准确率(accuracy)来衡量。表2是根据分类结果建立的矩阵,用来介绍评价标准的计算方式。这些评价标准计算方式如下。

precison = TP/(TP+FP) (5)

recall = TP/(TP+FN) (6)

F1 = 2*precison*recall/(precision+recall) (7)

accuracy = (TP+TN)/(TP+FP+FN+TN) (8)

表 2 评价指标介绍

(2)非静态的嵌入层

预训练词向量是自然语言处理中常用方法。通常在训练时固定词向量不变,但是往往不同领域的语言表达有其特殊性,词向量需要进行调整。本文在模型中初始化两个相同词嵌入层。在训练中固定其中一层参数,即保持当前层的词特征向量不变。另一层随训练进行微调,学习目标域下词分布。

(3)预训练词向量维度的影响

向量维度增加造成模型复杂度成倍增长,因此,特征向量维度选择对实验结果有重要影响。本文对4种维度的GloVe词向量[50, 100, 200, 300]进行实验,结果如表3所示。不同维度GloVe初始化词向量对本文分类任务的精确率,召回率以及准确率仅有较小影响。但是低维词向量能较大提高模型训练和推断速度。使用300维词特征向量训练速度是50维3倍以上,因为处理高维数据需要消耗更多资源。

表 3 不同维度词向量的结果

(4)与其它模型对比

如表4所示,本模型对识别关于恶意代码行为的语句有更好性能,虽然召回率有所降低,但是大大提高了识别的精确率和F1值。卷积神经网络具有优异的特征自提取能力,相较于人工选取特征具有明显效率优势。通过使用不同窗口大小的卷积核,模型能够同时关注不同范围词汇,捕捉不同距离词语之间的特征。

表 4 实验结果及与其它模型比较

在不同领域下词分布表示有偏差,非静态的嵌入层能够使词分布表示向目标域微调。例如在源域中哈希和加密可能表示相近语义,但在网络安全领域中,这两个词应该要有明显区分,这在具体领域的分类任务下特别重要。对于未出现在训练中(随机初始化)的词,这种微调方式允许模型学习更有意义的表示。

3.4 误差分析

为了更好地理解模型的运作,对模型分类错误语句进行了抽样。图3是一些假阳性结果,即被模型误判为相关语句,主要原因是模型无法有效分清语句是用于描述恶意软件属性还是行为或其能力。

This sample is a packed 32-bit kernel driver extracted by the aforementioned DLL with an MD5 hash of: de7500fc1065a081180841f32f06a537, this sample will only function on a Windows 32-bit kernel. The backdoor is also capable of elevating its privileges on win7 and above using a method similar to the one described here: http://www.pretentiousname.com/misc/win7_uac_whitelist2.html. CozyDuke may use multiple techniques for establishing persistence; the following is one technique used.

图4是漏报结果抽样,表现出网络安全中专业术语特征或一些特殊命名实体,由此可假设模型不能有效处理这些特征,当这些特征出现频率很少时这种影响更为严重。因此,模型需以其它方式或者额外信息来处理这种情况。

The configuration data for CozyDuke is stored as a separate RC4-encrypted file that is written to disk by the CozyDuke dropper during initial infection. In this context, DNS hijacking is done to subvert the resolution of Domain Name System (DNS) queries through modifying the behavior of DNS servers so that they serve fake DNS information. The encrypt method encrypts the data in the modified CBC-CTS-like mode .

4 总结

本文使用了一种卷积神经网络的变体从网络安全报告中进行信息抽取。试图不以语言学或者网络安全相关知识为背景构建信息抽取方法。相比其它模型,取得了一定的性能提升,但仍不能达到实用高度。在未来工作中,仍然试图不断提高模型性能,使其达到供研究人员可信赖程度。探索可以解决不同领域之间自适应问题的迁移学习也可能是一种处理标记数据不足的办法。

[1]Langner R. Stuxnet: Dissecting a Cyberwarfare Weapon[J]. IEEE Security & Privacy, 2011, 9(3):49-51.

[2]马也, 吴文灿, 麦永浩.从WannaCry勒索病毒事件谈高校网络安全[J].网络安全技术与应用, 2018.

[3] Fu M, Zhao X, Yan Y. HCCL. An End-to-End System for Sequence Labeling from Cybersecurity Reports[C]// International Workshop on Semantic Evaluation. 2018:874-877.

[4]高明霞,李经纬.基于word2vec词模型的中文短文本分类方法[J].山东大学学报(工学版),2018.

[5]任勉, 甘刚.基于双向LSTM模型的文本情感分类[J]. 计算机工程与设计, 2018.

[6]Kim Y. Convolutional Neural Networks for Sentence Classification[J]. Eprint Arxiv, 2014.

[7]Sikdar, Utpal & Barik, Biswanath & Gambäck. Identifying and Classifying Malware Text Using Conditional Random Fields and Naïve Bayes Classifiers[C]// International Workshop on Semantic Evaluation. 2018:890-893. 10.18653/v1/S18-1144.

[8]Brew, Chris. Using dependency features for malware NLP[C]// International Workshop on Semantic Evaluation. 2018:894-897. 10.18653/v1/S18-1145.

[9]Padia, Ankur & Roy, Arpita & Satyapanich. Understanding Text about Malware[C]// International Workshop on Semantic Evaluation. 2018:878-884. 10.18653/v1/S18-1142.

[10]Loyola, Pablo & Gajananan, Kugamoorthy & Watanabe. Semantic Extraction from Cybersecurity Reports using Representation Learning[C]// International Workshop on Semantic Evaluation. 2018:885-889. 10.18653/v1/S18-1143.

[11]Jeffrey Pennington, Richard Socher, and Christopher Manning. Glove: Global vectors for word representation[C]// In Proc. of EMNLP. 2014:1532– 1543.

[12]Peter Phandi, Amila Silva, Wei Lu. Semantic Extraction from Cybersecurity Reports Using Natural Language Processing (SecureNLP)[C]//Proceedings of the 12th International Workshop on Semantic Evaluation (SemEval-2018). 2018:697–706

[13]Kiat Lim, Swee & Muis, Aldrian Obaja & Lu, Wei. MalwareTextDB: A Database for Annotated Malware Articles[C]// Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics . 2017:1557-1567. 10.18653/v1/ P17-1143

猜你喜欢
特征向量语句向量
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
向量的分解
克罗内克积的特征向量
聚焦“向量与三角”创新题
三个高阶微分方程的解法研究
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
我喜欢
冠词缺失与中介语句法损伤研究
作文语句实录