一种用于网络安全报告的文本特征模型建模方法及装置
技术领域
本发明涉及文本处理领域,尤其是一种用于网络安全报告的文本特征模型建模方法及装置。
背景技术
目前对文本特征进行提取的算法和相应的机器学习进行分析的算法都已日渐成熟,但对不同领域的文本,对应的文本特征不尽相同,分析所得的关键信息也千差万别,尤其是针对网络安全领域的报告文档分析,准确性不高。
发明内容
本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种用于网络安全报告的文本特征模型建模方法及装置。该方法或者装置是结合全文和段落信息,同时结合词频与文本特征信息,来构建特定领域的文本模型;对需要分析的网络安全报告进行网络安全分析。
本发明采用的技术方案如下:
一种用于网络安全报告的文本特征模型建模方法包括:
步骤1:读取文档,提取文本内容;
步骤2:计算全文信息,即计算段落文本密度和关键词频;根据关键词个数p,计算全文中p个关键词对应的TF-IDF词频;p大于等于1;
步骤3:对全文中的每个段落,计算段信息(pos,len,key_words_extract_array,paragraph_array);将每段的段信息拼接成,形成该段对应的向量classify_vector;
步骤4:对x篇以上的文档人工分析后进行段类型标注,每个段落标注n个段落分类类型labels;用SVM算法按照段分类类型对向量classify_vector进行多类型分类的训练,得到SVM分类器;用训练好的SVM分类器对未人工分析过的段落进行分析,从而得到未人工分析过段落的段分类类型labels;
进一步的,所述段类型标注指的是对文档中的每个段落属于哪些段分类类型进行标注,每个段落的段分类类型labels为m个;m大于等于0。
进一步的,所述步骤2中段落文本密度计算过程是将全文设置为多个文本块,计算每个文本块中段落的文本量与全文总文本量,得到每个文本块的段落文本密度=每个文本块中所有段落的文本量/全文总文本量。
进一步的,所述步骤3具体过程是:
步骤31:将段落在全文上的位置信息pos和长度信息len计算出来;
步骤32:采用正则表达式的方式,配合地理信息、公司行业信息的词库来进行识别,提取关键字段;然后按照关键字段的类型,统计该类型字段的出现次数,得到一个关键字段的提取次数数组key_words_extract_array;
步骤33:对全文中每个段落都按照Paragraph Vector算法计算对应的段向量paragraph_array;
步骤34:将每段的段信息(pos,len,key_words_extract_array,paragraph_array)拼接,形成该段对应的向量classify_vector。
一种用于网络安全报告的文本特征模型建模装置包括:
全文信息计算模块:用于读取文档,提取文本内容;计算全文信息,即计算段落文本密度和关键词频;根据关键词个数p,计算全文中p个关键词对应的TF-IDF词频;p大于等于1;
段信息向量计算模块,用于对全文中的每个段落current_paragraph,计算段信息(pos,len,key_words_extract_array,paragraph_array);将每段的段信息拼接,形成该段对应的向量classify_vector;
段分类模型建立模块:用于对x篇以上的文档人工分析后进行段类型标注,每个段落标注n个段落分类类型labels;用SVM算法按照段分类类型对向量classify_vector进行多类型分类的训练,得到SVM分类器;用训练好的SVM分类器对未人工分析过的段落进行分析,从而得到未人工分析过段落的段分类类型labels;
进一步的,所述段类型标注指的是对文档中的每个段落属于哪些段分类类型进行标注,每个段落的段分类类型labels为m个;m大于等于0。
进一步的,所述段落文本密度计算过程是将全文设置为多个文本块,计算每个文本块中段落的文本量与全文总文本量,得到每个文本块的段落文本密度=每个文本块中所有段落的文本量/全文总文本量。
进一步的,所述段信息向量计算模块具体过程是:
将段落在全文上的位置信息pos和长度信息len计算出来;
采用正则表达式的方式,配合地理信息、公司行业信息的词库来进行识别,提取关键字段;然后按照关键字段的类型,统计该类型字段的出现次数,得到一个关键字段的提取次数数组key_words_extract_array;
对全文中每个段落都按照Paragraph Vector算法计算对应的段向量paragraph_array;
将每段的段信息(pos,len,key_words_extract_array,paragraph_array)拼接,形成该段对应的向量classify_vector。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1.相比于传统的人工提取,使用该模型自动化处理能显著提升性能,而且人工提取需要分析文档的人员对网络安全有丰富的了解,这会带来不小的人力成本,使用机器自动分析目前能达到的正确率在75%以上,虽然距离人工分析的正确率还有差距,但可以通过自动化处理后再引入人工分析加以弥补,最终效率上有明显优势。
2.相对于采用通用性的技术建模,该模型具有更好的专用性,经过验证能将通用模型60%的正确率提升至75%左右。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1是本发迷流程图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
长度信息len指的是该段的长度除以全文段落的平均长度。
关键字段的类型是指时间,地理位置,行业公司,IP,域名,Hash这些;
段分类:按照网络安全的常见需求,需要在提取前面给出的段信息后,再通过SVM算法来分类,有以下较重要的分类,每个段落可能属于多个段分类:段分类常见有以下情况:(_段分类的层级一直到最底层,例如下文中项目标号是菱形的那个段落,若项目标号没有菱形段落那层,则是项目标号是正方形段落那层)
●攻击者信息
■攻击者身份概述;
■攻击规模;
■攻击目的;
■对攻击者的具体分析
◆网络信息:包括IP,域名等
◆具体信息的识别:包括人物身份,所属攻击组织的构成等
●受攻击方信息
■受攻击者身份概述:受攻击者所属行业、公司等
■损失情况:数据量,金额,危害程度等
■受攻击方的具体特征
◆网络信息:包括IP,域名等
◆地理位置
◆时间
●攻击流程
■概要简述
■通信特征:使用的私有网络协议、网络拓扑结构、加密方法等
■攻击实例:攻击流程的实际模拟或者还原
●攻击技术手段分析
■攻击发起方式:攻击者在确认目标后的第一阶段攻击方式,如钓鱼邮件,
社工,暴力破解等
■驻留文件信息:在被攻击者设备上发现的特征信息,如路径、注册表、程序编译时间等
■攻击工具:攻击者使用的工具软件,系统调用,漏洞等
■样本的信息摘要:主要是恶意文件的Hash值
●防御对策
■概要简述:采取哪些方式可以检测、屏蔽、修复
■获取方式:从哪里可以获取防御工具
上面给出的段分类是经过对多篇APT报告进行分析总结后得出的,符合大部分APT报告段落分类的场景需求,根据段落分类的结构,可以更精准地
定位用户关心的信息。
本发明实现过程:
1.读取文档,提取文本内容;
2.段落文本密度,计算中需要把文本密度信息限制为固定的长度,这里使用3个值,分别表示前16%,中68%,后16%段落的信息,接近正态分布的比例;
3.关键词频:在网络安全上的常见关键词,如漏洞,CVE,破解,木马,病毒等等一系列的词,构建出相应的关键词库后,计算全文的TF-IDF词频,按照关键词的个数,产生一个定长向量;
4.对全文中的每个段落current_paragraph,分别执行以下操作:
a)将段落在全文上的位置信息pos和长度信息len计算出来;
b)提取关键字段,可以采用正则表达式的方式,配合地理信息、公司行业信息的词库来进行识别;
i.提取关键字段的内容后,还要按照关键字段的类型,统计该类型字段的出现次数,得到一个关键字段的提取次数数组key_words_extract_array
c)按照Paragraph Vector算法计算段向量paragraph_array
i.使用这个算法前需要先按照自然语言处理的常规流程,对该段落执行文本分词,然后从得到的分词列表中去除不关键的标点符号和停用词;
d)将当前段落已知信息(pos,len,key_words_extract_array,paragraph_array)拼接成一个向量classify_vector。
5.在对所有段落完成步骤4后,执行段分类:
a)首先人工分析并对50篇以上的文档进行标注,标注的内容是这篇文档中的每个段落属于哪些段落分类的类型,需要标注到最细化的一层分类,记该段落属于的类型为labels;
b)用SVM算法按照labels对classify_vector进行多标签分类的训练,得到SVM分类器,验证并通过调整参数提升该分类器分类的正确性;
c)用训练好的SVM分类器对未人工分析过的段落进行分析,从而得到未人工分析过的段落的labels。
本特征模型的应用场景如下:
应用场景1:安全报告分类:
a)将全文信息和文本段信息加以结合,比如,将属于同种分类的段落信息整合在一起取平均值,然后将全文信息和每种分类的平均段落信息合在一起构成一个全文的向量;
i.示例:段分类结果:
段落1,段落2属于攻击者信息;
段落2,段落3属于受攻击者信息;
安全报告分类:
攻击者信息向量:(段落1.classify_vector+段落2.classify_vector)/2;
受攻击者信息向量:(段落2.classify_vector+段落3.classify_vector)/2;
全文向量:全文信息拼接上攻击者信息向量拼接上受攻击者信息向量。
b)准备样本数据,按照a)中的全文向量构建测试集,用SVM加以训练;用训练好的SVM分类器进行安全报告的分类。
其中构建测试集如下:
比如现在安全报告有以下分类:APT报告,漏洞报告;
首先人工标注文档1到文档10各自属于哪种分类,然后用SVM分类器对文档1到文档10的全文向量进行训练,得到SVM分类器,用该分类器对未分类的文档11进行训练,就可以得到文档11属于APT报告。
应用场景2:安全信息的摘要提取:
a)该模型建立后,文档中的段落已经有了分类信息;
b)对于每种分类的段落信息,构建一个训练集,训练集中的样本分别属于关注的摘要段落,和不关注的其他段落;
c)根据b)中的训练集对段落进行分类,提取出摘要段落;
对摘要段落使用常用的文本摘要算法,获取出摘要信息。
应用场景2举例说明如下:
文档1中的段落1文档2中的段落1属于攻击者信息
文档1中的段落2文档2中的段落2属于被攻击者信息
文档1中的段落1文档2中的段落2是摘要段落
文档1中的段落2文档2中的段落1不是摘要段落
那么分别构建一个攻击者信息的SVM分类器,一个被攻击者信息的SVM分类器,用攻击者信息的SVM分类器能够判断出文档1中的段落1是摘要段落用被攻击者信息的SVM分类器能够判断出文档2中的段落2是摘要段落。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。