廉龙颖
(黑龙江科技大学 计算机与信息工程学院, 哈尔滨 150022)
近几年,知识图谱的语义理解在各行业领域中发挥了具大作用,引入知识图谱解决网络空间安全知识表达、共享、分析和应用等问题,可以推动网络空间安全领域智能化发展。
通过本体构建知识图谱具有层次结构清晰、冗余度小等特点,许多学者都将本体论引入到知识图谱的研究中,基于本体的知识图谱构建逐渐成为了知识图谱研究中的主流。More等[1]提出了网络安全本体论,定义了方法、后果和目标3个本体类别;Joshi等[2]在本体论基础上,根据国家漏洞数据库定义了漏洞、产品、后果等11类实体类型; Syed等[3]融合多个本体,对漏洞、组织、事件等类别进行扩展;Atighetchi等[4]基于多层次架构规范了资产、威胁、攻击、防御等本体定义;Yan Jia等[5]基于本体构建网络安全知识库,使用机器学习方法实现实体识别。这些研究成果为网络空间安全领域知识图谱的构建奠定了基础,但目前,国内学者对基于本体的网络空间安全知识图谱构建研究较少,并且尚无统一的网络空间安全本体可供借鉴。本体可以清晰地表达网络空间安全知识体系结构,描述概念及概念间的关联关系,是构建知识图谱的基础环节,如何基于本体设计一个准确、全面和实时的网络空间安全知识图谱有待进一步研究。
在此背景下,笔者提出了一种基于本体的网络空间安全知识图谱构建方法,从本体层建模、数据层映射和存储层可视化3个方面完整阐述知识图谱的构建流程。
本体是一种知识表示方法,是对一个特定领域中的概念结构及其之间关系的形式化描述[6-7]。本体模型通常使用五元组表示,即O=(C,P,R,F,I)。C表示概念类的集合,是一组概念的抽象表达,如网络空间安全本体中的“漏洞”概念类、“攻击方法”概念类。P表示属性的集合,包括数据属性和对象属性,其中数据属性指概念类自身拥有的特性,如网络空间安全本体中“漏洞”概念类的“危害等级”数据属性;对象属性指实例的关系属性,如网络空间安全本体中“防御措施”与“攻击方法”二者是“防御”关系。R表示概念之间关系的集合,如网络空间安全本体中“方式”与“攻击方法”是“父类子类”关系。F表示本体上公理集合,如网络空间安全本体中“OSI参考模型第一层是物理层”。I表示实例的集合,在网络空间安全本体中每个概念类都有多个具体的实例,如“主动攻击”是“攻击方法”概念类的实例。
知识图谱是一种采用图结构作为知识载体建模现实世界事物之间关联关系的技术方法,旨在从数据中识别、发现和推断不同种类的信息,并将信息连接在一起形成关系网络,为语义搜索、决策分析、智能问答等领域应用提供了从“关系”的角度去分析问题的能力[8]。知识图谱一般使用三元组表示,即D=(E,R,S)[9]。D表示知识库,如网络空间安全知识库。E表示知识库中的实体集合,如网络空间安全知识库中的“DDoS”。R表示知识库中的关系集合,如网络空间安全知识库中的“攻击”。S表示知识库中的属性集合,如网络空间安全知识库中的“高级”。
本体与知识图谱都是对某一领域中相关知识的表示[10]。本体侧重于概念以及概念之间的关联关系,是一个概念模型,不涉及具体的知识;而知识图谱是在本体的基础上增加了实体,形成了一个具体的可拓网络。本体是知识图谱的一种抽象表达方式,从网络空间安全本体到网络空间安全知识图谱是一个抽象到具体的过程[11]。
为应对复杂多变的网络空间安全领域业务需求,需要融合领域专业知识和高质量数据,因此采用自顶向下的方式构建知识图谱。网络空间安全知识图谱构建框架如图1所示。
图1 知识图谱构建框架
(1)本体层。分析和提取网络空间安全知识中涉及的概念和关系,设计具有层次性、模块性和可扩展性的本体库,明确图谱的领域范围,规范图谱中的表达,并使用本体构建工具Protégé进行本体建模。
(2)数据层。从结构化与非结构化数据源中提取语料进行实体构建,其中实体抽取采用Bi-LSTM模型与CRF模型相结合的实体识别方法,关系抽取采用人工标注完成,输出三元组用于填充知识图谱的数据层。
(3)存储层。利用Cypher语句将实体与关系三元组数据导入到Neo4j数据库中,完成知识的结构化存储,并实现网络空间安全知识图谱可视化展示。
本体层是知识图谱的核心层次,分析和细化网络空间安全知识内部的概念及关系,形成具有良好结构的概念层次树,并以本体语义关系形式表达,作为构建网络空间安全知识图谱的实体及关系的结构框架。
2.1.1 网络空间安全知识概念分类
网络空间安全知识体系结构复杂,主要涉及基础设施安全、系统安全、应用安全以及数据安全等[12]。本文主要面向网络攻防知识构建图谱,因此,将网络空间安全知识划分为资产、术语和方式3类概念,又细分为12类子概念。
(1)资产:主要指网络空间安全中相关对象,包括主体、目标等子概念,例如“网络管理员”、“服务器”。
(2)术语:主要指网络空间安全中相关名称,包括软件、硬件、系统、协议、算法、语言、病毒、漏洞等子概念,例如“IE浏览器”、“交换机”、“Windows操作系统”、“ARP协议”、“AES算法”、“C语言”、“黑色星期五病毒”、 “代码注入漏洞Apache Struts”。
(3)方式:主要指网络攻防的具体技术,包括攻击方法与防御措施等子概念,例如“DDoS”、“限制SYN流量”。
2.1.2 网络空间安全知识关系提取
本体的语义关系表示概念与概念之间的关联关系[13]。为进行网络空间安全知识的关系提取,采用三阶张量Y(eh,rk,et)的表示方法,定义实体与关系的向量表示。eh表示头实体,et表示尾实体,rk表示实体间关系。对Y进行张量分解后得到实体与关系的函数表示为
(1)
式中:xh、xt——网络空间安全知识的头实体和尾实体的n维向量;
yk——网络空间安全知识的关系;
Rijyk——第i个向量与第j个向量在关系yk下的关联程度。
本体模型中概念之间的关系包括通用语义关系和自定义语义关系。
(1)通用语义关系表示概念、属性、实体之间的关联关系,如表1所示。
表1 通用语义关系
(2)自定义语义关系表示资产、术语、方式3类概念及12类子概念实体之间的关联关系,如表2所示。
表2 自定义语义关系
实体可以看作是本体的实例,通过基于Bi-LSTM模型与CRF模型相结合的实体识别方法,从结体化和非结构化文本中识别网络空间安全领域中12类实体,并采用三元组表达实体及实体间的关系,通过本体与知识图谱的映射匹配机制填充数据层。
2.2.1 实体识别
根据网络空间安全领域特征,基于网络空间安全教程、漏洞数据库、网络安全术语词典以及科学文献,经人工提取语料共计5 000条。对语料分析后编写网络空间安全领域词典,使用O={per,net}表示主体和目标,E={soft,hard,sys,prot,alg,prog,vir,vul}表示软件、硬件、系统、协议、算法、语言、病毒和漏洞,M={att,def}表示攻击方法和防御措施。在Jieba中使用自定义的网络空间安全词典对语料句进行分词,词性标注采用BIO标注法,B代表实体开头,I代表实体中间,O代表其他非实体,例如B-per和I-per代表主体的开头与中间。将语料的词向量矩阵与领域词典输入实体识别模型,模型架构如图2所示,包括look-up层、双向LSTM层和CRF层,模型输入是网络空间安全领域语料词向量,加载训练集与测试集后,使用Bi-LSTM模型对输入的词向量序列进行特征提取,再将特征供给CRF模型选择出最适合的tag序列完成实体识别。
图2 实体识别模型架构
2.2.2 本体与知识图谱映射匹配机制
网络空间安全知识图谱基本结构包括本体层关系图OG和数据层关系图DG,即KG=
本体与知识图谱的映射是树与图之间的映射,如图3所示,将本体的实例及其语义关系完整的映射到知识图谱中,形成网络空间安全知识图谱的数据层关系图。
图3 网络空间安全知识图谱数据层关系
Neo4j是Neo technology研发的图数据库,可将数据存储于图模型中,实现处理数据间关系的存储与查询[15]。Neo4j模型中的数据源实例名作为实体节点,如“DDoS”、“输入法漏洞”等;关系边连接数据源中不同类型的实体节点,如“DDoS”与“服务器”之间的“攻击”关系;属性作为实例性质的基本描述,如“危害等级为高级的输入法漏洞”等。网络空间安全实体、关系和属性以列的形式写入到Excel文档后存储为CSV格式文件,利用Cypher语句将文件中数据导入到Neo4j中构建知识图谱,分别使用Node、Relationship和Property数据类型建立节点、关系和属性。图4为部分网络空间安全知识图谱,从图4可以看出,每一个节点会根据它的类型定义不同的特征,实体在Neo4j中可视化为圆图,节点关系通过边表示,对象属性则单独展示。
图4 网络空间安全知识图谱
知识图谱与网络空间安全领域业务场景相结合,可支持知识检索、智能问答和数据分析等任务。
(1)知识检索。基于知识图谱优化领域知识管理模式,根据实体、属性、关系等关键字段进行多维度查询,以图谱形式展示检索结果,也可依据检索结果进行知识推理,生成辅助安全防御决策信息。
(2)智能问答。结合网络空间安全语境意图模型,使用知识图谱实现语义理解,分析用户自然语言提问,将非结构化的语义表述转化为结构化的语义表述,实现人机交互问答。
(3)数据分析。基于网络空间安全领域多源数据,通过知识图谱增强数据之间的语义关联,对数据进行关联分析与挖掘。
(1)基于本体与知识图谱的映射匹配机制,实现了一种网络空间安全知识图谱构建方法。面向网络攻防知识进行资产、术语和方式3类本体构建,定义了通用语义关系和自定义语义关系。
(2)自建网络空间安全语料库,使用Bi-LSTM+CRF模型进行实体识别,在Neo4j图数据库中对知识图谱进行存储与展示。
本文的研究将对网络空间安全知识图谱的构建提供一定的参考,但仍有进一步改进的空间,未来工作主要在以下两个方面:一是网络空间安全知识图谱关系抽取采用人工标注完成,未来可进行关系识别技术研究,实现知识图谱的自动化构建。二是基于已经构建的网络空间安全知识图谱,用户还不能快速、方便地检索信息,需要探索以知识网络为支撑的智能应用,实现辅助决策信息的有效输出。