一种漏洞检测方法及装置制造方法及图纸

技术编号:20867266 阅读:51 留言:0更新日期:2019-04-17 09:29
本发明专利技术提供了一种漏洞检测方法及装置,该方法分别构建待检测程序源码以及漏洞片段的抽象语法树,确定两个抽象语法树之间的相似度以确定待检测程序源码中是否存在漏洞。由于抽象语法树能够表征程序代码的细节以及结构信息,如变量、函数、关键词、操作之间的语法结构关系,因此利用抽象语法树表征待检测程序源码以及漏洞片段能够完整的表征待检测程序源码的语法结构关系以及漏洞片段的语法结构关系,避免了由于字符串仅能表征语法序列而不能表征语法结构关系导致语法信息缺失,进而导致相似度计算的结果准确性低,漏洞检测结果准确性低的问题产生。

【技术实现步骤摘要】
一种漏洞检测方法及装置
本专利技术属于计算机安全
,尤其涉及一种漏洞检测方法及装置。
技术介绍
随着计算机技术的发展,计算机系统软件数量剧增,而在测试阶段无法对每个系统软件充分进行安全性测试以检测到系统漏洞,导致计算机系统存在安全隐患。同时,攻击者正尝试利用计算机系统程序代码的漏洞执行恶意操作,对计算机系统造成危害。为了维护互联网及计算机系统的安全,需要对计算机系统进行漏洞检测。现有技术提供的漏洞检测方法为采用字符串表征待检测程序源码,并与规则库中存储的漏洞片段进行字符串匹配,通过字符串匹配确定待检测程序源码中存在与漏洞片段相似度达到阈值的程序片段,则确定待检测程序源码中存在漏洞片段。但是,通过字符串匹配确定待检测程序源码中是否存在漏洞片段的检测结果准确性低。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种漏洞检测方法及装置,以解决现有通过字符串匹配的方法检测待检测程序源码中是否存在漏洞的检测结果准确性低的问题。技术方案如下:本专利技术提供一种漏洞检测方法,包括:构建待检测程序源码的抽象语法树以及预置规则库中存储的每个漏洞片段的抽象语法树;针对预置规则库中存储的每个漏洞片段,本文档来自技高网...

【技术保护点】
1.一种漏洞检测方法,其特征在于,包括:构建待检测程序源码的抽象语法树以及预置规则库中存储的每个漏洞片段的抽象语法树;针对预置规则库中存储的每个漏洞片段,确定待检测程序源码的抽象语法树与该漏洞片段的抽象语法树之间的相似度;判断待检测程序源码的抽象语法树与该漏洞片段的抽象语法树之间的相似度是否大于阈值;若待检测程序源码的抽象语法树与该漏洞片段的抽象语法树之间的相似度大于阈值,则确定待检测程序源码中存在漏洞。

【技术特征摘要】
1.一种漏洞检测方法,其特征在于,包括:构建待检测程序源码的抽象语法树以及预置规则库中存储的每个漏洞片段的抽象语法树;针对预置规则库中存储的每个漏洞片段,确定待检测程序源码的抽象语法树与该漏洞片段的抽象语法树之间的相似度;判断待检测程序源码的抽象语法树与该漏洞片段的抽象语法树之间的相似度是否大于阈值;若待检测程序源码的抽象语法树与该漏洞片段的抽象语法树之间的相似度大于阈值,则确定待检测程序源码中存在漏洞。2.根据权利要求1所述的漏洞检测方法,其特征在于,所述确定待检测程序源码的抽象语法树与该漏洞片段的抽象语法树之间的相似度包括:获取待检测程序源码的抽象语法树的节点数量以及该漏洞片段的抽象语法树的节点数量;判断待检测程序源码的抽象语法树的节点数量与该漏洞片段的抽象语法树的节点数量之差是否大于预设个数;若判断待检测程序源码的抽象语法树的节点数量与该漏洞片段的抽象语法树的节点数量之差大于预设个数,则获取该漏洞片段的抽象语法树中的根节点;针对该漏洞片段的抽象语法树中的每个根节点,分别在待检测程序源码的抽象语法树中查找与该漏洞片段的抽象语法树中该根节点匹配的根节点;在待检测程序源码的抽象语法树中查找到匹配根节点后,逐级比较该匹配根节点下的每个子节点与该漏洞片段的抽象语法树中对应的根节点下的子节点,得到比较结果;根据比较结果,确定待检测程序源码的抽象语法树与该漏洞片段的抽象语法树之间的相似度。3.根据权利要求2所述的漏洞检测方法,其特征在于,还包括:若判断待检测程序源码的抽象语法树的节点数量与该漏洞片段的抽象语法树的节点数量之差大于预设个数,则分解待检测程序源码的抽象语法树以及该漏洞片段的抽象语法树,分别得到每个抽象语法树中包括的路径;针对每个抽象语法树中分解得到的每条路径,分别根据每条路径上节点的语法信息计算该路径的哈希值;根据每个抽象语法树中分解得到的所有路径的哈希值,计算待检测程序源码的抽象语法树与该漏洞片段的抽象语法树之间的相似度。4.根据权利要求1-3任意一项所述的漏洞检测方法,其特征在于,采用如下方法构建抽象语法树:获取待构建程序中包括的文件;其中,所述待构建程序为待检测程序源码或预置规则库中存储的漏洞片段;分别解析每个所述文件;从每个所述文件的解析结果中获取函数信息;根据函数信息提取函数片段,并将函数片段存储至函数文件中;对所述函数文件进行解析后,根据对所述函数文件的解析结果构建该函数文件的抽象语法树,直至完成对所述待构建程序中包括的所有函数文件的抽象语法树的构建,得到所述待构建程序的抽象语法树。5.根据权利要求4所述的漏洞检测方法,其特征在于,还包括:对得到的所述待构建程序的抽象语法树进行裁剪。6.一种漏洞检测装置,其特征在于,包括:构建单元,用于构建待检测程序源码的抽象语法树以及预置规则库中存储的每个漏洞片段的抽象语法树;相似度确...

【专利技术属性】
技术研发人员:闫龙川俞学豪何永远李莉敏赵子岩赵丙镇高德荃陈智雨白东霞胡威刘军史睿
申请(专利权)人:国家电网有限公司信息通信分公司国家电网有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1