知识图谱在网络安全配置领域的应用研究

2022-09-21 01:34李佳忆吕昊
电子测试 2022年17期
关键词:结构化图谱检索

李佳忆,吕昊

(太极计算机股份有限公司,北京,100000)

1 网络安全知识图谱系统构建

为构建高实用性的网络安全知识图谱系统,本节将结合知识图谱相关的理论研究和实践探索,围绕系统设计、系统实现、系统测试三方面开展深入探讨。

1.1 系统设计

如知识图谱用于网络安全领域,必须保证其数据模式严格且丰富,进而为安全配置等决策提供辅助,由此开展的网络安全知识图谱系统构建可结合图1所示的网络安全领域本体构建[1]。

图1 网络安全领域本体构建示意图

网络安全知识图谱系统构建需要从具体构建和可视化两个子系统入手,前者涉及数据获取、知识抽取、融合多源异构知识、验证知识、存储与检索知识,后者涉及知识检索、知识展示。围绕知识图谱构建子系统进行分析可以发现,该子系统的弱点库、漏洞库基于互联网获取,除这类结构化数据外,网络安全相关的公告、文章等非结构化文本数据也需要针对性收集,收集后基于知识抽取技术获取规范的网络安全知识,融合多源异构网络知识的过程需要去除冗余和重复数据,知识质量控制需要通过网络安全知识的针对性获取验证,最终在网络安全领域本体模式中链接验证后的知识,即可构建和更新网络安全知识图谱;围绕图谱可视化子系统进行分析可以发现,其需要通过可视化的网络安全知识图谱提供知识检索和展示功能,具体基于节点和边的形式呈现网络安全知识,同时提供接口用于知识验证界面跳转,实现网络安全知识查询[2]。

在具体的网络安全知识图谱系统设计中,系统由五个层次组成,包括可视化层、业务逻辑层、数据存储层、知识构建层、数据获取层,具体如图2所示。

图2 网络安全知识图谱系统设计示意图

结合图2进行分析可以发现,构建网络安全知识图谱由知识构建层和数据获取层负责,图谱的可视化由业务逻辑层和可视化层负责,网络安全领域本体、网络安全知识图谱数据、网络安全知识库(待人工验证)的持久化由数据存储层实现,各层的具体设计如下:第一,数据获取层设计。基于公开的平台库、弱点库、安全漏洞库等结构化数据,数据获取层可实现对多种数据源的采集,这一过程还需要同时关注非结构化文本数据的采集,包括安全相关博客、安全公告、漏洞描述信息等。基于采集到的结构化、非结构化网络安全数据,数据获取层负责进行预处理,具体涉及数据清洗、数据整合,进而规范数据格式、处理异常字符、实现数据去重,得到质量相对较高的网络安全数据,满足后续处理工作需要[3];第二,知识构建层设计。网络安全知识图谱系统的知识构建层由四部分组成,包括知识抽取、知识验证、融合多源异构知识、存储与检索知识。知识抽取负责非结构化网络安全数据处理,这一过程中需要设法实现对网络安全实体的识别,具体应用命名实体识别技术,实体间关系构建通过关系抽取技术完成,最终完成网络安全知识整合,后续处理需要可由此满足。融合多源异构知识同样需要聚焦采集数据,这一过程需要整合实体的不同描述信息或同一实体。在网络安全知识融合后,知识验证采用半自动验证方式,最终在网络安全知识图谱中存储知识并用于检索;第三,数据存储层设计。该层负责提供数据存储支撑,具体涉及网络安全知识图谱、网络安全知识库(待人工验证)、网络安全领域本体;第四,业务逻辑层。该层提供数据处理和分析功能,满足可视化层需要,具体运行需要对网络安全知识图谱数据开展读取,通过分析、处理得到结果后向可视化层发送。对于用户界面输入信息,业务逻辑层负责开展业务逻辑处理,网络安全知识由此获取后向可视化层反馈;可视化层负责知识检索和知识展示,前者需要提供接口用于查询网络安全知识,可满足简单查询需要,可分别围绕实体属性、实体名称进行查询,查询结果分别为实体列表、实体相关属性信息。知识展示功能需要通过界面展示网络安全知识图谱内容,具体以节点和边的形式进行展示,这种直观、友好的展示可同时提供入口供安全分析人员使用[4]。

