一种基于行为特征自动机模型的软件漏洞检测方法

文档序号:6370140阅读:272来源:国知局
专利名称:一种基于行为特征自动机模型的软件漏洞检测方法
技术领域
本发明涉及一种计算机软件漏洞的检测方法,尤其是涉及ー种基于行为特征自动机模型的软件漏洞检测方法。
背景技术
软件漏洞是程序中存在的安全隐患,若被计算机病毒利用,将会对系统造成严重危害。虽然已经发现了诸多漏洞,并且建立了漏洞库,但是已知漏洞行为描述还不完善。在依据这些描述发现未知漏洞过程中,还需要辅助大量人工判断,自动化推理程度低。主要问题(I)漏洞库中的行为特征描述语义太模糊,无法利用现有的特征描述去判断软件中存在未知漏洞。
当前漏洞库对漏洞行为描述主要是语义层的,Google Chrome任意代码执行漏洞,他们的漏洞语义描述是“Google Chrome 17. O. 963. 46之前版本存在竞争条件错误,允许远程攻击者通过会触发效用进程崩溃的向量来执行任意代码”。这样的语义描述太不清晰,这种描述只是说明了特定软件,特定版本号内存在的某种类型漏洞,无法依据这些描述去推理判断其他类型软件中是否存在未知漏洞。主要问题⑵漏洞行为特征的分类和量化太简单,无法用于未知漏洞检测。在Google Chrome任意代码执行漏洞进行分类的时候,常见漏洞披露列表CVE采用漏洞库名字+发现年份+编号的形式,如CVE-2011-3961,这样的分类信息还不够。我国国家计算机网络入侵防范中心对该漏洞采用了自己的编号NIPC-2012-0428,对漏洞类型为竞争性条件错误的分类。该分类方法同样应用在中国国家信息安全漏洞库漏洞CNNVD-201202-170中。按照漏洞特征属性方法比时间分类方法已经有了改进。“通用漏洞评分系统”CVSS V2给出该漏洞的风险等级为9. 3,但是这样的量化只是说明漏洞具有很高风险等级,量化等级值对于推理判断并没有作用。主要问题(3)在漏洞检测过程中,采用词法分析无法检测出行为漏洞,约束分析方法在追踪行为控制流中会产生大量噪音,无法清晰表达行为语义。在检测中还需要辅助大量人工判断,自动化推理程度比较低。综上所述,在追踪国内外研究现状的基础上,发现存在的瓶颈问题已知漏洞的行为特征描述太模糊,特征的分类和量化结果太简单,行为特征表现与漏洞的本质联系不明确,因此无法依据这些特征推理检测未知漏洞。

发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供ー种可根据已知行为特征准确判断是否存在软件漏洞的基于行为特征自动机模型的软件漏洞检测方法。本发明的目的可以通过以下技术方案来实现一种基于行为特征自动机模型的软件漏洞检测方法,该方法包括以下步骤I)将具有数据约束的自动机模型从漏洞行为特征库中载入流程,建立具有数据约束的自动机模型;2)通过自动机模型将漏洞行为特征库中的行为特征序列转换成行为特征语言;3)通过自动机模型循环判断行为特征是否具有唯一性或度量行为特征个体间的相似性,若行为特征具有唯一性,则执行步骤4),若行为特征具有相似性,则执行步骤5);4)根据行为特征的语义,自动机模型基于数理逻辑检测软件状态,并报告软件漏洞的存在性;
5)根据行为特征的语义,自动机模型基于贝叶斯逻辑检测软件状态,并报告软件漏洞的存在性。所述的自动机包括有限状态自动机和行为特征自动机,所述的有限状态自动机判断行为特征是否具有唯一性,所述的行为特征自动机度量行为特征个体间的相似性。所述的基于数理逻辑检测软件状态具体为采用命题逻辑或谓词逻辑表达行为特征语义,自动机模型根据已知行为特征,判断是否存在软件漏洞。所述的基于贝叶斯逻辑检测软件状态具体为在行为特征语义的基础上,利用贝叶斯公式,构建概率逻辑,通过自动机模型判断是否存在软件漏洞。与现有技术相比,本发明可准确根据已知行为特征,检测软件漏洞的存在性,从而提高计算机软件的可靠性和安全性。


