代码安全分析方法、装置、电子设备和存储介质与流程

文档序号:35669410发布日期:2023-10-07 15:39阅读:36来源:国知局
代码安全分析方法、装置、电子设备和存储介质与流程

本公开涉及安全测试,尤其涉及一种代码安全分析方法、装置、电子设备和存储介质。


背景技术:

1、目前,软件被越来越多的用于处理各种敏感信息和高价值信息,例如商业信息、财政信息等,这使得软件日益成为企图获取这些信息的攻击者的攻击目标。攻击者企图挖掘软件中的安全漏洞,以干扰软件运行,实现对软件的恶意操作。其中,软件的源代码编写阶段引入的风险点是最常见的安全漏洞。因此,如何确定出对源代码中的风险点,对于提高软件的安全性是十分重要的。


技术实现思路

1、本公开提出一种代码安全分析方法、装置、电子设备和存储介质。

2、本公开一方面实施例提出了一种代码安全分析方法,包括:

3、获取源代码的抽象语法树;

4、获取所述抽象语法树中的函数节点集合,其中,所述函数节点集合包括多个函数节点,其中,所述多个函数节点分别与所述源代码中的多个函数对应;

5、针对每个函数节点,根据所述抽象语法树,确定出所述函数节点所对应目标函数的函数名称、目标变量和所属的类路径信息,其中,所述目标函数为所述多个函数中的一个;

6、获取所述目标变量的变量信息;

7、在所述函数名称与预设风险点所对应的预设函数名称相同,并且所述类路径信息与预设风险点所对应的类路径信息相同和/或所述变量信息与预设风险点所对应的预设变量信息相同的情况下,确定所述目标函数为存在风险的函数。

8、本公开另一方面方面实施例提出了一种代码安全分析装置,包括:

9、第一获取模块,用于获取源代码的抽象语法树;

10、第二获取模块,用于获取所述抽象语法树中的函数节点集合,其中,所述函数节点集合包括多个函数节点,其中,所述多个函数节点分别与所述源代码中的多个函数对应;

11、第一确定模块,用于针对每个函数节点,根据所述抽象语法树,确定出所述函数节点所对应目标函数的函数名称、目标变量和所属的类路径信息,其中,所述目标函数为所述多个函数中的一个;

12、第三获取模块,用于获取所述目标变量的变量信息;

13、第二确定模块,用于在所述函数名称与预设风险点所对应的预设函数名称相同,并且所述类路径信息与预设风险点所对应的类路径信息相同和/或所述变量信息与预设风险点所对应的预设变量信息相同的情况下,确定所述目标函数为存在风险的函数。

14、本公开另一方面实施例提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如前述一方面所述的方法。

15、本公开另一方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述一方面所述的方法。

16、本公开另一方面实施例提出了一种计算机程序产品,其上存储有计算机程序,所述程序被处理器执行时实现如前述一方面所述的方法。

17、本公开提出的代码安全分析方法、装置、电子设备和存储介质,在对源代码进行安全分析的过程中,获取源代码的抽象语法树,并获取抽象语法树中的函数集合,针对每个函数节点,根据抽象语法树,确定出函数节点所对应目标函数的函数名称、目标变量和所属的类路径信息,并获取目标变量的变量信息,以及在函数名称与预设风险点所对应的预设函数名称相同,并且类路径信息与预设风险点所对应的类路径信息相同和/或变量信息与预设风险点所对应的预设变量信息相同的情况下,确定目标函数为存在风险的函数。由此,结合函数的函数名称、所属的类路径信息和变量的变量信息等多种因素,准确确定出源代码中存在风险的函数,提高了源代码安全分析的准确性。

18、本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。



技术特征:

1.一种代码安全分析方法,其特征在于,包括:

2.如权利要求1所述的方法,其特征在于,在所述确定所述目标函数为存在风险的函数之后,所述方法还包括:

3.如权利要求1或2所述的方法,其特征在于,在所述目标变量为局部变量的情况下,所述获取所述目标变量的变量信息,包括:

4.如权利要求3所述的方法,其特征在于,所述获取所述目标变量的定义-使用对,包括:

5.如权利要求1或2所述的方法,其特征在于,在所述目标变量为输入变量的情况下,所述获取所述目标变量的变量信息,包括:

6.如权利要求1或2所述的方法,其特征在于,在所述目标变量为局部变量的情况下,所述获取所述目标变量的变量信息,包括:

7.一种代码安全分析装置,其特征在于,包括:

8.如权利要求7所述的装置,其特征在于,所述装置还包括:

9.如权利要求7或8所述的装置,其特征在于,在所述目标变量为局部变量的情况下,所述第三获取模块,包括:

10.如权利要求9所述的装置,其特征在于,所述第一获取单元,具体用于:

11.如权利要求7或8所述的装置,其特征在于,在所述目标变量为输入变量的情况下,第三获取模块,具体用于:

12.如权利要求7或8所述的装置,其特征在于,在所述目标变量为局部变量的情况下,所述第三获取模块,具体用于:

13.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如权利要求1-6中任一所述的方法。

14.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述的方法。


技术总结
本公开提出一种代码安全分析方法、装置、电子设备和存储介质,其中,方法包括:获取源代码的抽象语法树,并获取抽象语法树中的函数集合,针对每个函数节点,根据抽象语法树,确定出函数节点所对应目标函数的函数名称、目标变量和所属的类路径信息,并获取目标变量的变量信息,以及在函数名称与预设风险点所对应的预设函数名称相同,并且类路径信息与预设风险点所对应的类路径信息相同和/或变量信息与预设风险点所对应的预设变量信息相同的情况下,确定目标函数为存在风险的函数。由此,结合函数的函数名称、所属的类路径信息和变量的变量信息等多种因素,准确确定出源代码中存在风险的函数,提高源代码安全分析的准确性。

技术研发人员:郑斯碟
受保护的技术使用者:北京车和家信息技术有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1