1.一种网络安全知识图谱构建方法,其特征在于,包括:
构建网络安全领域本体模型,所述模型定义为CDO模型,CDO=(C,I,R),其中CDO表示网络安全领域本体,C={c1,c2,…cx…,cm}表示网络安全领域类的集合,m表示网络安全领域类集合的类数量,cx为某种网络安全领域类;
I={i1,i2,…ix…,in}表示实体集合,n表示实体数量,ix表示某个网络安全领域类的实体;R={r1,r2,…rx…,rl}表示类与类之间关系的集合,l表示网络安全领域类与类的关系数量,rx表示某一种类与类的关系;
从互联网中获取结构化数据、半结构化数据和非结构化文本数据;
从结构化数据、半结构化数据和非结构化文本数据进行知识抽取得到网络安全实体、属性及关系;
将网络安全实体、属性和关系基于CDO模型存储到图数据库中,完成网络安全知识图谱的构建;
从非结构化文本数据进行知识抽取得到网络安全实体、属性及关系,具体包括:利用非结构化文本数据抽取模型对非结构化文本数据进处理得到自动化标注数据;
根据得到的自动化标注数据抽取得到对应的网络安全实体、属性及关系;
所述非结构化文本数据抽取模型的训练方法包括:
预定义应用于网络安全的文本标签集,文本标签集中包括若干个标签;
获取非结构化文本数据样本形成以句子为单位的语料数据样本集;
基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;
将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集;
将语料数据样本集和人工标注数据集对应的数字矩阵集均对应地分为训练集和测试集;
将训练集输入到利用神经网络构建的非结构化文本数据抽取模型中进行训练,得到收敛的非结构化文本数据抽取模型,并利用测试集对非结构化文本数据抽取模型进行验证;
所述实体分为主体和客体;
所述文本标签集表示为CyberTag,
CyberTag = { O , BS1 , IS1 , ES1 , SS1 , BS2 , IS2 , ES2 , SS2 , has , exploit , belong , threat },O , BS1 , IS1 , ES1 , SS1 , BS2 , IS2 , ES2 , SS2 , has , exploit , belong , threat均为文本标签集中的标签;
其中文本标签集中O代表威胁情报类以外的其他安全领域类中的实体的文本字符,BS代表威胁情报类中的实体属性文本字符的开始位置,IS代表威胁情报类中的实体属性文本字符的中间位置,ES代表威胁情报类中的实体属性文本字符的结尾位置,SS代表单个文本字符的威胁情报类中的实体属性,所述文本字符为汉字或英文单词;威胁情报类中的实体属性位置由数字“1”和“2”表示, 1表示主体属性,2表示客体属性;has、exploit、belong和threat为威胁情报类中实体的关系属性的值,has代表主体与客体的关系是拥有或存在;
exploit代表主体与客体的关系是利用,belong代表主体与客体的关系是属于,threat代表主体与客体的关系是威胁和攻击;
所述基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集,具体包括:根据文本标签集中的标签判定语料数据样本集中的每个句子的汉字和英语单词所对应的标签,得到每个句子对应的标注结果;
根据每个句子对应的标注结果,每个句子中的汉字和英语单词按照文本标签集中标签的顺序进行存储生成标签数组,其中句子中没有出现的标签则在标签数组中所述标签对应的位置填上预设符号,文本标签集中的标签O对应的汉字和/或英语单词在标签数组中标签O对应的位置填上所述预设符号;
语料数据样本集中句子对应的标签数组组成人工标注数据集。
2.根据权利要求1所述的网络安全知识图谱构建方法,其特征在于,所述半结构化数据包括事件数据;
所述事件数据包括安全事件告警信息,其通过OSSIM 平台从不同的安全设备上获取。
3.根据权利要求2所述的网络安全知识图谱构建方法,其特征在于,网络安全领域类的集合C包括与网络资产相关的类、与脆弱性相关的类、与攻击相关的类、与观测指标相关的类和与情报相关的类;
所述与网络资产相关的类的集合表示为Class(Assets)={Host, Network Equipment, Safety Equipment, Hardware, OS, Software, Network, IP, Port};
其中,Host表示主机类,Network Equipment表示网络设备类,Safety Equipment表示安全设备类,Hardware表示硬件类,OS表示操作系统类,Software表示软件类,Network表示互联网类,IP表示IP地址类,Port表示端口类;
所述与脆弱性相关的类的集合表示为Class(Fragility)={Vulnerability, Weakness};
其中,Vulnerability表示漏洞类,Weakness表示弱点类;
所述与攻击相关的类的集合表示为Class(Attack)={Attacker, Mean, Tool, Malware, Consequence};
其中,Attacker表示攻击者类,Mean表示攻击方法类,Tool表示攻击工具类, Malware表示恶意软件类, Consequence表示攻击结果类;
所述与情报相关的类的集合表示为Class(Intelligence)={Event, Threat intelligence},
其中,Event表示安全事件类,Threat intelligence表示威胁情报类;
从半结构化数据中进行知识抽取得到网络安全实体、属性及关系,包括从事件数据中进行知识抽取得到网络安全实体、属性及关系;
所述从事件数据中进行知识抽取得到网络安全实体、属性及关系,具体包括:设所述CDO模型中主机类集合为H={h1,h2,h3,…hi…,ha},其中hi表示第i台主机,a表示主机数量;
每个安全事件告警信息含有源IP、源端口、目的IP、目的端口、事件、漏洞类和时间;
提取每台主机发生的安全事件对应的安全事件告警信息,得到每台主机预处理后的安全事件流为E={Emsg1,Emsg2,Emsg3,…Emsgi…, Emsgb},Emsgi表示安全事件,b表示有b个安全事件;
对于安全事件Emsgi,通过在图数据库中检索该安全事件的目的IP 对应的主机hj是否存在;如果不存在,则丢弃该安全事件;否则从图数据库中检索该安全事件的目标 IP 对应的主机hj;
从图数据库中获取所述主机hj存在的漏洞属性集,记为VulsHost;
将安全事件Emsgi中的漏洞类赋值给集合VulsEvent;
如果VulsEvent为空则构建事件实体,根据安全事件Emsgi中的信息生成该事件实体的属性信息写入图数据库;
如果VulsEvent不为空,则判断VulsEvent∩VulsHost是否是空集 ,若是则标记所述安全事件为虚假警报并过滤;若否则构建事件实体,根据安全事件Emsgi中的信息生成该事件实体的属性信息写入图数据库。
4.根据权利要求1所述的网络安全知识图谱构建方法,其特征在于,所述将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集,具体包括:初始化步骤:
设置语料数据样本集的最大句子长度SeqLength=0,设置句子列表DataList、LabelList、AttMaskList、TokenTypeList均为空序列;
根据文本标签集预定义对应的标签字典LabDic,所述标签字典LabDic将文本标签集中的每个标签映射成对应的数字;
读取步骤:
读取语料数据样本集中的一个句子和所述一个句子在人工标注数据集中对应的标注数据,设读取的句子Sen=w1w2w3…wi…wd,wi表示句子中的汉字或英语单词或符号,d表示句子中汉字、英语单词、符号的总数量,设句子对应的标注数据Lab=l1l2l3…li…ld,li表示标签;
数字化步骤:
对句子Sen,在句子开始和结尾处增加开始符号“[CLS]”和结尾符号“[SEP]”,得到新的句子Sen’=”[CLS]w1w2w3…wi…wd[SEP]”;
利用中文词库字典中汉字、英语单词、符号对应的ID,对句子Sen’按逐个汉字、英语单词、符号进行分割,将分割后的汉字、英语单词、符号转换成中文词库字典中的ID,得到数组SenIDS=[wid1,wid2,wid3,…widi,…,widK],K是句子分割后汉字、英语单词、符号的总数量,widK表示中文词库字典中的ID值;
读取所述句子Sen对应的标注数据Lab,对标注数据Lab按逐个标签进行分割,将分割后的标签匹配标签字典LabDic中的数字,得到数组LabIDS=[lid1,lid2,lid3,…,lidi,…,lidk];
矩阵组建步骤:
创建两个长度为K的数组AttMask和TokenType,数组AttMask元素为1,数组TokenType元素为0;
将SenIDS插入DataList,将LabIDS插入LabelList,将AttMask插入AttMaskList,将TokenType插入TokenTypeList;
判断所述一个句子的总数量K是否大于最大句子长度SeqLength,如果是则设置更新SeqLength=K,如果不是则不更新SeqLength;
判断步骤:判断是否完成语料数据样本集的最后一个句子的处理,若不是则对下一个句子循环执行读取步骤、数字化步骤和矩阵组建步骤,若是则执行数据补齐步骤;
数据补齐步骤:
遍历SenIDS,如果SenIDS长度小于SeqLength,则在SenIDS尾部用整数‘0’补齐,使得SenIDS的长度等于SeqLength,对应的LabIDS用‘‑1’补齐,对应的AttMask补‘0’,对应的TokenType补‘‑1’,使得长度均等于SeqLength。
5.根据权利要求4所述的网络安全知识图谱构建方法,其特征在于,利用非结构化文本数据抽取模型对非结构化文本数据进行处理得到自动化标注数据,具体包括:将所述非结构化文本数据进行处理形成以句子为单位的语料数据;
基于文本标签集对所述语料数据进行人工标注得到对应的人工标注数据;
将所述语料数据和对应的人工标注数据进行预处理分别转化成对应的数字矩阵;
将转化得到的数字矩阵输入到利用神经网络构建的非结构化文本数据抽取模型中进行训练,得到收敛的非结构化数据抽取模型;
将待抽取的非结构化文本输入到所述的收敛的非结构化文本数据抽取模型中,输出得到所述非结构化文本数据对应的自动化标注数据。
6.根据权利要求4‑5任一项所述的网络安全知识图谱构建方法,其特征在于,所述根据得到的自动化标注数据抽取得到对应的网络安全实体、属性及关系,具体包括:从所述自动化标注数据中的第1位置开始进行遍历,当满足以下两个条件之一时提取字符作为威胁情报类实体的主体属性;
①查找所述自动化标注数据中的标签,按顺序提取标签为“BS1”“IS1”“ES1”对应的汉字或英语单词,并进行拼接,作为威胁情报类中实体的主体属性;
②查找所述自动化标注数据中的标签,提取标签为“SS1”对应的汉字或英语单词作为威胁情报类中实体的主体属性;
对于每一个提取完毕的主体属性,在对应的所述自动化标注数据中查找可配对客体属性,其中可配对的客体属性满足以下两个条件之一:③查找对应的所述自动化标注数据中的标签,符合“BS2”为头部、“ES2”为尾部,且“BS2”和“ES2”之间的每一个字符的标签均为“IS2”,按顺序提取标签为“BS2”“IS2”“ES2”对应的汉字或英语单词,并进行拼接,作为威胁情报类中实体的客体属性;
④查找对应的所述自动化标注数据的标签,提取标签为“SS2”的汉字或英语单词,作为威胁情报类中实体的客体属性;
在对应的所述自动化标注数据中,将主体属性和客体属性之间的标签为has或exploit或belong或threat所对应的字符提取为威胁情报类中实体的关系属性;
将提取的主体属性、客体属性、关系属性、所述威胁情报类中实体的来源以及标注时间写入intelligence.csv文件;
完成所有非结构化数据的提取后,将intelligence.csv文件导入图数据库。
7.一种网络安全知识图谱构建系统,其特征在于,包括:
模型构架模块,用于构建网络安全领域本体模型,所述模型定义为CDO模型,CDO=(C,I,R),其中CDO表示网络安全领域本体,C={c1,c2,…cx…,cm}表示网络安全领域类的集合,m表示网络安全领域类集合的类数量,cx为某种网络安全领域类;
I={i1,i2,…ix…,in}表示实体集合,n表示实体数量,ix表示某个网络安全领域类的实体;R={r1,r2,…rx…,rl}表示类与类之间关系的集合,l表示网络安全领域类与类的关系数量,rx表示某一种类与类的关系;
数据获取模块,用于从互联网中获取结构化数据和非结构化文本数据;
提取模块,用于从结构化数据、半结构化数据和非结构化文本数据进行知识抽取得到网络安全实体、属性及关系;
图谱构建模块,用于将网络安全实体、属性和关系基于CDO模型存储到图数据库中,完成网络安全知识图谱的构建;
从非结构化文本数据进行知识抽取得到网络安全实体、属性及关系,具体包括:利用非结构化文本数据抽取模型对非结构化文本数据进处理得到自动化标注数据;
根据得到的自动化标注数据抽取得到对应的网络安全实体、属性及关系;
所述非结构化文本数据抽取模型的训练方法包括:
预定义应用于网络安全的文本标签集,文本标签集中包括若干个标签;
获取非结构化文本数据样本形成以句子为单位的语料数据样本集;
基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;
将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集;
将语料数据样本集和人工标注数据集对应的数字矩阵集均对应地分为训练集和测试集;
将训练集输入到利用神经网络构建的非结构化文本数据抽取模型中进行训练,得到收敛的非结构化文本数据抽取模型,并利用测试集对非结构化文本数据抽取模型进行验证;
所述实体分为主体和客体;
所述文本标签集表示为CyberTag,
CyberTag = { O , BS1 , IS1 , ES1 , SS1 , BS2 , IS2 , ES2 , SS2 , has , exploit , belong , threat },O , BS1 , IS1 , ES1 , SS1 , BS2 , IS2 , ES2 , SS2 , has , exploit , belong , threat均为文本标签集中的标签;
其中文本标签集中O代表威胁情报类以外的其他安全领域类中的实体的文本字符,BS代表威胁情报类中的实体属性文本字符的开始位置,IS代表威胁情报类中的实体属性文本字符的中间位置,ES代表威胁情报类中的实体属性文本字符的结尾位置,SS代表单个文本字符的威胁情报类中的实体属性,所述文本字符为汉字或英文单词;威胁情报类中的实体属性位置由数字“1”和“2”表示, 1表示主体属性,2表示客体属性;has、exploit、belong和threat为威胁情报类中实体的关系属性的值,has代表主体与客体的关系是拥有或存在;
exploit代表主体与客体的关系是利用,belong代表主体与客体的关系是属于,threat代表主体与客体的关系是威胁和攻击;
所述基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集,具体包括:根据文本标签集中的标签判定语料数据样本集中的每个句子的汉字和英语单词所对应的标签,得到每个句子对应的标注结果;
根据每个句子对应的标注结果,每个句子中的汉字和英语单词按照文本标签集中标签的顺序进行存储生成标签数组,其中句子中没有出现的标签则在标签数组中所述标签对应的位置填上预设符号,文本标签集中的标签O对应的汉字和/或英语单词在标签数组中标签O对应的位置填上所述预设符号;
语料数据样本集中句子对应的标签数组组成人工标注数据集。