容器相比虚拟机更为安全的十三个方面

本文讲的是容器相比虚拟机更为安全的十三个方面【编者的话】容器的安全性一直是架构师们的心病,担心隔离性弱被攻破,而纠结于是否选择容器。本文将围绕容器的安全特性,从容器设置以及容器应用的最佳实践出发,总结13个方面,说明容器为何比虚拟机更加安全的原因。希望能够对您的容器安全加固有所帮助。

去年,普遍观念认为容器的安全性远不如虚拟机。为什么呢 ?由于容器的抽象层极易被攻破,因此容器的安全无疑比通过硬件VT-x优化后的虚拟机抽象层薄弱的多 。一旦攻防松懈,恶意代码便可轻松攻击主机。更糟糕的是,一旦主机妥协,由于容器缺乏自有的操作系统壁垒,它将失去最基本的防守能力。隔离墙的薄弱也会导致容器存在大量安全风险隐患。

然而,真相是:正面攻击及未打补丁的漏洞要比从后门入侵更加不安全。

运行在浮肿的操作系统并采用不一致的安全配置的虚拟机的大量复制才是我们的首位安全隐患。事实上,轻量级设计的容器配置将降低被攻击的几率,轻薄的隔离墙使得在部署前后的安全加固操作更加简便。

容器虽然没有天生的技术优势,但至少在以下六个方面更安全:
  1. 不允许SSH:这招直接断了很多正面攻击的入口;
  2. 无用户访问:没有用户可省去支持用户访问需求的证书或工具;
  3. 容器系统限制默认端口:容器就是服务,因此可直接限定大多数访问连接的端口;
  4. 短命的容器不易被入侵:很难通过一个只存活几分钟甚至几秒钟的容器来入侵系统;
  5. 固定的设计难以支持恶意软件注入:如果用户配置的容器在文件系统上不持久化存放应用数据,因此注入的恶意代码也同样无法保存;
  6. 自动生成能加速安全补丁的获取和升级:通过CI/CD Pipeline自动构建,无需人工介入,实现自动快速的代码和依赖库的更新。

此外,关于容器的最佳实践案例也提供了更多安全保障经验:
  1. 预部署源码以及依赖的校验:校验服务可确保容器使用了正确且合规路径的代码;
  2. 预部署可靠性的校验:服务还可通过容器的信任链关系检查,确保代码未被篡改;
  3. 预部署镜像的漏洞扫描:更棒的是,这种扫描服务可以通过软件包的签名检查,实现容器安全风险的自动评估;
  4. 运行容器的漏洞扫描:一旦部署完毕,容器的外部扫描服务可实时监控容器的入侵、停止或拦截攻击;
  5. 含通信稽查的网络路由:由于网络路由是容器编排的基础,因此容器服务架构理应加强安全层,使之具备有效创建基于防火墙服务功能的能力;
  6. 集中式的日志捕获:由于没有本地存储,大部分搭建容器的模式首选集中式的日志捕获及分析,以大大简化日志分析操作;
  7. 外部注入的信任及证书:容器的服务模式不允许在容器或代码内注入证书。这意味着可通过实时加载证书的运行实例来构建信任系统,而非采用静态代码加载证书的方式;

太多方面证明,目前使用容器模式比虚拟机镜像模式更加安全!采用容器模式最明显的新优势是,容器的轻量级隔离墙可提供主机层的交叉安全及其他服务能力。对高级用户而言,容器服务能显而易见得推动架构的增强性需求的提升。因此容器服务的市场才刚刚开始。

原文链接:Thirteen Ways Containers are More Secure than Virtual Machines(翻译:Chilly 校对:田浩浩

原文发布时间为:2016-06-19

本文作者:Chilly 

本文来自云栖社区合作伙伴Dockerone.io,了解相关信息可以关注Dockerone.io。

原文标题:容器相比虚拟机更为安全的十三个方面

上一篇:Kubernetes V1.3 预览-认证,伸缩和改进的安装方式


下一篇:网站搭建基本流程与主要步骤(建站指南)