杜艺帆,丛红艳
(1.西北大学 现代学院,西安 710130;2.西安工程大学 新媒体艺术学院,西安 710048)
网络的飞速发展为人们生产与生活带来了极大的便利,但与此同时网络病毒传播速度也随之加快,网络安全问题日益严重。安全漏洞是造成网络安全问题的关键所在,其主要来源于网络系统脆弱性。随着网络的不断发展与普及,其在人们生产与生活中占据的地位逐渐上升,网络病毒也随之快速传播,网络安全正在经受着前所未有的威胁。若是网络安全防御措施不足,就会受到非法侵入,致使网络关键信息被篡改、偷窃等,严重会造成网络系统的瘫痪,造成较大的经济损失,威胁国家与大众的信息与财产安全。由此可见,如何保障网络安全具有至关重要的现实意义。通过调查研究发现,目前制约网络发展的最大问题就是安全问题,由于网络本质上是“无政府”的公用平台,任何人均可以自由登陆,使得网络安全保障具备较多的不确定因素(漏洞),为黑客提供了可乘之机。网络安全问题主要来源于系统的脆弱性,主要表现在管理脆弱性、技术脆弱性与系统脆弱性。其中,管理脆弱性主要发生在网络系统安全策略制定、实施、配置与控制过程中;技术脆弱性主要发生在硬件与软件设计过程中;系统脆弱性主要发生在安全防护设备运行过程中。由于上述网络系统脆弱性的存在,使得网络具有较多的安全漏洞,使得别有用心的人可以通过安全漏洞在未授权背景下访问或者破坏网络系统,对网络安全造成极大的威胁。任何网络安全问题均是由安全漏洞引起的,对其进行精准检测是提升网络安全的根本手段。
网络安全漏洞检测是一个动态的过程,并且其难度会随着网络覆盖范围的扩大而增加。相较于发达国家来看,中国对于网络安全漏洞检测的研究较晚,但也取得了一定的研究成果。文献[1]在感知网络整体安全态势的基础上,应用黑盒遗传算法进行相应的模糊测试,选取适当的目标函数与测试参数,测试停止后输出结果即为网络安全漏洞检测结果;文献[2]应用数据预处理模块与协同分析模块对网络安全漏洞信息进行预处理与分析,以此为基础,利用N-gram算法匹配漏洞信息与已知的漏洞特征,从而实现网络安全漏洞的检测;文献[3]使用被动分簇算法明确簇首与网关节点,利用AFL模糊检测工具过采样安全漏洞样本,结合前向反馈网络和支持向量机构建安全漏洞判别模型,将待检测网络运行数据代入到判别模型中,输出结果即为网络安全漏洞检测结果。上述安全漏洞检测系统虽然能够实现安全漏洞检测功能,但是由于应用手段的自身缺陷,均存在着安全漏洞检测效果较差的问题,无法满足网络系统的发展需求,故提出基于知识图谱的网络安全漏洞智能检测系统设计研究。现有安全漏洞数据库具有信息单一、数据分散、数据结构各异等缺点,这是影响安全漏洞检测效果的关键因素。知识图谱的出现可以有效解决上述问题,其能够根据海量的安全漏洞信息构建安全漏洞知识图谱,对安全漏洞信息进行聚合分析,挖掘安全漏洞关联信息,可以为安全漏洞检测提供更多的信息支撑,从而提升安全漏洞检测整体性能。
作为网络安全漏洞智能检测系统的关键硬件,检测器主要由管理器、检测单元、通信器等部件构成,为了提升网络安全漏洞检测的精准度,对检测器结构、逻辑模型与运行模式进行合理、科学地设计,具体设计过程如下所示。
网络安全漏洞检测器结构如图1所示。
图1 网络安全漏洞检测器结构示意图
如图1所示,在设计的网络安全漏洞检测器结构中,通信器主要承担着安全漏洞数据、漏洞报表、控制指令、网络邮件等的传递任务,与用户、服务器、控制器等进行直接连接,可以实时将安全漏洞检测结果传输给用户与服务器,也可以实时将用户控制指令传输给控制器,保障设计系统的通信顺畅[4]。通信器上述功能主要是在BSD Socket的支撑下实现的,还需要遵循一定的数据格式与传输规则,其基础运作原理为Socket API函数,具体调用方案需要根据实际情况来制定[5]。
管理器主要作用于检测单元,决定着安全漏洞检测任务执行过程中检测单元如何调度,是检测器中的核心部件。管理器功能实现的关键是配置文件,其中记录了检测单元信息、系统访问权限信息等。当网络系统安全漏洞检测单元增加时,配置文件中也需进行相应的记录。另外,管理器与通信器、检测单元均是直接连接的,用于接收用户反馈的控制指令与检测单元的安全漏洞信息。当管理器接收到通信器传输的控制指令时,先对控制指令进行解译,再以此为基础制定检测单元的控制动作[6]。当管理器接收到检测单元传输的安全漏洞信息时,不需要对其进行解译与分析,只需要将其直接转发给通信器即可。
检测单元是网络安全漏洞检测器的基石,是实现网络安全漏洞智能检测功能的程序实体。标准情况下,一个检测单元对应着一种网络安全漏洞的检测,检测单元之间保持着相互独立的关系。若是存在新的安全漏洞,则应该采用PERL语言对新的检测单元进行编制与添加。单一检测单元主要由注册部分、检测部分与卸载部分构成,其管理难度较低,只需要在安装过程中向管理器配置文件进行备份即可。
上述过程完成了网络安全漏洞检测器结构的设计,并对构成部件进行了详细地描述与介绍,为检测器功能的实现奠定基础。
逻辑模型是网络安全漏洞检测器功能实现的主要依据,故此节在用户、网络系统、漏洞检测等多方需求背景下,设计网络安全漏洞检测器逻辑模型,具体如图2所示。
图2 网络安全漏洞检测器逻辑模型示意图
如图2所示,网络安全漏洞检测器逻辑模型主要由3个部分构成,分别为用户界面部分、检测调度部分与漏洞检测部分。其中,用户界面部分秉持着简洁易用的原则,为用户提供多种类型的操作方式,满足不同用户的需求。用户可以通过浏览器查询到网络安全漏洞检测结果及其相关信息[7]。与此同时,高级用户还能根据自身需求对漏洞检测程序进行更改与完善,以此来提升网络安全漏洞检测整体性能。
检测调度部分主要是基于安全漏洞数据库与网关传输漏洞检测请求来确定检测目标网络及其其他需求,制定检测单元调度策略,并将其传输给漏洞检测部分,为漏洞检测提供指导作用。
漏洞检测部分主要是通过分布式检测单元对目标网络系统存在的安全漏洞进行检测、识别与预警,与此同时,判定目标网络系统的脆弱性等级,给出相应风险防范措施。根据不同网络用户的需求,编制不同形式的安全漏洞检测报告,并将其反馈给网络安全管理员,其收到反馈结果后,制定相应的安全漏洞补救措施,以保证网络系统的稳定运行,为用户提供更优质的网络环境。
常规情况下,检测器运行模式主要有两种,分别为单机检测模式与C/S模式。当检测器运行模式处于单机检测模式时,只需要管理员对相关参数进行合理配置,即可实现检测器的本地运行,判定网络系统是否存在安全漏洞。需要注意的是,检测器单机检测模式不涉及与服务器的通信过程;当检测器运行模式处于C/S模式时,涉及与服务器的通信过程,只有接收到服务器检测指令后才开启漏洞检测单元,漏洞检测结果通过通信方式反馈给网络系统,并将其存储于相应文件中,为后续安全漏洞检测结果查询提供便利[8]。在漏洞检测指令完成后,继续进入监控模式,直到网络用户下线为止。
上述两种运行模式优势与缺陷并存,无法为检测器的稳定运行提供支撑。因此,此研究融合两种运行模式的优势部分,设计新的网络安全漏洞检测器运行模式,具体如图3所示。
图3 网络安全漏洞检测器运行模式设计图
如图3所示,通过单机检测模式与C/S模式的有效结合,可以增加网络安全漏洞检测器运行的安全性以及可靠性[9]。
上述过程从结构、逻辑模型与运行模式3个方面出发完成了网络安全漏洞检测器的设计,为最终安全漏洞智能检测的实现提供有力的硬件支撑。
安全漏洞知识图谱可以表示安全漏洞、网络实体、相关属性等之间的复杂关联关系,对其进行构建可以为后续网络安全漏洞检测提供更多的信息支撑,具体构建过程如下所示。
2.1.1 安全漏洞数据采集与预处理
安全漏洞数据采集与预处理是安全漏洞知识图谱构建的首要环节[10],也是至关重要的环节。常规情况下,安全漏洞数据主要以非结构化文本形式存在,例如NVD、CVE等漏洞数据库,每个漏洞数据库存储的数据种类存在着较大的差异性[11],使得安全漏洞数据表现形式、存储位置较为随机,为安全漏洞数据采集带来了较大的困难[12]。针对上述安全漏洞数据特点,此研究选取网络爬虫对安全漏洞数据进行采集,具体如图4所示。
图4 基于网络爬虫的安全漏洞数据采集程序图
以图4所示程序对网络安全漏洞数据进行采集,并将其整合为集合形式,记为X={x1,x2,…,xn},其中,n表示的是网络安全漏洞数据的总数量。网络爬虫在安全漏洞数据采集过程中,容易受到网络环境、恶意程序等干扰,致使安全漏洞数据存在着冗余、层次逻辑混乱、异常等现象,不利于安全漏洞知识图谱的构建,故在安全漏洞知识图谱构建之前,需要对网络安全漏洞数据进行一定的预处理[13]。计算网络安全漏洞数据集合中任意两个数据之间的相似度,表达式为
(1)
式中,α(xi,xj)表示的是安全漏洞数据xi与xj之间的相似度;xi∩xj表示的是安全漏洞数据xi与xj的交集;xi∪xj表示的是安全漏洞数据xi与xj的并集;βΔ表示的是安全漏洞数据相似度计算辅助参数,取值范围为0~1,需要根据网络安全状态实际情况进行科学地设置。
以公式(1)计算结果α(xi,xj)为基础,判定安全漏洞数据是否为冗余数据,判定规则如下式所示:
(2)
安全漏洞异常数据检测与删除也是其预处理中的关键所在[14]。安全漏洞异常数据检测因子计算公式为:
(3)
以公式(3)计算结果Ke为基础,判定安全漏洞数据是否为异常数据,判定规则如下式所示:
(4)
式中,|Ke|表示的是安全漏洞异常数据检测因子Ke的绝对值。
2.1.2 安全漏洞知识图谱实体识别
安全漏洞知识图谱实体识别主要是针对安全漏洞实体进行识别,是知识图谱构建的主要依据之一。在网络运行实际情况下,每个安全漏洞均具备独一无二的ID,其对应的属性信息也存在着较大的差异性。由此可见,能够根据属性信息对安全漏洞知识图谱实体进行精准识别。
常规情况下,安全漏洞属性信息主要包括漏洞风险数值、漏洞文件名称、漏洞编程语言、漏洞爆发点等,为了方便后续漏洞实体的识别,对属性信息进行统计,具体如表1所示。
表1 安全漏洞属性信息统计表
如表1内容所示,每个安全漏洞均是由多个属性信息构成的,以此为基础,衡量未知安全漏洞与已知安全漏洞属性信息之间的相关系数[16],计算公式为:
(5)
式中,χ(Pi,Qj)表示的是未知安全漏洞属性信息集合Pi与已知安全漏洞属性信息集合Qj之间的相关系数;α(Pi,Qj)表示的是未知安全漏洞与已知安全漏洞属性信息的相似度;N表示的是属性信息的总数量;εe表示的是误差调整项,承担着提升相关系数精度的任务。
以公式(5)计算结果χ(Pi,Qj)为基础,制定安全漏洞知识图谱实体识别规则,具体如下式所示:
(6)
通过上述过程完成了安全漏洞知识图谱实体的精准识别,为最终知识图谱的构建做好充足的准备工作。
2.1.3 安全漏洞知识图谱关系抽取
在网络实际运行过程中,安全漏洞知识图谱主要存在4种依赖关系,分别为函数调用依赖关系、控制依赖关系、声明依赖关系与数据流依赖关系,其是知识图谱构建的基础与前提之一[17]。因此,此节对上述关系进行描述与抽取。
为了方便后续安全漏洞知识图谱关系的描述以及抽取,设置安全漏洞知识图谱任意两个节点为R1与R2,具体关系抽取过程如下所示:
1)函数调用依赖关系抽取:
2)控制依赖关系抽取:
3)声明依赖关系抽取:
4)数据流依赖关系抽取:
依据上述描述在安全漏洞知识图谱节点中进行搜索、识别与抽取,为后续安全漏洞知识图谱可视化处理提供支撑。
2.1.4 安全漏洞知识图谱可视化
以上述安全漏洞知识图谱实体识别结果与关系抽取结果为依据,定义安全漏洞知识图谱表示形式,设计安全漏洞知识图谱结构,从而实现安全漏洞知识图谱的构建与可视化。
此研究采用三元组表示安全漏洞知识图谱,表达式为
G=(X′,P,R)
(7)
式中,G表示的是安全漏洞知识图谱三元组表示形式;X′表示的是安全漏洞数据集合;P表示的是安全漏洞知识图谱实体集合;R表示的是安全漏洞知识图谱关系集合。
安全漏洞知识图谱主要包含两大结构,分别为漏洞实体结构与其他实体结构[18]。其中,漏洞实体结构中包含着安全漏洞属性信息、基本信息等,其他实体结构中包含着网络安防实体、网络运行程序实体等。安全漏洞知识图谱构建结果如图5所示。
图5 安全漏洞知识图谱构建结果示意图
上述过程完成了网络安全漏洞知识图谱的构建与可视化,为网络安全漏洞智能检测系统的实现打下坚实的基础。
以上述网络安全漏洞知识图谱构建结果与网络安全漏洞检测器设计结果为依据,构建网络安全漏洞智能检测整体架构,制定网络安全漏洞智能检测具体流程(检测器软件程序),从而获取最终网络安全漏洞智能检测结果,为网络系统的稳定运行提供保障。
网络安全漏洞智能检测整体架构如图6所示。
图6 网络安全漏洞智能检测整体架构图
基于FGqT-Match算法的网络安全漏洞智能检测程序如下所示。
阶段一:FGqT索引构造。
FGqT索引(流图索引)主要是基于漏洞数据匹配顶点对构造而成。其中,顶点对主要描述的是待检测安全漏洞知识图谱顶点u到已知安全漏洞知识图谱顶点v的映射函数,记为[u,v]。需要注意的是,在漏洞数据匹配顶点对应用之前,需对其是否匹配进行精准验证,验证规则如下式所示:
(8)
式中,L1(u)与L1(v)表示的是漏洞数据匹配顶点u与v对应的标签函数;L2(u,u′)与L2(v,v′)表示的是漏洞数据匹配边(u,u′)与(v,v′)对应的标签函数;u′表示的是待检测安全漏洞知识图谱中与顶点u连接的任意一个顶点;v′表示的是已知安全漏洞知识图谱中与顶点v连接的任意一个顶点。
当漏洞数据匹配顶点对[u,v]满足公式(8)全部约束条件时,则表示漏洞数据顶点u与v是匹配的,对其进行保留处理;当漏洞数据匹配顶点对[u,v]不符合公式(8)某一条约束条件时,则表示漏洞数据顶点u与v是不匹配的,对其进行删除处理。
一个FGqT索引是由多个顶点对构成的(顶点对是匹配的),将其记为M={[u1,v1],[u2,v2],…,[un,vn]},其中,n表示的是漏洞数据匹配顶点对的总数量。
阶段二:最优匹配序列获取。
以上述构造的FGqT索引M={[u1,v1],[u2,v2],…,[un,vn]}作为依据,计算待检测安全漏洞知识图谱顶点中标签数量与已知安全漏洞知识图谱顶点中标签数量比值,将其记为匹配概率,表达式为
(9)
式中,ζ表示的是匹配概率;|G|与|F|表示的是待检测安全漏洞知识图谱与已知安全漏洞知识图谱中顶点候选集的大小;f(u)与f(v)表示的是待检测安全漏洞知识图谱与已知安全漏洞知识图谱顶点中标签数量。
以公式(9)计算结果ζ为基础,判定当前子图匹配序列{[u1,v1],[u2,v2],…,[un,vn]}是否为最优匹配序列,具体判定规则如下式所示:
(10)
式中,Ψ表示的是最优子图匹配序列判定阈值,其需要根据安全漏洞知识图谱实际情况进行具体的设置。
当不存在最优子图匹配序列时,表明网络系统中未存在安全漏洞;当存在最优子图匹配序列时,表明网络系统中存在安全漏洞,并且安全漏洞类型为子图匹配到的已知安全漏洞知识图谱对应的安全漏洞[20]。
综上所述,在知识图谱原理的应用下,实现了网络安全漏洞智能检测系统的设计与运行,最终获取网络安全漏洞检测结果。
设置文献[1]提出的黑盒遗传算法、文献[2]提出的N-gram算法、文献[3]提出的被动分簇算法作为对比系统1、对比系统2与对比系统3,联合设计系统共同进行网络安全漏洞智能检测对比实验,以此来验证设计系统的应用效果。
选取某局域网络系统作为实验对象,其覆盖范围较小,方便实验的进行。单一实验工况背景下,无论怎么增加实验次数,获得的实验结论可信度均较低。因此,为了提升此研究实验结论的可信度,在实验进行之前,依据实验对象——局域网络系统实际情况,设置10种实验工况,具体如表2所示。
表2 实验工况设置表
如表2内容所示,设置的10种实验工况中,安全漏洞数量、漏洞来源等均不一致,表明每种实验工况对应的背景环境存在着较大的差异性,符合设计系统应用效果的测试需求。
为了直观显示设计系统的应用效果,选取适当的评价指标。从安全漏洞检测精度与效率两个角度出发,选取网络安全漏洞漏检率、网络安全漏洞检测F1值与网络安全漏洞检测响应时间作为评价指标。其中,前两个评价指标表征的是安全漏洞检测精度,后一个评价指标表征的是安全漏洞检测效率。
网络安全漏洞漏检率计算公式为
(11)
式中,O表示的是网络安全漏洞漏检率,其与安全漏洞检测性能呈现显著的反比例关系,即漏检率数值越小,表明安全漏洞检测性能越好;htotal表示的是网络系统中存在的安全漏洞总数量;h1表示的是检测到的安全漏洞数量。
网络安全漏洞检测F1值计算公式为
(12)
式中,F1表示的是融合了精确率与召回率的评价因子,能更准确地衡量网络安全漏洞检测质量,该数值越大表明安全漏洞检测性能越好;p表示的是安全漏洞检测精确率;r表示的是安全漏洞检测召回率。
网络安全漏洞检测响应时间计算公式为
T=T1-T0
(13)
式中,T表示的是网络安全漏洞检测响应时间,该数值越小表明安全漏洞检测性能越好;T1表示的是网络安全漏洞检测结果输出时间;T0表示的是网络安全漏洞出现时间。
上述过程完成了评价指标的选取与计算公式介绍,为后续实验结果分析提供依据。
3.3.1 网络安全漏洞检测精度分析
在实验工况设置及评价指标选取的基础上,进行网络安全漏洞检测实验。根据表2中已知的安全漏洞信息,确定安全漏洞知识图谱的表示形式。设计安全漏洞知识图谱的结构。将安全漏洞的关键属性和关系以节点和边的形式进行建模,并确定节点之间的关联关系。利用已构建的安全漏洞知识图谱,辅助识别网络中存在的潜在漏洞问题。采集检测过程中网络系统中存在的安全漏洞总数量及检测到的安全漏洞数量,代入公式(11)获得网络安全漏洞漏检率实验结果,如表3所示。根据公式(11)计算安全漏洞检测精确率及安全漏洞检测召回率,代入公式(12)获得网络安全漏洞检测F1值实验结果,如表4所示。
表3 网络安全漏洞漏检率 %
表4 网络安全漏洞检测F1值
通过实验获得网络安全漏洞检测精度评价指标——网络安全漏洞漏检率、网络安全漏洞检测F1值如表3、表4所示。
如表3数据所示,在不同实验工况背景条件下,应用设计系统获得的网络安全漏洞漏检率低于对比系统1、对比系统2与对比系统3,其最小值达到了1.23%,而对比系统1、对比系统2与对比系统3的网络安全漏洞漏检率最小值分别为9.89%、8.45%、9.56。设计系统的网络安全漏洞漏检率较低,是因为设计系统通过对真实数据进行知识图谱的建模和构建,通过定义安全漏洞知识图谱的表示形式和结构,并进行可视化展示,系统可以更清晰地呈现安全漏洞之间的关联信息。系统利用属性信息识别安全漏洞实体,移除冗余数据和异常数据,这有助于用户理解和分析漏洞之间的联系,提高漏洞的发现和推断能力,从而提高了检测的准确性和可靠性。
如表4数据所示,在不同实验工况背景条件下,应用设计系统获得的网络安全漏洞检测F1值高于对比系统1、对比系统2与对比系统3,其最大值达到了9.50,而对比系统1、对比系统2与对比系统3的网络安全漏洞检测F1值最大值分别为5.59、6.23、7.12。设计系统的网络安全漏洞检测F1值较高,意味着漏洞检测系统在同时考虑了准确率和召回率的情况下取得了更好的平衡,F1值高说明系统可以精确地识别安全漏洞,较少将正常的网络流量误判为漏洞或错误地报告漏洞。这有助于避免误报、减少虚假警报,让系统运行更加可靠和稳定。F1值高也意味着系统能够高效地检测出网络中的真实漏洞,尽可能地避免漏报。提高召回率意味着漏洞检测系统能够更多地识别到实际存在的漏洞,及时采取措施进行修复和防护。
3.3.2 网络安全漏洞检测效率分析
根据上述实验过程,记录网络安全漏洞检测结果输出时间及网络安全漏洞出现时间,代入公式(13)获得网络安全漏洞检测效率实验结果,如图7所示。
图7 网络安全漏洞检测响应时间示意图
如图7数据所示,在不同实验工况背景条件下,应用设计系统获得的网络安全漏洞检测响应时间均低于对比系统1、对比系统2与对比系统3,其最小值达到了1 ms,而对比系统1、对比系统2与对比系统3的检测响应时间最小值分别为1.5 ms、2 ms、2.8 ms。表明设计系统的网络安全漏洞检测效率更高。设计系统通过对大量真实数据进行预处理,去除冗余数据和异常数据,提高数据的质量和准确性。这样可以使得系统对漏洞进行快速检测和分析,从而减少响应时间。通过整体架构的设计和具体流程的制定,使得漏洞检测能够高效运行。
随着网络技术的发展与普及,网络已经成为人们生产与生活中必不可缺的事物。随之而来的网络安全问题也日益严重,威胁着用户信息的安全与网络系统的稳定,成为制约网络后续发展的关键所在,故提出基于知识图谱的网络安全漏洞智能检测系统设计研究。通过实验得出,所设计系统降低了网络安全漏洞漏检率,提升了网络安全漏洞检测F1值,缩短了网络安全漏洞检测响应时间,为安全漏洞检测提供更有效的系统支撑。综上所述,基于知识图谱的网络安全漏洞智能检测系统可以为网络安全领域带来更高效、精准和智能的漏洞检测和防护能力,也能够为相关研究提供一定的借鉴作用。