云计算安全技术_孙磊 主编;胡翠云 主编;郭松辉 主编_AZW3_MOBI_EPUB_PDF_电子书(无页码)_孙磊 主编;胡翠云 主编;郭松辉 主编

内容节选

第4章容器安全 学习目标 学习完本章之后,你应该能够: ·理解容器实现的核心机制; ·了解容器面临的安全威胁; ·掌握容器的核心安全机制。 4.1 容器技术 4.1.1 容器技术概述 容器技术是一种轻量级的操作系统层的虚拟化技术,其基本思想是多个应用在共享同一操作系统的环境下隔离运行,即每个应用可以拥有独立的虚拟执行环境,该虚拟执行环境称为容器。目前,Docker容器是典型的代表系统之一,其基本架构如图4-1所示。 图4-1 Docker容器的基本架构 与主机虚拟化技术最大的不同是,容器之间是共享操作系统的。由图4-1可知,Docker容器主要包括三个层次:容器实例层、容器管理层和内核资源层。 ◆ 容器实例层是指所有运行于容器之上的应用及所需的辅助系统,包括监控、日志等。 ◆ 容器管理层分为运行时引擎和管理程序两个模块,分别负责容器实例的运行和容器的管理。 ◆ 内核资源层是指集成在操作系统内核中的资源管理程序,例如,Linux内核中的Cgroups,其目标是对CPU、内存、网络、I/O等系统资源进行控制和分配,以支持上层的容器管理。 与虚拟机类似,容器中运行的应用和其所有的依赖项都可以打包保存为一个容器镜像,该容器镜像可以在不同的机器上复制、重复使用。用户可以基于容器镜像创建容器实例,每个容器实例运行在独立的环境中,并不会和其他的应用共享主机操作系统的内存、CPU或磁盘,这保证了容器内的进程不会影响到容器外的任何进程。其中,容器实例与容器镜像之间的关系,与虚拟机实例与虚拟机镜像之间的关系类似。 4.1.2 容器的隔离机制 容器的目标是为每个应用进程提供一个独立的虚拟空间,使之相互隔离。事实上,容器本身也是一个进程,启动一个容器即创建一个进程,容器是基于命名空间(Namespace)和控制组(Cgroups)来实现容器间隔离的。 1. 命名空间 命名空间是Linux提供的一种内核级的环境隔离方法,为了实现进程、网络、文件、进程间通信资源等的隔离,Linux提供了6种不同的命名空间:进程命名空间(CLONE_NEWPID)、网络命名空间(CLONE_NEWNET)、挂载命名空间(CLONE_NEWNS)、进程间通信命名空间(CLONE_NEWIPC)、用户命名空间(CLONE_NEWUSER)和UTS命名空间(CLONE_NEWUTS)。 (1)进程命名空间。 在操作系统中,进程往往是以进程树的形式组织起来的。在早期,Linux只维护一个单独的进程树,该进程树包含了当前操作系统中运行的所有进程。当Linux启动时,首先启动一个根进程,作为系统中进程树的根节点,同时负责系统的初始化,如开启正确的服务或后台程序等。在进程树中,其他所有的进程都会在该根进程之下启动。 在运行过程中,某些拥有特权的进程在满足相应的条件下,可以侦听指定的进程甚至杀死相应的进程。当Linux操作系统引入命名空间后,系统中可以同时存在多个嵌套的进程树,不同进程树之间相互隔离。隶属于某个进程树中的进程不能侦听或杀死其他进程树中的进程。事实上,一个进程树中的进程甚至无法知道其他兄弟进程树或父进程树中的进程的存在。 进程树的定位主要基于命名空间对PID(Process Identifier,进程标识符)进行生成,即每个进程都在一个命名空间中。每个命名空间为其中的进程集提供了一个独立的PID环境,即每个命名空间中进程树的根节点的PID都是从1开始的,命名空间中的其他进程都以1号进程为父进程,当1号进程被结束时,该命名空间中所有的进程都会被结束。一个进程树的示例如图4-2所示,在宿主机中,初始进程的PID为1,当创建一个PID命名空间时,在容器内部进程树的PID仍然从1开始进行编号,当然容器中的PID 1的进程需要映射到宿主机中不同的PID号。在图4-2中,容器中PID 1的进程对应为宿主机中的PID 6,而容器中PID 2、PID 3、PID 4的进程分别对应宿主机中的PID 7、PID 8、PID 9。 图4-2 进程树示例 进程的命名空间具有层次性,如果进程A创建一个命名空间NamespaceY,假设进程A所隶属的命名空间为NamespaceX,则命名空间NamespaceY被称为NamespaceX的子命名空间。子命名空间NamespaceY中的所有进程对于父命名空间NamespaceX是可见的,因此,一个进程在不同的命名空间中将呈现出不同的PID。基于命名空间的机制,进程无法向其父命名空间和兄弟命名空间中的进程发送信号,而父命名空间中的进程可以向子命名空间中的进程发送信号。 (2)网络命名空间。 网络命名空间主要实现进程间的网络隔离,每个网络命名空间拥有独立的网络资源,如网络设备、IPv4和IPv6的协议栈、路由表、防火墙等。网络命名空间代表的是独立的网络协议栈......

  1. 信息
  2. 内容简介
  3. 前言
  4. 第1章 云计算基础
  5. 第2章 云计算安全概述
  6. 第3章 主机虚拟化安全
  7. 第4章 容器安全
  8. 第5章 网络虚拟化安全
  9. 第6章 云数据安全
  10. 第7章 云计算安全认证
  11. 第8章 云计算访问控制
  12. 第9章 ☆云数据安全审计技术
  13. 第10章 ☆密码服务云
  14. 第11章 ☆零信任模型
  15. 参考文献