基于抽象语法树的漏洞检测方法及系统技术方案

技术编号:41685721 阅读:39 留言:0更新日期:2024-06-14 15:37
本发明专利技术公开了一种基于抽象语法树的漏洞检测方法及系统,该方法包括:获取应用程序中所有的特征函数;将与预定义的漏洞规则相匹配的特征函数定义为目标特征函数;获取目标特征函数的类路径,以得到第一路径;获取并拼接漏洞规则中的包路径和类名称,以得到第二路径;当第一路径与第二路径不匹配时,获取目标特征函数所在类所有的引入类路径;将含有通配符的引入类路径中的通配符去除,以得到若干第三路径;将每一第三路径与漏洞规则中的包路径进行匹配;再将目标特征函数所属的类名与漏洞规则中的类名匹配。上述漏洞检测方法,可以有效解决使用通配符导入类时产生的类路径错误问题,不仅减少了漏报的风险,还提高了漏洞检测的效率和可靠性。

【技术实现步骤摘要】

本专利技术涉及漏洞检测,尤其涉及一种基于抽象语法树的漏洞检测方法及系统


技术介绍

1、在软件开发领域,保证代码的安全性是一个重要的挑战。为此,静态代码分析技术被广泛应用于检测潜在的安全漏洞。程序静态分析指的是在不运行代码的情况下,通过词法分析、语法分析、控制流和数据流分析等技术,对程序代码进行扫描,验证其是否符合规范性、安全性、可靠性、可维护性等指标。

2、在java编程语言中,进行这类分析通常需要将源代码转换为抽象语法树(ast)。ast是将源代码转换成树形结构的过程,其中每个节点代表源代码中的一种结构,如函数、类等。每个节点会包含该结构的相关信息,例如函数的名称、类型、所在类的路径等。

3、然而,目前的技术存在一些局限性。特别是在处理使用通配符(如*)导入的类时,ast可能无法正确识别类的完整路径,从而影响漏洞检测的准确性。例如,当使用importjava.util.*;这样的语句时,ast可能将类路径错误地设置为当前类的路径,而非实际的路径。这种错误路径的记录会导致在漏洞检测过程中无法准确匹配漏洞点,从而导致漏报。

<本文档来自技高网...

【技术保护点】

1.一种基于抽象语法树的漏洞检测方法,其特征在于,包括:

2.根据权利要求1所述的基于抽象语法树的漏洞检测方法,其特征在于,所述待测应用程序基于Java语言编制,所述通配符为星号*。

3.根据权利要求1所述的基于抽象语法树的漏洞检测方法,其特征在于,将每一所述第三路径与所述漏洞规则中的包路径进行正则匹配。

4.根据权利要求1所述的基于抽象语法树的漏洞检测方法,其特征在于,所述漏洞规则与命令行注入漏洞相对应。

5.一种基于抽象语法树的漏洞检测系统,其特征在于,该漏洞检测系统基于权利要求1至4任一项所述的漏洞检测方法工作。</p>

6.一种...

【技术特征摘要】

1.一种基于抽象语法树的漏洞检测方法,其特征在于,包括:

2.根据权利要求1所述的基于抽象语法树的漏洞检测方法,其特征在于,所述待测应用程序基于java语言编制,所述通配符为星号*。

3.根据权利要求1所述的基于抽象语法树的漏洞检测方法,其特征在于,将每一所述第三路径与所述漏洞规则中的包路径进行正则匹配。

4.根据权利要求1所述的基于抽象语法树的漏...

【专利技术属性】
技术研发人员:许福来万振华徐瑞祝陆庆尚
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:

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

1