基于上述层级设计,网络安全知识图谱系统设计还需要关注功能模块划分,这一划分需要结合系统架构设计和系统需求,具体划分遵循“高内聚、松耦合”原则,划分结果如图3所示。

图3 功能模块划分示意图

结合图3进行分析可以发现,各模块在系统中独立运行,但同时模块间存在联系紧密的内部元素,在外部接口支持下,模块间能够交互,内部接口负责模块内部的数据通信,组件形式下系统各模块得以形成有机结合的整体架构。深入分析图3不难发现,构建子系统模块包括检索与存储知识模块、知识验证模块、融合异构知识模块、预处理数据模块、采集数据模块、知识抽取模块,可视化子系统包括知识可视化模块、交互处理模块,各模块功能包括:第一,采集数据模块。基于解析规则和采集配置项,数据采集模块可依托互联网实现对原始网络安全数据的采集,采集同时涉及结构及非结构化数据,包括JSON、XML等格式的结构化原始网络安全数据,及文本格式数据等非结构化数据。进一步细分可以发现,安全公告、安全相关博客、漏洞详细描述均属于典型的非结构化数据,平台库、弱点库、漏洞库则属于典型的结构化数据;第二,预处理数据模块。对于采集得到的非结构化文本数据,需要设法清洗相关数据源文件,这需要由数据预处理模块负责,*、%、@等特殊符号在这一过程中通过正则表达式去除,网络安全数据的质量可以得到保障,之后整合多个文件中分散的数据,即可为抽取网络安全知识提供支持;第三,知识抽取模块。该模块可细分为关系抽取和实体抽取,在网络安全文本数据预处理后,模块需基于命名实体识别模型进行网络安全实体抽取,该模型需要在训练好后使用,而对于实体间存在的关系,需通过关系模板构建关系并完成网络安全知识生成,在构建实体关系的过程中,需综合考虑网络安全领域本体及实体识别;第四,融合异构知识模块。该模块主要负责实例数据(水平方向)、较低层本体与高层本体(垂直方向)融合,如通过水平融合实例数据实现知识互补,具体涉及漏洞库等数据,本体模式中也需要融合攻击方法、弱点、漏洞等实例数据。模块输入为采集数据模块提供的多种数据源文件,通过融合脚本和知识匹配融合规则融合网络安全知识,最终实现标准化数据生成,这一过程需要聚焦融合匹配规则的科学利用;第五,知识验证模块。该模块负责验证新知识及知识更新的正确性,新知识与已有知识的异质性也需要由该模块控制。结合公开已有知识库,模块的知识验证通过半自动化方式完成,以一致性、冗余度、权威度为验证依据。以国家信息安全漏洞库等高权威度信息源进行高可信知识选取,同时选择高频次出现的知识,这一过程结合正确知识出现概率,同时需要聚焦知识的相容冲突程度,系统无法验证的知识由手工方式进行人工处理;第六,检索与存储知识模块。知识在通过验证后,该模块需要基于图结构进行数据处理,由此得到的网络安全知识图谱数据需要基于图数据检索语言管理,包括删除、查询、更新;第七,交互处理模块。在数据存储层和可视化层间,该模块属于连接桥梁,这一作用发挥需要同时得到网络安全知识图谱的支持。在人工处理的数据由可视化模块向交互处理模块传递,模块可基于该信息更新网络安全知识图谱。通过接收检索与展示界面信息,模块还能够通过业务逻辑处理满足系统功能需要,如开展网络安全知识查询及反馈,可视化模块的功能实现可获得支持;第八,知识可视化模块。通过提供人机交互接口,可视化展示模块可基于知识验证界面确认待验证知识,网络安全分析人员可由此开展工作。对于系统的普通用户来说,网络安全知识可在该模块基于节点与边图形式展示,模块可同时提供简单查询服务[5]。

