专利名称:主动式网络安全漏洞检测器的制作方法
技术领域:
本发明属于计算机网络安全技术领域,特别涉及一种主动式网络安全漏洞检测器AVCS(Active Vulnerability Checker for computer network Systems),用于检测网络安全漏洞。
背景技术:
漏洞是一切网络安全问题的根源,漏洞检测是解决网络安全问题的基础,只有了解系统存在的安全隐患,才能做到有针对性地防卫,避免盲目性防护,真正做到“知己知彼,百战不殆”。漏洞检测技术一经提出,便引起了网络安全领域的极大重视,与防火墙、入侵检测、加密和病毒防范技术并列为网络安全的主流研究方向。
从国内、外数据库检索和文献分析看,对已知漏洞地检测主要分为两大类主动模拟攻击式和被动监听式。其中,前者集成已知的信息收集和黑客攻击手法,根据TCP/IP协议,向目标主机发送隐患探测数据包,模拟攻击过程,通过被扫描设备对探测包的响应来执行漏洞判断。但是审计系统的物理距离限制了模拟攻击过程中的大量通讯,检测过程持续时间比较长。模拟攻击技术难以做到面面俱到,准确度低。而且,模拟攻击过程有一定的破坏性,对系统性能有负面影响。后者的工作原理就像协议分析器或基于网络的入侵检测器,监控网络流量,利用特征库进行匹配,确定网络拓扑、运行服务和漏洞,具有运行连续、对网络性能无影响、配置简单和报告及时的优点。然而,这类检测器依赖于抓到的数据包内容执行漏洞判断,不能发现不与任何设备会话的脆弱服务器,在改变服务默认标识或配置蜜罐情况下变得无能为力。而且,这两种检测器仅仅识别主机的漏洞,没有试图分析同一主机或同一网络内主机间配置的组合造成的漏洞,整体分析网络安全的功能较弱。
对未知漏洞的检测,即对漏洞组合带来的安全问题的研究分为模型检测技术和图形分析技术。不论采用模型检测技术、还是采用图形分析技术的模型,都没有很好的处理与漏洞检测结果的有机集成、在大规模网络的扩展或攻击路径的可视化显示问题。
发明内容
本发明的目的在于克服上述现有技术存在的不足,提供了一种主动式网络安全漏洞检测器AVCS,事先识别网路安全隐患,实现网络安全的主动防卫,提高网络安全性能。
实现上述发明的技术解决方案是,在OVAL基础上,结合攻击/漏洞知识库以及攻击和漏洞之间的互为因果关系,实现快速、高精度的已知漏洞检测,以及威胁保护目标的潜在未知漏洞检测。主要包括以下内容一种主动式网络安全漏洞检测器,基于开放漏洞评估语言OVAL,分布收集系统配置信息、集中漏洞评估分析,实现对网络系统漏洞的检测,从中发现漏洞组合对保护目标的威胁,进一步直观显示威胁保护目标的潜在攻击路径;它包括检测代理、数据中心和分析控制台三部分内容
检测代理分布在待评估网络内的各个主机上,利用OVAL收集各主机的系统特征信息,并将其上传到数据中心,供评估分析使用;
分析控制台是漏洞评估的用户接口,主要负责1)根据评估需要,配置评估目标,选择检测策略和评估条件;2)控制检测系统的启停;3)利用开放漏洞评估语言定义OVAL Definitions,分析检测代理的上报信息,判断系统中存在的已知漏洞;4)基于发现的已知漏洞列表,应用谓词逻辑的攻击/漏洞关联分析模型,分析漏洞组合带来的安全问题;5)可视化显示识别的潜在攻击路径;
数据中心采用数据库系统实现漏洞信息的存储和管理,主要包括攻击/漏洞基础知识库、攻击/漏洞关系表、各检测代理上报的系统配置信息和漏洞检测结果,数据中心与漏洞检测代理、分析控制台交互,协同完成漏洞检测;
工作流程包括以下步骤
a.分析控制台发送“开始”控制命令,启动检测代理;
b.检测代理发送“问候”消息,告知分析控制台准备就绪,等待任务;
c.分析控制台接着发送“收集数据请求”信息,通知检测代理收集系统信息;
d.检测代理向分析控制台发送“收集数据应答”信息,同时开始收集数据,并送往数据中心;
e.当检测代理收集数据完毕时,向分析控制台发送“收集数据结束”通知;
f.分析控制台接到“收集数据结束”通知,开始查询数据中心的信息,并根据查询结果进行漏洞判断。
基于OVAL的检测代理,其核心子线程类AgentTask依赖于通信包装类SSL_Agent和信息收集类InfoCollector完成具体的检测过程,分布式收集目标主机的信息,包括系统文件、注册码、进程、注册用户、Windows网络信息服务器IIS注册信息以及网络连接状态的信息;
SSL_Agent类负责通信的所有工作,包括端口的初始化、安全套接层SSL过程的初始化,以及通信过程中的异常处理;InfoCollector类负责数据收集,在Windows平台下依赖于RegistryKeys、Ps、MetabaseKeys、AccountPrivileges、FileAttributes类分别收集注册码、进程、IIS注册信息、注册用户帐号和系统文件信息,在Linux系统下分别依赖File、InetListeningServers、Process、RPMInfo、RPMVersionCompare和Uname类收集系统文件、网络监听服务、进程、套件管理与所需文件关联性数据库信息、套件版本比较信息和常规系统信息。
所述的谓词逻辑攻击/漏洞关联分析模型,把原子谓词公式作为基本的模型单元,对攻击、漏洞以及二者之间的因果关系进行建模,并自动把检测代理提供的配置信息和分析控制台识别出的通用漏洞纰漏CVE列表使用原子谓词公式建模,进一步基于攻击/漏洞知识库以及二者之间的互为因果关系,通过攻击/漏洞关联分析算法进行攻击/漏洞的关联分析,构建威胁安全目标的潜在攻击路径。
所述的攻击/漏洞关联分析算法,利用关系数据库管理系统的连接、选择和投影3个关系演算,首先从类攻击的前提与系统的实例化漏洞匹配开始进行前向搜索,然后从类攻击的后果与保护目标的匹配开始执行后向搜索,且在每次迭代中只分析类攻击的前提或后果发生改变的攻击类型。
所述的可视化显示识别的潜在攻击路径是把漏洞和攻击作为图的节点,有向边表示攻击和漏洞之间的相关性,且规定只显示仅作为攻击前提的漏洞,利用关系数据库管理系统的选择和投影关系演算,分析攻击/漏洞关联引擎的输出,建立攻击/漏洞之间的有向因果图,可视化显示系统中存在的潜在攻击路径。
本发明的特点是1)安全性和可控性高,主要表现在不需要开发攻击代码的漏洞检测器AVCS,适合于网络系统内部的评估人员进行系统安全评估,系统外部的黑客无法利用此工具进行非法探测活动,确保产品不会被非法使用;检测代理和分析控制台之间的SSL加密通信,以及检测代理和数据中心或控制台和数据中心之间采用数据库提供的传输加密功能,实现了信息的保密性,确保数据不被窃听;评估人员对系统的运行控制拥有主动权,根据系统的安全需要控制系统的评估过程。2)运行速度快,采用分布收集系统特征信息、集中评估分析的机制,减少了检测代理和分析控制台之间的通讯量,缩短了检测运行时间。3)检测精度高,基于OVAL的漏洞检测原理大大降低了误报率。4)独特的潜在攻击路径构建能力,基于谓词逻辑的攻击/漏洞关联分析模型充分利用攻击和漏洞的互为因果关系,可自动识别主机中或同一网络中主机之间的漏洞组合带来的安全问题,超越了传统扫描器的能力。
图1是本发明体系结构示意图2是本发明的时序图3是Windows平台检测代理设计中定义的类及其关系;
图4是Linux平台检测代理设计中定义的类及其关系;
图5是Windows 2000OVAL Schema的基表名称及描述;
图6(a)是知识库中类漏洞谓词表;
图6(b)是知识库中类攻击属性表;
图6(c)是知识库中类攻击前提表;
图6(d)是知识库中类攻击后果表;
图6(e)是知识库中漏洞和谓词编号对照表;
图7是递阶式漏洞检测原理模型;
图8是攻击/漏洞的关联原理;
图9是攻击/漏洞的关联分析模型;
图10是本发明的检测时间统计,其中横坐标是评估目标主机数(台),纵坐标是检测花费时间(秒);
图11是NESSUS检测时间统计,其中横坐标是评估目标主机数(台),纵坐标是检测花费时间(秒);
图12是攻击/漏洞关联结果可视化。
具体实施例方式
以下结合附图对本发明作进一步的详细描述。
1、安全漏洞检测器AVCS的组成
如图1所示,给出主动式网络安全漏洞检测器AVCS的组成,从物理分布上分为检测代理、数据中心和分析控制台三大部分。其中,检测代理分布在网络内各个主机上,以后台方式运行。当接收到“收集数据请求时”,利用OVAL收集本机的系统特征信息,并将数据安全上传到数据中心,供后面的评估分析使用。
分析控制台是系统的图形化用户接口,管理员根据评估需要设置待评估主机、连接数据库、检测策略、评估条件。当接收到“收集数据结束通知”时,分析各个检测代理上报的系统配置信息,识别系统中的漏洞以及漏洞的组合,并显示发现的已知和未知漏洞、以及相关字段信息。
数据中心采用SQL Server 2000,用于存放所有的数据信息,包括攻击/漏洞数据库、各个检测代理上报的系统配置信息和分析控制台发现的漏洞列表等。数据中心与控制台、检测代理交互,协作共同完成已知和未知漏洞的检测。
如图2所示,给出AVCS系统的操作时序,具体为
a、分析控制台发送“开始”控制命令,启动检测代理;
b、检测代理发送“问候”消息,告知分析控制台准备就绪,等待任务;
c、分析控制台接着发送“收集数据请求”信息,通知检测代理收集系统信息;
d、检测代理向分析控制台发送“收集数据应答”信息,同时开始收集数据,并送往数据中心;
e、检测代理收集数据完毕时,向分析控制台发送“收集数据结束”通知;
f、分析控制台接到“收集数据结束”通知,开始查询数据中心的信息,并根据查询结果进行漏洞判断;
2、子模块设计
检测代理
检测代理运行在被检测主机中,收集本机的系统信息,并上传到数据中心,同时通知控制台进行评估。
应用于Windows平台的检测代理的流程如下
输入分析控制台的启动信号
输出待评估数据到数据中心
a)初始化端口,初始化SSL,启动扫描子线程;
b)读入扫描配置文件;
c)文件MD5码是否一致,如果是则d),否则f);
d)依次读取系统文件、IIS注册库、Windows注册码、运行进程和注册用户信息;
e)上传数据到数据中心;
f)发送结束信号到分析控制台,同时结束本子线程;
如图3所示,给出适用于Windows平台的检测代理中一些重要的类及其之间的关系,处于核心的是AgentTask子线程类,代表一次具体的评估过程,它的实现依赖于通信包装类SSL_Agent和信息收集类InfoCollector。SSL_Agent负责通信的所有工作,包括端口的初始化、SSL过程的初始化、以及处理通信过程中的异常。InfoCollector负责数据收集,它依赖于RegistryKeys、Ps、MetabaseKeys、AccountPrivileges、FileAttributes类分别收集注册码、进程、IIS注册库、注册用户帐号和系统文件信息。
如图4所示,给出应用于Linux平台的检测代理中一些重要的类及其之间的关系,与适用于Windows平台所不同的是,信息收集类InfoCollector分别依赖File、InetListeningServers、Process、RPMInfo、RPMVersionCompare和Uname类收集系统文件、网络监听服务、进程、套件管理与所需文件关联性数据库信息、套件版本比较信息和常规系统信息。
通过仔细地设计和功能分解,本系统良好地把握住了类的确定,类之间的关系比较清晰,同时又不出现一个功能特别强大的类。由于空间所限,只介绍检测代理子线程类AgentTask的定义
class AgentTaskpublic TThread { private Unsigned int port; Protected void__fastcall Execute(); public __fastcall AgentTask(bool CreateSuspended,unsigned int port); void__fastcall wrapsync();<!-- SIPO <DP n="7"> --><dp n="d7"/> };
数据中心
数据中心给出评估过程使用的所有数据,主要包括攻击/漏洞知识库、评估过程中检测代理采集的系统配置信息以及评估结果。
如图5所示,给出Windows 2000 OVAL Schema(开放漏洞评估语言模式)包括的基表名称及相应描述信息,决定检测代理收集的系统信息内容。
如图6(a、b、c、d、e)所示,给出攻击/漏洞关联分析模型中涉及的知识库样本表格,包括类漏洞谓词表、类攻击属性表、类攻击前提/后果表、漏洞和谓词编号对照表,用于存放攻击/漏洞的相关属性以及二者之间的关系。
漏洞数据库的格式参照ICAT Metabase,包括漏洞名称Vul_Name、发布日期Pub_Date、概要描述Sum、威胁程度Th_Sev、利用范围Ex_Range、损失类型Loss_Type、漏洞类型Vul_Type、脆弱软件及其版本Vul_SofAVer、修补措施Rem_Measure以及相关的参考网站Ref。
分析控制台
分析控制台负责管理检测系统的配置、漏洞检测过程的启停控制、漏洞判定,并进行攻击/漏洞的关联分析,识别漏洞组合造成的未知漏洞。在控制台的设计中,充分利用关系数据库管理系统的强大功能和丰富操作集合,实现已知漏洞的检测和未知漏洞的分析。关于已知漏洞检测和未知漏洞的分析方法,将在主要关键技术中详细介绍。
3、主要关键技术
在详细说明之前,首先定义系统中使用的一些名词
定义1类攻击V一个三元组(fact,prerequisite,consequence),表示一类攻击的前提和后果,这里fact表示属性名称集,每一个有一个相关的值域,表示攻击所附带的信息,prerequisite、consequence分别为一个分子谓词公式和原子谓词公式集合,其所有自由变量在fact集合,二者分别规定攻击成功必需满足的条件以及攻击成功可能带来的后果。
定义2实例化攻击v类攻击V的一个确定的具体实例,即类攻击V的fact属性的有限元组集。
定义3类漏洞D可作为类攻击前提的任意系统属性,即已知类攻击V的prerequisite逻辑公式中的每一个原子谓词公式。
定义4实例化漏洞d类漏洞D的一个确定的具体实例,有与之相连的IP地址。
定义5关联的攻击/漏洞假定P(v)表示出现在实例化攻击v的所有前提谓词集合,且用d的属性值替换其参数。如果使得实例化漏洞d暗示p,称为攻击v和漏洞d关联,也称d为v作准备或d和v具有prepare for关系。
已知漏洞的检测
如图7所示,给出本发明的递阶式漏洞检测原理模型,依赖于OVAL,根据系统特点(安装的操作系统、操作系统设置、安装的应用软件及其应用软件设置)和配置信息(注册键设置、文件系统属性和配置文件),识别系统中存在的漏洞、配置问题或补丁安装情况。该模型自下而上共有4个层次信息源、系统状态、中间判断和结果判断,其中信息源包括系统注册表、Metabase注册表和系统文件信息,系统状态指安装的软件及其版本、运行服务及相应设置和补丁信息。针对某一漏洞的检测,首先从信息源中获取安全检测所需的系统状态信息,在此基础上进行中间的脆弱软件和脆弱配置逻辑判断,最后执行逻辑“与”运算,实现最终的脆弱性判断。形式化的漏洞检测过程如下
首先,定义5个集合软件名称集FN={fn1,……,fnn)、软件版本集AV={av1,……avn)、软件补丁集PS={ps1,……,psm}、运行服务集RS={rs1,……,rsv}和配置设置集CS={cs1,……,csu),且5个集合中每个元素用原子谓词公式exist(x)或其逻辑组合进行表示,所有元素均为三态变量,其值域为{0,1,φ}。取值为φ,表示漏洞检测判断不使用该原子谓词公式;取值为1或0,表示漏洞判断所需的系统谓词为“TRUE”或“FALSE”。
其次,定义系统脆弱软件的判别函数
公式1
其中,fn∈FN,av∈AV,ps∈PS,输出结果表示漏洞寄存的脆弱软件存在与否。
再次,定义系统脆弱配置的判别函数
公式2
其中,rs∈RS,cs∈CS,结果为与漏洞相关的脆弱配置是否存在的结论。
最后,定义系统脆弱点的判别函数
f(g,h)=g(fn,av,ps)∩h(rs,cs) 公式3
其中,g(fn,av,ps)、h(rs,cs)分别由公式1和2得到,输出结果为系统是否存在此脆弱点。
AVCS的已知漏洞检测涉及3个步骤收集系统特征和配置数据、判断漏洞和配置问题、提交检测结果,最终由嵌入式SQL语句实现。
未知漏洞的分析
以发现的已知漏洞信息为基础,从计算机网络整体防卫角度出发,研究利用低层漏洞怎样组合实现高层的攻击目标,构建危及安全目标的潜在攻击路径,属于网络安全脆弱性的全局分析,是传统扫描器的一个超越。
如图8所示,给出基于谓词逻辑的攻击/漏洞关联分析原理,核心思想是利用攻击/漏洞的互为因果关系,即攻击事件是以网络系统中的某些主机信息和访问控制权限为前提发生的,发生以后反过来又改变网络系统中的主机信息和访问控制权限,包括发现有价值信息、提升用户权限、去除过滤规则、添加信任关系等。通过匹配前一个攻击利用系统漏洞带来的后果与后一个攻击发起的前提,发现网络系统中从系统初始条件出发,组合一系列漏洞到达系统安全目标的潜在攻击路径。
如图9所示,给出本发明的网络系统漏洞分析模型,由4大模块知识收集、系统信息获取、关联分析引擎和可视化显示组成。4个模块既相对独立,又互相关联。
知识收集
知识收集模块是本模型的基础知识体系,建立攻击/漏洞的基础知识库(漏洞特征数据库、攻击特征数据库、攻击事件前因表和攻击事件后果表),为主动式漏洞检测器AVCS实现攻击/漏洞的关联分析奠定基础。然而,由于大多漏洞检测器使用自然语言文本描述发现的漏洞信息,难以自动捕捉攻击前提和攻击结果所需的语义。为此,根据一些著名安全网站提供的已知漏洞和攻击技术的信息,进行系统化整理,建立攻击/漏洞数据库。基于此数据库,进一步使用漏洞的原子谓词公式表示攻击的前提和后果,建立全面的攻击前提和攻击结果规则库。知识收集过程中,涉及到系统漏洞、黑客攻击、以及攻击和漏洞之间关系的建模。
(1)漏洞建模
本发明提及的漏洞指能够作为攻击前提的任意系统属性,根据漏洞定义,其包含4部分受害机的CVE(通用漏洞纰漏,Common Vulnerabilities andExposures)列表、攻击者初始权限(攻击者在攻击机的用户权限、程序执行能力以及拥有的攻击脚本)、防火墙设置的访问策略以及攻击者在受害机的用户权限。使用原子谓词公式,对漏洞建模为
Vul_Name(VICTIM) Predicate 1
User_Name(VICTIM) Predicate 2
User_Name(ATTACK) Predicate 3
Policy_Name(ATTACK,VICTIM) Predicate 4
EXECUTE(ATTACK)Predicate 5
PGM_Name(ATTACK) Predicate 6
Predicate 1表示VICTIM主机上发现漏洞Vul_Name,以CVE编号表示。Predicate 2和Predicate 3中,User_Name规定用户在主机上可能执行的操作集合,分别为无权限NONE、普通用户NORMAL_USER、超级用户SUP_USER三个级别。Predicate4中,系统访问策略Policy_Name表示网络连接性,根据TCP/IP协议族的层次结构划分为4个层次应用层APP_LAYER、传输层TRANS_LAYER、网络层NET_LAYER和链接层LINK_LAYER。Predicate 5和Predicate 6分别表示在ATTACK主机上可以执行程序和拥有名为PGM_Name的软件。
(2)攻击建模
NSMS(网络安全监控系统,Network Security Monitoring System)已有的攻击特征库作为主动式安全漏洞检测器AVCS的攻击特征数据库,该库中目前存放了近千条IDS(入侵检测系统,Intrusion Detection System)能检测的攻击或可疑行为,原子攻击的模型为
Exploit_Name(ATTACK,Mid_Host,VICTIM) Predicate 7
此模型表示来自ATTACK主机的攻击者,把Mid_Host主机作为跳板,对VICTIM受害机发起Exploit_Name攻击。
(3)攻击/漏洞关系建模
为了发现威胁保护目标的潜在攻击路径,需要考虑攻击与漏洞的互为因果关系,检查一个攻击后果是否有助于另一个攻击的前提。使用谓词逻辑建立的攻击/漏洞关系模型为
prerequisite1∧…∧prerequisitenexploit Predicate 8
exploit{consequence1,…,consequencem} Predicate 9
其中,prerequisitei、exploit和consequencej分别用原子谓词公式表示。上面两个分子谓词公式表示,exploit攻击的成功前提是prerequisitei(i=1,…,n)必须为TRUE,成功后果是consequencej(j=1,…,m)可能为TRUE。
信息获取
系统信息获取模块的功能是发现网络拓扑信息,即工作站、服务器等对象的安全漏洞和访问控制权限信息,并使用一定的格式进行描述,为攻击路径构建提供有用信息。因此,自动发现网络拓扑,对于AVCS系统在实际网络中的应用十分重要。
作者针对Windows和Linux两个平台,开发了功能强大的检测代理,充分利用OVAL,自动输出详细的机器配置信息,包括运行服务、软件组件和网络连接性,解决了现有检测器不能提供访问策略和其他配置信息的问题。对于Window平台的目标主机,通过读取注册表中防火墙各个规则的键值,获取访问控制策略。对于Linux系统的评估目标,通过读取IPTable或IPChains等防火墙的文本配置文件,获取访问控制策略。访问策略有助于确定攻击者能否发送一个数据报到目标,对于推断多阶段攻击十分有用。进一步,分析每个检测代理输出的配置信息,识别系统存在的CVE漏洞,并根据漏洞和谓词编号对照表(见图6(e)),把识别的CVE漏洞和配置信息转化成实例化漏洞,即给类漏洞的属性名称集fact赋以具体值,最终存储在下表中
表1实例化漏洞
攻击/漏洞的关联分析引擎
关联分析引擎是基于谓词逻辑理论构建潜在攻击路径的核心部分,充分利用关系数据库管理系统的强大功能以及攻击/漏洞之间的互为因果关,分析攻击/漏洞知识库和具体的系统配置信息,实现攻击/漏洞的关联,即发现具有preparefor关系的攻击和漏洞,并存储到表2所示的关联结果表。
表2关联结果
首先,定义关联过程中用到的一些变量和函数
Sfound在当前系统配置条件下,识别的所有可能成功的攻击集。
Scurrent本次迭代过程中,发现的可能成功的攻击集。
SCcurrent本次迭代过程中,发现的可能成功攻击的后果集。
P(et)/C(et)类攻击et的前提/后果集。
sign标识发现攻击路径的符号变量,同时规定sign取值为1,表示至少存在一条攻击路径;取值为0,表示没有发现攻击路径。
函数correlation(i,temp)确定实例化攻击能否成功的关联规则,即判断实例化属性i中,与类属性temp中字符“ATTACK”、“Mid_Host”和“VICTIM”对应位置的值是否完全相同。如果完全相同,则与i对应的实例化攻击可能发生,函数返回值为“TRUE”。否则,实例化攻击不可能发生,函数返回值为“FALSE”。比如一个类攻击IISRDS,假设
i={Money,NULL,Money,Maude,Maude,NULL},i中与temp的“ATTACK”字符对应的第1和第3个元素均为Money,与“VICTIM”字符对应的第4和第5个元素均为Maude,由此判定与i对应的IISRDS的一个实例化攻击可能发生,函数返回值为“TRUE”。
函数output(i,temp)对于一个具体的类攻击,使用i中与temp的“ATTACK”、“Mid_Host”和“VICTIM”字符对应位置的值,分别替换原子谓词公式et(ATTACK,Mid_Host,VICTIM)的个体。比如在定义correlation(i,temp)函数中所举的例子,使用函数IISRDS(output(i,temp))可得到实例化的攻击谓词IISRDS(Money,Maude)。
函数ins(P(et))根据初始系统配置信息集,把与类攻击et的前提对应的原子谓词公式实例化,即给通用变量“ATTACK”、“Mid_Host”和“VICTIM”赋以具体的IP地址。
为保证发现关于网络初始和目标条件的攻击路径集,提出由两个过程从攻击前提开始匹配的前向搜索Forward_search和从攻击后果开始匹配的后向搜索Backward_search组成的攻击/漏洞关联算法。由于两个搜索过程的细节相似,受空间所限,只给出Forward_search算法的具体实现细节,算法如下
Input类攻击集E,类漏洞集V,类攻击的前提集TP,类攻击的后果集TC,初始系统信息集TI,保护目标G。
Output关联的攻击/漏洞集Sve。
/*前向搜索Forward_search的细节*/
Sfouna←φ,Scurrent←φ,SCcurrent=TI,SC′current←φ,Sve←φ,sign=0;/*初始化*/
While((SCcurrent\G)∩P(E))≠φ{
For each et∈E do
If((SCcurrent\G)∩P(et))≠φ
For each a∈ins(P(et))do
If ∏aSCcurrent≠φ tempi=∏aSCcurrent\Aa;/*Aa为以前迭代中的谓词*/
Else tempi=Aa;
For each i∈temp2 do
If correlation(i,temp)==TRUE /*判断出可能成功的攻击*/
Sfound=∪Scurrent,C(et)→TI,Sve=∪(P(et),et),Sve=∪(et,C(et));
For each d∈C(et)do
If(d==G)sign=1;
SCcurrent←SC′current,SC′current←φ;}If(sign==1)(Sve,Sfound)=Backward_search(Sve);/*通过后向搜索去除冗余路径*/Else Print(“G is enough secure”);
攻击路径的可视化技术
可视化显示模块分析攻击/漏洞关联引擎的输出,进一步利用关系数据库管理系统的选择、投影操作,建立攻击/漏洞之间的有向因果图,可视化显示系统中存在的潜在攻击路径。在有向图表示上,漏洞和攻击作为图的节点,有向边表示攻击和漏洞之间的相关性,一个从漏洞v指向攻击s的有向边,表示v是s的一个前提。相似地,从攻击s指向漏洞v的有向边,表示v是s的一个后果。同时,为了节省显示空间,在攻击路径图中仅仅显示只作为攻击前提的漏洞,对于既作为前一攻击的后果、又为后一攻击的前提的漏洞,在攻击图中不予显示。提出的可视化显示算法如下
Input关联的攻击/漏洞集Sve,识别的成功的攻击集Sfound,保护目标G
Output威胁安全目标的攻击路径图
Ping=∏preparingSve,Ped=∏preparedSve;
For each v∈Ping {
If{
e=∏prepared(σpreparing=vSve),BuildGraph(v,e);/*建前提和攻击的有向图*/
}
Else if v∈Sfound {
v′=∏preparde(σpreparing=vSve);
If v′==G BuildGraph(v,v′);/*建攻击和保护目标的有向图*/
Else{
e=∏prepared(σprepartng=v′Sve);
BuildGraph(v,e); /*建攻击和攻击的有向图*/
}
}
}
本发明与现有技术相比,所产生的效果是
1.检测精度表3给出针对IE 6.0的检测结果,结合微软网站资料,发现AVCS系统报告的7个漏洞的修补程序已经全部纳入IE 6.0 SP1中。表4给出对IIS 5.0的实验结果,AVCS发现的漏洞包容了MBSA报告的所有漏洞。同时,MBSA误报漏洞MS04-004,因为系统配置与其对应脆弱软件IE 6+SP1不相符。由此看出,只要保证系统知识库包含足够多的漏洞定义和及时更新,AVCS系统就可提供高质量的报告。基于OVAL的AVCS系统明显改进了漏洞检测器的误报率,这主要归因于漏洞检测原理的不同。
表3针对IE 6.0的检测结果
表4针对IIS 5.0的检测结果
2.检测速度
如图10、图11所示,给出使用AVCS和Nessus两个检测器,横纵坐标分别表示评估目标主机数(台)、检测花费时间(秒),针对不同数目的目标进行检测的运行时间统计结果。针对同样的1台目标主机,AVCS所用时间是NESSUS的1/9。对相同3台主机进行检测,AVCS和NESSUS所用的平均时间分别是58秒和346秒。
3.未知漏洞检测
如图12所示,给出一个小型网络的漏洞分析结果,两个CVE漏洞Amy主机的CVE-2002-1142和Rake主机的CAN-2003-0694的组合,威胁保护目标Rake主机的超级用户权限的安全。该工作为实施有效的安全防范措施奠定基础,帮助管理员分析现有的安全措施是否足以保证某一紧要资源的安全。
4.跨平台实现Windows和Linux两个平台的漏洞检测。
5.“零”影响典型工作情况下带宽占用仅为8-28Kb/s,基本不会因为扫描影响网络的正常使用,对同时运行控制台和数据库的主机仅增加2%~5%的CPU负担。
6.扩展性对新公布的漏洞,只要定义出存在的逻辑条件,就可以实现其检测,不需要开发攻击代码。而且,只需要定义攻击类型的前提和后果,即可实现攻击/漏洞的关联分析,不需要定义黑客的入侵模式。
7.安全检测采用128位的SSL加密协议,利用数据库提供的传输加密功能,保证了通信安全。
权利要求
1、一种主动式网络安全漏洞检测器,其特征在于,基于开放漏洞评估语言OVAL,分布收集系统配置信息、集中漏洞评估分析,实现对网络系统漏洞的检测,从中发现漏洞组合对保护目标的威胁,进一步直观显示威胁保护目标的潜在攻击路径;它包括检测代理、数据中心和分析控制台三部分内容
检测代理分布在待评估网络内的各个主机上,利用OVAL收集各主机的系统特征信息,并将其上传到数据中心,供评估分析使用;
分析控制台是漏洞评估的用户接口,主要负责1)根据评估需要,配置评估目标,选择检测策略和评估条件;2)控制检测系统的启停;3)利用开放漏洞评估语言定义OVAL Definitions,分析检测代理的上报信息,判断系统中存在的已知漏洞;4)基于发现的已知漏洞列表,应用谓词逻辑的攻击/漏洞关联分析模型,分析漏洞组合带来的安全问题;5)可视化显示识别的潜在攻击路径;
数据中心采用数据库系统实现漏洞信息的存储和管理,主要包括攻击/漏洞基础知识库、攻击/漏洞关系表、各检测代理上报的系统配置信息和漏洞检测结果,数据中心与漏洞检测代理、分析控制台交互,协同完成漏洞检测;
工作流程包括以下步骤
a.分析控制台发送“开始”控制命令,启动检测代理;
b.检测代理发送“问候”消息,告知分析控制台准备就绪,等待任务;
c.分析控制台接着发送“收集数据请求”信息,通知检测代理收集系统信息;
d.检测代理向分析控制台发送“收集数据应答”信息,同时开始收集数据,并送往数据中心;
e.当检测代理收集数据完毕时,向分析控制台发送“收集数据结束”通知;
f.分析控制台接到“收集数据结束”通知,开始查询数据中心的信息,并根据查询结果进行漏洞判断。
2、根据权利要求1所述的主动式网络安全漏洞检测器,其特征在于,所说的检测代理,基于OVAL,其核心子线程类AgentTask依赖于通信包装类SSL_Agent和信息收集类InfoCollector完成具体的检测过程,分布式收集目标主机的信息,包括系统文件、注册码、进程、注册用户、Windows网络信息服务器IIS注册信息以及网络连接状态的信息;
SSL_Agent类负责通信的所有工作,包括端口的初始化、安全套接层SSL过程的初始化,以及通信过程中的异常处理;InfoCollector类负责数据收集,在Windows平台下依赖于RegistryKeys、Ps、MetabaseKeys、AccountPrivileges、FileAttributes类分别收集注册码、进程、IIS注册信息、注册用户帐号和系统文件信息,在Linux系统下分别依赖File、InetListeningServers、Process、RPMInfo、RPMVersionCompare和Uname类收集系统文件、网络监听服务、进程、套件管理与所需文件关联性数据库信息、套件版本比较信息和常规系统信息。
3、根据权利要求1所述的主动式网络安全漏洞检测器,其特征在于,所说的谓词逻辑的攻击/漏洞关联分析模型使用原子谓词公式作为基本的模型单元,对攻击、漏洞以及二者之间的因果关系进行建模,并自动把检测代理提供的配置信息和分析控制台识别出的通用漏洞纰漏CVE列表使用原子谓词公式建模,进一步基于攻击/漏洞知识库以及二者之间的互为因果关系,通过攻击/漏洞关联分析算法进行攻击/漏洞的关联分析,构建威胁安全目标的潜在攻击路径。
4、根据权利要求1或3所述的主动式网络安全漏洞检测器,其特征在于,攻击/漏洞关联分析算法,利用关系数据库管理系统的连接、选择和投影3个关系演算,首先从类攻击的前提与系统的实例化漏洞匹配开始进行前向搜索,然后从类攻击的后果与保护目标的匹配开始执行后向搜索,且在每次迭代中只分析类攻击的前提或后果发生改变的攻击类型。
5、根据权利要求1所述的主动式网络安全漏洞检测器,其特征在于,所说的可视化显示识别的潜在攻击路径是把漏洞和攻击作为图的节点,有向边表示攻击和漏洞之间的相关性,且规定只显示仅作为攻击前提的漏洞,利用关系数据库管理系统的选择和投影关系演算,分析攻击/漏洞关联引擎的输出,建立攻击/漏洞之间的有向因果图,可视化显示系统中存在的潜在攻击路径。
全文摘要
本发明公开了一种主动式网络安全漏洞检测器,其由检测代理、数据中心和分析控制台三大模块组成,相互协作实现漏洞的检测。其中检测代理收集系统配置信息,并上传到数据中心。分析控制台分析数据中心存放的信息,利用OVAL漏洞定义识别主机漏洞,并进一步应用谓词逻辑理论,进行攻击/漏洞的关联分析,发现漏洞组合带来的安全问题,可视化显示潜在的攻击路径。本发明可成功实现对网络系统的快速、高精度漏洞检测,且对被评估系统的性能影响小,可扩展性强,适用于网络安全的评估与管理。
文档编号H04L29/06GK1694454SQ20051004265
公开日2005年11月9日 申请日期2005年5月10日 优先权日2005年5月10日
发明者郑庆华, 管晓宏, 陈秀真, 林晨光, 赵婷, 姚婷婷 申请人:西安交通大学