如何确保应用程序环境中虚拟化容器的安全性?


应用程序开发中快速增长的虚拟化容器方法加深了其在生产环境中IT经理心目中的地位。虽然它看起来像虚拟机,但两者之间存在一些核心差异,使IT部门重新审视现有的安全策略。

越来越多的IT部门被迫放弃现有的全栈虚拟机应用程序部署方法。应用程序运行在需要灵活和可控的大量进程上。在虚拟机中,如果进程发生更改,则需要更改整个虚拟机。

虚拟机通常基于传统的单片应用程序模型,而容器为复合应用程序模型提供更好的支持

虚拟机具有运行应用程序所需的所有资源,包括应用程序,数据库,数据分析,虚拟化硬件资源,BIOS以及应用程序正常运行所需的所有服务。因此,每个虚拟机都是一个完整的系统,虚拟机的安全策略与物理机系统基本相同。由于虚拟机是一个全栈系统,其缺点是无论何时启动虚拟机,都意味着启动BIOS,然后启动操作系统,然后启动所有剩余的相关应用程序。虽然此启动过程基于一系列虚拟化资源,但它比物理机启动更快,但速度不够快,无法立即启动,除非使用预先设置的热虚拟映像(虚拟机快照),但是需要使用启动方法。额外的存储资源会导致资源浪费。虚拟化容器没有这些问题。

容器更多地依赖于容器的外部而不是容器本身。虽然它也是从物理层创建的抽象实例,但虚拟化容器以动态方式共享大部分资源,并且每个容器通过底层平台访问大多数设备。容器化概念更接近应用程序的使用方式。它假设BIOS和系统已在运行,因此无需像虚拟机那样重新启动。容器化技术使用共享资源创建轻松的沙箱环境,每个资源都构建功能,服务或应用程序。

在虚拟化容器中,应用程序可以分成容器化功能组,它们一起工作以形成以更灵活和通用的方式提供过程的系统。复合应用程序可以是用于执行数据分析的专门配置和优化的容器以及专用数据库或应用程序逻辑的组合。容器在这种服务链管理中胜过虚拟机,因为它们在共享平台上工作,并且在使用共享功能和设备时比虚拟机更高效。

虽然容器的使用增加了整体灵活性,但它引入了额外的管理要求以及安全问题。在虚拟机中,所有组件都位于同一位置,并且可以将虚拟机作为单独的实体进行管理和保护。相反,对于基于容器的应用程序,构成应用程序的一组功能是松散耦合的,因此每个管理和安全保护都需要单独完成。

如果底层平台的安全保护不到位,则无法保证在其上构建的所有容器的安全性。反过来也一样。我们假设容器映像具有完全超级用户权限。因为容器需要持续地与底层平台交互,所以能够访问容器的入侵者理论上可以通过容器化环境突破底层平台,从而获得对底层平台的访问。