System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种容器逃逸的检测方法、电子设备及系统技术方案_技高网

一种容器逃逸的检测方法、电子设备及系统技术方案

技术编号:40948680 阅读:2 留言:0更新日期:2024-04-18 20:22
本申请提供了一种容器逃逸的检测方法、电子设备及系统,该方法包括:宿主机在确定进程所在的命名空间为初始命名空间时,获取进程所属的缓存区的地址;宿主机在确定进程所属的缓存区的地址不等于进程所在的命名空间中的地址时,提示告警信息,告警信息用于提示进程发生容器逃逸。实施本申请实施例,准确性高,可以有效的检测容器逃逸。

【技术实现步骤摘要】

本申请实施例涉及虚拟化技术,尤其涉及一种容器逃逸的检测方法、电子设备及系统


技术介绍

1、容器技术是将应用程序打包到单独的容器之中,进行封装的技术,容器技术将每个应用程序隔离开,打断了程序之间的依赖和连接关系,也就是说,一个庞大的服务系统在容器技术的支持下,可以由许多不同的应用程序所寄居的容器组合而成。容器技术有效地将由单个操作系统管理的资源划分到隔离的组中,以更好地在隔离的组之间平衡有冲突的资源使用需求,属于操作系统级的虚拟化技术,由于其轻量级的特性,被广泛应用。

2、用户可以在宿主机中基于容器镜像创建并运行容器,其中,宿主机可以为物理机或虚拟机,每一个容器都拥有一个独立的进程运行空间,理想情况下,容器中的进程只能在该容器的进程运行空间中运行。然而,当容器中存在有恶意进程时,该恶意进程很可能会脱离容器的进程运行空间,继而对宿主机或其他容器展开攻击,这种现象被称为容器逃逸。

3、目前,容器逃逸可以分为以下4种类型,(1)不安全的配置导致的容器逃逸;(2)不安全的挂载导致的容器逃逸;(3)相关程序漏洞导致的容器逃逸;(4)内核漏洞导致的容器逃逸。如何检测基于内核漏洞导致的容器逃逸,是业界亟需解决的问题。


技术实现思路

1、本申请提供了一种容器逃逸的检测方法、电子设备及系统,该容器逃逸的检测方法中,宿主机可以在进程所属的缓存区的地址不等于进程所在的命名空间中的地址,提示告警信息,告警信息用于提示进程发生容器逃逸。该方法准确性高,可以有效的检测容器逃逸。

2、第一方面,本申请实施例提供了一种容器逃逸的检测方法,该方法包括:

3、宿主机在确定进程所在的命名空间为初始命名空间时,获取进程所属的缓存区的地址;

4、宿主机在确定进程所属的缓存区的地址不等于进程所在的命名空间中的地址时,提示告警信息,告警信息用于提示进程发生容器逃逸。

5、本申请实施例中,进程所在的命名空间为初始命名空间,即是代表该进程可以访问init_nsproxy指示的命名空间,为保证命名空间的安全;因此,宿主机可以基于进程所属的缓存区的地址slab_cache对该进程进行检测;由于slab_cache可信度较高,因此,将slab_cache与进程所在的命名空间中的地址pid_cache进行比较;在两者不等时,可以确定该进程并没有权限访问init_nsproxy指示的命名空间,也就是说该进程被恶意篡改,出现容器逃逸的情况。该方法的准确性高,可以有效的检测容器逃逸。

6、结合第一方面,在一种可能的实现方式中,方法包括:

7、宿主机基于进程的地址空间,获取进程对应的缓存区的地址。

8、本申请实施例中,进程的地址空间pid_cachep不容易被篡改,可信度较高,因此,基于进程的地址空间pid_cachep确定的进程对应的缓存区的地址slab_cache的可信度高。

9、结合第一方面,在一种可能的实现方式中,宿主机在确定进程所在的命名空间为初始命名空间时,获取进程所属的缓存区的地址,包括:

10、宿主机在确定进程所在的命名空间为初始命名空间时,获取进程的用户标识;

11、宿主机在确定用户标识为根用户的标识时,获取进程所属的缓存区的地址。

12、结合第一方面,在一种可能的实现方式中,用户标识为用户标识符uid和用户组标识gid中的至少一个;根用户的标识为零。

13、结合第一方面,在一种可能的实现方式中,宿主机在确定进程所在的命名空间为初始命名空间时,获取进程所属的缓存区的地址,包括:

14、宿主机在确定进程所在的命名空间为初始命名空间时,获取进程所在命名空间的层级level;

15、宿主机在确定层级为零时,获取进程所属的缓存区的地址。

16、结合第一方面,在一种可能的实现方式中,在获取进程所属的缓存区的地址之前,方法还包括:

17、宿主机获取进程的数据结构;数据结构包括进程所在的命名空间的标识;

18、宿主机确定在进程所在的命名空间的标识nsproxy等于初始命名空间的标识init_nsproxy时,确定进程所在的命名空间是初始命名空间。

19、第二方面,本申请实施例提供了一种容器逃逸的检测方法,该方法包括:

20、宿主机在确定进程的挂载点为根目录时,获取进程所属的缓存区的地址;

21、宿主机在确定进程所属的缓存区的地址不等于进程所在的命名空间中的地址时,提示告警信息,告警信息用于提示进程发生容器逃逸。

