本申请实施例涉及计算机领域,尤其涉及一种风险类识别方法及相关装置。
背景技术:
1、随着攻防技术升级,无文件攻击,一种攻击不会出现在文件中,仅存在于计算机内存中的攻击载荷,已逐渐成为一种常见的攻击手段,其特点是全程很少或没有文件落地,能够逃避传统安全软件的文件检测。内存马是一种无文件攻击手段,主要通过在内存中写入恶意代码,并执行和驻留,达到控制靶机的目的。而java内存马是其中最常见的一类,攻击者通过java web应用漏洞、webshell恶意软件等在正常java进程中注入并加载恶意java类(java class),达成攻击和驻留的目的。为了检测和识别进程中是否存在以恶意类为载体的恶意内存马,需要从进程中识别并解析所有类并检测出其中的恶意类。
2、目前业内常见的解决方案是以侵入式的方式在被检测进程中注入一个javaagent作为探针,采集目标进程中的所有类,其中,java agent是一种特殊类型的类,通过使用对应的api接口,可以拦截在虚拟机上运行的应用程序,修改它们的字节码。然而,现有的方案中,探针需对虚拟机中所有的类进行检测,由于服务进程中的类数量较多,故检测效率较低,给用户带来一定的不便。
技术实现思路
1、本申请实施例提供了一种风险类识别方法及相关装置。
2、一种风险类识别方法,包括:
3、获取目标虚拟机中的类加载器信息和类信息;
4、根据所述类加载器信息和所述类信息确定所述目标虚拟机中每个类加载器所对应的链表,所述链表的每一个结点均代表一个类;
5、将每个类加载器所对应的所述链表的前n个类确定为第一风险类,其中,n为不大于链表结点数的正整数。
6、可选的,所述获取目标虚拟机中的类加载器信息和类信息之前,所述方法还包括:
7、获取所述目标虚拟机的进程内存的读取权限;
8、所述获取目标虚拟机中的类加载器信息和类信息,包括:
9、根据所述读取权限调用所述目标虚拟机的第一接口来读取进程内存,以获取所述类加载器信息和类信息。
10、可选的,所述根据所述读取权限调用所述目标虚拟机的第一接口来读取进程内存,以获取所述类加载器信息和类信息,包括:
11、根据所述读取权限在用户态或内核态调用所述目标虚拟机的第一接口来读取进程内存,以获取所述类加载器信息和类信息。
12、可选的,所述将每个类加载器所对应的所述链表的前n个类确定为第一风险类之后,所述方法还包括:
13、从所述第一风险类中筛选出未出现在预设黑名单上的第二风险类。
14、可选的,所述将每个类加载器所对应的所述链表的前n个类确定为第一风险类之后,所述方法还包括:
15、调用所述目标虚拟机的第二接口来读取进程内存,以将所述第一风险类还原为风险文件;
16、基于预设算法对所述风险文件进行特征提取操作,得到第一特征向量;
17、将所述第一特征向量输入至预设的检测模型来对所述第一风险类进行评估,得到所述第一风险类的评估结果,所述检测模型用于将输入的特征向量转化为与输入量对应的风险类的恶意评估结果。
18、可选的,所述将所述第一特征向量输入至预设的检测模型来对所述第一风险类进行评估,得到所述第一风险类的评估结果,包括:
19、通过所述检测模型根据所述第一特征向量评估与所述第一风险类对应的恶意概率值;
20、通过所述检测模型判断与所述第一风险类对应的恶意概率值是否大于预设阈值;
21、若大于,则确定所述第一风险类为恶意类;
22、若不大于,则确定所述第一风险类为非恶意类。
23、可选的,所述将所述第一特征向量输入至预设的检测模型来对所述第一风险类进行评估,得到所述第一风险类的评估结果之前,所述方法还包括:
24、获取用于训练的恶意类文件和非恶意类文件;
25、统计所述恶意类文件中涉及的第一常量在所述恶意类文件中出现的第一次数和在所述非恶意类文件中出现的第二次数,并基于预设规则为所述第一常量和用户添加的第二常量设置权重;
26、基于所述预设算法,根据训练文件的信息和辅助信息进行计算,得到训练特征向量,所述训练文件包括所述恶意类文件和所述非恶意类文件,所述辅助信息包括所述第一常量的第一次数、第二次数和权重,还包括所述第二常量的权重;
27、通过所述训练特征向量和与所述训练特征向量对应的类文件的恶意类型对待训练模型进行训练,得到所述检测模型。
28、一种风险类识别装置,包括:
29、获取单元,用于获取目标虚拟机中的类加载器信息和类信息;
30、确定单元,用于根据所述类加载器信息和所述类信息确定所述目标虚拟机中每个类加载器所对应的链表,所述链表的每一个结点均代表一个类;
31、所述确定单元,还用于将每个类加载器所对应的所述链表的前n个类确定为第一风险类,其中,n为不大于链表结点数的正整数。
32、一种风险类识别装置,包括:
33、中央处理器,存储器以及输入输出接口;
34、所述存储器为短暂存储存储器或持久存储存储器;
35、所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行前述的方法。
36、一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行前述的方法。
37、从以上技术方案可以看出,本申请实施例具有以下优点:
38、获取目标虚拟机中的类加载器信息和类信息,接着根据类加载器信息和类信息确定目标虚拟机中每个类加载器所对应的链表,最后将每个类加载器对应的链表的前n个类确定为第一风险类。由于应用加载的类数量相对固定,恶意类加载的时间相对正常类较晚,故恶意类一般都为每个类加载器所加载的较新的类。虚拟机通过链表管理每个类加载器所加载的类,其中,每一个类加载器各自对应一条链表,链表上的一个结点对应该类加载器所加载的一个类,且每一个类加载器每次新加载的类都会插入到对应链表的表头,故链表的前n个类是恶意类的风险较大,相较于链表靠后的类是恶意类的概率较大,而链表靠后的类为恶意类的可能性较低,则将前n个类确定为风险类能够大大提高检测效率,无需将所有类视为风险类并进行检测,给用户带来较好的体验。
1.一种风险类识别方法,其特征在于,包括:
2.根据权利要求1所述的风险类识别方法,其特征在于,所述获取目标虚拟机中的类加载器信息和类信息之前,所述方法还包括:
3.根据权利要求2所述的风险类识别方法,其特征在于,所述根据所述读取权限调用所述目标虚拟机的第一接口来读取进程内存,以获取所述类加载器信息和类信息,包括:
4.根据权利要求1所述的风险类识别方法,其特征在于,所述将每个类加载器所对应的所述链表的前n个类确定为第一风险类之后,所述方法还包括:
5.根据权利要求1所述的风险类识别方法,其特征在于,所述将每个类加载器所对应的所述链表的前n个类确定为第一风险类之后,所述方法还包括:
6.根据权利要求5所述的风险类识别方法,其特征在于,所述将所述第一特征向量输入至预设的检测模型来对所述第一风险类进行评估,得到所述第一风险类的评估结果,包括:
7.根据权利要求5所述的风险类识别方法,其特征在于,所述将所述第一特征向量输入至预设的检测模型来对所述第一风险类进行评估,得到所述第一风险类的评估结果之前,所述方法还包括:
8.一种风险类识别装置,其特征在于,包括:
9.一种风险类识别装置,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至7中任意一项所述的方法。