三、云原生安全关键要素
云原生安全与传统以虚拟化安全为主的云计算安全有巨大的差别:
容器不是轻量级的虚拟化,容器安全不是轻量级的虚拟化安全;
虚拟化安全关注的是资源,云原生安全关注的是应用;
安全左移是云原生安全的必经之路。
1. 防护短生命周期的容器
容器的生命周期分布大概呈三种类型:
虚拟机型:有一小部分容器被当成虚拟机使用,即将本来放置于一个虚拟机中的程序集合部署到单个容器中,那么这些容器的生命周期与虚拟机是相当的,平均在 83 天左右,最长的为 333 天。
原生型:有一部分容器是以 Docker 的命令启动和管理的,这部分容器完成独立的功能,因而生命周期在数十天。
编排型:还有大量的容器是由编排系统管理的,很多容器根据业务动态生成和销毁,这类容器的生命周期在 1 天以内。
统计发现,46%的容器生命周期短于 1 小时,11%的容器生命周期短于 1 分钟。容器安全和虚拟化安全的最大差别看似是隔离技术强度,但其实应是生命周期,甚至没有之一,因为这会影响到攻防双方的战术偏好。
因为容器存在的时间通常比较短,黑客会投入大部分精力去攻击更为持久化的东西,如代码、第三方库、镜像等资产。开发安全和供应链安全将是云原生环境中的重点安全措施。
2. 降低安全运营成本
安全的本质在于对抗以及攻防投入产出比的平衡。从攻击方的视角看,由于容器的短生命周期,攻击容器的代价较高,而收益较小;但对第三方软件库、项目依赖的镜像“投毒”的持久化代价较小,而其收益远高于攻击容器。
那么从防守者的视角看,如何在降低安全运营成本的同时,提升安全防护效果呢?业界有一个词比较流行:Shift Left(安全左移)。将软件的生命周期从左到右展开,即开发、测试、集成、部署、运行阶段,安全左移的含义就是将安全防护从传统运行时运营(Ops)转向开发侧(Devs)。
3. DevSecOps
DevOps 不只改变开发团队、测试团队和 IT 运营团队,还有安全团队。传统上,安全团队通常聚焦在运营侧,可能是 IT 运营团队中的一部分,而开发安全则主要由开发团队负责,两者从组织架构和工作职责上来看是天然分离的。在云原生场景下,安全左移要求安全团队越来越关注开发侧的安全,但同时又要保证以往运行时的各项安全功能可应用于云原生业务系统中,换句话说,安全能力应该覆盖开发和运营闭环的每个环节,这样的开发运营一体化安全称为 DevSecOps。
4. 实现安全的云原生化
安全架构具备编排能力:编排指将各类资源根据业务需要进行动态控制和管理。在云原生场景中,安全架构需要借助容器编排系统的能力来动态部署或销毁安全资源,并按需调度流量牵引或旁路到前述的安全资源,然后将安全策略下发到安全资源,形成全局统一、一致的安全能力。
安全特权容器:通常这个安全容器需要一些能力来获得某些权限,当它需要所有的权限时,它其实就是一个特权容器。在很多安全厂商的容器安全方案中,宿主机侧通常会部署安全特权容器,以实现对其所在宿主机和容器的全方位防护。
Sidecar 安全容器:Sidecar 容器本质上就是一种提供反向代理的容器,该容器会劫持业务容器的流量,经过解析后获得应用层请求和响应,然后根据安全策略进行检测或防护。Sidecar 安全容器与安全特权容器的区别是 Sidecar 安全容器尽可能贴近服务,可以与编排系统深度融合,随着微服务和无服务容器的增加而相应增加,反之亦然。Sidecar 安全容器的资源管理和策略管理是云原生的。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/82a1f54d3ad9facb64a8092c7】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论