22、本申请实施例中,进程的挂载点为根目录,也即是代表该进程可以访问根目录下的所有文件,为保证根目录下的文件的安全,需要对该进程进行检测;因此,宿主机可以基于进程所属的缓存区的地址slab_cache对该进程进行检测;由于进程所属的缓存区的地址可信度较高,因此,将进程所属的缓存区的地址与进程所在的命名空间中的地址pid_cache进行比较,在两者不等时认为该进程原先并没有权限访问根目录下的所有文件,该进程已被恶意篡改,出现容器逃逸的情况。

23、需要说明的是,本申请实施例在内核代码中增加基于挂载点的检测机制,可以检测逃逸到根目录的行为,有效的监测利用内核漏洞的发生的容器逃逸行为,从而提高系统安全性。

24、结合第二方面,在一种可能的实现方式中,方法包括:

25、宿主机基于进程的地址空间,获取进程对应的缓存区的地址。

26、结合第二方面,在一种可能的实现方式中,宿主机在确定进程所在的命名空间为初始命名空间时,获取进程所属的缓存区的地址,包括:

27、宿主机在确定进程所在的命名空间为初始命名空间时,获取进程的用户标识;

28、宿主机在确定进程的用户标识为根用户的标识时,获取进程所属的缓存区的地址。

29、结合第二方面,在一种可能的实现方式中,用户标识为用户标识符uid和用户组标识gid中的至少一个;根用户的标识为零。

30、结合第二方面,在一种可能的实现方式中,宿主机在确定进程所在的命名空间为初始命名空间时,获取进程所属的缓存区的地址,包括:

31、宿主机在确定进程所在的命名空间为初始命名空间时,获取进程所在命名空间的层级;

32、宿主机在确定层级为零时,获取进程所属的缓存区的地址。

33、结合第二方面,在一种可能的实现方式中,在获取进程所属的缓存区的地址之前,方法还包括:

34、宿主机获取进程的数据结构;数据结构包括进程的挂载点标识;

35、宿主机在挂载点标识为根目录标识时,确定进程的挂载点为根目录。

36、第三方面,本申请实施例提供了一种容器逃逸的检测装置,该装置包括:

37、获取单元,用于在确定进程所在的命名空间为初始命名空间时,获取进程所属的缓存区的地址;

38、提示单元,用于在确定进程所属的缓存区本文档来自技高网...

【技术保护点】

1.一种容器逃逸的检测方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述获取所述进程所属的缓存区的地址,包括:

3.根据权利要求1或2所述的方法,其特征在于,所述宿主机在确定所述进程所在的命名空间为初始命名空间时,获取所述进程所属的缓存区的地址,包括:

4.根据权利要求3所述的方法,其特征在于,所述用户标识为用户标识符UID和用户组标识GID中的至少一个;所述根用户的标识为零。

5.根据权利要求1-4任一项所述的方法,其特征在于,所述宿主机在确定所述进程所在的命名空间为初始命名空间时,获取所述进程所属的缓存区的地址,包括:

6.根据权利要求1-5任一项所述的方法,其特征在于,在所述获取所述进程所属的缓存区的地址之前,所述方法还包括:

7.一种容器逃逸的检测方法,其特征在于,所述方法包括:

8.根据权利要求7所述的方法,其特征在于,所述方法包括:

9.根据权利要求7或8所述的方法,其特征在于,所述宿主机在确定所述进程所在的命名空间为初始命名空间时,获取所述进程所属的缓存区的地址,包括:

10.根据权利要求9所述的方法,其特征在于,所述用户标识为用户标识符UID和用户组标识GID中的至少一个;所述根用户的标识为零。

11.根据权利要求7-10任一项所述的方法,其特征在于,所述宿主机在确定所述进程所在的命名空间为初始命名空间时,获取所述进程所属的缓存区的地址,包括:

12.根据权利要求7-11任一项所述的方法,其特征在于,在所述获取所述进程所属的缓存区的地址之前,所述方法还包括:

13.一种容器逃逸的检测方法,其特征在于,所述方法包括:

14.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器和一个或多个存储器;其中,所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行如权利要求1-13中任一项所述的方法。

15.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1-14中任一项所述的方法。

...

【技术特征摘要】

1.一种容器逃逸的检测方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述获取所述进程所属的缓存区的地址,包括:

3.根据权利要求1或2所述的方法,其特征在于,所述宿主机在确定所述进程所在的命名空间为初始命名空间时,获取所述进程所属的缓存区的地址,包括:

4.根据权利要求3所述的方法,其特征在于,所述用户标识为用户标识符uid和用户组标识gid中的至少一个;所述根用户的标识为零。

5.根据权利要求1-4任一项所述的方法,其特征在于,所述宿主机在确定所述进程所在的命名空间为初始命名空间时,获取所述进程所属的缓存区的地址,包括:

6.根据权利要求1-5任一项所述的方法,其特征在于,在所述获取所述进程所属的缓存区的地址之前,所述方法还包括:

7.一种容器逃逸的检测方法,其特征在于,所述方法包括:

8.根据权利要求7所述的方法,其特征在于,所述方法包括:

9.根据权利要求7或8所述的方法,其特征在于,所述宿主机在确定所述进程所在的命名空间为初始命名空间时,获取所述进程所属的缓存...

【专利技术属性】
技术研发人员:陈念季冬
申请(专利权)人:华为终端有限公司
类型:发明
国别省市:

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

1