图I为本发明检测方法的流程示意图。
具体实施例方式下面结合附图和具体实施例对本发明进行详细说明。实施例如图I所示,一种基于行为特征自动机模型的软件漏洞检测方法,该方法包括以下步骤I)漏洞行为特征库中已知漏洞行为特征的表示;11)建立具有数据约束的自动机模型BAR BAR = function (Behavior O,Automaton O,reasoning ())Behavior = B (Judge, In, Out, State, Action)Automaton = (FSM(In, Out, State, f (In), g(s)), BM(Behavior))Re asoning (Logic (FSM (), NoClassicalLogic (BM ()))其中,Behavior表示行为特征表达,Automaton表示自动机,reasoning表示推理;行为特征表达为与约束Judge、输入In、输出Out、状态State和行为Action相关的函数;自动机包括有限状态自动机FSM(In, Out, State, f (In), g(s))与行为特征自动机BM(Behavior),其中表示f (In)输入函数,g(s)表示状态转换函数;推理方法包括经典逻辑中的推理与非经典逻辑中的近似推理。12)通过自动机模型将漏洞行为特征库中的行为特征序列转换成行为特征语言L(BAR),为后续的语言分类奠定了基础L(BAR) = {w | w e In, f (S0, w) e S,fj (S0, w) e B}w是把自动机BAR可以接受的行为序列W,这些序列属于输入集合In。从初始状态S0开始,经过状态转换函数f (S0, w),结果是状态集合S的元素;同样经过w) e B,结果是行为集合B的元素。状态转换函数和行为转换函数均与初始状态Stl和输入的行为序列w有关。2)通过自动机模型判断行为特征是否具有唯一性或度量行为特征个体间的相似性;21)被有限状态自动机接受的语言L (Wtl)为软件行为唯一性特征,唯一性的具体判断如下
假设Ω是行为特征L(W)的集合空间,行为特征需要满足以下条件
l(wjn£(W/)=0 プ,=L(W1) U L (W2) ...U L(Wn) = Ω那么L(W1) U L(W2)…U L(Wn)是Ω的划分,研究在Wi上提取行为特征L(Wi)方法,使能满足任意两个特征交集为空,使其具备“唯一性”,可以对特征集合进行划分。22)相似性是指行为与特征的差异。相似性P (Wi I L(Wtl))是判断行为属于哪种类型漏洞的关键依据,其公式如下
P^Ii(Ws))= I w. c L(w0)|咖來))=|^.しメ‘)当个体的行为特征能被语言识别时候·^相似性定义为し当个体的行为特征不能被语言识别时候%相似性定义为个体特征S(Wi)与类别特征S(W。)的比。3)根据行为特征的语义,自动机模型基于数理逻辑或贝叶斯逻辑检测软件状态,并报告软件漏洞的存在性。对于语义明确,即具有唯一性的行为特征,用命题逻辑或谓词逻辑描述的行为特征,选用经典逻辑,构建自动机检测判断。对于语义模糊的,即具有相似性的行为特征,采用贝叶斯逻辑描述行为特征,采用近似推理判断存在漏洞的可能性。31)基于数理逻辑的自动机推理检测有限状态自动机解决了软件漏洞语法的描述,数理逻辑可以解决语义推理,并把推理方法应用到自动机中,根据已知软件存在行为特征,推理判断属于那种类型漏洞。311)行为特征语义的定义从行为特征的指令层,用命题逻辑或谓词逻辑表达行为语义。例如命题P :整数溢出漏洞Q :缓冲区溢出漏洞R :溢出。整数溢出漏洞导致溢出,蕴含定义P — R ;(νχΧ (χ)^Λ(^))缓冲区溢出漏洞导致溢出,蕴含的定义Q — K ;(瑜(ズ)一 ))已知条件发生了溢出R,不是缓冲区溢出漏洞Π <3,推断存在那种类型漏洞?
312)定义蕴含和等价公式蕴含公式定义(II) P Λ Q = > P ; (12) Q,Q — R = > R ; (13) P,P — R = > R 等价式定义(El) PvR . (E2) Q->RO^ QvR; (E3) (P^R)OPai R313)构建推理自动机用推理机描述蕴含公式与等价公式的定义,然后根据已知行为特征,推理判断存在的未知漏洞。推理自动机定义R= {w, L(w), V, I, E}R是推理自动机,w是软件行为,,L(w)是行为特征,V是漏洞集合,I是蕴含公式集,E是等价公式集。 32)基于贝叶斯逻辑的近似自动机推理检测这种已知結果,推理原因的情況,可以利用贝叶斯后验概率进行推导。321)贝叶斯逻辑设漏洞事件B1, B2, , Bn,及行为特征A满足B1, B2, , Bn两两互不相容,P(Bi)
权利要求
1.一种基于行为特征自动机模型的软件漏洞检测方法,其特征在于,该方法包括以下步骤 1)将具有数据约束的自动机模型从漏洞行为特征库中载入流程,建立具有数据约束的自动机模型; 2)通过自动机模型将漏洞行为特征库中的行为特征序列转换成行为特征语言; 3)通过自动机模型循环判断行为特征是否具有唯一性或度量行为特征个体间的相似性,若行为特征具有唯一性,则执行步骤4),若行为特征具有相似性,则执行步骤5); 4)根据行为特征的语义,自动机模型基于数理逻辑检测软件状态,并报告软件漏洞的存在性; 5)根据行为特征的语义,自动机模型基于贝叶斯逻辑检测软件状态,并报告软件漏洞的存在性。
2.根据权利要求I所述的ー种基于行为特征自动机模型的软件漏洞检测方法,其特征在于,所述的自动机包括有限状态自动机和行为特征自动机,所述的有限状态自动机判断行为特征是否具有唯一性,所述的行为特征自动机度量行为特征个体间的相似性。
3.根据权利要求I所述的ー种基于行为特征自动机模型的软件漏洞检测方法,其特征在于,所述的基于数理逻辑检测软件状态具体为 采用命题逻辑或谓词逻辑表达行为特征的语义,自动机模型根据已知行为特征,判断是否存在软件漏洞。
4.根据权利要求I所述的ー种基于行为特征自动机模型的软件漏洞检测方法,其特征在于,所述的基于贝叶斯逻辑检测软件状态具体为 在行为特征语义的基础上,利用贝叶斯公式,构建概率逻辑,通过自动机模型判断是否存在软件漏洞。
全文摘要
本发明涉及一种基于行为特征自动机模型的软件漏洞检测方法,该方法包括以下步骤1)将具有数据约束的自动机模型从漏洞行为特征库中载入流程,建立具有数据约束的自动机模型;2)通过自动机模型将漏洞行为特征库中的行为特征序列转换成行为特征语言;3)通过自动机模型循环判断行为特征是否具有唯一性或度量行为特征个体间的相似性,若行为特征具有唯一性,则自动机模型基于数理逻辑检测软件状态,并报告软件漏洞的存在性,若行为特征具有相似性,则自动机模型基于贝叶斯逻辑检测软件状态,并报告软件漏洞的存在性。与现有技术相比,本发明具有可提高计算机软件漏洞检测效率等优点。
文档编号G06F21/22GK102693393SQ20121016289
公开日2012年9月26日 申请日期2012年5月21日 优先权日2012年5月21日
发明者吴亮, 成贵学, 王勇, 王威, 谷大武, 黄亮亮 申请人:上海电力学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1