本发明涉及信息安全,尤其涉及一种rootkit的检测方法及装置。
背景技术:
1、安卓(android)是一种基于linux内核的自由及开放源代码的安卓系统,android反调试一直都是处于一个与攻击者比“长跑”的状态,攻击者会篡改android的某些常用框架,从而对抗对android系统的环境安全检查。作为反调试的一方,针对攻击者的行为,还需要花费大量时间去定位攻击者的对抗技术。
2、在一些场景下,攻击者采用rootkit来攻击android系统,rootkit是一种能够隐藏攻击者踪迹并保持root访问权限的特殊类型恶意软件。为了对rootkit进行检测查杀,常采用rkhunter、chkrookit、malwarebytes anti-rootkit等自动化rootkit查杀工具对rootkit进行查杀,但是这些自动化查杀攻击的检测方法只能检测用户层,而一些隐匿性极高的内核态rootkit可以动态加载到内核层,rootkit可以用自己的函数替换内核中的中断处理器,从而将恶意程序动态挂钩到内核层中,进而成为内核层的一部分,采用上述的自动化rootkit查杀工具则无法检测到内核层,即无法对内核层中的rootkit进行检测。如此,检测rootkit存在很大的局限性,rootkit的检出率较低,导致安卓系统存在极大的安全隐患。
技术实现思路
1、本申请实施例的目的是提供一种rootkit的检测方法及装置,以解决rootkit的检出率较低的问题。
2、为了解决上述技术问题,本申请实施例是这样实现的:
3、第一方面,本申请实施例提供了一种rootkit的检测方法,包括:对安卓系统调用内核层的目标挂钩的调用行为进行检测;在检测到调用行为的情况下,检测在安卓系统的内核层的初始内核入口点被调用的入口函数的堆栈帧;在堆栈帧不是正常堆栈帧的情况下,确定内核层中存在rootkit,其中,正常堆栈帧为正常程序在内核层的初始内核入口点被调用的入口函数的堆栈帧。
4、第二方面,本申请实施例提供了一种rootkit的检测装置,包括:检测模块,用于对安卓系统调用内核层的目标挂钩的调用行为进行检测;检测模块,还用于在检测到调用行为的情况下,检测在安卓系统的内核层的初始内核入口点被调用的入口函数的堆栈帧;确定模块,用于在堆栈帧不是正常堆栈帧的情况下,确定内核层中存在rootkit,其中,正常堆栈帧为正常程序在内核层的初始内核入口点被调用的入口函数的堆栈帧。
5、第三方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线;其中,处理器、通信接口以及存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现如第一方面的步骤。
6、第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,实现如第一方面的方法步骤。
7、第五方面,本申请实施例提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现如第一方面的方法步骤。
8、由以上本申请实施例提供的技术方案可见,通过对目标对象调用内核层的目标挂钩的调用行为进行检测;在检测到调用行为的情况下,检测在目标对象的内核层的初始内核入口点被调用的入口函数的堆栈帧;在堆栈帧非正常堆栈帧的情况下,确定内核层中存在rootkit,其中,正常堆栈帧为正常程序在内核层的初始内核入口点被调用的入口函数的堆栈帧,能在检测到目标对象调用内核层的挂钩时,对内核层被调用的入口函数的堆栈帧进行检测,由于正常程序在内核层的初始内核入口点调用的入口函数时,其堆栈帧是不同于恶意程序调用入口函数时所产生的的堆栈帧,因此,通过入口函数被调用时的堆栈帧的差异来确定内核层中是是否存在rootkit,从而实现了对内核层中的rootkit进行检测,提高了rootkit的检出率,减小了安卓系统存在的安全隐患。
1.一种rootkit的检测方法,其特征在于,包括:
2.根据权利要求1所述的rootkit的检测方法,其特征在于,在所述在检测到所述调用行为的情况下,检测在所述安卓系统的内核层的初始内核入口点被调用的入口函数的堆栈帧之后,所述方法还包括:
3.根据权利要求1或2所述的rootkit的检测方法,其特征在于,所述目标挂钩包括:杀死进程挂钩和获取进程文件的挂钩,所述对安卓系统调用内核层的目标挂钩的调用行为进行检测包括:
4.根据权利要求3所述的rootkit的检测方法,其特征在于,所述确定所述安卓系统调用的目标进程包括:
5.根据权利要求4所述的rootkit的检测方法,其特征在于,在所述确定所述第一进程为所述目标进程之后,所述方法还包括:
6.根据权利要求3所述的rootkit的检测方法,其特征在于,所述获取进程文件的挂钩包括:sys_getdents挂钩和sys_getdents64挂钩,所述sys_getdents挂钩用于获取所述目标进程的配置文件中的文件信息,所述sys_getdents64挂钩用于获取所述目标进程的配置文件的文件列表信息。
7.一种rootkit的检测装置,其特征在于,包括:
8.根据权利要求7所述的rootkit的检测装置,其特征在于,所述检测模块,还用于检测所述内核层中的read函数是否被调用;
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至6中任一项所述的rootkit的检测方法。