一种基于深度学习的网络威胁情报自动抽取方法与流程

文档序号:21888511发布日期:2020-08-18 17:35阅读:513来源:国知局
本发明涉及网络安全
技术领域
:,特别是涉及一种基于深度学习的网络威胁情报自动抽取方法。
背景技术
::随着互联网技术的飞速发展,各种数据上传至互联网中,网络信息安全成为各种组织关注的一个重点,为了避免自身受到威胁,需要对攻击者的攻击行为做出防御。网络安全防御手段中,利用已知的网络威胁情报对未知威胁的攻击行为等进行防御是一种以检测和分析为手段的主动防御方式。威胁情报是基于证据的知识,包括场景、机制、指标、含义和可操作的建议,这些知识是与面临的威胁相关的情报信息,其中有证据表明组织可能将会遭受威胁。网络威胁情报是可以从网络中获取的威胁情报,在网络中获取威胁情报的源数据(即原始来源的数据信息),经过数据处理和数据分析,实现情报抽取,生成可机读或人读的标准化情报。依照数据存在形式,网络威胁情报的源数据可以分三种类型:非结构化情报源数据、半结构化情报源数据以及结构化情报源数据。对于非结构化情报源数据,比如网页、邮件、文档等,需要将其转化为自然语言,从自然语言中识别出多个情报实体,对多个情报进行组合实现情报抽取。一般情报抽取流程为:利用带有标签标注的文本数据集,训练神经网络模型,利用训练好的神经网络模型进行情报实体识别,情报实体可以但不局限于是人名、地名、组织机构名等。当前进行情报抽取的方法易出现情报实体乱序的预测结果,使得网络威胁情报识别准确率低。技术实现要素:本发明实施例的目的在于提供一种基于深度学习的网络威胁情报自动抽取方法,以提高网络威胁情报识别的准确率。具体技术方案如下:第一方面,本发明实施例提供一种基于深度学习的网络威胁情报自动抽取方法,所述方法包括:获取情报源数据,并判断所述情报源数据的数据结构类型;若所述数据结构类型为非结构化类型,则将所述情报源数据输入预先训练的情报实体识别模型,得到所述情报源数据中的各情报实体,所述情报实体识别模型为利用情报样本数据,基于预先设置的字与字的前后位置约束条件,训练得到的神经网络模型,所述情报实体为多个字或单个字组成的信息;按照预先设置的组合形式,将所述各情报实体组合得到网络威胁情报。本发明实施例提供一种基于深度学习的网络威胁情报自动抽取方法,能够获取情报源数据,并判断情报源数据的数据结构类型;若数据结构类型为非结构化类型,则将情报源数据输入预先训练的情报实体识别模型,得到情报源数据中的各情报实体,情报实体识别模型为利用情报样本数据,基于预先设置的字与字的前后位置约束条件,训练得到的神经网络模型,情报实体为多个字或单个字组成的信息;按照预先设置的组合形式,将各情报实体组合得到网络威胁情报。本发明实施例有益效果:本发明实施例提供的基于深度学习的网络威胁情报自动抽取方法,可以利用预先训练的情报实体识别模型进行网络威胁情报的自动抽取,而情报实体识别模型在训练时引入了字与字的前后位置约束条件,该位置约束条件限制情报实体中字与字的前后位置关系,因此减少情报实体乱序的结果出现,从而提高网络威胁情报识别的准确率。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的第一种基于深度学习的网络威胁情报自动抽取方法流程图;图2为本发明实施例提供的一种情报实体识别模型的训练方法流程图;图3为本发明实施例提供的一种情报实体识别模型的层级结构示意图;图4为本发明实施例提供的一种情报字向量生成网络的训练方法流程图;图5为本发明实施例提供的一种情报字向量生成网络的网络结构示意图;图6为本发明实施例提供的一种网络威胁情报领域本体模型的结构示意图;图7为本发明实施例提供的第二种基于深度学习的网络威胁情报自动抽取方法流程图;图8为本发明实施例提供的第三种基于深度学习的网络威胁情报自动抽取方法流程图;图9为本发明实施例提供的第四种基于深度学习的网络威胁情报自动抽取方法流程图;图10为本发明实施例提供的一种针对不同数据结构类型的情报源数据进行网络威胁情报自动抽取的流程示意图;图11为本发明实施例提供的一种针对非结构化情报源数据进行网络威胁情报自动抽取的流程示意图;图12为本发明实施例提供的一种基于深度学习的网络威胁情报自动抽取装置的结构示意图;图13为本发明实施例提供的一种电子设备的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。ti(threatintelligence,威胁情报)定义是基于证据的知识,包括场景、机制、指标、含义和可操作的建议。网络安全防御手段中,利用已知的cti(cyberthreatintelligence,网络威胁情报)对未知威胁的攻击行为等进行防御是一种以检测和分析为手段的主动防御方式。相比传统的被动防御,主动防御具有优秀的预警能力和快速的响应能力。大数据环境下,依照数据存在形式作区分,cti的源数据(即原始来源的数据信息)通常分三种类型:非结构化情报源数据(如网络中与威胁情报相关的自然语言文本)、半结构化情报源数据(如包含xml(extensiblemarkuplanguage,可扩展标记语言)、json(javascriptobjectnotation,js对象简谱)格式数据的网页的列表或信息框)、以及结构化情报源数据库或链接数据(如rdf(resourcedescriptionframework,资源描述框架))。根据威胁情报的生命周期闭环理论(定向-收集-处理-分析-传递-反馈-定向),以上所有分类的源数据必须在规范的情报标准的指导下,经过数据处理和数据分析,生成可机读或人读的标准化情报,才能真正地被应用到安全防御中去。对于结构化、半结构化情报源数据,如恶意ip(internetprotocol,互联网协议)地址、恶意域名信息以及恶意软件样本等,通过制定爬取策略,对结构化情报源数据所在数据库、半结构化情报源数据所在网页等进行数据爬取,并对半结构化的网页拆除html(hypertextmarkuplanguage,超文本标记语言)模板;对于非结构化文本情报源数据,如安全行业组织和网络安全供应商发布的威胁报告、情报平台的安全事件分析报告、甚至网络社区中的威胁舆论信息等,就需要将其转化为nlp(naturallanguageprocessing,自然语言处理)问题,对源数据清洗后进行情报抽取。现有技术方案中,对于非结构化情报源数据中的情报自动抽取,整体分成两个阶段:训练阶段和检测阶段,其中,训练阶段主要分为数据预处理和基于神经网络的实体识别模型训练及模型优化。数据预处理分为两个部分:文本分词(含停用词处理和文本标注)和文本向量化(热编码生成和词向量生成)。原始文本通常以词为基础单元进行划分;文本标注通常根据通用的命名实体标注规则进行,如人名、地名、组织机构名等;词向量的生成是通过对词的热编码和随机初始化的神经网络权重矩阵做矩阵乘得到的。模型训练及优化通过神经网络模型完成,将带有人工标注的数据集作为训练集,利用神经网络对文本特征的自动学习,训练得到实体识别模型。检测阶段就是利用训练好的模型进行情报实体识别,输出是模型预测的待检测文本中的情报实体对应的标注。以上是目前的网络威胁情报的一般抽取流程。现有的cti自动抽取技术方案缺点在于:一是常规的神经网络算法模型存在缺陷。在ner(namedentityrecognition,命名实体识别)模型的训练过程中,训练集往往是经过人工标注的数据集,常规的神经网络模型仅针对输入文本的上下文进行特征学习,无法实现对于代表实体的词或字的标签依赖关系的自动学习,因此使用常规的神经网络算法模型进行预测时,将会出现乱序或无效的预测结果,即预测得到的实体并非有效实体,影响模型的识别准确率;同时,人工标注的数据集虽然准确度较高,但往往费时费力,如果无法保证训练集的规模足够大,模型训练不够充分,则模型预测的结果将会出现情报遗漏,造成识别的实体覆盖率降低。二是多源异构情报的存储和表达不规范。区别于开放知识,网络威胁情报属于特定领域的专业知识,因此必须背靠领域标准或规范才能得到真正有用的关键信息。特别是ttps(tactics、techniques&procedures,攻击策略、攻击技术和行为模式)为代表的事件级情报,若必要的情报要素尚不完整,将无法准确还原攻击事件和攻击场景,对于后续的关联分析和情报共享都有一定影响。因此,面向海量的多源、异构的cti源数据的情报抽取,本发明实施例解决以下问题:一是如何针对不同类型的情报源数据分别实现情报的自动抽取,如在nlp背景下,针对非结构化文本情报的自动抽取方法流程的制定;二是如何将现有的情报标准应用到实际的情报自动抽取工作,如实现不同结构的情报在统一标准或模型约束下的重组和整合,或通过解读标准,针对非结构情报构建事件框架,以保证情报抽取的准确性。对于前述问题,本发明实施例提供以下解决方案:第一点,针对不同类型的情报源数据,制定不同的情报爬取策略以及自动化抽取方法,其中结构化和半结构化的情报自动抽取将通过对爬取的源数据进行清洗、重组和整合完成,非结构化情报的自动抽取将通过基于深度学习的方法实现。第二点我们利用领域本体的概念模型,包括本体本身具有的概念、关系及属性层次结构,对照现有的成熟的情报标准中涉及到的威胁元素,构造cti的领域本体模型,并将此模型作为理论依据应用到结构化、半结构化情报的重组和整合,以及非结构化情报的事件框架构建。以下对上述解决方案进行详细说明。第一方面,本发明实施例提供一种基于深度学习的网络威胁情报自动抽取方法,参见图1,该方法包括:s101:获取情报源数据,并判断情报源数据的数据结构类型。s102:若数据结构类型为非结构化类型,则将情报源数据输入预先训练的情报实体识别模型,得到情报源数据中的各情报实体,情报实体识别模型为利用情报样本数据,基于预先设置的字与字的前后位置约束条件,训练得到的神经网络模型,情报实体为多个字或单个字组成的信息。s103:按照预先设置的组合形式,将各情报实体组合得到网络威胁情报。本发明实施例提供的基于深度学习的网络威胁情报自动抽取方法,可以利用预先训练的情报实体识别模型进行网络威胁情报的自动抽取,而情报实体识别模型在训练时引入了字与字的前后位置约束条件,该位置约束条件限制情报实体中字与字的前后位置关系,因此减少情报实体乱序的结果出现,从而提高网络威胁情报识别的准确率。情报源数据的数据结构类型分为结构化情报源数据、半结构化情报源数据、非结构化情报源数据。非结构化情报源数据包含大量语义信息,通过对这些语义信息的分析可以得到事件层次情报,事件层次情报主要指攻击策略、攻击技术和行为模式,是对攻击者影响最大同时也是价值最高的情报数据。基于事件层次的事实收集与分析,有助于分辨并判定攻击活动背后组织的来源、分工、资源状况、人员构成、行动目标等要素。情报实体识别指从情报源数据中识别出命名性指称项,为情报关系抽取等任务做铺垫,其中情报实体包括威胁人员、威胁目标、威胁组织等类型的内容。本发明实施例中,对获取的情报源数据的数据结构类型进行判断,当判断出数据结构类型为非结构化类型,则将情报源数据输入预先训练的情报实体识别模型中,得到情报源数据中的各情报实体。对于其他数据结构类型的情报源数据,则采取其他方法得到情报源数据中的各情报实体。情报实体识别模型为利用情报样本数据,基于预先设置的字与字的前后位置约束条件,训练得到的神经网络模型,而字与字的前后位置约束条件使得情报实体识别模型在训练时可以学习到字与字的前后位置之间的依赖和约束,从而在情报自动抽取时可以避免实体乱序、无效等情况。情报实体为多个字或单个字组成的信息,根据这一信息可以得到威胁的人员、组织等。比如识别出情报实体“张某某”、“杭州”、“某某机构”,那么可以得到一条网络威胁信息:张某某来自杭州某某机构;或者识别出情报实体“张某某”、“贼”,那么可以得到一条网络威胁信息:张某某是贼。各情报实体之间存在一定的关系,单个情报实体难以还原攻击事件和攻击场景等,本发明实施例中按照预先设置的组合形式,将各情报实体组合得到网络威胁情报。预先设置的组合形式是情报实体与情报实体在网络威胁场景下的属性标识之间的组合形式,根据网络威胁情报领域标准构建cti领域本体模型,根据cti领域本体模型确定包含完整的事件情报必要元素的组合形式,使得本发明实施例得到的包含多种类型的多个情报实体组成的网络威胁情报能够准确还原攻击事件和攻击场景,实现复杂情报的规范表达。特别的,情报样本数据包括由多个带标签的字组成的文本数据;情报实体识别模型包括双向长短期记忆网络层和条件随机场层;本发明实施例提供一种情报实体识别模型的训练方法,参见图2,该过程包括:s201:初始化双向长短期记忆网络层和条件随机场层的参数。s202:利用预先训练的情报字向量生成网络,将文本数据中的每个字分别转换为对应的目标字向量。s203:分别将各目标字向量输入双向长短期记忆网络层,得到每个字的标签概率。s204:将每个字的标签概率输入条件随机场层,得到文本数据中每个句子的标签概率。s205:根据条件随机场层输出的每个句子的标签概率,以及每个句子对应的预设标签信息,计算情报实体识别模型的损失函数;根据损失函数,调整双向长短期记忆网络层和条件随机场层的参数。s206:判断迭代次数是否达到预设次数,若否,执行步骤s203至步骤s205;若是,执行步骤s207。s207:得到训练后的情报实体识别模型。本发明实施例中对情报实体识别模型的训练过程进行说明,非结构化情报源数据是一种文本数据,训练之前采集的非结构化情报源数据为原始文本,训练阶段采用基于深度学习的训练方法,主要分为数据预处理、情报实体识别模型训练以及模型优化。其中数据预处理包括对原始文本的分字和去停用词处理、热编码转化、字向量生成,情报实体识别模型包括bilstm(bi-directionallongshort-termmemory,双向长短期记忆网络)层和crf(conditionalrandomfield,条件随机场)层的训练。使得情报实体识别模型在训练时在对情报文本上下文特征自动学习的基础上,学习到字与字的前后位置之间的依赖和约束,从而在情报自动抽取时可以避免实体乱序、无效等情况,减少情报实体乱序的结果出现,从而提高网络威胁情报识别的准确率。参见图3,为本发明实施例提供的情报实体识别模型的层级结构,对于输入的情报源数据,首先生成目标字向量,将目标字向量输入到bilstm层,然后bilstm层的输出作为crf层的输入,由crf层输出句子的标签概率分布,得到最终的句子标签,图中数字为字或句子对应的标签概率,b-person、i-person、o、b-location、i-organization、o-organization等是根据标注方式得到的位置标签。lstm(longshort-termmemory,长短期记忆网络)是一种特殊的rnn(recurrentneuralnetwork,循环神经网络),循环神经网络解决问题的思路是将以前的信息连接到当前任务,如考虑一种语言模型,该模型根据前面的词语来预测下一个单词,也就是根据需求,通过对上下文的学习,完成预测任务。lstm针对rnn的改进是解决了长距离依赖问题,也就是当相关信息和需要该信息的地方的距离非常大,lstm可以通过自身结构,默认记住较长的历史信息。bilstm是双向的lstm神经网络,可以同时实现过去和未来上下文的学习,如在识别“ddos攻击”这一情报实体的时候,lstm可以预测出“o”这个字符之前的字符“d”,bilstm则可以在此基础上同时预测出“o”后面将会出现的字符是“s”,这便是得益于bilstm在模型训练阶段的双向学习。因此,为了能够有效利用过去和未来的上下文信息,本发明实施例采用bilstm神经网络结构作为情报实体识别模型的第一层。bilstm神经网络在解决自然语言处理问题时的不足在于,使用训练集进行模型训练时,它能够自动学习训练集文本的上下文特征,但无法学习到训练集文本中相邻位置的标签依赖关系。因此,bilstm神经网络模型在预测时,有可能输出乱序或无效的实体预测结果,如标签b-person(人名首字)后跟着标签b-location(地名首字),这样组合抽取得到的并非一个真正的情报实体“person(人名)”或“location(地名)”。针对这种不足,本发明实施例加入了基于crf的标签依赖关系学习。模型训练时,在使用bilstm神经网络完成对训练集的学习后,再接入一层crf,学习相邻标签之间的依赖和约束。原始文本不能直接作为模型输入,需要对原始文本进行预处理。其中,去停用词处理指自动过滤掉某些高频且无意义的字或词,如“的”。对非结构化情报源数据去停用词后进行分字处理。分字指将文本中的句子以字为基本处理单元进行分割,相比现有流程中的分词处理,对于同样大小的句子,这种分割方式将在后续获得更加丰富的文本特征。在训练时,还需要对分字后的句子中的每个字进行人工标注来构成情报样本数据,也叫训练集。标注方式有bemo、bio、bioes等,bioes的标注方式中,b(begin)代表一个情报实体的起点位置,e(end)代表一个情报实体终点位置,i(inside)代表一个情报实体词的非起点位置的字,o代表无关字,s代表一个单字构成一个词。通过进行人工标注使得每个字有一个位置标签,并且在标注时将cti领域本体模型应用到训练集的人工标注过程,对情报实体进行分类,比如某几个字组成一个情报实体,这个情报实体属于威胁组织的类型,根据cti领域本体模型确定完整的事件情报的必要元素,确保模型在检测阶段输出结果是有效、完整且基于领域标准的。对于神经网络而言,输入值都是用向量表示的,本发明实施例中利用预先训练的情报字向量生成网络,得到目标字向量。然后进行情报实体识别模型训练,首先初始化双向长短期记忆网络层和条件随机场层的参数,然后再通过训练过程不断优化这些参数。将每个字的目标字向量输入到bilstm层,输入每个字的目标字向量,输出是文本数据中每个字获得的所有不同标签的概率得分,比如一个字的输出结果为[0.9,0.1,…,0.07],表示bilstm层得到的关于该字位置的概率分布中,该字在位置1的标签概率为0.9,在位置2的标签概率为0.1,以此类推,在位置n的的标签概率为0.07。具体而言,将字向量层输出的由每个字的目标字向量组成的句子向量序列x=(x1,x2,…,xn)作为两条lstm各个时间步的输入,将t时刻正向lstm输出的隐藏状态序列与后向lstm输出的隐藏状态序列的进行位置拼接,得到完整隐藏状态序列(h1,h2,…,hn)∈rn×m,将完整隐藏状态序列映射到k维(k是训练集中标注的标签数),得到矩阵p,记做:p=(p1,p2,…,pn)∈rn×k(1)rn×k表示矩阵p是一个n行×k列的实数矩阵,p1、p2等为一维向量,矩阵p的中每一维的pij可视作句子中第i个字被分类到第j类标签的打分值。至此,在预测时使用bilstm神经网络可以实现对文本数据的自动标注,第i个字对应的标签即为矩阵中获得最高得分的标签。crf层输入是bilstm层的输出:文本数据中每个字获得的所有不同标签的概率得分,输出是句子对应的所有可能的标签分布,以及每个标签分布所对应的概率,比如一个句子为(字1,字2,字3,字4,字5),每个字有一个位置标签,其中该句子对应标签分布为(字1:标签a,字2:标签a,字3:标签b,字4:标签c,字5:标签b)的概率为0.9,对应的标签分布为(字1:标签b,字2:标签a,字3:标签b,字4:标签c,字5:标签a)的概率为0.2,a、b、c表示标签的类别,取概率最高的标签分布为最终输出结果。通过上述例子可以发现,一个位置的标签是会改变的,称之为转移,将所有标签类别n分别作为矩阵的行和列,可以得到一个状态转移矩阵a,对应aij表示从第i个标签到第j个标签的转移概率,或者说从第i个标签转移到第j个标签的得分,状态转移矩阵是crf层的一个参数,在训练模型之前,可以随机初始化状态转移矩阵中的转移概率。这些转移概率将随着训练的迭代过程被更新,即crf层可以自动学习到位置标签之间的约束条件。具体而言,假设输入句子为x的条件下,对于句子x对应的所有可能的标签预测结果的集合yx,x对应的最终句级标注序列为集合yx某元素y=(y1,y2,...,yn)的条件概率计算如下:其中exp(x)是一种函数运算,y'为y的导数,s(x,y)代表句级标注序列为y的可能性得分,计算公式如下:p是bilstm层的输出的特征矩阵,pi,yi表示输入序列中字xi分类到第yi个标签的得分,a是crf层的特征参数,是crf层通过学习标签之间的关系特征得到的状态转移矩阵,ayi-1,yi表示从第yi-1个标签到第yi个标签的转移概率。在得到crf层的输出之后,更新情报实体识别模型中双向长短期记忆网络层和条件随机场层的参数,本发明实施例中采用交叉熵作为情报实体识别模型训练时的损失函数,其中交叉熵的计算为:h(p,q)=-∑p(xi)log(q(xi))(4)p是真实标注情况中句子对应的预设标签信息的概率分布,q是情报实体识别模型训练时对情报样本数据学习得到的句子的标签概率分布,xi是第i个句子第x个标签对应的概率。情报实体识别模型正向传递会产生交叉熵损失,是输出结果和真实值之间的误差,使用小批量梯度下降法将这个误差反向传播到情报实体识别模型的每一层进行参数调整。实际训练中,使用情报样本数据中的全部数据对模型进行一次完整训练为一次迭代,预先设置迭代次数,当迭代次数达到预设次数时,模型训练停止,得到训练后的情报实体识别模型。此时得到的情报实体识别模型不一定是最优的模型,通过调整模型超参数,比如学习率、迭代次数、dropout(按照一定的概率将一部分神经网络单元暂时从神经网络中丢弃,改变学习速率)等,设置单一变量实验,比如在其他模型超参数一定时,设置不同的迭代次数,进行多次实验,比如一次实验中的迭代次数为20、另一次实验中的迭代次数为30、另一次实验中的迭代次数为50,得到多次实验下的情报实体识别模型,对比多次实验的训练结果,取最优的训练结果对应的模型为最优的情报实体识别模型。其中对比多次实验的训练结果时,将抽取得到的情报实体,与进行了人工标注的情报样本数据进行对比,统计tp(情报实体边界(情报实体中的字及字的顺序)和类型同时正确识别的个数)、fp(情报实体边界识别错误、情报实体类型识别错误、情报实体边界和类型同时识别错误的个数)、fn(情报实体在情报样本数据中有标注但没有被识别的个数)、fp(没有标注的情报实体的个数),计算情报实体识别模型的精确率、召回率、f1-score(是准确率和召回率的一种加权平均),最终取精确率(召回率、f1-score)数值高的训练结果对应的模型为最优的情报实体识别模型。总之,本发明实施例加入crf层对bilstm层的输出做进一步的合法性约束,确保不会出现乱序或无效实体,提高了识别的准确率。特别的,步骤s102,包括:以字为分割单元,将情报源数据进行分割,得到情报源数据中的每个字;利用预先训练的情报字向量生成网络,将情报源数据中的每个字分别转换为对应的目标字向量;将各目标字向量输入预先训练的情报实体识别模型,得到情报源数据中的各情报实体。本发明实施例中,在检测阶段将情报源数据输入预先训练的情报实体识别模型时,需要对情报源数据进行预处理,预处理的目的是得到目标字向量,预处理的过程包括分字和去停用词处理、热编码转化、字向量生成等,在完成字向量生成时,利用预先训练的情报字向量生成网络得到每个字的目标字向量。将各目标字向量输入预先训练的情报实体识别模型,可以得到以字为单位完成了情报实体自动标注的文本,情报源数据中每个字在其所在句子序列的最优预测标签(最接近正确结果的预测标签)将由bilstm层的特征矩阵p和crf层的转移矩阵a共同决定,将自动标注结果作为组合依据进行情报实体抽取。由于在模型训练阶段,训练集是结合cti领域本体模型制定的,因此在模型检测时,得到的是基于领域标准的、包含完整的事件情报必要元素的预测结果。特别的,本发明实施例提供一种情报字向量生成网络的训练方法,参见图4,该方法包括:s401:按照预设规则,针对文本数据的每个字,设置相应的初始字向量。s402:将每个字对应的初始字向量输入字向量训练网络,得到每个字的字向量输出概率。s403:将输出概率最大的字的字向量与该字的初始字向量做比较,确定字向量训练网络的转换误差。s404:判断误差是否大于预设阈值,若是,执行步骤s405;若否,执行步骤s406。s405:调整字向量训练网络的权重参数;并迭代执行步骤s402至步骤s404。s406:得到情报字向量生成网络。本发明实施例中设置相应的初始字向量的过程为热编码处理,热编码是将文本数据的每个字表示为离散的稀疏向量,具体方法是:将文本按句子划分,对于输入句子序列中每个位置,当前位置设为1,其余设为0,得到初始字向量,比如[1,0,…,0],每个字向量的维度是句子的大小。以一句子序列x作为原始输入,定义为x=(x1,x2,…,xn),x1到xn分别表示句子序列的n个字,对其做分字处理并进行人工标注,同时构造一个字典{x1:1,x2:2,…,xn:n},字典中“x1:1”表示是x1第1个字,1是字x1的标识,则其对应热编码处理结果如表1所示,表中token_id表示字的标识,one-hot表示热编码处理后字的向量。表1输入层热编码因为热编码后的向量维度过大、特征分布稀疏,因此在进入初始模型训练之前,还需要将热编码后获得的高维稀疏向量转化为低维稠密向量。区别于现有的一般流程中随机初始化的文本向量化方式,本发明实施例中使用预先训练的情报字向量生成网络,将高维稀疏向量转化为低维稠密向量,低维稠密向量为需要的目标字向量。情报字向量生成网络是使用一定规模的非结构化情报文本,作为输入来训练得到的,同时获得一份情报字向量查找表,用于求解更接近目标文本真实含义的向量表示。参见图5为情报字向量生成网络的网络结构示意图,该网络包括输入层510、隐藏层520和输出层530,该网络的训练过程为:假设输入的分字文本有c个字,每个字的热编码向量是一维向量,将文本序列的热编码向量c×v-dim接入一浅层神经网络,并使每个热编码向量均乘以输入权重矩阵wv×n,共享的输入权重矩阵wv×n为初始化所得,n为自定的隐层维数;c×v-dim和wv×n相乘后得到的向量相加求平均得到的隐层向量hi,隐层向量与输出权矩阵w’v×n相乘,相乘的结果经激活函数处理后得到目标字的输出向量对应的概率分布yi;最大概率指向的输出向量与该目标字的热编码向量做比较,用以计算神经网络的前向传递误差,误差应越小越好,当误差大于预设阈值时,将误差沿神经网络反向传播更新输入权重矩阵wv×n;多次更新后,误差趋于收敛,得到情报字向量生成网络,隐层向量为情报字向量生成网络预测的目标字向量。此处得到的输入权重矩阵本质上是一个由训练网络对输入的分字文本多次迭代后得到的look-uptable(字向量查找表),对输入的分字文本中目标字的热编码向量和字向量查找表做矩阵乘即可得到每个字的目标字向量。通过训练情报字向量生成网络得到一种情报字向量查找表,将其用于模型训练和预测时目标字向量的快速生成,代替随机初始化的向量,可以丰富原始文本的特征向量表示。特别的,步骤s103,包括:确定各情报实体在网络威胁场景下的属性标识;利用预设的表达模板,根据各情报实体及各情报实体的属性标识,组合得到网络威胁情报,表达模板中设定了情报实体与属性标识的组合方式。在识别出情报实体之后,需要将各情报实体进行组合,形成标准情报并存储。现有的主流威胁情报标准包括以stix(structuredthreatinformationexpression,结构化威胁信息表达式)为代表的国际标准和国家标准《信息安全技术网络安全威胁信息格式规范》,stix提供了基于标准xml的语法描述威胁情报的细节和威胁内容的方法,是一种图模型表达方法,stix节点是sdo(stixdataobjects,stix数据对象),边是sro(stixrelationshipobjects,stix关系对象),stix定义了8种数据对象:可观测数据、攻击指标、安全事件、攻击活动、威胁主体、攻击目标、攻击方法、应对措施,该模型可以实现常见结构化、半结构化基础情报的规范表达。《信息安全技术网络安全威胁信息格式规范》从可观测数据、攻击指标、安全事件、攻击活动、威胁主体、攻击目标、攻击方法、应对措施等八个组件进行描述,并将这些组件划分为对象、方法和事件三个域,利用该模型可以实现非结构化复杂情报的规范表达。以上两种标准针对不同结构的情报制定不同的规范表达模板,在读取时不同结构的情报之间不互通,不利于情报共享。针对网络威胁情报在存储和表达上的完整性、有效性不足的问题,参见图6,本发明实施例中将网络威胁情报领域的标准规范嵌入本体的知识模型,将现有的成熟的情报应用标准中涉及到的威胁元素,依照本体模型本身具有的概念、关系及属性层次结构去二次组织,构造cti领域本体模型。本体在计算机科学与信息科学领域的理论表述是:一种“形式化的,对于共享概念体系的明确而又详细的说明”。简言之,本体是一种共享词表,或者说一种术语集,具有层次结构,是特定领域之中某套概念及其相互之间关系的形式化表达,目标是实现特定领域知识的人机交流。领域本体是本体论中的一个子集,指专业性的本体,提供了某个专业领域中概念、概念的属性、概念间的关系以及属性和关系的约束,是在该领域里占主导地位的理论。cti领域本体模型提供了网络威胁情报领域中情报实体的概念、情报实体的属性、情报实体间的关系以及属性和关系的约束。根据cti领域本体模型建立表达模板,设定情报实体与属性标识的组合方式,属性标识表示网络威胁情报领域中情报实体的类型,该表达模板应包含cti领域本体模型提供的所有网络威胁情报构成元素:威胁记录、威胁活动、威胁组织、漏洞利用、威胁指示、观测数据、攻击工具、攻击模式、恶意软件,从而实现最基础元素的互通,实现基于领域标准的多源异构cti的存储和表达,这将有利于网络威胁情报的关联分析及共享。特别的,本发明实施例提供另一种基于深度学习的网络威胁情报自动抽取方法,参见图7,该方法包括:s701:获取情报源数据,并判断情报源数据的数据结构类型。s702:若数据结构类型为非结构化类型,则将情报源数据输入预先训练的情报实体识别模型,得到情报源数据中的各情报实体,情报实体识别模型为利用情报样本数据,基于预先设置的字与字的前后位置约束条件,训练得到的神经网络模型,情报实体为多个字或单个字组成的信息。s703:利用预设的情报实体集合,对情报源数据中的未识别内容进行识别,识别出未识别内容中的情报实体。s704:按照预先设置的组合形式,将所有情报实体组合得到网络威胁情报。本发明实施例中,预设的情报实体集合是网络威胁情报领域本体模型中概念对应的术语名词实例集合,是cti领域词典。领域词典的构建可以通过对大规模的领域语料进行高频词抽取实现。情报实体识别模型训练时所使用的训练集中的标签是人工标注的,人工标注虽然准确度较高,但往往费时费力,如果无法保证训练集的规模足够大,模型训练不够充分,则模型检测的结果将会出现情报遗漏,造成识别的实体覆盖率降低。领域词典可以通过分词匹配实现一定程度上的知识抽取,但由于词汇的爆炸增量式增长,词典分词匹配的方法从匹配速度和实现难度上都有很大局限。因此本发明实施例将词典分词匹配作为情报实体识别模型抽取后的校正方法,避免情报遗漏。本发明实施例使用tf-idf(termfrequency–inversedocumentfrequency,词频-逆文档频率)方法构造一种cti领域词典。在情报实体识别模型抽取情报实体后,基于bmm(bi-directionalmaximummatching,双向最大匹配)算法,利用cti领域词典对情报源数据中的剩余字进行识别,分别正向和逆向对于待分字的文本句子切分出单字串,并将其和cti领域词典中的词进行逐字比对,比对到匹配的术语就记录下来,否则继续增加或者减少一个单字,继续比对,直到最终待分字只剩一个单字,且它和cti领域词典中任何术语都不匹配为止,记录下来的术语是剩余字中的情报实体。本发明实施例对情报识别模型的检测结果进行进一步校正,增加了情报实体的识别覆盖率,进一步保证了情报的完整性。特别的,本发明实施例提供另一种基于深度学习的网络威胁情报自动抽取方法,参见图8,该方法包括:s801:获取情报源数据,并判断情报源数据的数据结构类型。s802:若数据结构类型为结构化数据,提取情报源数据中的各情报实体。s803:确定各情报实体在网络威胁场景下的属性标识。s804:利用表达模板,根据各情报实体及各情报实体的属性标识,组合得到网络威胁情报。结构化情报源数据大多是底层基础情报(单个样本可以作为情报单位的),包括文件哈希(如md5(messagedigestalgorithmmd5,消息摘要算法)和sha(securehashalgorithm,数据加密算法)系列文件哈希)、主机和网络特征(程序运行时的互斥、写入的注册表项等)和网络特征(ip/域名、访问的url(uniformresourcelocator,统一资源定位符)、通信协议等信息),通过制定爬取策略,可以通过开放接口爬取情报源数据所在数据库获得,结构化情报源数据是已经形成了标准化的威胁情报格式,但是其格式不是一种可以通用的形式。本发明实施例中对结构化情报源数据进行情报实体提取,然后按照cti领域本体模型对获得的各情报实体进行重组整合,形成标准情报并存储。例如,本发明实施例中定义基于cti领域本体模型的ip基础情报表达方式如下:{“intelligence”:[{‘source’:’情报源1’,’type’:’情报类型’,’descriptions’:’情报说明描述’,’time’:’情报产生时间’},...]url:[{‘url’:‘相关url1’},{‘url’:‘相关url2’},...]“domain”:[{‘domain’:‘相关domain1’},{‘domain’:‘相关domain1’},...]“event”:[{‘event’:‘相关事件1’},{‘event’:‘相关事件2’},...]“malware”:[{‘malware’:‘相关恶意软件1’},{‘malware’:‘相关恶意软件2’},...]......}从中可以获取关于一个ip的所有网络威胁情报,比如该ip在什么时间在哪个网页中做了什么事情、该ip与哪些域名有关系等等。ip基础情报在数据库中的存储格式如表2所示。表2ip基础情报存储格式特别的,本发明实施例提供另一种基于深度学习的网络威胁情报自动抽取方法,参见图9,该方法包括:s901:获取情报源数据,并判断情报源数据的数据结构类型。s902:若数据结构类型为半结构化数据,对情报源数据中的网页模板进行分析,提取情报源数据中的各情报实体。s903:确定各情报实体在网络威胁场景下的属性标识。s904:利用表达模板,根据各情报实体及各情报实体的属性标识,组合得到网络威胁情报。半结构化情报源数据也是底层基础情报,半结构化情报源数据中情报实体是嵌入在网页结构中的,通过制定爬取策略,对半结构化情报源数据所在网页等进行数据爬取,拆除html模板后可以提取半结构化情报源数据中的情报实体,然后按照cti领域本体模型对获得的各情报实体进行重组整合,形成标准情报并存储。总之,本发明实施例针对不同数据结构类型的情报源数据提出了不同的情报抽取方法,如图10所示,对于结构化数据,比如开源情报数据库或链接数据,通过api(applicationprogramminginterface,应用程序接口)请求爬取源数据,对结构化情报源数据中的情报实体进行重组整合;对于半结构化数据,比如网页列表、网页infobox(信息框),拆除数据中的网页模板,提取情报实体进行重组整合;对于非结构化数据,比如网页文本,拆除数据数据中的网页模板,利用复合bilstm与crf的情报实体识别模型并结合cti领域词典实现情报实体的自动抽取,非结构化情报源数据的处理流程如图11所示,首先训练情报实体识别模型,需要对训练数据进行分字、标注、停用词处理、热编码处理、字向量生成等预处理过程,然后训练基于bilstm-crf的情报实体识别模型,训练完成后将该模型用于测试,需要对测试数据进行分字、标注、停用词处理、热编码处理、字向量生成等预处理过程,然后利用训练好的情报实体识别模型实现非结构化情报源数据中情报实体的自动抽取,然后利用cti领域词典对情报实体识别模型的抽取结果进行遗漏补充。在对情报实体进行整合时,利用基于领域本体规范的组合方式形成网络威胁情报,存储到情报数据库中。本发明实施例针对多源异构的cti自动抽取方法给出了实现细节,针对现有方法的不足做改进,提高了非结构化cti自动抽取的精确度、准确度;实现了基于领域标准的多源异构cti的存储和表达,有利于cti的关联分析及共享。从而解决并优化了多源异构情报源数据中的cti自动抽取问题,并解决了cti在存储和表达上的完整性、有效性不足的问题。具有以下有益效果:(1)构建基于领域标准的cti领域本体模型,并应用到多源异构的cti的整合、重组和cti识别模型的训练过程中,保证了抽取所得cti的有效性和完整性。(2)通过预训练情报字向量生成网络得到一种情报字向量表,代替随机初始化的词向量,丰富了原始文本的特征向量表示。采用基于深度学习的bilstm-crf复合模型作为情报实体识别模型的训练框架,bilstm层的神经元能够学习具有上下文关系的时空序列数据特征,同时双向的网络连接能够更好地进行误差传播,使训练速度更快、效果更好;针对bilstm神经网络在ner应用中的不足,将bilstm层对于情报源数据学习的输出作为crf层的特征输入,有效地利用了文本的字间依赖和约束,提高了情报识别的准确率。(3)构建一种cti领域词典对基于深度学习的情报实体识别模型预测结果进行校正,提高了实体识别的覆盖率。第二方面,本发明实施例提供一种基于深度学习的网络威胁情报自动抽取装置,参见图12,还装置包括数据采集模块1210、识别抽取模块1220、组合模块1230,其中:数据采集模块1210,用于获取情报源数据,并判断情报源数据的数据结构类型;识别抽取模块1220,用于若数据结构类型为非结构化类型,则将情报源数据输入预先训练的情报实体识别模型,得到情报源数据中的各情报实体,情报实体识别模型为利用情报样本数据,基于预先设置的字与字的前后位置约束条件,训练得到的神经网络模型,情报实体为多个字或单个字组成的信息;组合模块1230,用于按照预先设置的组合形式,将各情报实体组合得到网络威胁情报。特别的,情报样本数据包括由多个带标签的字组成的文本数据;情报实体识别模型包括双向长短期记忆网络层和条件随机场层;情报实体识别模型的训练方式,包括:步骤a,初始化双向长短期记忆网络层和条件随机场层的参数;步骤b,利用预先训练的情报字向量生成网络,将文本数据中的每个字分别转换为对应的目标字向量;步骤c,分别将各目标字向量输入双向长短期记忆网络层,得到每个字的标签概率;步骤d,将每个字的标签概率输入条件随机场层,得到文本数据中每个句子的标签概率;步骤e,根据条件随机场层输出的每个句子的标签概率,以及每个句子对应的预设标签信息,计算情报实体识别模型的损失函数;根据损失函数,调整双向长短期记忆网络层和条件随机场层的参数,并迭代执行步骤c至步骤e,直至迭代次数达到预设次数,得到训练后的情报实体识别模型。特别的,识别抽取模块1220具体可以用于:以字为分割单元,将情报源数据进行分割,得到情报源数据中的每个字;利用预先训练的情报字向量生成网络,将情报源数据中的每个字分别转换为对应的目标字向量;将各目标字向量输入预先训练的情报实体识别模型,得到情报源数据中的各情报实体。特别的,情报字向量生成网络的训练方式,包括:步骤a,按照预设规则,针对文本数据的每个字,设置相应的初始字向量;步骤b,将每个字对应的初始字向量输入字向量训练网络,得到每个字的字向量输出概率;步骤c,将输出概率最大的字的字向量与该字的初始字向量做比较,确定字向量训练网络的转换误差,当误差大于预设阈值时,调整字向量训练网络的权重参数;并迭代执行步骤b至步骤c,直至误差小于或等于预设阈值时,得到情报字向量生成网络。特别的,组合模块1230具体可以用于:确定各情报实体在网络威胁场景下的属性标识;利用预设的表达模板,根据各情报实体及各情报实体的属性标识,组合得到网络威胁情报,表达模板中设定了情报实体与属性标识的组合方式。特别的,本发明实施例提供的装置还包括:第一数据采集模块,用于利用预设的情报实体集合,对情报源数据中的未识别内容进行识别,识别出未识别内容中的情报实体。特别的,本发明实施例提供的装置还包括:第一提取模块,用于若数据结构类型为结构化数据,提取情报源数据中的各情报实体;第一确定模块,用于确定各情报实体在网络威胁场景下的属性标识;第一组合模块,用于利用表达模板,根据各情报实体及各情报实体的属性标识,组合得到网络威胁情报。特别的,本发明实施例提供的装置还包括:第二提取模块,用于若数据结构类型为半结构化数据,对情报源数据中的网页模板进行分析,提取情报源数据中的各情报实体;第二确定模块,用于确定各情报实体在网络威胁场景下的属性标识;第二组合模块,用于利用表达模板,根据各情报实体及各情报实体的属性标识,组合得到网络威胁情报。本发明实施例提供的基于深度学习的网络威胁情报自动抽取装置,可以利用预先训练的情报实体识别模型进行网络威胁情报的自动抽取,而情报实体识别模型在训练时引入了字与字的前后位置约束条件,该位置约束条件限制情报实体中字与字的前后位置关系,因此减少情报实体乱序的结果出现,从而提高网络威胁情报识别的准确率。第三方面,本发明实施例提供一种电子设备,如图13所示,包括处理器1301、通信接口1302、存储器1303和通信总线1304,其中,处理器1301、通信接口1302、存储器1303通过通信总线1304完成相互间的通信;存储器1303,用于存放计算机程序;处理器1301,用于执行存储器1303上所存放的计算机程序时,至少实现如下步骤:获取情报源数据,并判断情报源数据的数据结构类型;若数据结构类型为非结构化类型,则将情报源数据输入预先训练的情报实体识别模型,得到情报源数据中的各情报实体,情报实体识别模型为利用情报样本数据,基于预先设置的字与字的前后位置约束条件,训练得到的神经网络模型,情报实体为多个字或单个字组成的信息;按照预先设置的组合形式,将各情报实体组合得到网络威胁情报。上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。本实施例中,处理器1301通过读取存储器1303中存储的机器可执行指令,被机器可执行指令促使能够实现:获取情报源数据,并判断情报源数据的数据结构类型;若数据结构类型为非结构化类型,则将情报源数据输入预先训练的情报实体识别模型,得到情报源数据中的各情报实体,情报实体识别模型为利用情报样本数据,基于预先设置的字与字的前后位置约束条件,训练得到的神经网络模型,情报实体为多个字或单个字组成的信息;按照预先设置的组合形式,将各情报实体组合得到网络威胁情报。本发明实施例提供的基于深度学习的网络威胁情报自动抽取方法,可以利用预先训练的情报实体识别模型进行网络威胁情报的自动抽取,而情报实体识别模型在训练时引入了字与字的前后位置约束条件,该位置约束条件限制情报实体中字与字的前后位置关系,因此减少情报实体乱序的结果出现,从而提高网络威胁情报识别的准确率。第四方面,本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时至少实现如下步骤:获取情报源数据,并判断情报源数据的数据结构类型;若数据结构类型为非结构化类型,则将情报源数据输入预先训练的情报实体识别模型,得到情报源数据中的各情报实体,情报实体识别模型为利用情报样本数据,基于预先设置的字与字的前后位置约束条件,训练得到的神经网络模型,情报实体为多个字或单个字组成的信息;按照预先设置的组合形式,将各情报实体组合得到网络威胁情报。本实施例中,机器可读存储介质在运行时执行本发明实施例所提供的方法的计算机程序,因此能够实现:获取情报源数据,并判断情报源数据的数据结构类型;若数据结构类型为非结构化类型,则将情报源数据输入预先训练的情报实体识别模型,得到情报源数据中的各情报实体,情报实体识别模型为利用情报样本数据,基于预先设置的字与字的前后位置约束条件,训练得到的神经网络模型,情报实体为多个字或单个字组成的信息;按照预先设置的组合形式,将各情报实体组合得到网络威胁情报。本发明实施例提供的基于深度学习的网络威胁情报自动抽取方法,可以利用预先训练的情报实体识别模型进行网络威胁情报的自动抽取,而情报实体识别模型在训练时引入了字与字的前后位置约束条件,该位置约束条件限制情报实体中字与字的前后位置关系,因此减少情报实体乱序的结果出现,从而提高网络威胁情报识别的准确率。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1