CN102982282A - 程序漏洞的检测***和方法 - Google Patents
程序漏洞的检测***和方法 Download PDFInfo
- Publication number
- CN102982282A CN102982282A CN2012104872984A CN201210487298A CN102982282A CN 102982282 A CN102982282 A CN 102982282A CN 2012104872984 A CN2012104872984 A CN 2012104872984A CN 201210487298 A CN201210487298 A CN 201210487298A CN 102982282 A CN102982282 A CN 102982282A
- Authority
- CN
- China
- Prior art keywords
- leak
- fuzzy
- fuzzy pattern
- degree
- related information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种程序漏洞的检测***和方法,用以解决采用现有技术提供的程序漏洞检测方式对程序漏洞的检测不够完善,存在误报率比较高的问题。***包括:执行路径模拟生成器、漏洞属性关联生成器和模糊状态自动机检测器。执行路径模拟生成器确定程序源代码的执行路径信息并发送给模糊状态自动机检测器;漏洞属性关联生成器根据设置的漏洞库中存储的漏洞信息,生成频繁模糊模式集合发送给模糊状态自动机检测器;模糊状态自动机检测器根据执行路径信息确定程序源代码的执行流程;并确定该执行流程与频繁模糊模式集合中包含的模糊模式的匹配度,以及根据该匹配度确定程序源代码的安全度。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种程序漏洞的检测***和方法。
背景技术
一般地,漏洞检测主要可以分为动态检测和静态检测两大类。
其中,动态检测是指通过对程序的运行环境(如环境变量,内存,堆和栈等)进行分析,检测运行程序之后得到的结果与预期结果之间的差异。动态检测一般用于黑盒测试,其优点是不需要修改程序源码或其二进制代码,其缺点在于对漏洞的检测不够完善。比如DEP这种动态检测就仅能检测程序中可能存在的可能导致计算机软件***遭受栈攻击的漏洞,而并不能检测到程序中存在的可能导致计算机软件***遭受堆攻击的漏洞。
静态检测则是指不运行程序本身,而是通过分析或检查程序的语法、结构、过程和接口等来检查程序的正确性。静态检测的本质是建立程序的一个状态模型,然后分析程序如何在该状态模型所包含的不同状态之间转换。现有的静态检测已被证实存在缺陷:对程序漏洞的检测不够完善,同时对未知漏洞不能有效的挖掘,缺乏自适应学习的能力。比如,词法分析这一种静态检测是通过提取程序关键语法,并解释其语义,来检测程序是否存在漏洞的。但词法分析仅仅是进行语法上的检测,具体来说是把程序划分成一个个片段,将每个片段与一个以设定好的“词法数据库”进行比较,从而判断程序是否漏洞。该检测方式可以检测到的漏洞非常少,且检测到的往往是一些已知的固定漏洞,误报率相当高。又比如,规则检测这一种静态检测是检测已知漏洞的一种代码扫描技术,对于已知类型漏洞,该技术具有高效且准确率高的特点,但是也不能检测未知类型的漏洞。
发明内容
本发明实施例提供一种程序漏洞的检测***和方法,用以解决采用现有技术提供的程序漏洞检测方式对程序漏洞的检测不够完善,存在误报率比较高的问题。
本发明实施例采用以下技术方案:
一种程序漏洞的检测***,包括执行路径模拟生成器、漏洞属性关联生成器和模糊状态自动机检测器,其中:
所述执行路径模拟生成器,用于确定待检测的程序源代码的执行路径信息;并将确定的执行路径信息发送给所述模糊状态自动机检测器;
所述漏洞属性关联生成器,用于根据设置的漏洞库中存储的漏洞信息,生成由多个漏洞关联信息构成的漏洞关联信息集合,其中,每个漏洞关联信息分别由具备逻辑关联的多个漏洞信息构成;并分别确定漏洞关联信息集合中包含的各条漏洞关联信息对于各模糊模式的支持度;其中,各模糊模式分别对应于指定的不同漏洞攻击方式;根据确定的支持度,从所述对应于指定的各漏洞攻击方式的模糊模式中选取模糊模式构成频繁模糊模式集合;以及将频繁模糊模式集合发送给所述模糊状态自动机检测器;
所述模糊状态自动机检测器,用于接收所述执行路径模拟生成器发送的执行路径信息和所述漏洞属性关联生成器发送的频繁模糊模式集合;并根据接收的所述执行路径信息,确定所述程序源代码的执行流程;确定该执行流程与频繁模糊模式集合中包含的模糊模式的匹配度;以及根据所述匹配度,确定所述程序源代码的安全度。
一种检测程序漏洞的方法,包括:
执行路径模拟生成器确定待检测的程序源代码的执行路径信息,并将确定的执行路径信息发送给模糊状态自动机检测器;
漏洞属性关联生成器根据设置的漏洞库中存储的漏洞信息,生成由多个漏洞关联信息构成的漏洞关联信息集合,其中,每个漏洞关联信息分别由具备逻辑关联的多个漏洞信息构成;
漏洞属性关联生成器分别确定漏洞关联信息集合中包含的各条漏洞关联信息对于各模糊模式的支持度,其中,各模糊模式分别对应于指定的不同漏洞攻击方式;
漏洞属性关联生成器根据确定的支持度,从所述对应于指定的各漏洞攻击方式的模糊模式中选取模糊模式构成频繁模糊模式集合,并将频繁模糊模式集合发送给模糊状态自动机检测器;
模糊状态自动机检测器接收执行路径模拟生成器发送的执行路径信息和漏洞属性关联生成器发送的频繁模糊模式集合;
模糊状态自动机检测器根据接收的所述执行路径信息,确定所述程序源代码的执行流程;
模糊状态自动机检测器确定所述执行流程与频繁模糊模式集合中包含的模糊模式的匹配度,并根据所述匹配度,确定所述程序源代码的安全度。
本发明实施例的有益效果如下:
本发明实施例提供的上述方案由模糊状态自动机检测器判断程序源代码的执行流程与对应于不同漏洞攻击方式的模糊模式的匹配度,由于匹配度越高越说明程序源代码的执行流程越容易受到漏洞攻击,从而可以根据该匹配度确定表征所述程序源代码安全度的安全度值。该方案相当于是对现有技术中的静态检测进行了改进,能够达到完善现有技术中的漏洞检测技术,降低误报率的目的。进一步地,模糊状态自动机检测器确定程序源代码的漏洞信息,并将确定的漏洞信息发送给漏洞库,从而实现了根据检测出的新类型漏洞完善了漏洞库,避免了采用现有技术提供的程序漏洞检测方式不能检测未知类型漏洞的问题,提高了检测***的有效性和自适应性。
附图说明
图1为本发明实施例提供的一种程序漏洞的检测***的具体结构示意图;
图2为漏洞攻击方式的初始状态与后续状态之间的转移示意图;
图3为实际应用中的基于模糊分离器的新型静态自适应模糊有穷自动机检测技术模型的具体结构示意图;
图4为本发明实施例提供的一种程序漏洞的检测方法的具体流程示意图。
具体实施方式
为了解决采用现有技术提供的程序漏洞检测方式不能检测未知类型漏洞的问题,本发明实施例提供了一种程序漏洞的检测方案,通过模糊状态自动机检测器来判断程序源代码的执行流程与对应于不同漏洞攻击方式的模糊模式的匹配度。由于匹配度越高越说明程序源代码的执行流程越容易受到漏洞攻击,从而可以根据该匹配度确定表征所述程序源代码安全度的安全度值。进一步地,模糊状态自动机检测器确定程序源代码的漏洞信息,并将确定的漏洞信息发送给漏洞库,从而实现了根据检测出的新类型漏洞完善了漏洞库,避免了采用现有技术提供的程序漏洞检测方式不能检测未知类型漏洞的问题,提高了检测***的有效性和自适应性。
以下结合附图,详细说明本发明实施例提供的方案。
首先,本发明实施例提供一种如图1所示的程序漏洞的检测***,该***包括执行路径模拟生成器、漏洞属性关联生成器和模糊状态自动机检测器,关于其各自功能的具体介绍如下。
执行路径模拟生成器,用于确定待检测的程序源代码的执行路径信息;并将确定的执行路径信息发送给模糊状态自动机检测器。
漏洞属性关联生成器,用于根据设置的漏洞库中存储的漏洞信息,生成由多个漏洞关联信息构成的漏洞关联信息集合(其中,每个漏洞关联信息分别由具备逻辑关联的多个漏洞信息构成);并分别确定漏洞关联信息集合中包含的各条漏洞关联信息对于各模糊模式的支持度,其中,各模糊模式分别对应于指定的不同漏洞攻击方式;根据确定的支持度,从对应于指定的各漏洞攻击方式的模糊模式中选取模糊模式构成频繁模糊模式集合;以及将频繁模糊模式集合发送给模糊状态自动机检测器。
模糊状态自动机检测器,用于接收执行路径模拟生成器发送的执行路径信息和漏洞属性关联生成器发送的频繁模糊模式集合;并根据接收的执行路径信息,确定程序源代码的执行流程;确定该执行流程与频繁模糊模式集合中包含的模糊模式的匹配度;以及根据确定出的匹配度,确定程序源代码的安全度。
可选的,模糊状态自动机检测器还可以进一步确定该程序源代码的漏洞信息,并将确定的漏洞信息反馈给漏洞库。
具体来说,模糊状态自动机检测器具体可以采用下述子步骤来实现通过对上述执行流程与频繁模糊模式集合中包含的模糊模式的匹配度的确定,最终实现对安全度值的确定:
子步骤一,判断该执行流程中是否出现了频繁模糊模式集合中的模糊模式所对应的漏洞攻击方式的初始状态q0,在判断结果为否时,执行子步骤二,而在判断结果为是时,执行子步骤三;
子步骤二,确定执行流程与频繁模糊模式集合中包含的模糊模式不匹配,并确定程序源代码安全度的安全度值为0,流程结束;
子步骤三,确定出现了执行流程中出现的初始状态的漏洞攻击方式的后续状态,并转入执行子步骤四;
如图2所示,为模糊模式所对应漏洞攻击方式的初始状态与后续状态之间的转移示意图。其中,q0为漏洞攻击方式的初始状态,qv表示程序源代码存在与某条已知的漏洞关联信息完全匹配的漏洞,而依次在其后出现、并位于最终指向qv的、包含多个状态的路径上的后续状态q1、q13等可以看做共同构成一种漏洞攻击方式。类似地,依次在其后出现、并位于最终指向qv的、包含多个状态的路径上的q2、q12等也可以看做共同构成另一种漏洞攻击方式。
此外,qw表示程序源代码不存在漏洞,qz表示程序源代码存在与已知的任意漏洞关联信息不完全匹配的漏洞。一般地,qz所对应的漏洞信息可能正包含需要反馈到漏洞库中的新的漏洞信息。
本发明实施例中,可以根据预先设置的状态转移函数来确定模糊模式所对应的漏洞攻击方式的后续状态(如q12、q13等)。
子步骤四,确定子步骤三中确定的后续状态与执行流程的匹配度,并在执行流程完全匹配于一个模糊模式所包含的各模糊值时,确定程序源代码安全度的安全度值为1,从而基于图2,状态转移函数最终确定出的状态为qw。而在执行流程不完全匹配于任意模糊模式所包含的各模糊值时,确定程序源代码安全度的安全度值为大于0而小于1的值,从而基于图2,状态转移函数最终确定出的状态为qz。
至此,可以结束上述子步骤的处理流程。
以上是关于模糊状态自动机检测器功能的一种具体实现方式的介绍,以下进一步介绍漏洞属性关联生成器功能的具体实现方式。
一、漏洞关联信息集合的生成功能。
本发明实施例中,漏洞属性关联生成器可以先根据漏洞库中存储的漏洞信息和预先统计得到的漏洞逻辑关联信息,分别确定由漏洞库中存储的漏洞信息构成的具备逻辑关联的多个漏洞关联信息;然后,再根据预定的漏洞关联信息选取规则,从确定的多个漏洞关联信息中选取漏洞关联信息来构成漏洞关联信息集合。
其中,漏洞关联信息选取规则具体可以为:选取包含的漏洞信息之间的逻辑关联度大于预设关联度阈值的漏洞关联信息。
可选的,也可以不按照该选取规则,而直接以上述确定出的多个漏洞关联信息构成漏洞关联信息集合。但需要说明的是,按照该选取规则选取漏洞关联信息构成漏洞关联信息集合的好处在于,可以将一些虽然有一定的逻辑关联,但逻辑关联性比较弱的漏洞信息所构成的漏洞逻辑关联信息排除在漏洞关联信息集合之外,以避免实用性较低的漏洞关联信息参与后续计算而浪费***资源并影响***对于漏洞的检测效率。
二、漏洞关联信息对于模糊模式的支持度的确定功能。
本发明实施例中,可以假设不同模糊模式分别包含有多个模糊值。那么,漏洞属性关联生成器可以分别针对漏洞关联信息集合中包含的每条漏洞关联信息,按照下述方式分别确定该条漏洞关联信息对于分别对应于指定的不同漏洞攻击方式的各模糊模式的支持度:
首先,针对每个模糊模式,分别计算该模糊模式所包含的每个模糊值对于该漏洞关联信息的隶属度;
然后,再将计算得到的最小隶属度确定为该条漏洞关联信息对于该模糊模式的支持度。
针对上文所提及的隶属度,其具体说明如下:
若对论域(研究的范围)U中的任一元素x,都有一个数A(x)∈[0,1]与之对应,则称A为U上的模糊集,A(x)称为x对A的隶属度。当x在U中变动时,A(x)就是一个函数,称为A的隶属函数。隶属度A(x)越接近于1,表示x属于A的程度越高,A(x)越接近于0表示x属于A的程度越低。用取值于区间0,1的隶属函数A(x)表征x属于A的程度高低。
比如,若假设A(x)=表示模糊集“年老”的隶属函数,A表示模糊集“年老”。那么,当年龄x≤50时A(x)=0表明x不属于模糊集A(即“年老”);当x≥100时,A(x)=1表明x完全属于A;当50<x<100时,0<A(x)<1,且x越接近100,A(x)越接近1,x属于A的程度就越高。这样的表达方法显然比简单地说“100岁以上的人是年老的,100岁以下的人就不年老”更为合理。
而对于隶属函数来说,现有常用的隶属度函数主要包括高斯隶属函数、广义钟型隶属函数和三角形隶属函数等。
三、频繁模糊模式集合的生成功能。
本发明实施例中,漏洞属性关联生成器可以但不限于采用下述方式生成频繁模糊模式集合:
以任意漏洞关联信息为例,可以根据确定出的该漏洞关联信息对于各模糊模式的支持度和预先设置的支持度阈值,从确定的支持度中确定大于支持度阈值的支持度;并选取大于支持度阈值的支持度所对应模糊模式,构成频繁模糊模式集合。
以下以一个具体的实施例为例,详细介绍本发明实施例提供的上述***在实际中的应用。
在实际应用中,本发明实施例提供的上述***可以由一种称为基于模糊分离器的新型静态自适应模糊有穷自动机检测技术模型(以下简称检测模型)来实现。该模型的核心部分是模糊分离器和模糊有限状态自动机。
其中,模糊有限状态自动机是具有离散输入和输出的***的一种数学模型。该数学模型可以使用一个五元组来表示,如M=(Q,Σ,δ,T,F)。其中Q、Σ和δ分别对应表示输入集、状态集和输出集;而T和F则分别表示状态转移函数和输出函数。在有限状态自动机(DFA,Deterministic Finite Automaton)中,状态转移函数T和输出函数F都是确定的。当把状态转移函数T和输出函数F模糊化,那么有限状态自动机就变成了模糊状态自动机。模糊状态自动机在复杂***的规则关联、行为分析、模式识别和自学习等方面具有明显的优势,对识别未知漏洞也具有相当重要的作用。在使用模糊有限状态自动机作为对程序源代码进行模糊识别的标准时,只要建立合适状态转移函数和输出函数,就可以让整个检测模型具有模糊识别的能力。
基于模糊有限状态自动机的上述特点,该具体实施例中,综合了模糊状态自动机及模式识别自学习功能的技术,提出了基于模糊分离器的新型静态自适应模糊有穷自动机检测技术模型。该模型的一种具体结构如图3所示。
图3左侧方框中的输入、检测过程以及输出表示的是从将程序源代码输入到检测模型中直到最终产生检测结果的流程。而右侧虚线框中的执行路径模拟生成器、漏洞属性关联生成器和模糊状态自动机检测器则共同构成整个检测模型。
由图3可以看出,检测过程首先从将程序源代码输入执行路径模拟生成器,以及将漏洞库输入漏洞属性关联生成器开始;然后,通过检测模型的处理而输出检测结果,并将检测出的漏洞信息反馈给漏洞库,完成检测模型的自学习过程。
以下分别介绍图3中的各个重要组成部分:
1、漏洞库。其是一个用于存储程序的漏洞信息的数据库,在初始状态下,其存储的一般是现有已知的漏洞信息,比如常见的可能出现缓冲区溢出漏洞、堆溢出漏洞、整数溢出漏洞、格式化字符串漏洞以及常见的字符串漏洞等。
可以通过人工手动添加漏洞信息的方式来更新漏洞库,也可以通过检测模型自学习的方式,将检测出的新的漏洞信息反馈给漏洞库,以实现基于反馈的新的漏洞信息对漏洞库的更新。
2、漏洞规则关联生成器。其用于针对漏洞库中的漏洞信息,根据不同漏洞之间的逻辑关联,生成漏洞关联信息(也成漏洞关联记录)。该些漏洞关联信息用于作为生成频繁模糊模式集合的依据。本发明实施例中,可以从生成的漏洞关联信息中排除掉一些无用组合,即删除一些由具备比较弱的逻辑关联的漏洞信息生成的漏洞关联信息,以减轻检测***的负担,避免不必要的处理资源浪费。在无用组合比较多的情况下,这个策略所带来的意义非常重大。
在生成了漏洞关联信息的基础上,漏洞规则关联生成器进一步地分别确定漏洞关联信息集合中包含的各条漏洞关联信息对于分别对应于指定的不同漏洞攻击方式的各模糊模式的支持度。其中,模糊模式不同于普通模式,就入侵检测而言,模糊模式是网络连接中的属性所对应的模糊值的集合,模糊值是从网络连接的各个方面描述网络行为的特征。举例来说,比如DDOS攻击这一漏洞攻击方式所对应的一种模糊模式是(protocol is tcp,protocol_flag is SYN,duration is high,result is DDOS),这个模糊模式包含了四个模糊值,分别是protocol is tcp、protocol_flag is SYN、duration is high、result is DDOS。其中前三个模糊值作为规则前件,最后一个模糊值是规则后件。这一模糊模式包含了四个模糊变量,分别是protocol、protocol_flag、duration和result。若假设有4条漏洞关联信息,这4条漏洞关联信息构成一个数据集,则可以分别计算每条漏洞关联信息对于该模糊模式(protocol is tcp,protocol_flag is SYN,duration ishigh,result is DDOS)的隶属度,并将计算得到的最小隶属度确定为该条漏洞关联信息对于该模糊模式的支持度。具体地,针对这4条漏洞关联信息,计算得到的隶属度和最终确定的支持度可以参考下表。其中,表中的第2~5列分别记录的是每个模糊值分别对于不同漏洞关联信息的隶属度,而最后一列记录的则是最终确定的不同漏洞关联信息对于该模糊模式的支持度。
记录 | Protocol is tcp | protocol_flagis SYN | Durationishigh | resultis DDOS | 支持度 |
1 | 1.0 | 0.9 | 0.3 | 1.0 | 0.3 |
2 | 1.0 | 0.7 | 0.2 | 1.0 | 0.2 |
3 | 1.0 | 0.6 | 0.8 | 1.0 | 0.6 |
4 | 1.0 | 0.7 | 0.5 | 1.0 | 0.5 |
本发明实施例中,针对任意模糊模式,可以以不同漏洞关联信息对于该模糊模式的支持度的平均值作为该模糊模式的支持度S,具体计算公式如下式[1]所示。其中,分母R为漏洞规则关联生成器生成的漏洞关联信息的总个数,而分子中的si为R个漏洞关联信息中的第i个漏洞关联信息对于该模糊模式的支持度,该支持度si=min(f1,f2,...fn),n为该模糊模式所包含的模糊值的个数,fi(1≤i≤n)为该模糊模式所包含的模糊值分别对于同一漏洞关联信息的隶属度。
例如,以上表为例,模糊模式(protocol is tcp,protocol_flag is SYN,durationis high,result is DDOS)的支持度可以按照下式[1]进行计算,从而得到下式[2]:
(0.3+0.2+0.6+0.5)/4=0.4 [2]
由此可知,模糊模式(protocol is tcp,protocol_flag is SYN,duration is high,result is DDOS)的支持度为0.4。
在确定了模糊模式的支持度的基础上,漏洞规则关联生成器就可以进一步确定频繁模糊模式集。该具体实施例中,频繁模糊模式集可以是所有大于或等于支持度阀值的支持度所对应的模糊模式构成的集合。可以说,支持度阀值决定了频繁模糊模式集的数量和质量。一般地,若要保证漏洞检测的精确度,可以设置一个小的支持度阀值。
3、执行路径模型生成器。其是一种可以根据程序源代码构建虚拟软件执行路径模型的生成器,其输入一般为程序源代码,而输出一般则为程序源代码的执行路径信息。
4、模糊状态自动机检测器。其是检测模型的核心部件。
类似于神经网络,可以定义程序源代码存在缺陷的程度为[0,1]。其中1代表程序源代码存在确定漏洞,0代表程序源代码安全,而0~1之间的值则表示程序源代码存在一定程度的安全缺陷,数值越靠近1,安全缺陷程度越高。
该模糊状态自动机检测器利用了模糊状态有限状态自动机的理论进行组建。其中,M=(Q,Σ,δ,T,F)中的输入集Q为执行路径模型生成器的输出,即执行路径模型生成器输出的执行路径信息;状态集Σ为漏洞规则关联生成器的输出,即生成的频繁模糊模式集合;输出集δ为{qw,qz,qv},qw表示的是程序源代码安全,qv表示程序源代码存在确定的漏洞,qz表示程序源代码存在一定程度的安全缺陷。此外,输出函数F分为两个部分:第一部分可以将输出集δ中反映的安全缺陷危险程度以预定的显示方式显示给程序分析人员,并将程序的执行路径信息显示给程序分析人员;而第二部分则可以用于确定程序源代码的漏洞信息,并将确定出的漏洞信息反馈给漏洞规则库。一般地,这里说的漏洞信息可以是指漏洞的属性。
模糊状态自动机检测器在生成输出集δ的过程中,还用到了状态转移函数。状态转移函数的实质就是使运行中的程序源代码从现有状态根据不同的条件而跳转到另一状态,若编程实现状态转移函数,则其多为由if或是case语句构成。该状态转移函数的主要作用在于:若假设q0为漏洞攻击方式的初始状态,则根据状态转移函数,如果程序源代码的执行过程中未出现频繁模糊模式集合中包含的模糊模式,则确定程序源代码始终处于初始状态q0,即状态就不发生变化;而如果程序源代码的执行过程中出现了漏洞,即与频繁模糊模式集合中包含的至少一个模糊模式相匹配(如匹配于模糊模式中的一个模糊值),则状态转移函数执行对程序源代码的执行过程的状态转移,并计算程序源代码存在的安全缺陷危险度值或安全度值。按照上述处理方式,若程序源代码的执行流程与频繁模糊模式集合中包含的模糊模式不匹配,并确定程序源代码的安全度值为0;若程序源代码的执行流程完全匹配于一个模糊模式所包含的各种模糊值时,确定程序源代码的安全度值为1;若程序源代码的执行流程不完全匹配于任意模糊模式所包含的各种模糊值时,确定程序源代码的安全度值为大于0而小于1的值。
一个具体的实例是:比如频繁模糊模式集合中包含的一个模糊模式为(protocol is tcp,protocol_flag is SYN,duration is high,result is DDOS),而待检测的是网络传输的一个数据包。那么,首先会判断该封装该数据包所使用的协议,如果其采用的是ARP协议而非TCP协议,那么就不会进入状态转化。而如果其采用的是TCP协议,那么就会转到下一状态,即判断protocol_flag是不是SYN。依次类推。最后,可以根据状态转化函数得到最后的状态,来判断该数据包是不是存在危险。
相应地,本发明实施例还提供一种程序漏洞的检测方法,该方法包括如图4所示的下述步骤:
步骤41,执行路径模拟生成器确定待检测的程序源代码的执行路径信息,并将确定的执行路径信息发送给模糊状态自动机检测器;
步骤42,漏洞属性关联生成器根据设置的漏洞库中存储的漏洞信息,生成由多个漏洞关联信息构成的漏洞关联信息集合,其中,每个漏洞关联信息分别由具备逻辑关联的多个漏洞信息构成;
步骤43,漏洞属性关联生成器分别确定漏洞关联信息集合中包含的各条漏洞关联信息对于分别对应于指定的不同漏洞攻击方式的各模糊模式的支持度;
步骤44,漏洞属性关联生成器根据确定的支持度,从对应于指定的各漏洞攻击方式的模糊模式中选取模糊模式构成频繁模糊模式集合,并将频繁模糊模式集合发送给模糊状态自动机检测器;
步骤45,模糊状态自动机检测器接收执行路径模拟生成器发送的执行路径信息和漏洞属性关联生成器发送的频繁模糊模式集合;
步骤46,模糊状态自动机检测器根据接收的所述执行路径信息,确定程序源代码的执行流程;
步骤47,模糊状态自动机检测器确定执行流程与频繁模糊模式集合中包含的模糊模式的匹配度,并根据匹配度确定程序源代码的安全度。
可选的,上述方法还可以进一步包括步骤:模糊状态自动机检测器确定程序源代码的漏洞信息,以及将确定的漏洞信息发送给漏洞库。
可选的,步骤42的具体实现过程可以包括:
首先,漏洞属性关联生成器根据漏洞库中存储的漏洞信息和预先统计得到的漏洞逻辑关联信息,分别确定由漏洞库中存储的漏洞信息构成的具备逻辑关联的多个漏洞关联信息;然后,漏洞属性关联生成器根据预定的漏洞关联信息选取规则,从确定的多个漏洞关联信息中选取漏洞关联信息构成漏洞关联信息集合;其中,漏洞关联信息选取规则具体为:选取包含的漏洞信息之间的逻辑关联度大于预设关联度阈值的漏洞关联信息。
可选的,当不同模糊模式分别包含有多个模糊值时,步骤43的具体实现过程可以包括:
漏洞属性关联生成器针对漏洞关联信息集合中包含的每条漏洞关联信息,按照下述方式分别确定该条漏洞关联信息对于分别对应于指定的不同漏洞攻击方式的各模糊模式的支持度:
针对每个模糊模式,分别计算该模糊模式所包含的每个模糊值对于该漏洞关联信息的隶属度;并将计算得到的最小隶属度确定为该条漏洞关联信息对于该模糊模式的支持度。
可选的,步骤44中所述的漏洞属性关联生成器根据确定的支持度,从所述对应于指定的各漏洞攻击方式的模糊模式中选取模糊模式构成频繁模糊模式集合,具体可以包括:漏洞属性关联生成器根据确定的支持度和预先设置的支持度阈值,从确定的支持度中确定大于支持度阈值的支持度;并选取大于支持度阈值的支持度所对应模糊模式,构成频繁模糊模式集合。
本发明实施例提供的上述方案由模糊状态自动机检测器判断程序源代码的执行流程与对应于不同漏洞攻击方式的模糊模式的匹配度,由于匹配度越高越说明程序源代码的执行流程越容易受到漏洞攻击,从而可以根据该匹配度确定表征所述程序源代码安全度的安全度值。该方案相当于是对现有技术中的静态检测进行了改进,能够达到完善现有技术中的漏洞检测技术,降低误报率的目的。进一步地,模糊状态自动机检测器确定程序源代码的漏洞信息,并将确定的漏洞信息发送给漏洞库,从而实现了根据检测出的新类型漏洞完善了漏洞库,避免了采用现有技术提供的程序漏洞检测方式不能检测未知类型漏洞的问题,提高了检测***的有效性和自适应性。
可选的,步骤47的具体执行过程可以包括:
首先,模糊状态自动机检测器判断所述执行流程中是否出现了频繁模糊模式集合中的模糊模式所对应的漏洞攻击方式的初始状态;
然后,模糊状态自动机检测器在判断结果为否时,确定所述执行流程与频繁模糊模式集合中包含的模糊模式不匹配,并确定用于表征所述程序源代码安全度的安全度值为0;而在判断结果为是时,确定出现了所述执行流程中出现的所述初始状态的漏洞攻击方式的后续状态;并确定所述后续状态与所述执行流程的匹配度,并在所述执行流程完全匹配于一个模糊模式所包含的各模糊值时,确定用于表征所述程序源代码安全度的安全度值为1;以及在所述执行流程不完全匹配于任意模糊模式所包含的各模糊值时,确定用于表征所述程序源代码安全度的安全度值为大于0而小于1的值。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种程序漏洞的检测***,其特征在于,包括执行路径模拟生成器、漏洞属性关联生成器和模糊状态自动机检测器,其中:
所述执行路径模拟生成器,用于确定待检测的程序源代码的执行路径信息;并将确定的执行路径信息发送给所述模糊状态自动机检测器;
所述漏洞属性关联生成器,用于根据设置的漏洞库中存储的漏洞信息,生成由多个漏洞关联信息构成的漏洞关联信息集合,其中,每个漏洞关联信息分别由具备逻辑关联的多个漏洞信息构成;并分别确定漏洞关联信息集合中包含的各条漏洞关联信息对于各模糊模式的支持度;其中,各模糊模式分别对应于指定的不同漏洞攻击方式;根据确定的支持度,从所述对应于指定的各漏洞攻击方式的模糊模式中选取模糊模式构成频繁模糊模式集合;以及将频繁模糊模式集合发送给所述模糊状态自动机检测器;
所述模糊状态自动机检测器,用于接收所述执行路径模拟生成器发送的执行路径信息和所述漏洞属性关联生成器发送的频繁模糊模式集合;并根据接收的所述执行路径信息,确定所述程序源代码的执行流程;确定该执行流程与频繁模糊模式集合中包含的模糊模式的匹配度;以及根据所述匹配度,确定所述程序源代码的安全度。
2.如权利要求1所述的***,其特征在于,所述模糊状态自动机检测器还用于确定所述程序源代码的漏洞信息,以及将确定的漏洞信息发送给所述漏洞库。
3.如权利要求1所述的***,其特征在于,所述模糊状态自动机检测器具体用于:
判断所述执行流程中是否出现了频繁模糊模式集合中的模糊模式所对应的漏洞攻击方式的初始状态;
在判断结果为否时,确定所述执行流程与频繁模糊模式集合中包含的模糊模式不匹配,并确定用于表征所述程序源代码安全度的安全度值为0;
在判断结果为是时,确定出现了所述执行流程中出现的所述初始状态的漏洞攻击方式的后续状态;并确定所述后续状态与所述执行流程的匹配度,并在所述执行流程完全匹配于一个模糊模式所包含的各模糊值时,确定用于表征所述程序源代码安全度的安全度值为1;以及在所述执行流程不完全匹配于任意模糊模式所包含的各模糊值时,确定用于表征所述程序源代码安全度的安全度值为大于0而小于1的值。
4.如权利要求1所述的***,其特征在于,所述漏洞属性关联生成器具体用于:
根据所述漏洞库中存储的漏洞信息和预先统计得到的漏洞逻辑关联信息,分别确定由所述漏洞库中存储的漏洞信息构成的具备逻辑关联的多个漏洞关联信息;并根据预定的漏洞关联信息选取规则,从确定的所述多个漏洞关联信息中选取漏洞关联信息构成所述漏洞关联信息集合;
其中,所述漏洞关联信息选取规则具体为:选取包含的漏洞信息之间的逻辑关联度大于预设关联度阈值的漏洞关联信息。
5.如权利要求1所述的***,其特征在于,不同模糊模式分别包含有多个模糊值;则
所述漏洞属性关联生成器具体用于:针对所述漏洞关联信息集合中包含的每条漏洞关联信息,按照下述方式分别确定该条漏洞关联信息对于分别对应于指定的不同漏洞攻击方式的各模糊模式的支持度:
针对每个模糊模式,分别计算该模糊模式所包含的每个模糊值对于该漏洞关联信息的隶属度;并将计算得到的最小隶属度确定为该条漏洞关联信息对于该模糊模式的支持度。
6.如权利要求1或5所述的***,其特征在于,所述漏洞属性关联生成器具体用于:
根据确定的支持度和预先设置的支持度阈值,从确定的支持度中确定大于支持度阈值的支持度;并选取大于支持度阈值的支持度所对应模糊模式,构成频繁模糊模式集合。
7.一种检测程序漏洞的方法,其特征在于,包括:
执行路径模拟生成器确定待检测的程序源代码的执行路径信息,并将确定的执行路径信息发送给模糊状态自动机检测器;
漏洞属性关联生成器根据设置的漏洞库中存储的漏洞信息,生成由多个漏洞关联信息构成的漏洞关联信息集合,其中,每个漏洞关联信息分别由具备逻辑关联的多个漏洞信息构成;
漏洞属性关联生成器分别确定漏洞关联信息集合中包含的各条漏洞关联信息对于各模糊模式的支持度,其中,各模糊模式分别对应于指定的不同漏洞攻击方式;
漏洞属性关联生成器根据确定的支持度,从所述对应于指定的各漏洞攻击方式的模糊模式中选取模糊模式构成频繁模糊模式集合,并将频繁模糊模式集合发送给模糊状态自动机检测器;
模糊状态自动机检测器接收执行路径模拟生成器发送的执行路径信息和漏洞属性关联生成器发送的频繁模糊模式集合;
模糊状态自动机检测器根据接收的所述执行路径信息,确定所述程序源代码的执行流程;
模糊状态自动机检测器确定所述执行流程与频繁模糊模式集合中包含的模糊模式的匹配度,并根据所述匹配度,确定所述程序源代码的安全度。
8.如权利要求7所述的方法,其特征在于,还包括:
模糊状态自动机检测器确定所述程序源代码的漏洞信息,以及将确定的漏洞信息发送给所述漏洞库。
9.如权利要求7所述的方法,其特征在于,模糊状态自动机检测器确定所述执行流程与频繁模糊模式集合中包含的模糊模式的匹配度,并根据所述匹配度,确定所述程序源代码的安全度,具体包括:
模糊状态自动机检测器判断所述执行流程中是否出现了频繁模糊模式集合中的模糊模式所对应的漏洞攻击方式的初始状态;
模糊状态自动机检测器在判断结果为否时,确定所述执行流程与频繁模糊模式集合中包含的模糊模式不匹配,并确定用于表征所述程序源代码安全度的安全度值为0;
模糊状态自动机检测器在判断结果为是时,确定出现了所述执行流程中出现的所述初始状态的漏洞攻击方式的后续状态;并确定所述后续状态与所述执行流程的匹配度,并在所述执行流程完全匹配于一个模糊模式所包含的各模糊值时,确定用于表征所述程序源代码安全度的安全度值为1;以及在所述执行流程不完全匹配于任意模糊模式所包含的各模糊值时,确定用于表征所述程序源代码安全度的安全度值为大于0而小于1的值。
10.如权利要求7所述的方法,其特征在于,漏洞属性关联生成器根据设置的漏洞库中存储的漏洞信息,生成由多个漏洞关联信息构成的漏洞关联信息集合,具体包括:
漏洞属性关联生成器根据所述漏洞库中存储的漏洞信息和预先统计得到的漏洞逻辑关联信息,分别确定由所述漏洞库中存储的漏洞信息构成的具备逻辑关联的多个漏洞关联信息;
漏洞属性关联生成器根据预定的漏洞关联信息选取规则,从确定的所述多个漏洞关联信息中选取漏洞关联信息构成所述漏洞关联信息集合;
其中,所述漏洞关联信息选取规则具体为:选取包含的漏洞信息之间的逻辑关联度大于预设关联度阈值的漏洞关联信息。
11.如权利要求7所述的方法,其特征在于,不同模糊模式分别包含有多个模糊值;则
漏洞属性关联生成器分别确定漏洞关联信息集合中包含的各条漏洞关联信息对于分别对应于指定的不同漏洞攻击方式的各模糊模式的支持度,具体包括:
漏洞属性关联生成器针对所述漏洞关联信息集合中包含的每条漏洞关联信息,按照下述方式分别确定该条漏洞关联信息对于分别对应于指定的不同漏洞攻击方式的各模糊模式的支持度:
针对每个模糊模式,分别计算该模糊模式所包含的每个模糊值对于该漏洞关联信息的隶属度;并将计算得到的最小隶属度确定为该条漏洞关联信息对于该模糊模式的支持度。
12.如权利要求7或11所述的方法,其特征在于,漏洞属性关联生成器根据确定的支持度,从所述对应于指定的各漏洞攻击方式的模糊模式中选取模糊模式构成频繁模糊模式集合,具体包括:
漏洞属性关联生成器根据确定的支持度和预先设置的支持度阈值,从确定的支持度中确定大于支持度阈值的支持度;并选取大于支持度阈值的支持度所对应模糊模式,构成频繁模糊模式集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210487298.4A CN102982282B (zh) | 2012-11-26 | 2012-11-26 | 程序漏洞的检测***和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210487298.4A CN102982282B (zh) | 2012-11-26 | 2012-11-26 | 程序漏洞的检测***和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102982282A true CN102982282A (zh) | 2013-03-20 |
CN102982282B CN102982282B (zh) | 2015-12-23 |
Family
ID=47856286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210487298.4A Active CN102982282B (zh) | 2012-11-26 | 2012-11-26 | 程序漏洞的检测***和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102982282B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268281A (zh) * | 2013-05-07 | 2013-08-28 | 北京天广汇通科技有限公司 | 一种源代码漏洞检测方法及其*** |
CN104715190A (zh) * | 2015-02-03 | 2015-06-17 | 中国科学院计算技术研究所 | 一种基于深度学习的程序执行路径的监控方法及*** |
WO2019144548A1 (zh) * | 2018-01-26 | 2019-08-01 | 平安科技(深圳)有限公司 | 安全测试方法、装置、计算机设备和存储介质 |
CN111259400A (zh) * | 2018-11-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种漏洞检测方法、装置及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510204B (zh) * | 2009-03-02 | 2010-09-29 | 南京航空航天大学 | 一种基于目标条件关联规则数据库异常查询监测方法 |
CN101930401A (zh) * | 2010-09-20 | 2010-12-29 | 南京大学 | 一种基于检测对象的软件漏洞模型检测方法 |
CN102693393A (zh) * | 2012-05-21 | 2012-09-26 | 上海电力学院 | 一种基于行为特征自动机模型的软件漏洞检测方法 |
-
2012
- 2012-11-26 CN CN201210487298.4A patent/CN102982282B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101510204B (zh) * | 2009-03-02 | 2010-09-29 | 南京航空航天大学 | 一种基于目标条件关联规则数据库异常查询监测方法 |
CN101930401A (zh) * | 2010-09-20 | 2010-12-29 | 南京大学 | 一种基于检测对象的软件漏洞模型检测方法 |
CN102693393A (zh) * | 2012-05-21 | 2012-09-26 | 上海电力学院 | 一种基于行为特征自动机模型的软件漏洞检测方法 |
Non-Patent Citations (3)
Title |
---|
张晛譞等: "《基于模糊度量的软件漏洞检测技术研究》", 《网络安全技术与应用》 * |
王炳雪: "《模糊时态序列演化模式挖掘》", 《计算机工程与应用》 * |
魏念忠: "《基于模糊关联规则挖掘的网络入侵检测研究》", 《微电子学与计算机》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103268281A (zh) * | 2013-05-07 | 2013-08-28 | 北京天广汇通科技有限公司 | 一种源代码漏洞检测方法及其*** |
CN103268281B (zh) * | 2013-05-07 | 2017-02-08 | 北京天广汇通科技有限公司 | 一种源代码漏洞检测方法及其*** |
CN104715190A (zh) * | 2015-02-03 | 2015-06-17 | 中国科学院计算技术研究所 | 一种基于深度学习的程序执行路径的监控方法及*** |
WO2019144548A1 (zh) * | 2018-01-26 | 2019-08-01 | 平安科技(深圳)有限公司 | 安全测试方法、装置、计算机设备和存储介质 |
CN111259400A (zh) * | 2018-11-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 一种漏洞检测方法、装置及*** |
CN111259400B (zh) * | 2018-11-30 | 2023-05-09 | 阿里巴巴集团控股有限公司 | 一种漏洞检测方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN102982282B (zh) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111177417B (zh) | 基于网络安全知识图谱的安全事件关联方法、***、介质 | |
EP3490223B1 (en) | System and method for simulating and foiling attacks on a vehicle on-board network | |
CN108200030A (zh) | 恶意流量的检测方法、***、装置及计算机可读存储介质 | |
Bulychev et al. | Rewrite-based statistical model checking of WMTL | |
Cassel et al. | RALib: A LearnLib extension for inferring EFSMs | |
CN112100625B (zh) | 一种基于模型检测的操作***访问控制脆弱性发现方法 | |
Gutiérrez‐Madroñal et al. | Evolutionary mutation testing for IoT with recorded and generated events | |
CN104866764B (zh) | 一种基于对象引用图的Android手机恶意软件检测方法 | |
CN105117430B (zh) | 一种基于等价类的重复任务过程发现方法 | |
CN102982282B (zh) | 程序漏洞的检测***和方法 | |
CN116756327B (zh) | 基于知识推断的威胁情报关系抽取方法、装置和电子设备 | |
CN115857461A (zh) | 小猪预混合饲料生产在线监控方法及*** | |
CN112738003B (zh) | 恶意地址管理方法和装置 | |
CN116980162A (zh) | 云审计的数据检测方法、装置、设备、介质及程序产品 | |
Cui et al. | A Uniform Abstraction Framework for Generalized Planning. | |
CN108897678B (zh) | 静态代码检测方法和静态代码检测***、存储设备 | |
Swain et al. | Test case design using slicing of UML interaction diagram | |
CN116702157B (zh) | 一种基于神经网络的智能合约漏洞检测方法 | |
CN112506564A (zh) | 一种用于建立控制流图的方法、***和介质 | |
CN112487421B (zh) | 基于异质网络的安卓恶意应用检测方法及*** | |
Zhang et al. | Machine Learning-based Fuzz Testing Techniques: A Survey | |
Boussabbeh et al. | Towards a general framework for ensuring and reusing proofs of termination detection in distributed computing | |
CN109508288B (zh) | 一种模型检测方法、装置及存储介质 | |
Vandercammen et al. | Prioritising Server Side Reachability via Inter-process Concolic Testing | |
Wang et al. | A constraint-pattern based method for reachability determination |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Patentee after: NSFOCUS Technologies Group Co.,Ltd. Patentee after: NSFOCUS TECHNOLOGIES Inc. Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai three storey building Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd. Patentee before: NSFOCUS TECHNOLOGIES Inc. |
|
CP01 | Change in the name or title of a patent holder |