CN115186015B - 一种网络安全知识图谱构建方法及系统 - Google Patents
一种网络安全知识图谱构建方法及系统 Download PDFInfo
- Publication number
- CN115186015B CN115186015B CN202211110480.8A CN202211110480A CN115186015B CN 115186015 B CN115186015 B CN 115186015B CN 202211110480 A CN202211110480 A CN 202211110480A CN 115186015 B CN115186015 B CN 115186015B
- Authority
- CN
- China
- Prior art keywords
- data
- class
- network security
- label
- text
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
- G06F16/3344—Query execution using natural language analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/83—Querying
- G06F16/835—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Health & Medical Sciences (AREA)
- Fuzzy Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Machine Translation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供网络安全知识图谱构建方法及系统,应用于网络安全领域,包括:构建网络安全领域本体模型,所述模型定义为CDO模型,其中CDO模型包括:网络安全领域类的集合、实体集合和类与类之间关系的集合;从互联网中获取结构化数据、半结构化数据和非结构化文本数据;从结构化数据、半结构化数据和非结构化文本数据进行知识抽取得到网络安全实体、属性及关系;将网络安全实体、属性和关系基于CDO模型存储到图数据库,完成网络安全知识图谱的构建。通过准确描述网络安全事件的事理逻辑关系,考虑漏洞、威胁等多维度知识,描述网络安全事件的演化规律和模式,结合知识抽取技术构建知识图谱,提高网络安全分析的准确率和智能化水平。
Description
技术领域
本发明涉及网络安全领域,更具体地,涉及一种网络安全知识图谱构建方法及系统。
背景技术
知识图谱是显示知识发展进程与结构关系的一系列各种不同的图形,用可视化技术描述知识资源及其载体,挖掘、分析、构建、绘制和显示知识及它们之间的相互关系。知识图谱通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论,为学科研究提供切实的、有价值的参考。
网络安全知识图谱用于描述客观网络空间中的概念、实体、事件及其关系,是知识图谱在网络安全领域的应用。现有技术对网络安全知识图谱构建的方法和应用,大都注重实体概念及关系组织管理,缺乏对概念之间逻辑关系和威胁本质的考虑,缺少攻击事件动态演化、预测和推理,而且由于知识来源不同,有些侧重威胁情报、有些侧重漏洞分析,所建立的知识图谱具有以下局限性:无法多维度地考虑到漏洞和威胁,无法对漏洞和威胁进行综合分析;没有考虑到网络安全事件的事理逻辑关系;无法对网络安全事件的演化规律和模式进行准确描述。
发明内容
本发明旨在克服上述现有技术的至少一种缺陷,提供一种网络安全知识图谱构建方法及系统。用于解决现有技术缺乏准确描述网络安全事件事理逻辑关系的知识图谱,缺乏科学的网络安全知识图谱以及应用系统构建方法的问题。
本发明采取的技术方案是,构建网络安全领域本体模型,所述模型定义为CDO模型,CDO=(C,I,R),其中CDO表示网络安全领域本体,
C={c 1 ,c 2 ,…c x …,c m }表示网络安全领域类的集合,m表示网络安全领域类集合的类数量,c x 为某种网络安全领域类;
I={i 1 ,i 2 ,…i x …,i n }表示实体集合,n表示实体数量,i x 表示某个网络安全领域类的实体;R={r 1 ,r 2 ,…r x …,r l }表示类与类之间关系的集合,l表示网络安全领域类与类的关系数量,r x 表示某一种类与类的关系;
从互联网中获取结构化数据、半结构化数据和非结构化文本数据;
从结构化数据、半结构化数据和非结构化文本数据进行知识抽取得到网络安全实体、属性及关系;
将网络安全实体、属性和关系基于CDO模型存储到图数据库中,完成网络安全知识图谱的构建。
其中,网络安全领域类c x 用于表述网络安全领域的类,从逻辑上定义了网络安全领域的实体概念,i x 可以为漏洞类中的某一具体漏洞,用于对网络安全领域类进行具体的描述,r x 可以为攻击类与漏洞类的利用关系,用于描述两个以上网络安全领域的重要主体之间的关系。本发明的CDO模型考虑了漏洞、威胁等多维度知识,同时建立了网络安全事件顺承、因果、条件和上下位等事理逻辑关系,可以描述网络安全事件的演化规律和模式,可以应用于攻击预测、威胁建模、网络空间测绘等网络安全智能运用,支撑企事业单位智能安全运用,达到提高网络安全分析的准确率和智能化水平的技术效果。
进一步,所述半结构化数据包括事件数据;所述事件数据包括安全事件告警信息,其通过OSSIM 平台从不同的安全设备上获取。
企业网络通常会安装部署IDS、NF、日志审计等网络安全相关设备,这些设备会产生大量的安全事件告警,这些事件隐藏很重要的安全信息,然而由于多源安全事件的异构性,不同厂商提供的告警信息格式各不相同,而且很多原生事件不具有很好的可读性。本发明通过OSSIM(Open Source Security Information Management)即开源安全信息管理平台收集不同安全设备的告警信息,并提交给知识抽取模块进行知识抽取,OSSIM是一个非常流行和完整的开源安全架构,可以用于集成和关联各种产品提供的事件信息。可以通过Python编写爬虫程序,从漏洞库获取html页面,并对其进行解析,获取漏洞知识。
进一步,网络安全领域类的集合C包括与网络资产相关的类、与脆弱性相关的类、与攻击相关的类、与观测指标相关的类和与情报相关的类;
所述与网络资产相关的类的集合表示为Class(Assets)={Host, NetworkEquipment, 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, Threatintelligence}
其中,Event表示安全事件类,Threat intelligence表示威胁情报类;
从半结构化数据中进行知识抽取得到网络安全实体、属性及关系,包括从事件数据中进行知识抽取得到网络安全实体、属性及关系;
所述从事件数据中进行知识抽取得到网络安全实体、属性及关系,具体包括:
设所述CDO模型中主机类集合为H={h 1 ,h 2 ,h 3 ,…h i …,h a },其中h i 表示第i台主机,a表示主机数量;
每个安全事件告警信息含有源IP、源端口、目的IP、目的端口、事件、漏洞类和时间;
提取每台主机发生的安全事件对应的安全事件告警信息,得到每台主机预处理后的安全事件流为E={Emsg 1 ,Emsg 2 ,Emsg 3 ,…Emsg i …,Emsg b },Emsg i 表示安全事件,b表示有b个安全事件;
对于安全事件Emsg i ,通过在图数据库中检索该安全事件的目的IP 对应的主机h j 是否存在;如果不存在,则丢弃该安全事件;否则从图数据库中检索该安全事件的目标 IP对应的主机h j ;
从图数据库中获取所述主机h j 存在的漏洞属性集,记为Vuls Host ;
将安全事件Emsg i 中的漏洞类赋值给集合Vuls Event ;
如果Vuls Event 为空则构建事件实体,根据安全事件Emsg i 中的信息生成该事件实体的属性信息写入图数据库;
如果Vuls Event 不为空,则判断Vuls Event ∩Vuls Host 是否是空集,若是则标记所述安全事件为虚假警报并过滤;若否则构建事件实体,根据安全事件Emsg i 中的信息生成该事件实体的属性信息写入图数据库。
网络安全告警事件中存在大量虚假警报,构建网络安全知识图谱时需要判断其真实性,本发明通过查看抽取的网络安全实体、属性及关系是否存在于图数据库中,判断是否为虚假警报并过滤,否则在图数据库中构建网络安全事件实体。进而可以过滤虚假警报,构建具有可靠性的网络安全知识图谱。
进一步,从非结构化文本数据进行知识抽取得到网络安全实体、属性及关系,具体包括:
利用非结构化文本数据抽取模型对非结构化文本数据进处理得到自动化标注数据;
根据得到的自动化标注数据抽取得到对应的网络安全实体、属性及关系。
非结构化文本数据相对于结构化文本数据和半结构化文本数据来说更难以直接应用,因此需要通过非结构化文本数据抽取模型进行自动化标注,即自动抽取。可以先采用Scrapy框架从互联网安全威胁情报网站获取安全威胁情报的非结构化数据,并对数据进行遍历过滤清洗,将分散的文本文件进行整合,随后结合深度学习技术,利用非结构化文本数据抽取模型进行处理,得到对应的网络安全实体、属性及关系。
进一步,所述非结构化文本数据抽取模型的训练方法包括:
预定义应用于网络安全的文本标签集,文本标签集中包括若干个标签;
获取非结构化文本数据样本形成以句子为单位的语料数据样本集;
基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;
将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集;
将语料数据样本集和人工标注数据集对应的数字矩阵集均对应地分为训练集和测试集;
将训练集输入到利用神经网络构建的非结构化文本数据抽取模型中进行训练,得到收敛的非结构化文本数据抽取模型,并利用测试集对非结构化文本数据抽取模型进行验证。
深度学习的非结构化文本数据抽取模型需要进行训练学习,才能对非结构化文本数据进行高效、精准的自动抽取,因此本发明提供了所述非结构化文本数据抽取模型的训练方法。形成以句子为单位的语料数据样本集,以便所述非结构化文本数据抽取模型进行抽取,提高处理的效率,降低算力消耗。基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;根据抽取的需要,对语料数据样本集进行人工标注,进而让所述非结构化文本数据抽取模型进行学习,其学习人工标注的方法,收敛后可以进行自动标注。
通过将将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集,即有利于计算机进行处理的格式,预处理还可以对数据进行加强,提高训练出来的非结构化文本数据抽取模型的泛化能力和鲁棒性。
将语料数据样本集和人工标注数据集对应的数据矩阵集均对应地分为训练集和测试集,划分后的数据集分别用于进行训练和测试,训练出收敛的非结构化文本数据抽取模型后进行测试,根据测试结果,可以对所述收敛的非结构化文本数据抽取模型进行优化,调整,保证训练出来的非结构化文本数据抽取模型的可靠性。
进一步,所述文本标签集表示为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对应的位置填上所述预设符号;
语料数据样本集中句子对应的标签数组组成人工标注数据集。
本发明提供了一种具体的文本标签集标注方法,用O , BS1 , IS1 , ES1 , SS1 , BS2 , IS2 , ES2 , SS2 , has , exploit , belong , threat等标签来标注非结构化文本数据,从语义逻辑上定义了非结构化文本数据的组成部分,进而让非结构化文本数据抽取模型以该语义逻辑对句子进行自动标注,达到高效、准确地对网络安全知识进行抽取的技术效果。
进一步,所述将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集,具体包括:
初始化步骤:
设置语料数据样本集的最大句子长度SeqLength=0,设置句子列表DataList、 LabelList、AttMaskList、TokenTypeList均为空序列;
根据文本标签集预定义对应的标签字典LabDic,所述标签字典LabDic将文本标签集中的每个标签映射成对应的数字;
读取步骤:
读取语料数据样本集中的一个句子和所述一个句子在人工标注数据集中对应的标注数据,设读取的句子Sen=w 1 w 2 w 3 …w i …w d ,w i 表示句子中的汉字或英语单词或符号,d表示句子中汉字、英语单词、符号的总数量,设句子对应的标注数据Lab=l 1 l 2 l 3 …l i …l d ,l i 表示标签;
数字化步骤:
对句子Sen,在句子开始和结尾处增加开始符号“[CLS]”和结尾符号“[SEP]”,得到新的句子Sen’=”[CLS]w 1 w 2 w 3 …w i …w d [SEP]”;
利用中文词库字典中汉字、英语单词、符号对应的ID,对句子Sen’按逐个汉字、英语单词、符号进行分割,将分割后的汉字、英语单词、符号转换成中文词库字典中的ID,得到数组SenIDS=[wid 1 ,wid 2 ,wid 3 ,…wid i ,…,wid K ] ,K是句子分割后汉字、英语单词、符号的总数量,wid K 表示中文词库字典中的ID值;
读取所述句子Sen对应的标注数据Lab,对标注数据Lab按逐个标签进行分割,将分割后的标签匹配标签字典LabDic中的数字,得到数组LabIDS=[lid 1 ,lid 2 ,lid 3 ,…, lid i ,…,lid k ];
矩阵组建步骤:
创建两个长度为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。
通过初始化步骤,定义空的句子列表DataList、LabelList、AttMaskList、TokenTypeList,用于存储数据,将语料数据样本集的最大句子长度设置为SeqLength=0,为后续预处理步骤做准备,根据文本标签集预定义对应的标签字典LabDic,所述标签字典LabDic将文本标签集中的每个标签映射成对应的数字。
通过读取步骤,将读取的句子定义为Sen=w 1 w 2 w 3 …w i …w d 将句子对应的标注数据定义为Lab=l 1 l 2 l 3 …l i …l d ,读取出语料数据样本集CyberData.txt中的一个句子和所述一个句子在人工标注数据集中对应的标注数据,有利于后续进行数字化。
数字化步骤首先为读取的句子Sen增加开始符号的结束符号,让非结构化文本数据抽取模型可以识别句子的开头和结尾。利用中文词字典中汉字、英语单词、符号对应的ID,对句子Sen’按逐个汉字、英语单词、符号进行分割,将分割后的汉字、英语单词、符号转换成中文词库字典中的ID,得到数组SenIDS=[wid 1 ,wid 2 ,wid 3 ,…wid i ,…,wid K ] ,K是分割后字符的数量,wid K 表示中文词库字典中的ID值;通过循环将句子分割,并转化为词库字典中的ID值。
矩阵组建步骤创建了两个长度为K的数组AttMask和TokenType,数组AttMask元素为1,数组TokenType元素为0,为矩阵数组定义基础的元素,将SenIDS插入DataList,将LabIDS插入LabelList,将AttMask插入AttMaskList,将TokenType插入TokenTypeList,完成数组的组建,通过判断句子的字符数量更新SeqLength;通过判断步骤,判断是否进行数据补齐,进而对操作进行循环,完成数组的组建。
进一步,利用非结构化文本数据抽取模型对非结构化文本数据进处理得到自动化标注数据,具体包括:
将所述非结构化文本数据进行处理形成以句子为单位的语料数据;
基于文本标签集对所述语料数据进行人工标注得到对应的人工标注数据;
将所述语料数据和对应的人工标注数据进行预处理分别转化成对应的数字矩阵;
将转化得到的数字矩阵输入到利用神经网络构建的非结构化文本数据抽取模型中进行训练,得到收敛的非结构化数据抽取模型;
将待抽取的非结构化文本输入到所述的收敛的非结构化文本数据抽取模型中,输出得到所述非结构化文本数据对应的自动化标注数据。
通过非结构化文本数据抽取模型对非结构化文本数据进处理得到自动化标注数据,即得到非结构化文本数据抽取的结果,进而可以对网络安全知识图谱进行构建。
进一步,所述根据得到的自动化标注数据抽取得到对应的网络安全实体、属性及关系,具体包括:
从所述自动化标注数据中的第1位置开始进行遍历,当满足以下两个条件之一时提取字符作为威胁情报类实体的主体属性;
①查找所述自动化标注数据中的标签,按顺序提取标签为“BS1”“IS1”“ES1”对应的汉字或英语单词,并进行拼接,作为威胁情报类中实体的主体属性;
②查找所述自动化标注数据中的标签,提取标签为“SS1”对应的汉字或英语单词作为威胁情报类中实体的主体属性;
对于每一个提取完毕的主体属性,在对应的所述自动化标注数据中查找可配对客体属性,其中可配对的客体属性满足以下两个条件之一:
③查找对应的所述自动化标注数据中的标签,符合“BS2”为头部、“ES2”为尾部,且“BS2”和“ES2”之间的每一个字符的标签均为“IS2”,按顺序提取标签为“BS2”“IS2”“ES2”对应的汉字或英语单词,并进行拼接,作为威胁情报类中实体的客体属性;
④查找对应的所述自动化标注数据的标签,提取标签为“SS2”的汉字或英语单词,作为威胁情报类中实体的客体属性;
在对应的所述自动化标注数据中,将主体属性和客体属性之间的标签为has或exploit或belong或threat所对应的字符提取为威胁情报类中实体的关系属性;
将提取的主体属性、客体属性、关系属性、所述威胁情报类中实体的来源以及标注时间写入intelligence.csv文件;
完成所有非结构化数据的提取后,将intelligence.csv文件导入图数据库。
得到非结构化文本数据抽取模型的自动标注数据后,可以通过本发明的技术方案将非结构化数据写入intelligence.csv文件并导入图数据库中,进而完成网络安全知识图谱的构建。
与现有技术相比,本发明的有益效果为:
(1)构建的知识图谱考虑了漏洞、威胁等多维度知识,同时建立了网络安全事件顺承、因果、条件和上下位等事理逻辑关系,描述了网络安全事件的演化规律和模式。
(2)结合了深度学习的技术,自动化抽取非结构化文本数据,构建网络安全知识图谱。
(3)可以过滤虚假警报,构建具有可靠性的网络安全知识图谱。
附图说明
图1为本发明实施的方法流程图。
图2为本发明的网络安全本体类及其关系的示意图。
图3为本发明的攻击者类的属性描述示意图。
图4为本发明的与网络资产相关的类的通用属性描述示意图。
图5为本发明的攻击方法类的属性描述示意图。
具体实施方式
本发明附图仅用于示例性说明,不能理解为对本发明的限制。为了更好说明以下实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
实施例1
如图1所示,本实施例提供一种网络安全知识图谱构建方法,具体为:
S1、构建网络安全领域本体模型;
S2、从互联网中获取结构化数据、半结构化数据和非结构化文本数据;
S3、从结构化数据、半结构化数据和非结构化文本数据进行知识抽取得到网络安全实体、属性及关系;
S4、将网络安全实体、属性和关系基于CDO模型存储到图数据库中,完成网络安全知识图谱的构建。
所述模型定义为CDO模型,CDO=(C,I,R),其中CDO表示网络安全领域本体,
C={c 1 ,c 2 ,…c x …,c m }表示网络安全领域类的集合,m表示网络安全领域类集合的类数量,c x 为某种网络安全领域类;
I={i 1 ,i 2 ,…i x …,i n }表示实体集合,n表示实体数量,i x 表示某个网络安全领域类的实体;R={r 1 ,r 2 ,…r x …,r l }表示类与类之间关系的集合,l表示网络安全领域类与类的关系数量,r x 表示某一种类与类的关系;
其中,网络安全领域类c x 可以为攻击类、弱点类、漏洞类等,用于表述网络安全领域的类,从逻辑上定义了网络安全领域的实体概念,i x 可以为漏洞类中的某一具体漏洞,用于对网络安全领域类进行具体的描述,r x 可以为攻击类与漏洞类的利用关系,用于描述两个以上网络安全领域的重要主体之间的关系。本发明的CDO模型考虑了漏洞、威胁等多维度知识,同时建立了网络安全事件顺承、因果、条件和上下位等事理逻辑关系,可以描述网络安全事件的演化规律和模式,可以应用于攻击预测、威胁建模、网络空间测绘等网络安全智能运用,支撑企事业单位智能安全运用,达到提高网络安全分析的准确率和智能化水平的技术效果。
优选地,所述半结构化数据包括事件数据;所述事件数据包括安全事件告警信息,其通过OSSIM 平台从不同的安全设备上获取。
企业网络通常会安装部署IDS、NF、日志审计等网络安全相关设备,这些设备会产生大量的安全事件告警,这些事件隐藏很重要的安全信息,然而由于多源安全事件的异构性,不同厂商提供的告警信息格式各不相同,而且很多原生事件不具有很好的可读性。本发明通过OSSIM(Open Source Security Information Management)即开源安全信息管理平台收集不同安全设备的告警信息,并提交给知识抽取模块进行知识抽取,OSSIM是一个非常流行和完整的开源安全架构,可以用于集成和关联各种产品提供的事件信息。可以通过Python编写爬虫程序,从漏洞库获取html页面,并对其进行解析,获取漏洞知识。
优选地,网络安全领域类的集合C包括与网络资产相关的类、与脆弱性相关的类、与攻击相关的类、与观测指标相关的类和与情报相关的类;
所述与网络资产相关的类的集合表示为Class(Assets)={Host, NetworkEquipment, 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, Threatintelligence},
其中,Event表示安全事件类,Threat intelligence表示威胁情报类;
从半结构化数据中进行知识抽取得到网络安全实体、属性及关系,包括从事件数据中进行知识抽取得到网络安全实体、属性及关系;
所述从事件数据中进行知识抽取得到网络安全实体、属性及关系,具体包括:
设所述CDO模型中主机类集合为H={h 1 ,h 2 ,h 3 ,…h i …,h a },其中h i 表示第i台主机,a表示主机数量;
每个安全事件告警信息含有源IP、源端口、目的IP、目的端口、事件、漏洞类和时间;
提取每台主机发生的安全事件对应的安全事件告警信息,得到每台主机预处理后的安全事件流为E={Emsg 1 ,Emsg 2 ,Emsg 3 ,…Emsg i …,Emsg b },Emsg i 表示安全事件,b表示有b个安全事件;
对于安全事件Emsg i ,通过在图数据库中检索该安全事件的目的IP 对应的主机h j 是否存在;如果不存在,则丢弃该安全事件;否则从图数据库中检索该安全事件的目的 IP对应的主机h j ;
从图数据库中获取所述主机h j 存在的漏洞类,记为Vuls Host ;
将安全事件Emsg i 中的漏洞类赋值给集合Vuls Event ;
如果Vuls Event 为空则构建事件实体,根据安全事件Emsg i 中的信息生成该事件实体的属性信息写入图数据库;
如果Vuls Event 不为空,则判断Vuls Event ∩Vuls Host 是否是空集,若是则标记所述安全事件为虚假警报并过滤;若否则构建事件实体,根据安全事件Emsg i 中的信息生成该事件实体的属性信息写入图数据库。
网络安全告警事件中存在大量虚假警报,构建网络安全知识图谱时需要判断其真实性,本发明通过查看抽取的网络安全实体、属性及关系是否存在于图数据库中,判断是否为虚假警报并过滤,否则在图数据库中构建网络安全事件实体。进而可以过滤虚假警报,构建具有可靠性的网络安全知识图谱。
优选地,从非结构化文本数据进行知识抽取得到网络安全实体、属性及关系,具体包括:
利用非结构化文本数据抽取模型对非结构化文本数据进处理得到自动化标注数据;
根据得到的自动化标注数据抽取得到对应的网络安全实体、属性及关系。
非结构化文本数据相对于结构化文本数据和半结构化文本数据来说更难以直接应用,因此需要通过非结构化文本数据抽取模型进行自动化标注,即自动抽取。可以先采用Scrapy框架从互联网安全威胁情报网站获取安全威胁情报的非结构化数据,并对数据进行遍历过滤清洗,将分散的文本文件进行整合,随后结合深度学习技术,利用非结构化文本数据抽取模型进行处理,得到对应的网络安全实体、属性及关系。
优选地,所述非结构化文本数据抽取模型的训练方法包括:
预定义应用于网络安全的文本标签集,文本标签集中包括若干个标签;
获取非结构化文本数据样本形成以句子为单位的语料数据样本集;
基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;
将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集;
将语料数据样本集和人工标注数据集对应的数字矩阵集均对应地分为训练集和测试集;
将训练集输入到利用神经网络构建的非结构化文本数据抽取模型中进行训练,得到收敛的非结构化文本数据抽取模型,并利用测试集对非结构化文本数据抽取模型进行验证。
深度学习的非结构化文本数据抽取模型需要进行训练学习,才能对非结构化文本数据进行高效、精准的自动抽取,因此本发明提供了所述非结构化文本数据抽取模型的训练方法。形成以句子为单位的语料数据样本集,以便所述非结构化文本数据抽取模型进行抽取,提高处理的效率,降低算力消耗。基于文本标签集对语料数据样本集进行人工标注得到对应的人工标注数据集;根据抽取的需要,对语料数据样本集进行人工标注,进而让所述非结构化文本数据抽取模型进行学习,其学习人工标注的方法,收敛后可以进行自动标注。
通过将将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集,即有利于计算机进行处理的格式,预处理还可以对数据进行加强,提高训练出来的非结构化文本数据抽取模型的泛化能力和鲁棒性。
将语料数据样本集和人工标注数据集对应的数据矩阵集均对应地分为训练集和测试集,划分后的数据集分别用于进行训练和测试,训练出收敛的非结构化文本数据抽取模型后进行测试,根据测试结果,可以对所述收敛的非结构化文本数据抽取模型进行优化,调整,保证训练出来的非结构化文本数据抽取模型的可靠性。
优选地,所述实体分为主体和客体;
所述文本标签集表示为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对应的位置填上所述预设符号;
语料数据样本集中句子对应的标签数组组成人工标注数据集。
本发明提供了一种具体的文本标签集标注方法,用O , BS1 , IS1 , ES1 , SS1 , BS2 , IS2 , ES2 , SS2 , has , exploit , belong , threat等标签来标注非结构化文本数据,从语义逻辑上定义了非结构化文本数据的组成部分,进而让非结构化文本数据抽取模型以该语义逻辑对句子进行自动标注,达到高效、准确地对网络安全知识进行抽取的技术效果。
优选地,所述将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集,具体包括:
初始化步骤:
设置语料数据样本集的最大句子长度SeqLength=0,设置句子列表DataList、LabelList、AttMaskList、TokenTypeList均为空序列;
根据文本标签集预定义对应的标签字典LabDic,所述标签字典LabDic将文本标签集中的每个标签映射成对应的数字;
读取步骤:
读取语料数据样本集CyberData.txt中的一个句子和所述一个句子在人工标注数据集中对应的标注数据,设读取的句子Sen=w 1 w 2 w 3 …w i …w d ,w i 表示句子中的汉字或英语单词或符号,d表示句子中汉字、英语单词、符号的总数量,设句子对应的标注数据Lab= l 1 l 2 l 3 …l i …l d ,l i 表示标签;
数字化步骤:
对句子Sen,在句子开始和结尾处增加开始符号“[CLS]”和结尾符号“[SEP]”,得到新的句子Sen’=”[CLS]w 1 w 2 w 3 …w i …w d [SEP]”;
利用中文词字典中汉字、英语单词、符号对应的ID,对句子Sen’按逐个汉字、英语单词、符号进行分割,将分割后的汉字、英语单词、符号转换成中文词库字典中的ID,得到数组SenIDS=[wid 1 ,wid 2 ,wid 3 ,…wid i ,…,wid K ],K是句子分割后汉字、英语单词、符号的总数量,wid K 表示中文词库字典中的ID值;
读取所述句子Sen对应的标注数据Lab,对标注数据Lab按逐个标签进行分割,将分割后的标签匹配标签字典LabDic中的数字,得到数组LabIDS=[lid 1 ,lid 2 ,lid 3 ,…, lid i ,…,lid k ];
矩阵组建步骤:
创建两个长度为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。
通过初始化步骤,定义空的句子列表DataList、LabelList、AttMaskList、TokenTypeList,用于存储数据,将语料数据样本集的最大句子长度设置为SeqLength=0,为后续预处理步骤做准备,根据文本标签集预定义对应的标签字典LabDic,所述标签字典LabDic将文本标签集中的每个标签映射成对应的数字。
通过读取步骤,将读取的句子定义为Sen=w 1 w 2 w 3 …w i …w d 将句子对应的标注数据定义为Lab=l 1 l 2 l 3 …l i …l d ,读取出语料数据样本集CyberData.txt中的一个句子和所述一个句子在人工标注数据集中对应的标注数据,有利于后续进行数字化。
数字化步骤首先为读取的句子Sen增加开始符号的结束符号,让非结构化文本数据抽取模型可以识别句子的开头和结尾。利用中文词字典中汉字、英语单词、符号对应的ID,对句子Sen’按逐个汉字、英语单词、符号进行分割,将分割后的汉字、英语单词、符号转换成中文词库字典中的ID,得到数组SenIDS=[wid 1 ,wid 2 ,wid 3 ,…wid i ,…,wid K ] ,K是分割后字符的数量,wid K 表示中文词库字典中的ID值;通过循环将句子分割,并转化为词库字典中的ID值。
矩阵组建步骤,创建两个长度为K的数组AttMask和TokenType,数组AttMask元素为1,数组TokenType元素为0,为矩阵数组定义基础的元素,将SenIDS插入DataList,将LabIDS插入LabelList,将AttMask插入AttMaskList_List,将TokenType插入TokenTypeList,完成数组的组建,通过判断句子的字符数量更新SeqLength;通过判断步骤,判断是否进行数据补齐,进而对操作进行循环,完成数组的组建,通过判断句子的字符数量更新SeqLength;通过判断步骤,判断是否进行数据补齐,进而对操作进行循环,完成数组的组建。
优选地,利用非结构化文本数据抽取模型对非结构化文本数据进处理得到自动化标注数据,所述自动化标注数据,具体包括:
将所述非结构化文本数据进行处理形成以句子为单位的语料数据;
基于文本标签集对所述语料数据进行人工标注得到对应的人工标注数据;
将所述语料数据和对应的人工标注数据进行预处理分别转化成对应的数字矩阵;
将转化得到的数字矩阵输入到所述的收敛的非结构化文本数据抽取模型中,输出得到所述非结构化文本数据对应的自动化标注数据。
通过非结构化文本数据抽取模型对非结构化文本数据进处理得到自动化标注数据,即得到非结构化文本数据抽取的结果,进而可以对网络安全知识图谱进行构建。
优选地,所述根据得到的自动化标注数据抽取得到对应的网络安全实体、属性及关系,具体包括:
从所述自动化标注数据中的第1位置开始进行遍历,当满足以下两个条件之一时提取文本作为威胁情报实体的主体属性:
①查找所述自动化标注数据中的标签,按顺序提取标签为“BS1”“IS1”“ES1”对应的汉字或英语单词,并进行拼接,作为威胁情报类中实体的主体属性;
②查找所述自动化标注数据中的标签,提取标签为“SS1”对应的汉字或英语单词作为威胁情报类中实体的主体属性;
对于每一个提取完毕的主体属性,在对应的所述自动化标注数据中查找可配对客体属性,其中可配对的客体属性满足以下两个条件之一:
③查找对应的所述自动化标注数据中的标签,符合“BS2”为头部、“ES2”为尾部,且“BS2”和“ES2”之间的每一个字符的标签均为“IS2”,按顺序提取标签为“BS2”“IS2”“ES2”对应的汉字或英语单词,并进行拼接,作为威胁情报类中实体的客体属性;
④查找对应的所述自动化标注数据的标签,提取标签为“SS2”的汉字或英语单词,作为威胁情报类中实体的客体属性;
在对应的所述自动化标注数据中,将主体属性和客体属性配对之间标签为has或exploit或belong或threat的句子文本提取为威胁情报实体的关系属性;
将提取的主体属性、客体属性、关系属性、该非结构化文本数据的来源、时间写入intelligence.csv文件;
完成所有非结构化数据的提取后,将intelligence.csv文件导入图数据库。
得到非结构化文本数据抽取模型的自动标注数据后,可以通过本发明的技术方案将非结构化数据写入intelligence.csv文件并导入图数据库中,进而完成网络安全知识图谱的构建。
如图2所示,Attacker(攻击者)类为网络安全领域类的一种,可以是个人,也可以是组织,其主要属性包括个人名称、组织名称、攻击地址列表、常用工具等,Property(Attacker)={id,type,personal names,organization,ipaddresses,tools,country},如图3所示,其属性包括编号、攻击者类型、个人列表、组织名称、攻击者IP地址列表、常用工具列表和国家。
Attacker类与Cyberattack(网络攻击)类的关系是launch(发动)的关系,表示Attacker(攻击者)launch(发动)Cyberattack(网络攻击);
Attacker类与Means(攻击方法)类的关系是use(使用)的关系,表示Attacker(攻击者)use(使用)了某个或某些手段Means(攻击方法)。
如图5所示,Means(攻击方法)类基于通用攻击模式库CAPEC(Common AttackPattern)和攻击行为模式知识库ATT&CK(Adversarial Tactics,Techniques,and CommonKnowledge)建立。CAPEC列举了针对利用漏洞进行攻击的攻击方法,可静态地对利用已知软件漏洞的攻击行为进行分类,其攻击目标是已知的。而攻击行为模型知识库矩阵枚举的攻击方法的作用目标是已知或未知的,它关注于攻击技术本身而非特定的系统或软件,可动态地关联攻击上下文并进行攻击意图推测,对复杂的攻击活动分析具有极高价值。现有的网络安全领域本体一方面极少使用这两种表示方式,另一方面即使使用,其大多本体也仅使用通用攻击模式库和攻击行为模型知识库中的一种来表示,在攻击方法表示方面偏向单一,此外,对于攻击行为的时序、因果等关系也没有进行归纳分析。本发明将两者进行结合以便更加全面表示攻击方法属性,同时体现攻击方法的时序、因果关系。攻击方法类的集合表示为Property(Mean)={id,name, desc,likelihood_of_mean,mean_severtity,execution_flow,prerequisite,required_skill,mean_mitigation,cwe_id,mean_tactic,platform,required_permission,capec_id,att_ck_id,common_target,common_group,common_tool,affected_service}。
Cyberattack(网络攻击)类与Target of attack(攻击目标)类的关系是attack(攻击)的关系,表示Cyberattack(网络攻击)类attack(攻击)了Target of attack(攻击目标),攻击目标以has的关系与Hardware(硬件)、OS(操作系统)、Software(软件)、IP、Port(端口)等类关联,其中,Target of attack(攻击目标)与Host(主机类)、 NetworkEquipment(网络设备类)、 Safety Equipment(安全设备类)以subClassOf(子类)的关系相关联,表示Host、Network Equipment、Safety Equipment是攻击目标类的子类,属性可以表述为Property(Host| Network Equipment | Safety Equipment)={id, type, user,organization, IP,hardware, OS, software },如图4所示,其属性包括编号、资产类型、用户、组织、IP地址、硬件、操作系统和软件。
Target of attack(攻击目标)类与Consequence(后果)类以cause(导致)的关系相关联,表示Target of attack(攻击目标)cause(导致)了Consequence(后果)。
实施例2
本实施例提供一种网络安全知识图谱构建系统,包括:
模型构架模块,用于构建网络安全领域本体模型,所述模型定义为CDO模型,CDO= (C,I,R),其中CDO表示网络安全领域本体,
C={c 1 ,c 2 ,…c x …,c m }表示网络安全领域类的集合,m表示网络安全领域类集合的类数量,c x 为某种网络安全领域类;
I={i 1 ,i 2 ,…i x …,i n }表示实体集合,n表示实体数量,i x 表示某个网络安全领域类的实体;R={r 1 ,r 2 ,…r x …,r l }表示类与类之间关系的集合,l表示网络安全领域类与类的关系数量,r x 表示某一种类与类的关系;
数据获取模块,用于从互联网中获取结构化数据和非结构化文本数据;
提取模块,用于从结构化数据、半结构化数据和非结构化文本数据进行知识抽取得到网络安全实体、属性及关系;
图谱构建模块,用于将网络安全实体、属性和关系基于CDO模型存储到图数据库中,完成网络安全知识图谱的构建。
其中,网络安全领域类c x 用于表述网络安全领域的类,从逻辑上定义了网络安全领域的实体概念,i x 可以为漏洞类中的某一具体漏洞,用于对网络安全领域类进行具体的描述,r x 可以为攻击类与漏洞类的利用关系,用于描述两个以上网络安全领域的重要主体之间的关系。本发明的CDO模型考虑了漏洞、威胁等多维度知识,同时建立了网络安全事件顺承、因果、条件和上下位等事理逻辑关系,可以描述网络安全事件的演化规律和模式,可以应用于攻击预测、威胁建模、网络空间测绘等网络安全智能运用,支撑企事业单位智能安全运用,达到提高网络安全分析的准确率和智能化水平的技术效果。
显然,本发明的上述实施例仅仅是为清楚地说明本发明技术方案所作的举例,而并非是对本发明的具体实施方式的限定。凡在本发明权利要求书的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (7)
1.一种网络安全知识图谱构建方法,其特征在于,包括:
构建网络安全领域本体模型,所述模型定义为CDO模型,CDO=(C,I,R),其中CDO表示网络安全领域本体,
C={c 1 ,c 2 ,…c x …,c m }表示网络安全领域类的集合,m表示网络安全领域类集合的类数量,c x 为某种网络安全领域类;
I={i 1 ,i 2 ,…i x …,i n }表示实体集合,n表示实体数量,i x 表示某个网络安全领域类的实体;R={r 1 ,r 2 ,…r x …,r l }表示类与类之间关系的集合,l表示网络安全领域类与类的关系数量,r x 表示某一种类与类的关系;
从互联网中获取结构化数据、半结构化数据和非结构化文本数据;
从结构化数据、半结构化数据和非结构化文本数据进行知识抽取得到网络安全实体、属性及关系;
将网络安全实体、属性和关系基于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, Threatintelligence},
其中,Event表示安全事件类,Threat intelligence表示威胁情报类;
从半结构化数据中进行知识抽取得到网络安全实体、属性及关系,包括从事件数据中进行知识抽取得到网络安全实体、属性及关系;
所述从事件数据中进行知识抽取得到网络安全实体、属性及关系,具体包括:
设所述CDO模型中主机类集合为H={h 1 ,h 2 ,h 3 ,…h i …,h a },其中h i 表示第i台主机,a表示主机数量;
每个安全事件告警信息含有源IP、源端口、目的IP、目的端口、事件、漏洞类和时间;
提取每台主机发生的安全事件对应的安全事件告警信息,得到每台主机预处理后的安全事件流为E={Emsg 1 ,Emsg 2 ,Emsg 3 ,…Emsg i …, Emsg b },Emsg i 表示安全事件,b表示有b个安全事件;
对于安全事件Emsg i ,通过在图数据库中检索该安全事件的目的IP 对应的主机h j 是否存在;如果不存在,则丢弃该安全事件;否则从图数据库中检索该安全事件的目标 IP 对应的主机h j ;
从图数据库中获取所述主机h j 存在的漏洞属性集,记为Vuls Host ;
将安全事件Emsg i 中的漏洞类赋值给集合Vuls Event ;
如果Vuls Event 为空则构建事件实体,根据安全事件Emsg i 中的信息生成该事件实体的属性信息写入图数据库;
4.根据权利要求1所述的网络安全知识图谱构建方法,其特征在于,所述将语料数据样本集和人工标注数据集进行预处理分别转化成数字矩阵集,具体包括:
初始化步骤:
设置语料数据样本集的最大句子长度SeqLength=0,设置句子列表DataList、LabelList、AttMaskList、TokenTypeList均为空序列;
根据文本标签集预定义对应的标签字典LabDic,所述标签字典LabDic将文本标签集中的每个标签映射成对应的数字;
读取步骤:
读取语料数据样本集中的一个句子和所述一个句子在人工标注数据集中对应的标注数据,设读取的句子Sen=w 1 w 2 w 3 …w i …w d ,w i 表示句子中的汉字或英语单词或符号,d表示句子中汉字、英语单词、符号的总数量,设句子对应的标注数据Lab=l 1 l 2 l 3 …l i …l d ,l i 表示标签;
数字化步骤:
对句子Sen,在句子开始和结尾处增加开始符号“[CLS]”和结尾符号“[SEP]”,得到新的句子Sen’=”[CLS]w 1 w 2 w 3 …w i …w d [SEP]”;
利用中文词库字典中汉字、英语单词、符号对应的ID,对句子Sen’按逐个汉字、英语单词、符号进行分割,将分割后的汉字、英语单词、符号转换成中文词库字典中的ID,得到数组SenIDS=[wid 1 ,wid 2 ,wid 3 ,…wid i ,…,wid K ],K是句子分割后汉字、英语单词、符号的总数量,wid K 表示中文词库字典中的ID值;
读取所述句子Sen对应的标注数据Lab,对标注数据Lab按逐个标签进行分割,将分割后的标签匹配标签字典LabDic中的数字,得到数组LabIDS=[lid 1 ,lid 2 ,lid 3 ,…,lid i ,…, lid k ];
矩阵组建步骤:
创建两个长度为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={c 1 ,c 2 ,…c x …,c m }表示网络安全领域类的集合,m表示网络安全领域类集合的类数量,c x 为某种网络安全领域类;
I={i 1 ,i 2 ,…i x …,i n }表示实体集合,n表示实体数量,i x 表示某个网络安全领域类的实体;R={r 1 ,r 2 ,…r x …,r l }表示类与类之间关系的集合,l表示网络安全领域类与类的关系数量,r x 表示某一种类与类的关系;
数据获取模块,用于从互联网中获取结构化数据和非结构化文本数据;
提取模块,用于从结构化数据、半结构化数据和非结构化文本数据进行知识抽取得到网络安全实体、属性及关系;
图谱构建模块,用于将网络安全实体、属性和关系基于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对应的位置填上所述预设符号;
语料数据样本集中句子对应的标签数组组成人工标注数据集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211110480.8A CN115186015B (zh) | 2022-09-13 | 2022-09-13 | 一种网络安全知识图谱构建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211110480.8A CN115186015B (zh) | 2022-09-13 | 2022-09-13 | 一种网络安全知识图谱构建方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115186015A CN115186015A (zh) | 2022-10-14 |
CN115186015B true CN115186015B (zh) | 2022-11-25 |
Family
ID=83524810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211110480.8A Active CN115186015B (zh) | 2022-09-13 | 2022-09-13 | 一种网络安全知识图谱构建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115186015B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115664860B (zh) * | 2022-12-26 | 2023-03-31 | 广东财经大学 | 网络安全威胁评估方法和系统 |
CN116627466B (zh) * | 2023-05-31 | 2024-01-26 | 上海汉朔信息科技有限公司 | 一种业务路径提取方法、系统、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111163086A (zh) * | 2019-12-27 | 2020-05-15 | 北京工业大学 | 一种多源异构的网络安全知识图谱构建与应用方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180159876A1 (en) * | 2016-12-05 | 2018-06-07 | International Business Machines Corporation | Consolidating structured and unstructured security and threat intelligence with knowledge graphs |
-
2022
- 2022-09-13 CN CN202211110480.8A patent/CN115186015B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111163086A (zh) * | 2019-12-27 | 2020-05-15 | 北京工业大学 | 一种多源异构的网络安全知识图谱构建与应用方法 |
Non-Patent Citations (1)
Title |
---|
基于知识图谱的分布式安全事件关联分析技术研究;王伟;《中国优秀硕士学位论文全文数据库信息科技辑》;20200215(第2期);第I138-11页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115186015A (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | AttacKG: Constructing technique knowledge graph from cyber threat intelligence reports | |
Lin et al. | Cross-project transfer representation learning for vulnerable function discovery | |
CN115186015B (zh) | 一种网络安全知识图谱构建方法及系统 | |
CN107004159B (zh) | 主动机器学习 | |
US10740678B2 (en) | Concept hierarchies | |
US9299031B2 (en) | Active learning on statistical server name extraction from information technology (IT) service tickets | |
Saxe et al. | Visualization of shared system call sequence relationships in large malware corpora | |
KR102452123B1 (ko) | 비정형 사이버 위협 정보 빅데이터 구축 장치, 사이버 위협 정보 빅데이터 구축 및 연관성 분석 방법 | |
CN109582772B (zh) | 合同信息提取方法、装置、计算机设备和存储介质 | |
CN110177114A (zh) | 网络安全威胁指标识别方法、设备、装置以及计算机可读存储介质 | |
CN105378732A (zh) | 表格数据的主题分析 | |
CN113656805A (zh) | 一种面向多源漏洞信息的事件图谱自动构建方法及系统 | |
CN112699375B (zh) | 基于网络嵌入相似性的区块链智能合约安全漏洞检测方法 | |
CN111680506A (zh) | 数据库表的外键映射方法、装置、电子设备和存储介质 | |
Owen et al. | Towards a scientific workflow featuring Natural Language Processing for the digitisation of natural history collections. | |
Tian et al. | Enhancing vulnerability detection via AST decomposition and neural sub-tree encoding | |
US20240028828A1 (en) | Machine learning model architecture and user interface to indicate impact of text ngrams | |
Chen et al. | Efficient Windows malware identification and classification scheme for plant protection information systems | |
US9910889B2 (en) | Rapid searching and matching of data to a dynamic set of signatures facilitating parallel processing and hardware acceleration | |
TWI818713B (zh) | 用於自動地將用語指派至文本文件之電腦實施方法、電腦程式產品及電腦系統 | |
WO2024098282A1 (zh) | 一种几何解题方法、装置、设备及存储介质 | |
Mishra et al. | A graph processing based approach for automatic detection of semantic inconsistency between bpmn process model and sbvr rules | |
CN113420127A (zh) | 威胁情报处理方法、装置、计算设备及存储介质 | |
CN115481240A (zh) | 一种数据资产质量检测方法和检测装置 | |
Gao et al. | Unsupervised Graph Contrastive Learning with Data Augmentation for Malware Classification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |