APP下载

基于卷积神经网络的敏感文件检测方法

2018-08-07林学峰夏元轶郭金龙于晓文

计算机与现代化 2018年7期
关键词:误报率词库漏报

林学峰,夏元轶,郭金龙,于晓文

(1.南瑞集团有限公司(国网电力科学研究院),江苏 南京 211106; 2.国网江苏省电力公司信息通信分公司,江苏 南京 210024)

0 引 言

2017年6月1日正式施行的《国家网络安全法》特别强调了关键信息基础设施敏感信息监测的重要性。电力行业关系国民经济命脉和国家能源安全,如果发生泄密事件,必定会给行业的社会形象及经济效益带来严重的负面影响。

建立有效的网络安全监测体系,重要前提是对敏感数据精准识别,而后基于敏感数据形成有效的监测响应方案。电力企业运营过程中的敏感数据主要分为:1)国家电力发展战略、国家重大电力项目规划等国家级秘密的国密文件;2)企业经营数据等涉及企业自身商业秘密的商密文件。本文重点关注如何有效检测企业经营生产中的商密文件。目前电力企业通用的敏感文件检测方法大都依赖于敏感词库,如“秘密、方案、规划、内部资料、标底”等是敏感词库中的部分关键字,通过分词算法等统计出上述关键字在文件中出现的频率,由此判断文件是否属于敏感文件。这种方法的优势是速度快,缺点是具有很高的漏报率和误报率。例如一篇小说含有“不能说的秘密”“规划下一步行动”“我们计划”等词句,根据特征字库统计出小说中含有“秘密”“规划”“计划”的频率,就会将小说误判为敏感办公文件,这样增加了敏感文件复核成本,且人工复核易造成敏感文件的违规扩散。文献[1]提出基于语义扩展技术识别敏感数据的方法,通过对给定关键词进行基于搜索引擎语义扩展,提高了基于关键词敏感检测的准确性,但是仍不能有效降低误报率。文献[2]提出敏感关键词与情感极性协同分析的敏感信息识别方法,在真实数据集上利用监督学习实现网络留言监测,但是只能识别网络留言等短文本。文献[3]提出基于知识库的无监督字母缩略术语消歧,通过利用相似聚类和特征词扩展及语义线性加权提高歧义词分辨能力,提高语义解析性能。文献[4]提出利用词向量和神经网络相结合解决情感分类问题,优点是分类正确率高,缺点是适应性低。

为了解决基于特征词库的敏感文件检测性能低的问题,本文尝试利用词向量和卷积神经网络来解决企业商密类文件检测问题。众所周知,卷积神经网络始于图像识别并得到了广泛应用,本文设计的方法,首先解决如何将文档数据转换成类图像数据,解决途径为将文档的语义内容形式表示为类似图像数据的二维矩阵特征形式。步骤如下:1)针对数据集训练出词向量特征;2)将训练好的词向量进行组合得到文档的向量特征;3)将上述向量作为基于卷积神经网络的深度学习的输入特征,并作为方法运行参数一起参与迭代训练过程。为了验证本文所提方法对商密文件检测性能的提升情况,本文与敏感词库检测方法进行了比较。实验证明,与目前企业常用的基于敏感词库的检测方法相比,本文提出的基于深度学习的敏感文件检测方法,不仅提高了检测率,而且具有低漏报率和误报率的优点。

1 相关理论

卷积神经网络在图像识别领域[5]获得巨大成功,研究人员尝试将其引入更广泛的应用领域。Collobert等[6]将卷积神经网络引入自然语言处理(NLP)过程的许多任务中,并且证明其提出的模型在NLP中获得了很好的表现;Shen等[7]利用卷积神经网络解决信息检索中的语义分析问题;Kalchbrenner等[8]利用卷积神经网络对句子进行建模,并提出新的pooling方式。上述研究表明卷积神经网络在自然语言处理领域中同样具有广阔的应用前景。

1.1 词向量

词向量(Word Embedding)概念是将自然语言中的语义特征转换成计算机思维的量化值形式,从而可以利用学习算法进行下一步处理。Hinton提出的词向量方法将词语分布式地转换到低维空间中,很好地解决了向量稀疏问题。

Mikolov等[9]提出的Skip-gram模型能够准确地从文档语义内容中提取出词向量,如图1所示。比如一段语义内容的词语序列为w1,w2,w3,…,wN,利用上述模型根据指定词预测上下文,则模型的目标就是使下式最大化:

其中,h是以指定词为中心的前后文长度,也称窗口长度。h值越大,窗口越长,文档取词长度越大,模型训练效果越好,但同时也会造成时间复杂度增加。

在实际应用中,可以通过足够大的语料库训练,综合考虑训练时间复杂度因素,得到恰当的窗长度h,以达到词向量获取最优化。

图1 Skip-gram模型

1.2 卷积神经网络

卷积神经网络是自Hinton等[12-13]提出深度学习概念以来应用最为广泛的深度学习[14-15]结构,其由卷积层、池化层交替组成,最后通过全连接层来完成具体分类任务。基于卷积神经网络的网络结构具有如下显著优点:

1)卷积层和池化层的交替叠加使得卷积神经网络对于局部微小特征非常敏感。

2)提取特征和模式分类同时在训练中进行。

3)利用局部感受野和权值共享减少网络的训练参数、降低网络结构复杂度,使其适应性更强。

卷积神经网络的上述特性已在图像识别领域获得广泛应用,如智能停车系统的汽车车牌识别,其车牌识别率达到98%以上。本文尝试使用卷积神经网络来进行商密文件识别。

2 方法及步骤

卷积神经网络中的卷积层能够很好地描述数据的局部特征,通过池化层可以进一步提取出局部特征中最具有代表性的部分。传统的敏感字库的识别方法在描述文件特征方面能力十分有限,而卷积神经网络已经在图像识别和语音比对中被证明可以出色地完成特征提取任务。基于以上分析,本文引入词向量和卷积神经网络来解决敏感文件识别问题。

2.1 总体架构

在基于卷积神经网络的敏感文件检测方法基础上构建了原型系统,该原型系统大致划分为3个模块:词向量训练集模块、敏感文件训练模块和检测模块,系统的整体架构如图2所示。词向量训练集主要根据语料库构建词向量模型,将人类语言编写的文档转化成机器能够识别的形式,语料库越完备则训练得到的词向量就越精准;敏感文件特征训练,将词向量作为卷积神经网络的输入,经过卷积层、池化层、max-pooling层、全连接层操作后,最后通过交叉验证进行文件分类识别学习;检测模块即对待检测文件进行词向量特征提取,而后经过卷积神经网络计算,最后实现敏感文件识别,如图2虚线框以外部分。

图2 基于深度学习的敏感文件检测方法

2.2 词向量处理

卷积神经网络最早用来对图像进行识别,而图像数据是由二维数据组成。因此,利用基于卷积神经网络的敏感文件检测方法来进行敏感文件识别,需要对待检测文件进行词向量特征提取,并组合成二维数据矩阵的形式作为卷积神经网络的输入进行处理。

图3 词向量组合方式

假设αi∈Rk是第i个词对应的词向量,从文档最多取m个词向量,则可得到一个m×k的二维数据矩阵。其中m不能大于文档自身词数,对于长度小于m的样本,需要进行补零处理。图3即为本文词向量提取结构,由图3可知,从文档中提取的m个词向量通过矩阵融合形成的二维数据矩阵即为卷积神经网络输入。

2.3 深度学习处理

本文所采用的基于卷积神经网络的深度学习结构如图4所示,其中输入为2.2节中形成的词向量矩阵。由词向量矩阵的形成过程可知,词向量矩阵主要是各词向量之间的特征关系,所以本文选择一组卷积层和池化层。

图4 基于卷积神经网络的深度学习结构

实际处理结构如图5所示。卷积核w∈Rd×d在长度为h的取词窗内的h个词进行卷积操作,其输出特征为:

si=f(w×αi:i+h-1+b)

其中,b为偏置项;f为激活函数,如sigmod、tanh等函数。本文采用Relu函数作为激活函数:

f(x)=max(0,x)

卷积核w对输入的词向量矩阵进行卷积,就可以得到一幅特征图(S∈Rn-h+1):

S=[s1,s2,…,sn-h+1]

图5 本文学习处理结构

为了能够从特征图中找到最具有代表性的局部最优特征,对卷积层提取出来的特征图进行pooling操作,进而完成提取最具有决定权的局部最优特征的全部过程。本文设定3个不同的窗长h1、h2、h3,得到3种不同的卷积核h1×k、h2×k、h3×k,经过卷积层操作后将得到以下3种特征图(k-h1)×1、(k-h2)×1、(k-h3)×1,最后通过pooling提取这3幅特征图中的前k个局部最优特征。再通过全连接层连接到最后一层的输出节点,进而完成敏感文件识别,得到最后检测结果。

3 试验结果与分析