1.2 系统实现

为实现网络安全知识图谱系统,本文引入Python语言,通过WEB框架和大数据处理框架处理后端数据,D3.js框架用于前端展示界面实现,HugeGraph图数据库用于存储网络安全知识图谱,该图数据库在相互关联且复杂的数据处理方面表现突出,读写性能良好,查询性能出色。在网络安全知识图谱构建子系统的实现过程中,需要关注其数据采集、知识抽取、数据预处理、知识验证、融合异构知识、知识存储与检索等模块。以知识抽取模块的实现为例,该模块的知识体系为网络安全领域本体,在具体运行过程中,其需要聚焦网络安全文本数据预处理后的产物,其中的网络安全实体识别需要应用网络安全命名实体识别器,网络安全知识生成需做好实体间关系构建,这一过程需得到关系规则模板支持,图4为知识抽取序列图。结合图4进行分析可以发现,知识抽取过程需要首先将网络安全命名实体识别器启动,以此结合网络安全文本数据形成输入序列并向关系构造器发送,基于识别到的实体并对关系模板数据进行读取,即可完成实体间关系构建,最终向消息中间件发送网络安全知识,即可为后续融合提供支持[6]。

图4 知识抽取序列图

网络安全知识图谱可视化子系统的实现需要聚焦知识验证用户确认、网络安全知识检索、网络安全知识展示三个子模块。以网络安全知识检索子模块为例,图5为该子模块的运行时序图,通过查询信息的输入,用户即可统计界面开展查询,可视化处理器接收到查询请求后自动解析,具体设计中实体属性和实体名称,同时调用网络安全知识并向实体属性信息、实体列表等转化,即可为用户提供检索结果,满足用户查询需要。

图5 网络安全知识检索子模块运行流程图

1.3 系统测试

为测试网络安全知识图谱系统,测试环境设置为Google Chrome 79.0.3945.117,运行环境设置为Kafka v2.11、Nginx v1.14.0、Mongo v2.6.12、Huge Graph 0.10.4。围绕系统的网络安全知识查询性能进行测试可以发现,所有节点和边的遍历查询用时分别为0.182s、0.748s;结合多度查询实验可以确定,结合漏洞属性查询漏洞的一度、二度、三度、四度查询耗时分别为0.0512s、0.044s、0.038s、0.033s;围绕路径遍历开展实验可以确定,漏洞实体在基于软件实体的查询过程中,存在0.085s的一层遍历耗时,漏洞利用后果基于漏洞实体查询过程中,这种二层查询围绕攻击方法实体进行,具体耗时为0.092s;围绕可视化子系统运行效果进行测试可以发现,网络安全知识验证用户界面、展示界面、检索界面设计细节得到较好体现,能够较好满足查询等需要,运行效果良好,如图6为网络安全知识检索界面示意图,系统可实现对实体对应的属性信息查询,图中的“HIGH”、“overflow”、“NETWORK”分别代表高危、缓冲区漏洞、远程,查询结果则对属性的实体进行了直观展示。

图6 网络安全知识检索界面示意图

2 网络安全配置数据处理、知识融合、图谱构建

为直观展示知识图谱在网络安全配置领域的应用,本节结合公安行业特点,深入探讨网络安全配置数据处理、知识融合、图谱构建。

2.1 数据处理

为应用知识图谱进行网络安全配置,首先需要从数据处理入手,这里的数据涉及设备资产、网络拓扑、业务信息、设备策略、设备属性等多源异构数据,结构化数据的获取需开展属性抽取、实体抽取、关系抽取等操作。实体抽取需要自动识别采集数据原始语料中的命名实体,作为最基本的知识图谱元素,实体抽取的准确性、完整性、召回率直接关系着知识库质量,具体可应用长短期记忆网络等深度学习方法完成实体抽取;属性抽取需基于属性对实体进行完整勾画,这里的实体属性可以视作属性值与实体间存在的名称性关系,因此抽取实体属性问题可以向关系抽取问题转化;关系抽取主要涉及抽取关系语句的命名实体识别、依存句法分析、词性标注,本质上属于基础自然语言处理任务。在关系抽取的预处理环节,应结合图卷积,可以被网络处理的图能够在这一过程中基于自然语言语句生成,同时关系得以从非结构化数据中抽取得到。

