本发明涉及网络安全领域,具体而言,涉及一种rootkit检测方法、装置、电子设备及存储介质。
背景技术:
1、rootkit是一种特殊的恶意软件,其在安装目录上隐藏自身及指定的文件、进程和网络连接等信息,旨在让黑客访问和控制目标设备。为保证文件、数据等的安全,rootkit的防护越来越重要。
2、目前,rootkit的检测主要包括:(一)通过扫描、分析系统中已有文件的特征进行匹配;(二)对进程地址空间、任务空间的扫描匹配以及行为匹配。然而,第一中方法对内存rootkit无效,第二种方法以已知rootkit的特征进行匹配或进行模糊行为推断,检测准确性均较差。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种rootkit检测方法、装置、电子设备及存储介质,其能够提高rootkit检测的准确性。
2、为了实现上述目的,本发明实施例采用的技术方案如下:
3、第一方面,本发明实施例提供一种rootkit检测方法,所述方法包括:
4、获取api调用序列对应的操作程序;其中,所述api调用序列为标准操作系统的操作命令相关的多个系统api构成的序列,所述操作程序调用的系统api的顺序与对应的api调用序列一致;
5、在待测操作系统上执行所述操作程序,并获取所述系统api在所述操作程序执行过程中的调用链信息,将所述调用链信息存储至待测结果集合中;其中,所述待测操作系统和所述标准操作系统为同一种操作系统;
6、针对每个所述系统api,将所述系统api在所述待测结果集合中的调用链信息与在标准字典集合中的调用链信息进行比对,根据比对结果,判断所述系统api是否存在rootkit风险。
7、在一种可能的实施方式中,在所述获取api调用序列对应的操作程序的步骤之后,在所述针对每个所述系统api,将所述系统api在所述待测结果集合中的调用链信息与在标准字典集合中的调用链信息进行比对的步骤之前,所述方法还包括获取标准字典集合的步骤,包括:
8、在所述标准操作系统上执行所述操作程序,并获取所述系统api在所述操作程序执行过程中的调用链信息,将所述调用链信息存储至标准字典集合中。
9、在一种可能的实施方式中,所述在所述标准操作系统上执行所述操作程序,并获取所述系统api在所述操作程序执行过程中的调用链信息,将所述调用链信息存储至标准字典集合中的步骤,包括:
10、在待测操作系统的内核源码中,识别出实现待检测的每个系统api的所有函数,并在每个所述函数上增加探测点;
11、在所述待测操作系统上执行所述操作程序,在所述操作程序执行结束后,读取所述探测点记录的每个所述函数的调用栈栈帧信息;
12、整合所述系统api对应的所有函数的调用栈栈帧信息,得到所述系统api的调用链信息;
13、以键值对的形式,将所述系统api的名称和所述调用链信息存储至待测结果集合中。
14、在一种可能的实施方式中,所述在所述标准操作系统上执行所述操作程序,并获取所述系统api在所述操作程序执行过程中的调用链信息,将所述调用链信息存储至标准字典集合中的步骤,包括:
15、在标准操作系统的内核源码中,识别出实现待检测的每个系统api的所有函数,并在每个所述函数上增加探测点;
16、在所述标准操作系统上执行所述操作程序,并在所述操作程序执行结束后,读取所述探测点记录的每个所述函数的调用栈栈帧信息;
17、整合所述系统api对应的所有函数的调用栈栈帧信息,得到所述系统api的调用链信息;
18、以键值对的形式,将所述系统api和所述系统api对应的所述函数的调用链信息存储至标准字典集合中。
19、在一种可能的实施方式中,所述调用链信息包括所述系统api的每个函数的栈帧长度和调用链长度;
20、所述根据比对结果,判断所述系统api是否存在rootkit风险的步骤,包括:
21、若所述待测结果集合中的函数数量大于所述标准字典集合中的函数数量,则判定所述系统api存在rootkit风险;
22、若所述待测结果集合中所述系统api的任一函数的栈帧长度与所述标准字典集合中该函数的栈帧长度不同,则判定所述系统api存在rootkit风险;
23、若所述待测结果集合中所述系统api的任一函数的调用链长度与所述标准字典集合中该函数的调用链长度不同,则判定所述系统api存在rootkit风险。
24、在一种可能的实施方式中,所述获取api调用序列对应的操作程序的步骤,包括:
25、构建标准操作系统的每种操作命令相关的api调用序列;其中,所述操作命令包括文件操作、网络操作和敏感操作;
26、依据所述api调用序列,生成所述api调用序列对应的操作程序。
27、在一种可能的实施方式中,所述构建标准操作系统的每种操作命令相关的api调用序列的步骤,包括:
28、针对每种操作命令,从标准操作系统的所有系统api中,选取执行所述操作命令时必调用的所有系统api和可调用的任意个系统api,并进行顺序设计,得到api调用序列。
29、第二方面,本技术实施例提供一种rootkit检测装置,包括程序获取模块、api监测模块和比对判断模块;
30、所述程序获取模块,用于获取api调用序列对应的操作程序;其中,所述api调用序列为标准操作系统的操作命令相关的多个系统api构成的序列,所述操作程序调用的系统api的顺序与对应的api调用序列一致;
31、所述api监测模块,用于在待测操作系统上执行所述操作程序,并获取所述系统api在所述操作程序执行过程中的调用链信息,将所述调用链信息存储至待测结果集合中;其中,所述待测操作系统和所述标准操作系统为同一种操作系统;
32、所述比对判断模块,用于针对每个所述系统api,将所述系统api在所述待测结果集合中的调用链信息与在标准字典集合中的调用链信息进行比对,根据比对结果,判断所述系统api是否存在rootkit风险。
33、第三方面,本技术实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现如第一方面中任一种可能的实施方式所述的rootkit检测方法。
34、第四方面,本技术实施例提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一种可能的实施方式所述的rootkit检测方法。
35、本发明实施例提供的rootkit检测方法、装置、电子设备及存储介质,方法包括:获取api调用序列对应的操作程序,且api调用序列为多个系统api构成的序列,操作程序调用系统api的顺序与api调用序列一致;在待测操作系统上执行操作程序,获取系统api在操作程序执行过程中的调用链信息,并将调用链信息存储至待测结果集合中;将待测结果集合中系统api的调用链信息与标准字典集合中该系统api的调用链信息进行比对,根据比对结果判断该系统api是否存在rootkit风险。如此,在无需已知rootkit特征的情况下,通过比对程序执行过程的系统api的调用链信息的方式,即可检测出系统中存在的rootkit,且无论rootkit是内存形式还是文件形式均能够被检测出,极大地提高了rootkit的准确度和检测率。
36、为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。