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

技术编号:11204481 阅读:79 留言:0更新日期:2015-03-26 12:34
本发明专利技术公开一种漏洞检测方法及装置,该方法包括:接收需进行漏洞检测的源代码;对接收的源代码进行词法语法分析并配置漏洞检测的检测点,得到对应的语法树信息;解析语法树信息中配置的各检测点,获取与各检测点相关联的变量,并通过解析获取的变量,得到该变量的初始值;分析获取的变量的初始值为外部可控输入时,检测出源代码存在漏洞;相较于现有技术中,过于依赖测试用例的动态黑盒测试,以及通过审计工具进行扫描检测的静态白盒测试,本发明专利技术实施例具体提高漏洞检测准确率的有益效果,降低了对源代码进行检测时的漏洞误报率。

【技术实现步骤摘要】

本专利技术涉及计算机领域,还涉及信息安全技术,尤其涉及一种漏洞检测方法及装置
技术介绍
随着Web应用如社交网站、电子商城、门户网站、论坛的普及和迅速发展,Web应用的安全问题也备受关注。由于承载web应用的硬件设备、软件系统、通信协议等的具体实现或系统安全策略上存在缺陷,web应用在开发过程中也会不可避免地存在漏洞。目前常见的检测Web漏洞的方法主要是动态黑盒测试和静态白盒扫描;动态黑盒测试是通过构造大量畸形的测试用例,访问Web页面,然后判断返回Web页面的内容;根据返回的Web页面中存在的数据,检测该Web页面是否存在漏洞。静态白盒扫描是通过深入程序内部代码结构,利用PHP(Professional Hypertext Preprocessor,服务器端编程语言)代码审计工具并结合设定的检测规则进行检查。动态黑盒测试过于依赖测试用例,因此很容易造成漏报;而现有的静态白盒通过审计工具进行扫描来检测漏洞的方式,对漏洞的误报率也很高。
技术实现思路
鉴于此,有必要提供一种漏洞检测方法及装置,以降低对源代码进行漏洞检测的误报率。本专利技术实施例公开了一种漏洞检测方法,包括以下步骤:接收需进行漏洞检测的源代码;对接收的所述源代码进行词法语法分析并配置漏洞检测的检测点,得到对应的语法树信息;解析所述语法树信息中配置的各检测点,获取与各检测点相关联的变量,并通过解析获取的所述变量得到所述变量的初始值;分析获取的所述变量的初始值为外部可控输入时,检测出所述源代码存在漏洞。本专利技术实施例还公开一种漏洞检测装置,包括:代码接收模块,用于接收需进行漏洞检测的源代码;漏洞检测模块,用于:接收的所述源代码进行词法语法分析并配置漏洞检测的检测点,得到对应的语法树信息;解析所述语法树信息中配置的各检测点,获取与各检测点相关联的变量,并通过解析获取的所述变量得到所述变量的初始值;分析获取的所述变量的初始值为外部可控输入时,检测出所述源代码存在漏洞。本专利技术实施例接收需进行漏洞检测的源代码;对接收的所述源代码进行词法语法分析并配置漏洞检测的检测点,得到对应的语法树信息;解析所述语法树信息中配置的各检测点,获取与各检测点相关联的变量,并通过解析获取的所述变量得到所述变量的初始值;分析获取的所述变量的初始值为外部可控输入时,检测出所述源代码存在漏洞;相较于现有技术中,过于依赖测试用例的动态黑盒测试,以及通过审计工具进行扫描检测的静态白盒测试,本专利技术实施例具体提高漏洞检测准确率的有益效果,降低了对源代码进行检测时的漏洞误报率。附图说明图1是本专利技术漏洞检测方法第一实施例流程示意图;图2是本专利技术漏洞检测方法第二实施例流程示意图;图3是本专利技术漏洞检测装置第一实施例功能模块示意图;图4是本专利技术漏洞检测装置第二实施例功能模块示意图。本专利技术实施例目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式以下结合说明书附图及具体实施例进一步说明本专利技术的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。图1是本专利技术漏洞检测方法第一实施例流程示意图;如图1所示,本发明漏洞检测方法包括以下步骤:步骤S01、接收需进行漏洞检测的源代码;漏洞检测程序接收需进行漏洞检测的源代码;本实施例中,漏洞检测程序接收需进行漏洞检测的源代码的方式包括但不限于:web页面提交的源代码,脚本批量提交的源代码以及由SVN(subversion,版本管理)工具定期提交的源代码。在实际的应用场景中,web页面提交的源代码通常是由PHP(Professional Hypertext Preprocessor,超级文本预处理语言)语言开发的源代码。脚本批量提交的源代码,支持脚本使用CURL的方式提交;其中,CURL是利用URL(Uniform Resource Locator,统一资源定位符)语法在命令行方式下工作的文件传输工具。SVN定期提交是在将SVN项目名称和路径存储在数据库中,每次定期扫描数据进行漏洞检测时,漏洞检测程序从数据库里取SVN项目路径,进行扫描,从而检测是否存在漏洞。步骤S02、对接收的源代码进行词法语法分析并配置漏洞检测的检测点,得到对应的语法树信息;漏洞检测程序通过编译原理的词法和语法分析过程,将需检测的源代码转成AST(Abstract Syntax Tree,抽象语法树);在转换的过程中,每个源文件对应一个AST文件,该AST文件可以为XML(XExrensible Markup Language,可扩展标记语言)格式的文件;而每个源文件中的源码语句将对应转换为AST的一个节点。比如,漏洞检测程序会将if(){本文档来自技高网...

【技术保护点】
一种漏洞检测方法,其特征在于,包括以下步骤:接收需进行漏洞检测的源代码;对接收的所述源代码进行词法语法分析并配置漏洞检测的检测点,得到对应的语法树信息;解析所述语法树信息中配置的各检测点,获取与各检测点相关联的变量,并通过解析获取的所述变量得到所述变量的初始值;分析获取的所述变量的初始值为外部可控输入时,检测出所述源代码存在漏洞。

【技术特征摘要】
1.一种漏洞检测方法,其特征在于,包括以下步骤:
接收需进行漏洞检测的源代码;
对接收的所述源代码进行词法语法分析并配置漏洞检测的检测点,得到
对应的语法树信息;
解析所述语法树信息中配置的各检测点,获取与各检测点相关联的变量,
并通过解析获取的所述变量得到所述变量的初始值;
分析获取的所述变量的初始值为外部可控输入时,检测出所述源代码存
在漏洞。
2.如权利要求1所述的方法,其特征在于,所述分析获取的所述变量的
初始值为外部可控输入时,检测出所述源代码存在漏洞,包括:
分析获取的所述变量的初始值能够被使用者控制输入时,检测出所述变
量对应的检测点存在漏洞。
3.如权利要求1或2所述的方法,其特征在于,所述获取与各检测点相关
联的变量,并通过解析获取的所述变量得到所述变量的初始值,包括:
获取与某一检测点相关联的变量后,在获取所述变量的初始值的过程中,
若存在与预设安全规则匹配的操作,则识别所述变量对应的检测点不存在漏
洞,停止继续获取所述变量的初始值。
4.如权利要求1或2所述的方法,其特征在于,所述分析获取的所述变量
的初始值为外部可控输入时,检测出所述源代码存在漏洞,之后还包括:
识别检测出的存在漏洞的源代码为误报时,将误报为存在漏洞的所述源
代码进行标记,得到被标记的误报漏洞数据。
5.如权利要求4所述所述的方法,其特征在于,所述接收需进行漏洞检
测的源代码,包括:
接收已剔除被标记的误报漏洞数据后的需进行漏洞检测的源代码。
6.如权利要求1或2所述的方法,其特征在于,所述接收需进行漏洞检测
的源代码包括:
接收根据预设过滤规则过滤后的需进行漏洞检测的源代码。
7.如权利要求6所述的方法,其特征在于,所述接收根据预设过滤规则
过滤后的需进行漏洞检测的源代码,包括:
接收到需进行漏洞检测的源代码后,按照预设过滤规则对接收到的源代
码进行过滤,将符合所述预设过滤规则的源代码去除,仅保留不符合所述预
设过滤规则的源代码,以对保留的源代码进行后续的漏洞检测。
8.如权利要求1或2所述的方法,其特征在于,所述接收需进行漏洞检测
...

【专利技术属性】
技术研发人员:王培伟王金锭谭晓光陈薇婷王岳
申请(专利权)人:深圳市腾讯计算机系统有限公司
类型:发明
国别省市:广东;44

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

1