本公开涉及安全测试,尤其涉及一种代码安全分析方法、装置、电子设备和存储介质。
背景技术:
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中任一所述的方法。