王晓辉,宋学坤
(河南中医药大学,河南 郑州 450046)
现如今,因特网已经成为推动社会经济发展的强大动力,在人们对因特网的依赖性日益增强的同时,由于因特网的特殊性,网络安全漏洞类型也在不断增多,严重影响着人们的体验感和使用安全[1]。互联网对用户来说是透明的,由于用户对阅读信息的来源是未知的,加之越来越多的参与者因为不同的背景和动机而加入到网络中,因此,这些因素使黑客攻击事件发生日益频繁,黑客数量不断增加,病毒、木马、网络犯罪等层出不穷。对于系统漏洞,可以在系统被攻击者利用之前对其进行分析,从而及时阻止补丁攻击。但已有的网络安全态势感知系统都是利用多维信息来分析系统漏洞[2]的,由于关系数据库中独立存在多个系统,因此,各维度之间的协作能力较差,严重影响了关联分析的实时性和准确性;而且在基于规则的关联分析系统中,需要借助专家知识来构建攻击场景,通常不能自动对不出现在攻击模板知识库中的新攻击进行分析推理[3]。为解决上述问题,文中设计了一种基于知识图谱的网络安全漏洞类型关联分析系统,该系统可以利用网络安全知识图来规范基础属性及其相互关系。
系统采用全模块化设计,可以为关联分析功能提供高效、可靠、稳定的分析引擎,以保证系统的可扩展性。图1为整个系统架构。
图1 系统整体架构
由图1可知,系统通过入侵检测对采集到的数据进行过滤,并对过滤后的数据进行关联分析,以完成对网络安全漏洞类型的关联分析。
普通数据库是漏洞数据库和扫描数据库之间的桥梁,其可以通过扫描规则库漏洞信息签名代码[4],再利用扫描器获得用于扫描网络主机的签名码。当返回一个特定值时,数据库可以判断网络主机上是否有漏洞以及漏洞类型[5-6],还可以在完成扫描后将主机信息发送给信息管理模块进行分析,并提出处理建议。最后,通过此用户管理界面可以对漏洞数据库、补丁数据库、规则库进行添加、删除、修改以及检查处理结果,为后续验证提供必要的平台准备[7-9]。
系统需要建立漏洞数据库、补丁数据库和规则数据库,并通过自动采集模块进行更新。修补程序数据库应该与漏洞数据库同步,即修补程序数据库是漏洞数据库信息的一个子集,修补程序数据库中的修补程序信息应该明确对应于某个漏洞信息,并且可以从指定的位置下载修补程序。在扫描某个主机需要补丁时,它们可以连接到官方补丁库进行更新,根据网络状态的不同,升级速度也不同[10]。所以,首先需要更新知识库中的补丁数据库,当主机需要更新时,可以直接连接现有知识库,从而实现知识库的快速更新[11-13]。
图2为漏洞信息自动收集结构。
图2 漏洞信息自动收集结构
由图2可知,收集安全漏洞有两种方法:软件自动收集漏洞和专业人员手动操作收集漏洞[14]。其中,软件自动收集漏洞利用网站插件收集一些专业网站的漏洞信息,对漏洞信息转换格式,最后将其放到漏洞数据库中。对于专业人员手动操作收集漏洞方法,专家必须具有一定的专业知识及分析潜在漏洞的能力,通过各种方式获取漏洞信息,分析、整理漏洞信息,将其放到漏洞数据库中,负责漏洞数据库的维护[15]。自动采集系统的体系结构由客户端自动采集软件和服务器端漏洞数据库两部分组成,客户机和服务器都基于网络平台。
安全集成管理系统的核心是关联引擎,该引擎的功能包括支持分布式操作、负责传输代理、规范安全事件关联、评估网络安全。图3为关联引擎结构。
由图3可知,在关联引擎中,每个数据都可以动态地关联到其他数据,因此,在没有任何限制的情况下,所有技能水平的用户都可以使用简单的搜索和选择来探索信息[16]。
图3 关联引擎结构
在软件功能设计过程中,需要建立网络安全知识图谱,并将独立的数据整合到高级知识图谱中。之所以选用知识图谱方法主要是因为相对于传统的数据库,知识图谱能够利用一个通用结构,通过实体间的关联关系,把大量属于某一知识类别的信息组织到逻辑结构中,用于语义检索或智能问答,具有一定的知识推理能力,可以使请求者得到快速的响应。知识图谱在满足高实时性和语义相关搜索要求方面具有明显优势,图4为知识图谱的映射过程。
图4 知识图谱的映射过程
在扫描网络主机时,扫描器首先从规则库中读取漏洞规则,然后基于所扫描的IP生成扫描规则。每台主机都将基于签名代码返回特定值,否则就不能使用。若返回值为-1,则说明网络存在漏洞;若返回值为0,则说明网络存在部分漏洞。若返回值与规则的结果字段相匹配,则得到特定漏洞类型。这时,可以将分析结果发送给信息分析处理模块,使用堆排序方法对知识库系统中的规则库进行排序和汇总,从而使其在存在漏洞的情况下仍然能够达到平衡状态。
使用Apriori算法找出频繁项集S后,根据最小置信度生成关联规则,按照式(1)获取规则置信度:
式(1)中,A⇒B表示A集合到B集合的置信度;P(B∣A)表示规则置信度,即条件概率;support_Count(A⋃B)表示两个集合并集中关联规则出现的次数;support_Count(A)表示集合A在S中出现的次数。
对于频繁项集S中的项目集x,其子集的一个规则为y⇒x-y,针对该规则求取置信度:
式(2)中,置信度大于min—support作为强规则输出,对每个频繁项集S中的每个子集获取关联规则,并计算置信度,满足最小置信度要求的为强关联规则。
在强关联规则支持下,利用知识图谱对漏洞类型进行多维度分析,在知识图谱中,同时存在高、中、低3种类型的漏洞危害等级,如图5所示。
图5 网络安全漏洞危害等级
通过网络安全漏洞危害等级,再结合关联规则,可以遍历网络安全事件节点。在字段个数值同时存在的情况下,知识图谱还可以将数值映射到事件ID上,从而建立起一个从事件ID到漏洞ID的指向关系,完成对网络安全漏洞类型的关联分析。
文中设计的实验主要有两台主机,操作系统为Ubuntu10.00,实验室数据为2 000份,利用OpenDPI将深度检测结果存放到日志文件中,通过过滤模块将过滤后的数据存储到内存中。
通过搭建的网络环境对网络系统中的主机进行漏洞扫描,获取的信息集合如表1所示。
表1 扫描出的漏洞集合
由表1可知,网络系统中共扫描出17个漏洞,根据漏洞CVE编号可以提取漏洞基本信息。
告警率指的是网络安全漏洞出现的报警概率,接下来分别使用文献[2]、文献[3]的系统与设计系统进行对比分析,结果如表2所示。
表2 3种系统网络安全告警率对比分析
由表2可知,使用文献[2]系统网络安全告警率最高为0.64,最低为0.55,这主要是因为其受到独立存储关联性数据库影响,各个维度间协调能力差,所以告警率低;使用文献[3]的系统网络安全告警率最高为0.66,最低为0.58,这种现象的产生主要是因为其受到外界攻击,无法实现自动分析推理,导致告警率低;而设计系统的告警率最高为0.99,最低为0.97,具有良好的分析效果。
更新网络传输节点,在不同节点数量下,分别使用3个系统分析数据丢包率,对比结果如图6所示。
由图6可知,文献[2]系统在节点数量为80个时丢包率达到最高,为1.26%;文献[3]系统在节点数量为20个时丢包率达到最高,为0.75%;设计系统在节点数量为20个时丢包率达到最高,为0.32%。通过上述分析结果可知,使用设计系统的丢包率低,能够进行高效的数据收集工作。
图6 3个系统数据丢包率对比分析
文中主要设计了基于知识图谱的网络安全漏洞类型关联分析系统,并通过实验验证了该系统的漏洞类型,分析工作可以成为网络安全的重要保障,但目前,该系统还存在一些缺陷:
1)在对漏洞进行评估时,存在一些主观因素,为此需要继续研究漏洞描述中的参数和度量标准,对大量的漏洞信息进行评估,寻找更多的度量标准对度量标准进行扩展和调整,以提高漏洞度量的准确性和灵活性;
2)由于网络规模越来越大,Apriori算法效率已不能满足大规模复杂网络的要求,需要进一步改进;
3)采用MySQL数据库进行数据库升级、漏洞数据库设计,该数据库是一种开放源码数据库,可节约系统开发成本。但随着抓取漏洞信息和用户数量的增加,开放源码数据库已不能支持海量数据存储的安全和运行,所以数据库必须进行升级。