基于多模式匹配的安全漏洞在线发现方法与流程

文档序号:11775157阅读:460来源:国知局
基于多模式匹配的安全漏洞在线发现方法与流程
本发明涉及网络安全
技术领域
,具体涉及一种基于多模式匹配的安全漏洞在线发现方法。
背景技术
:近年来,随着计算机技术的飞速发展和互联网的广泛应用,信息技术越来越深入到人们日常生活的各个方面,成为人们日常生活中最重要的部分。网络给社会带来巨大变革和发展的同时,也遭受着非常严峻的安全威胁,网络、应用的安全漏洞成为制约网络发展、影响社会发展的重要因素。信息系统的威胁都是以目标的安全漏洞为突破点。信息系统安全漏洞产生原因有多种,可能由于开发人员自身的安全意识薄弱、安全技能不足,或系统安全框架存在缺陷,也可能由于内部人员有意或无意的操作造成安全问题。对系统进行安全提升的重要方法就是研究安全漏洞发现技术。安全漏洞发现包括对未知漏洞的挖掘和已知漏洞的识别。未知漏洞挖掘技术指通过人工或辅助工具对目标进行分析测试,对目标运行流程、参数传递、执行逻辑等进行挖掘,了解系统内部可能造成安全漏洞的特点。对已知漏洞来说,一般通过漏洞检测脚本匹配方式识别目标系统中存在的安全漏洞。传统的安全漏洞挖掘技术主要包括静态分析技术和动态分析技术。静态分析技术通过分析软件程序代码词法、语法和静态语义,检测程序中存在的潜在漏洞,静态分析方法主要有以下几种检测方法:1)模型检测。模型检测是一种验证有限状态的并发系统的方法,基本思想是对有限状态的系统构造状态机或者有向图等抽象出模型,再对模型进行遍历以验证系统的某一性质。2)符号执行。符号执行是一种符号化定义数据,并为程序每条路径给出符号表达方式,对特定路径输入符号,经处理输出符号,从而判断程序行为是否错误,达到分析错误的目的。3)类型推断。类型推断可以检查类型错误,选择合适的操作,根据情况确定必要的类型转换。4)数据流分析。数据流分析是从程序代码中收集程序的语义信息并通过代数的方法在编译时确定变量的定义和使用。5)约束分析。约束分析将程序分析过程分为约束产生和约束求解两个阶段,前者利用约束产生规则建立变量类型或分析状态之间的约束系统,后者利用约束系统进行求解。动态分析技术将测试用例作为输入,通过运行可执行文件,并通过程序运行的输出发现程序缺陷的过程。然而,现有的软件漏洞发现技术独立运用某种单一技术无法准确查找漏洞定位,存在较高漏报或误报。因此,设计一种高效、准确度高的安全漏洞发现方法,成为了亟待解决的技术问题。技术实现要素:(一)要解决的技术问题本发明要解决的技术问题是:如何设计一种高效、准确度高的安全漏洞发现方法。(二)技术方案为了解决上述技术问题,本发明提供了一种基于多模式匹配的安全漏洞在线发现方法,包括以下步骤:步骤1:判断待测软件目标是否已存在,是转步骤2,否转步骤3;步骤2:一方面,检测待测软件目标的版本特征值,进行软件版本模式匹配,匹配漏洞库中的已知漏洞;另一方面,使用漏洞扫描插件匹配触发规则进行漏洞扫描检测,更新漏洞库;步骤3:录入不存在的待测软件目标,分析待测软件目标的源代码或二进制文件,通过漏洞模式匹配规则定位漏洞,结合模糊测试技术构造针对型输入数据进行漏洞挖掘分析。优选地,步骤1具体包括:步骤1.1:查看待测软件目标的指纹信息,获取软件版本信息。步骤1.2:查找软件库,分析待测软件目标是否已存在。优选地,步骤2具体包括:步骤2.1:通过待测软件目标的版本特征值查询对应的漏洞库,匹配该版本软件对应的已知漏洞进行在线发现;步骤2.2:根据步骤1.1获取的指纹信息,进行扫描分析:根据待测软件目标的指纹信息加载漏洞扫描插件库,计算漏洞扫描插件库中漏洞扫描插件的数字签名,匹配证书列表,验证漏洞扫描插件是否合法,并执行合法的漏洞扫描插件,根据漏洞扫描插件执行的返回信息进行判断,当漏洞扫描插件命中漏洞的触发规则时输出漏洞信息,将扫描得到的漏洞信息与已有软件版本对应的漏洞库进行比对去重,将新增漏洞信息按照漏洞库记录内容字段提取之后保存到漏洞库;所述漏洞信息包括漏洞模式、漏洞位置信息和触发路径;步骤2.1与步骤2.2可以同时执行,也可以顺序执行,顺序可以互换;步骤2.3:如发现已有软件匹配的未知漏洞,则将漏洞信息与已有软件进行关联。优选地,步骤3具体包括:步骤3.1:对查询后不存在于软件库中的待测软件目标,将其信息录入软件库中,并与漏洞库中的漏洞信息进行对应,软件库中记录了软件名称、版本和厂家信息;步骤3.2:分析漏洞模式库中的漏洞模式,根据漏洞模式匹配规则定位漏洞;步骤3.3:在步骤3.2定位漏洞信息位置后,根据漏洞位置信息和漏洞类型,构造针对性的畸形用例并注入待测软件目标,以触发安全漏洞并验证漏洞,将触发成功并验证通过的安全漏洞按照所述漏洞库记录内容字段进行记录,存入漏洞库并与待测软件目标及其版本相对应。优选地,步骤3.2具体包括:3.2.1、扫描待测软件目标的源代码或二进制文件,寻找程序入口点;3.2.2、对待测软件目标的函数体调用关系进行扫描分析,根据语句类型的不同进行针对性分析,即对函数的使用、跳转逻辑、分支语句、程序执行顺序进行分析;所述语句类型包括函数调用语句、分支语句、顺序执行语句;3.2.3、按照程序执行顺序逐条与漏洞模式库中的漏洞模式进行匹配,并对匹配成功的程序部分进行约束检测,即检查确定触发漏洞的路径;3.2.4、在模式匹配与模式约束都成功的前提下,输出漏洞信息。(三)有益效果本发明具有如下优点:综合性:本发明具有对已知漏洞和未知漏洞的综合在线发现的能力,已知漏洞方面通过软件版本特征匹配及漏洞匹配方式进行发现,未知漏洞方面通过漏洞模式匹配进行在线发现。准确性:本发明通过多模式匹配方式提高已知漏洞和未知漏洞的在线发现能力。已知漏洞方面,结合版本特征匹配和插件扫描方式进行综合漏洞发现,未知漏洞方面运用漏洞模式匹配规则进行漏洞定位,结合模糊用例生成准确发现漏洞,均提高了发现准确度。附图说明图1为本发明的多模式匹配漏洞发现系统组成框图;图2为本发明的基于多模式匹配的安全漏洞在线发现方法流程图;图3为本发明的系统中的漏洞扫描引擎的扫描流程图;图4为本发明的方法中对未知漏洞发现进行模式匹配的流程图。具体实施方式为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。本发明研究基于漏洞发现方法,在充分借鉴静态分析、动态分析技术的基础上,采用模式匹配方式进行未知安全漏洞发现,在静态分析基础上,结合动态模糊测试,提高漏洞发现效率。同时,本发明提出的安全漏洞发现方法加入了面向已知漏洞的发现,增强了安全漏洞发现效率。本发明涉及的发现方法面向已知漏洞和未知漏洞,针对已知漏洞采用软件版本匹配模块结合扫描匹配模块进行漏洞发现,针对未知漏洞采用漏洞模式匹配文件分析结合用例注入进行漏洞发现。图1是本发明的方法对应的多模式匹配漏洞发现系统功能组成框图,该系统包括软件比对模块、漏洞扫描引擎、文件分析引擎、用例注入模块、软件版本库、漏洞库、扫描插件库、漏洞模式库等。本发明提供的一种基于多模式匹配的安全漏洞在线发现方法的流程图如图2所示,具体包括以下步骤:步骤1:判断待测软件目标是否已存在,是转步骤2,否转步骤3。步骤1.1:查看待测软件目标的指纹信息,获取软件版本信息。步骤1.2:查找软件库,分析待测软件目标是否已存在。步骤2:一方面,检测待测软件目标的版本特征值,进行软件版本模式匹配,匹配漏洞库中的已知漏洞;另一方面,使用漏洞扫描插件匹配触发规则进行漏洞扫描检测,更新漏洞库。步骤2.1:通过待测软件目标的版本特征值查询漏洞库,匹配该版本软件对应的已知漏洞进行在线发现。步骤2.2:根据步骤1.1获取的指纹信息,调用漏洞扫描引擎进行扫描分析。如图3所示是发明中涉及的漏洞引擎工作流程图,即,步骤2.2具体为:漏洞扫描引擎根据待测软件目标的指纹信息加载漏洞扫描插件库,计算漏洞扫描插件库中漏洞扫描插件的数字签名,匹配证书列表,验证漏洞扫描插件是否合法,并执行合法的漏洞扫描插件,根据漏洞扫描插件执行的返回信息进行判断,当漏洞扫描插件命中漏洞的触发规则时输出漏洞信息。通过软件比对模块将扫描得到的漏洞信息与已有软件版本对应的漏洞库进行比对去重,将新增漏洞信息按照漏洞库记录内容字段提取之后保存到漏洞库。漏洞库记录内容字段如表1所示。表1漏洞库记录内容字段名称内容漏洞标识漏洞的唯一编号,与cve漏洞库一致漏洞类型标识漏洞类型载体信息记录漏洞所属的软件信息运行环境存在漏洞的系统平台及对应的操作系统版本端口信息远程入侵时使用的端口脆弱性函数存在漏洞的函数脆弱性参数触发漏洞的具体函数参数步骤2.1与步骤2.2可以同时执行,也可以顺序执行,顺序可以互换。步骤2.3:如发现已有软件匹配的未知漏洞,则将漏洞信息与已有软件进行关联。步骤3:录入不存在的待测软件目标,分析待测软件目标的源代码或二进制文件,通过漏洞模式匹配规则定位漏洞,结合模糊测试技术构造针对型输入数据进行漏洞挖掘分析。步骤3.1:对查询后不存在于软件库中的待测软件目标,将其信息录入软件库中。软件库中记录了软件名称、版本、厂家等信息,并与漏洞库中的漏洞信息进行对应。步骤3.2:调用文件分析引擎,操作漏洞模式库分析文件,根据漏洞模式匹配规则定位漏洞。漏洞模式库中存储的漏洞模式是指通过分析各类漏洞的特点,总结漏洞的产生原因和形成机理,以静态检测为基础,通过形式化描述形成的漏洞模型。漏洞模式可以合理地描述各个漏洞的不同属性以及各属性之间的依赖关系。以window为例,漏洞模式所检测的一般不是整个操作系统的完全执行流程,而是待测软件目标中的执行流程。如图4为步骤3.2的漏洞模式匹配流程。3.2.1扫描待测软件目标的源代码或二进制文件,寻找程序入口点;3.2.2对待测软件目标的函数体调用关系进行扫描分析,根据语句类型(函数调用语句、分支语句、顺序执行语句)的不同进行针对性分析,对函数的使用、跳转逻辑、分支语句、程序执行顺序等进行分析;3.2.3按照程序执行顺序逐条与漏洞模式库中的漏洞模式进行匹配,并对匹配成功的程序部分进行约束检测,即检查确定触发漏洞的路径;对未匹配成功的程序不做处理;3.2.4在模式匹配与模式约束都成功的前提下,向用户输出漏洞信息,漏洞信息包括漏洞模式、漏洞位置信息、触发路径等;对模式约束不成功的程序不做处理;3.2.5继续扫描后续的源代码,直至没有新的语句或入口点为止。步骤3.3:在步骤3.2定位漏洞信息位置后,根据漏洞位置信息和漏洞类型,通过用例注入模块构造针对性的畸形用例并注入待测软件目标,以触发安全漏洞并验证漏洞,从而提高漏洞模式匹配的准确率。将触发成功并验证通过的安全漏洞按照步骤2.2说明的漏洞库记录内容字段进行记录,存入漏洞库并与待测软件目标及其版本相对应。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1