本文试验敏感文件训练样本采用工作中的真实数据,这些样本都有固定格式,采用100篇此类文件且大小分布为18~13877 kB进行有监督[16]敏感特征训练。

针对文件敏感识别实际情况,为更好地与基于敏感词库判断敏感文件方法进行比较,试验构造了以下3种类型文件:1)从一篇小说中截取片段,再加入部分敏感词库中的关键字;2)从相同小说中截取片段与训练样本敏感信息混合,不含关键字;3)仅仅包含训练样本敏感信息片段,且片段长度大于词向量样本最大长度。

3.1 试验环境

本文试验采用TensorFlow[17]作为深度神经网络学习框架,TensorFlow框架支持CPU和GPU这2种设备,本文采用CPU设备。开发语言采用Python 2.7[18],具体开发环境如表1所示。

表1 试验环境及配置

试验环境环境配置操作系统Linux slave1 3.10.0CPUIntel(R) CPU E5-2620 v2 @2.10 GHz内存128 GB分词工具Jieba-0.38深度学习框架TensorFlow-1.0.1词向量训练工具Word2vec编程语言Python 2.7

3.2 试验训练

1)词向量训练。

利用Mikolov等提出的Skip-gram模型训练词向量,该模型已经被Word2vec工具实现,可以直接使用。本文词向量训练集采用在线Word2vec工具,并将开源网络数据加入数据集中作为语料库进行训练。

2)深度学习训练。

试验中设定词向量维度d为300,窗长度分别为h1=5、h2=6、h3=7这3种情况下,卷积核结构分别为5×300、6×300、7×300,经过卷积层操作得到的特征图尺寸分别为196×1、195×1、194×1,再对其进行max-pooling操作,得到300个局部最优特征,最后全连接层的输出节点完成文件敏感识别判断。

3.3 试验与分析

文件类型1小说中虽然含有敏感关键字,但是文件属性仍为普通文档;类型2文档中含有敏感信息,所以文件属性应定为敏感文件;类型3是纯敏感文件的片段,其文件属性也应是敏感文件。实验使用漏报率和误报率这2个指标来对基于深度学习检测方法和基于关键字检测方法进行比较。漏报率指文件属性为敏感文件却没有判断出来的文件概率。误报率指文件属性为普通文件,被判断成敏感文件的概率。

通过实验对敏感词库检测方法与基于卷积神经网络算法进行比较,结果如表2所示。

表2 性能比较

方法漏报率误报率基于敏感词库检测0.9750.85基于卷积神经网络检测(d=300)0.60.5

利用敏感词库检测方法对上述3种类型文件检测,其漏报率为97.5%,误报率为85%。利用本文基于深度学习检测方法(d=300)漏报率为60%,误报率为50%。漏报率和误报率分别降低了0.375和0.35,表明本文所提方法性能明显优于敏感词库检测方法。

3.4 深度学习输入词向量矩阵与性能关系

为弄清词向量维度d与检测性能之间的关系,另分别设定d值为500、700、1000、2000对上述文件进行检测,误报率和漏报率分别如图6和图7所示。

图6 本文检测方法误报率

图7 本文检测方法漏报率

根据实验发现,在词向量维度较低,即词向量矩阵不能很好地表示文本特征时,误报率和漏报率比较高;随着词向量维度的增加,词向量矩阵所表示文件特征信息的完善,基于深度学习的敏感文件检测方法误报率和漏报率明显降低。基于本文试验,并综合考虑时间运算成本,针对本文的敏感样本的最佳词向量维度设定为d=1000,此时准确率较高,误报率和漏报率都已达到较低水平。

4 结束语

本文提出了一种不依赖于特征关键字的敏感文件识别方法,具有检测率高、低漏报率和低误报率的优点,可用于企业网络边界进行企业敏感文件检测,有效提升企业敏感信息保护能力。本文研究的敏感文件检测方法,不仅可应用在电力行业办公网络安全防泄漏检测方案中,对于其他行业亦具有广泛的适用性。

猜你喜欢

误报率词库漏报
一种基于Web日志的混合入侵检测方法
原始数据动态观察窗法在火灾特征信号融合提取中的应用研究
家用燃气报警器误报原因及降低误报率的方法
一“吃”多用
输入法词库取证比较研究
某市死因监测漏报的调查报告
输入法词库乾坤大挪移
各类气体报警器防误报漏报管理系统的应用
神经网络技术在网络入侵检测模型及系统中的应用
临床乳腺检查筛查乳腺癌中降低病灶漏报率的探讨