一种容器逃逸检测与阻断方法、装置、设备及存储介质制造方法及图纸

技术编号:33968145 阅读:10 留言:0更新日期:2022-06-30 01:52
本申请公开了一种容器逃逸检测与阻断方法、装置、设备及存储介质,涉及安全环境检测技术领域,包括以下步骤:在系统中载入动态可加载内核模块,并令动态可加载内核模块挂钩fork函数和execve函数;获取宿主机进程的关键信息并将其存入全局表;当fork函数或execve函数被容器进程调用时,获取容器进程的关键信息并存入全局表;在全局表中查找宿主机进程的关键信息并与容器进程的关键信息进行比对以确定容器进程是否发生逃逸,若是则阻断该容器进程。本方法通过对进程的执行流程进行监管,可以在逃逸进程执行恶意动作之前,就杀死该进程,实现事中阻断,最大化保护操作系统。最大化保护操作系统。最大化保护操作系统。

【技术实现步骤摘要】
一种容器逃逸检测与阻断方法、装置、设备及存储介质


[0001]本申请涉及安全环境检测
,尤其涉及一种容器逃逸检测与阻断方法、装置、设备及存储介质。

技术介绍

[0002]容器技术是一种虚拟化技术,它支持在操作系统级别轻松共享CPU、内存、存储空间和网络资源,并提供一种逻辑打包机制,而以这种机制打包的应用可以脱离其实际运行环境,这使得容器技术的应用越来越广泛,它所面临的安全问题也显得尤为重要,容器逃逸就是其安全问题的典型代表。
[0003]现有的容器逃逸检测方法主要有两种:一种是需要人工干预且无法做入侵检测的主动检测方法;另一种是需要挂钩多个内核调用并预先生成调用列表的被动检测方法。这两种方法各有优点,但无论哪一种方法都无法在逃逸进程执行恶意动作之前杀死该进程。

技术实现思路

