本申请涉及类的风险检测,具体涉及一种类的风险检测方法、装置、设备和存储介质。
背景技术:
1、在计算机编程中,特别是在面向对象编程(object-oriented programming, oop)中,类(class)是一个非常重要的概念,它可以被视为一个模板或蓝图,其定义了一个对象的属性和方法(或称为成员函数),这些属性和方法描述了对象的状态和行为。在java、c++、c#、python等都有运用类这个概念,并且可以对其进行动态加载运行。
2、但是在类动态加载运行过程中,如果代码中使用了一些第三方库,那么第三方库会动态的加载一些陌生的类,比如与项目无关的或者不安全的类等等,这些类很有可能会获取到一些当前开发项目中的非公开的机密数据,造成数据泄密,严重影响当前开发项目的私密性和安全性。
技术实现思路
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、若所述检测结果为各个第二类中包含至少一个存在风险的第二类,则对各个所述风险类和存在风险的各个第二类进行风险预警。
32、优选地,所述利用所述特征码对各个所述第二类进行风险检测,得到检测结果,包括:
33、将每一个所述第二类的特征码分别与预先建立的特征码检测表进行对比;
34、判断各个所述第二类的特征码是否均与所述特征码检测表比对成功;
35、若是,则确定检测结果为各个第二类无风险;
36、若否,则确定检测结果为各个第二类中包含至少一个存在风险的第二类。
37、第二方面,一种类的风险检测装置,包括:
38、类获取模块,用于在对源文件进行执行的过程中,获取所述源文件动态加载的各个类;
39、匹配模块,用于分别将每一个所述类与预先构建的风险类检测表进行匹配,以确定各个风险类和各个待确认类;
40、判断模块,用于判断各个所述待确认类是否包含在预先建立的项目类表中,将不包含在所述项目类表中的各个待确认类作为各个第二类;所述项目类表是所述源文件对应开发项目所定义的类的集合;
41、风险预警模块,用于对各个所述风险类和各个所述第二类进行风险预警。
42、第三方面,种类的风险检测设备,包括存储器和处理器;
43、所述存储器,用于存储程序;
44、所述处理器,用于执行所述程序,实现如第一方面任一项所述的类的风险检测方法的各个步骤。
45、第四方面,一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面任一项所述的类的风险检测方法的各个步骤。
46、从上述技术方案可以看出,本申请在对源文件进行执行的过程中,获取所述源文件动态加载的各个类;分别将每一个所述类与预先构建的风险类检测表进行匹配,以确定各个风险类和各个待确认类;建立与所述源文件对应的开发项目的项目类表;判断各个所述待确认类是否包含在所述项目类表中,将不包含在所述项目类表中的各个待确认类作为各个第二类;对各个所述风险类和各个所述第二类进行风险预警。本方案设置了两个检测表,分别是风险类检测表和项目类表,首先将每一个动态加载的类与风险类检测表进行匹配,从而可以确定出各个类是不是风险类检测表中预先定义的风险类,如果有些类没有在风险类检测表中记载,那就需要利用项目类表对这些类进行进一步检测,即判断这些待确认类是否存在于项目类表中,如果存在,就说明待确认类是受项目信任的,是无风险的,若其中一些待确认类依旧不存在于项目类表中,则可以认为它们也是有风险的,由此经过两轮确认,即准确的确定在所有动态加载的类中,哪些是有风险的,哪些是无风险,同时不会造成误判,比如将无风险的类误判为有风险的类,耽误类的正常加载进程,还可以将这些有风险的类进行风险预警,以保护开发项目的非公开的机密数据,防止其他用户的作弊行为,保障项目的正常开发。
1.一种类的风险检测方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述分别将每一个所述类与预先构建的风险类检测表进行匹配,以确定各个风险类和各个待确认类,包括:
3.根据权利要求1所述的方法,其特征在于,所述风险类检测表的构建过程,包括:
4.根据权利要求1所述的方法,其特征在于,所述项目类表的建立过程,包括:
5.根据权利要求1所述的方法,其特征在于,所述对各个所述风险类和各个所述第二类进行风险预警,包括:
6.根据权利要求1所述的方法,其特征在于,所述对各个所述风险类和各个所述第二类进行风险预警,包括:
7.根据权利要求6所述的方法,其特征在于,所述利用所述特征码对各个所述第二类进行风险检测,得到检测结果,包括:
8.一种类的风险检测装置,其特征在于,包括:
9.一种类的风险检测设备,其特征在于,包括存储器和处理器;
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-7任一项所述的类的风险检测方法的各个步骤。