本申请涉及漏洞检测,尤其涉及一种过滤函数的识别方法、装置、设备及存储介质。
背景技术:
1、过滤函数,是应用内对用户参数进行校验或过滤的特定函数,目的是去除参数中容易导致安全漏洞的特殊字符,提高应用程序的安全性。在静态应用安全测试sast中,基于数据流图进行漏洞检测时,绝大部分安全漏洞误报都是因无法识别出应用中的过滤函数所导致的,而目前业界也暂无在sast中主动发现应用过滤函数的方案。
技术实现思路
1、本申请提供的一种过滤函数的识别方法,旨在解决现有技术中在利用静态应用安全测试进行漏洞检测时无法主动发现应用过滤函数导致许多安全漏洞误报的问题。
2、为实现上述目的,本申请采用以下技术方案:
3、本申请的一种过滤函数的识别方法,包括以下步骤:
4、对应用程序源码进行扫描,筛选出其中所有的用户自定义类;
5、对每个用户自定义类中的方法进行特征识别,并将每个符合过滤函数特征的特征识别结果作为目标特征;
6、通过静态应用安全测试对所述应用程序源码进行漏洞检测得到漏洞数据,所述漏洞数据包含污点跟踪数据流;
7、根据所述污点跟踪数据流和全部目标特征确定误报漏洞,并将每个目标特征对应的类方法添加到所述静态应用安全测试的过滤规则中。
8、作为优选,所述对应用程序源码进行扫描,筛选出其中所有的用户自定义类,包括:
9、扫描应用程序源码得到其中所有的类,并采集第三方库名称清单;
10、过滤掉在所述第三方库名称清单中出现的全部所述类,得到所述应用程序源码中所有的用户自定义类。
11、作为优选,所述对每个用户自定义类中的方法进行特征识别,并将每个符合过滤函数特征的特征识别结果作为目标特征,包括:
12、获取过滤函数特征,并识别出每个用户自定义类中的方法所包含的函数名、函数结构和函数内容;
13、计算每个识别结果与所述过滤函数特征间的相似度,并将相似度达到设定阈值的识别结果作为目标特征。
14、作为优选,所述方法还包括:
15、将所有目标特征中包含的函数名和所述漏洞数据均上报给所述静态应用安全测试的服务端。
16、作为优选,所述根据所述污点跟踪数据流和全部目标特征确定误报漏洞,包括:
17、将所述服务端接收的漏洞数据所包含的污点跟踪数据流与所述目标特征进行比对,若所述污点跟踪数据流中存在所述目标特征,则判定所述漏洞为误报,并对其进行误报标记。
18、作为优选,所述方法还包括:
19、若所述应用程序源码中不存在用户自定义类,则流程结束。
20、一种过滤函数的识别装置,包括:
21、筛选模块,用于对应用程序源码进行扫描,筛选出其中所有的用户自定义类;
22、识别模块,用于对每个用户自定义类中的方法进行特征识别,并将每个符合过滤函数特征的特征识别结果作为目标特征;
23、检测模块,用于通过静态应用安全测试对所述应用程序源码进行漏洞检测得到漏洞数据,所述漏洞数据包含污点跟踪数据流;
24、判断模块,用于根据所述污点跟踪数据流和全部目标特征确定误报漏洞,并将每个目标特征对应的类方法添加到所述静态应用安全测试的过滤规则中。
25、作为优选,所述筛选模块包括:
26、扫描单元,用于扫描应用程序源码得到其中所有的类,并采集第三方库名称清单;
27、过滤单元,用于过滤掉在所述第三方库名称清单中出现的全部所述类,得到所述应用程序源码中所有的用户自定义类。
28、一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如上述中任一项所述的一种过滤函数的识别方法。
29、一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述中任一项所述的一种过滤函数的识别方法。
30、本发明具有如下有益效果:
31、本申请提出的方法,在使用sast进行漏洞检测时,可主动发现应用程序的过滤函数,提高漏洞误报识别效率,并在发现应用程序过滤函数后,将该过滤函数添加到sast工具的过滤规则中,避免以后继续误报。
1.一种过滤函数的识别方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种过滤函数的识别方法,其特征在于,所述对应用程序源码进行扫描,筛选出其中所有的用户自定义类,包括:
3.根据权利要求1所述的一种过滤函数的识别方法,其特征在于,所述对每个用户自定义类中的方法进行特征识别,并将每个符合过滤函数特征的特征识别结果作为目标特征,包括:
4.根据权利要求3所述的一种过滤函数的识别方法,其特征在于,所述方法还包括:
5.根据权利要求4所述的一种过滤函数的识别方法,其特征在于,所述根据所述污点跟踪数据流和全部目标特征确定误报漏洞,包括:
6.根据权利要求1所述的一种过滤函数的识别方法,其特征在于,所述方法还包括:
7.一种过滤函数的识别装置,其特征在于,包括:
8.根据权利要求7所述的一种过滤函数的识别装置,其特征在于,所述筛选模块包括:
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如权利要求1~6中任一项所述的一种过滤函数的识别方法。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序使计算机执行时实现如权利要求1~6中任一项所述的一种过滤函数的识别方法。