[0004]本申请提供的一种容器逃逸检测与阻断方法,旨在解决现有技术无法及时杀死执行恶意动作的逃逸进程的问题。
[0005]为实现上述目的,本申请采用以下技术方案:本申请的一种容器逃逸检测与阻断方法,包括以下步骤:在系统中载入动态可加载内核模块,并令所述动态可加载内核模块挂钩用于创建子进程的fork函数和用于将进程转变成二进制程序的execve函数;获取宿主机进程的关键信息并将其存入全局表,所述关键信息包含其进程标识符、其父进程的进程标识符、其命名空间的字符串值以及其fs_struct结构体中的值;当所述fork函数或所述execve函数被容器进程调用时,获取所述容器进程的关键信息并存入所述全局表;在所述全局表中查找所述宿主机进程的关键信息并与所述容器进程的关键信息进行比对以确定所述容器进程是否发生逃逸,若是则阻断所述容器进程。
[0006]作为优选,所述方法还包括当所述容器进程的进程标识符与所述全局表中的某一进程标识符相同时,用所述容器进程的关键信息覆盖所述全局表中该进程标识符对应的原有数据。
[0007]作为优选,所述在所述全局表中查找所述宿主机进程的关键信息之前还包括当所述execve函数每次被容器进程调用时,根据所述容器进程关键信息中的父进程的进程标识符在所述全局表中获取其父进程的关键信息。
[0008]作为优选,所述在所述全局表中查找所述宿主机进程的关键信息并与所述容器进程的关键信息进行比对以确定所述容器进程是否发生逃逸,包括:查找所述全局表中所述宿主机进程的关键信息,并将所述容器进程的关键信息与其父进程的关键信息和所述宿主机进程的关键信息分别进行比对,当所述容器进程命名空
间的字符串值与其父进程命名空间的字符串值不相等且其命名空间的字符串值等于所述宿主机进程命名空间的字符串值时,判定所述容器进程发生逃逸。
[0009]作为优选,所述在所述全局表中查找所述宿主机进程的关键信息并与所述容器进程的关键信息进行比对以确定所述容器进程是否发生逃逸,还包括:查找所述全局表中所述宿主机进程的关键信息,并将所述容器进程的关键信息与其父进程的关键信息和所述宿主机进程的关键信息分别进行比对,当所述容器进程fs_struct结构体中的值与其父进程fs_struct结构体中的值不相等且其fs_struct结构体中的值等于所述宿主机进程fs_struct结构体中的值时,判定所述容器进程发生逃逸。
[0010]作为优选,所述若是则阻断所述容器进程包括:若所述容器进程发生逃逸,则调用exit函数杀死所述容器进程。
[0011]作为优选,所述在系统中载入动态可加载内核模块,并令所述动态可加载内核模块挂钩fork函数和execve函数,包括:生成insmod命令,根据所述insmod命令将动态可加载内核模块插入到系统中,并通过kprobe技术令所述动态可加载内核模块挂钩所述fork函数和execve函数。
[0012]一种容器逃逸检测与阻断装置,包括:挂载模块,用于在系统中载入动态可加载内核模块,并令所述动态可加载内核模块挂钩用于创建子进程的fork函数和用于将进程转变成二进制程序的execve函数;第一存表模块,用于获取宿主机进程的关键信息并将其存入全局表,所述关键信息包含其进程标识符、其父进程的进程标识符、其命名空间的字符串值以及其fs_struct结构体中的值;第二存表模块,用于当所述fork函数或所述execve函数被容器进程调用时,获取所述容器进程的关键信息并存入所述全局表;判断模块,用于在所述全局表中查找所述宿主机进程的关键信息并与所述容器进程的关键信息进行比对以确定所述容器进程是否发生逃逸,若是则阻断所述容器进程。
[0013]一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如上述中任一项所述的一种容器逃逸检测与阻断方法。
[0014]一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述中任一项所述的一种容器逃逸检测与阻断方法。
[0015]本专利技术具有如下有益效果:(1)利用kprobe技术只挂钩fork函数和execve函数,性能消耗小;(2)通过调用fork函数可以对一些恶意程序的绕过手段进行监控,防止其绕过检测;(3)通过对进程的执行流程进行监管,可以在逃逸进程执行恶意动作之前,就杀死该进程,实现事中阻断,最大化保护操作系统。
附图说明
[0016]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0017]图1是本申请实施例1实现一种容器逃逸检测与阻断方法第一流程图;图2是本申请实施例2实现一种容器逃逸检测与阻断装置示意图;图3是本申请实施例3实现一种容器逃逸检测与阻断方法的一种电子设备示意图。
具体实施方式
[0018]下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0019]本申请的权利要求书和说明书的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式,此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他单元。
[0020]实施例1如图1所示,一种容器逃逸检测与阻断方法,包括以下步骤:S110、在系统中载入动态可加载内核模块,并令所述动态可加载内核模块挂钩用于创建子进程的fork函数和用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种容器逃逸检测与阻断方法,其特征在于,包括以下步骤:在系统中载入动态可加载内核模块,并令所述动态可加载内核模块挂钩用于创建子进程的fork函数和用于将进程转变成二进制程序的execve函数;获取宿主机进程的关键信息并将其存入全局表,所述关键信息包含其进程标识符、其父进程的进程标识符、其命名空间的字符串值以及其fs_struct结构体中的值;当所述fork函数或所述execve函数被容器进程调用时,获取所述容器进程的关键信息并存入所述全局表;在所述全局表中查找所述宿主机进程的关键信息并与所述容器进程的关键信息进行比对以确定所述容器进程是否发生逃逸,若是则阻断所述容器进程。2.根据权利要求1所述的一种容器逃逸检测与阻断方法,其特征在于,所述方法还包括当所述容器进程的进程标识符与所述全局表中的某一进程标识符相同时,用所述容器进程的关键信息覆盖所述全局表中该进程标识符对应的原有数据。3.根据权利要求1所述的一种容器逃逸检测与阻断方法,其特征在于,所述在所述全局表中查找所述宿主机进程的关键信息之前还包括当所述execve函数每次被容器进程调用时,根据所述容器进程关键信息中的父进程的进程标识符在所述全局表中获取其父进程的关键信息。4.根据权利要求3所述的一种容器逃逸检测与阻断方法,其特征在于,所述在所述全局表中查找所述宿主机进程的关键信息并与所述容器进程的关键信息进行比对以确定所述容器进程是否发生逃逸,包括:查找所述全局表中所述宿主机进程的关键信息,并将所述容器进程的关键信息与其父进程的关键信息和所述宿主机进程的关键信息分别进行比对,当所述容器进程命名空间的字符串值与其父进程命名空间的字符串值不相等且其命名空间的字符串值等于所述宿主机进程命名空间的字符串值时,判定所述容器进程发生逃逸。5.根据权利要求3所述的一种容器逃逸检测与阻断方法,其特征在于,所述在所述全局表中查找所述宿主机进程的关键信息并与所述容器进程的关键信息进行比对以确定所述容器进程是否发生逃逸,还包括:查找所述全局表中所述宿主机进程的关键信息,并将所述容器进程的关键信息与其父...

【专利技术属性】
技术研发人员:王嘉雄周涛涛
申请(专利权)人:杭州默安科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1