2.2 知识融合

在数据处理后,网络安全配置需要围绕结构化网络进行,这一过程中的知识融合需要关注知识合并与实体链接。基于文本中抽取获得的实体对象,实体链接需要结合数据库链接对应正确实体对象,这一过程可应用共指消解和实体消歧技术,知识库内书否存在拥有相同含义的其他命名实体及同名实体的不同含义可由此判断,进而向现有实体链接或创建实体。对于同名实体产生歧义问题,可通过实体消歧技术进行处理,该技术在应用中可结合语境实现实体链接准确建立。一般使用聚类法进行实体消歧,这一将其简单视作结合上下文的分类,与词义消歧、词性消歧较为类似。如同一实体对象与多个指标对应,这一问题可通过共指消解技术进行处理。如多个指标在一次会话中可能指向同一实体对象,相关指称项可基于共指消解技术向正确实体对象合并或关联。知识合并需要聚焦外部关系数据库或结构化知识库与处理后结构化数据的合并,这一合并需要解决模式层和数据层冲突问题。

2.3 图谱构建

基于上述分析和网络安全知识图谱系统,即可开展针对性的网络安全配置图谱构建,具体结合公安行业知识图谱,构建过程选择图形数据库Neo4j,进而通过网络存储结构化数据,该图形数据库可满足大规模可扩展需要,运行多台机器并行运行,每台机器可实现对数十亿属性/关系/节点图的处理。图谱构建可首先从创建节点入手,节点需要在知识图谱中创建,具体由网络名称、设备能力、设备名称等组成,如设备数据文件前5行包括设备名称、漏洞扫描系统、病毒查杀系统、交换机、路由器组成,具体创建使用load CSV方式。应在不同.csv文件中放入不同类型节点,如区分设备数据文件、网络数据文件。通过对一定指令的运行,可展示设备数据创建结果,通过对其中节点的点击,即可获取对应信息。

基于实体节点的创建,即可建立对应关系,建立实体关系的过程需要明确连接关系及头尾节点,具体创建流程可概括为:“数据A→图谱中数据头节点包含情况→是/否→得到头尾节点/创建头节点→图谱中数据尾节点包含情况→是/否→得到头尾节点/创建尾节点→创建关系→结束”。结合网络安全配置知识图谱,数据建模可围绕该图谱进行,基于相同速度进行节点与边的遍历,这一过程中构成图的数据量不影响遍历速度,快速增大公安网络规模引发的网络安全问题可由此解决。在网络安全配置领域,网络安全配置知识图谱可满足多元知识整合存储需要,在低结构化、互联网、复杂的大量数据处理方面表现突出,且不会在应用中出现查询响应性能衰退等问题,可视化分析和关联查询可基于多维网络安全配置数据实现,高质快速的网络安全配置可在这种辅助下完成。

3 结论

知识图谱在网络安全配置领域的应用价值极高。在此基础上,本文涉及的数据处理、知识融合、图谱构建等内容,则提供了可行性较高的知识图谱应用路径。为更好服务于网络安全配置,知识图谱需要针对性结合网络安全配置场景构建,相关人才的引进和培养、软硬件的针对性升级也需要同时得到重视。

猜你喜欢
结构化图谱检索
高清大脑皮层发育新图谱绘成
中医药知识图谱应用现状分析及痴呆痰瘀互结证知识图谱构建探索
促进知识结构化的主题式复习初探
改进的非结构化对等网络动态搜索算法
绘一张成长图谱
结构化面试方法在研究生复试中的应用
左顾右盼 瞻前顾后 融会贯通——基于数学结构化的深度学习
瑞典专利数据库的检索技巧
在IEEE 数据库中检索的一点经验
一种基于Python的音乐检索方法的研究