容器安全问题导致企业数据被黑客擦除造成损失,已经不是一次两次了。
就在前段时间,NewsBlur的创始人SamuelClay在将MongoDB集群迁移到Docker容器过程中,一名黑客获得了NewsBlur数据库的访问权限,删除掉了250GB的原始数据,并要求他支付0.03 BTC的赎金。
同类性质的问题,早在2014年就有开发者以“严重错误”反馈给了Docker公司,但一直没有得到解决。随着越来越多的用户采用容器技术构建业务,容器和容器编排平台的安全漏洞也不断被黑客挖掘出来,容器安全成为用户采用容器技术构建业务过程中必须要考虑的问题。
从计算的发展简史来看,每一次IT技术的演进带来的不仅是效率的提升,也有新的安全挑战。目前,我们处于第三次浪潮的快速发展时期,以云和容器技术为主。虽然容器使用率越来越高,但是相关安全建设却处于落后阶段。基于云原生场景下的容器云,面对快速开发和部署的迫切需要,原有的边界传统安全保障显得力不从心,受到极大挑战。
原生为云而设计,容器成交付标准
云原生(CloudNative)是一个组合词,包含Cloud和Native两部分,Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上运行,充分利用和发挥云平台的弹性+分布式优势。
Pivotal公司的Matt Stine于2013年首次提出云原生(CloudNative)的概念;2015年,云原生刚推广时,Matt Stine在《迁移到云原生架构》一书中定义了符合云原生架构的几个特征:12因素、微服务、自敏捷架构、基于API协作、抗脆弱性,2017年又将云原生架构归纳为模块化、可观察、可部署、可测试、可替换、可处理6特质。而Pivotal最新官网对云原生概括为4个要点:DevOps+持续交付+微服务+容器。
2015年云原生计算基金会(CNCF)成立,CNCF最初把云原生定义为包括:容器化封装+自动化管理+面向微服务;到了2018年,CNCF又更新了云原生的定义,把服务网格(Service Mesh)和声明式API加了进来。
云原生架构的快速普及带来了企业基础设施和应用架构等技术层面的革新。在CNCF 2020年度的调研报告中,68%的机构在生产过程中使用容器。生产中使用 Kubernetes 的比例已经增长到了82%。容器已经成为云原生应用交付的标准,在中国,kubernetes已经成为约定俗成的容器编排工具。
云原生场景下的容器安全挑战
面对快速开发和部署的迫切需要,基于边界的传统安全保障显得力不从心。传统安全方法偏重于对边界进行保护,而更复杂的云原生应用则倾向于识别动态工作负载中的属性和元数据来进行保护,这样才能为应用的模式转换保驾护航。这种方式能对工作负载进行识别和保护,以此适应云原生应用的规模扩展以及快速变化的需要。模式的转变要求使用面向安全的架构设计(例如零信任),并在应用安全生命周期中采用更多的自动化方法。并且,传统领域的安全问题在云环境下仍然存在,比如漏洞利用、病毒木马、DDOS攻击、数据泄露、内部越权等。在云原生架构下的多租户、轻量级隔离、快速弹性伸缩等特点,也对传统安全提出新的挑战。
1、不安全的镜像:镜像是一个包含应用/服务运行所必需的操作系统和应用文件的集合,用于创建一个或多个容器,它们之间紧密联系,镜像的安全性将会影响容器安全。根据镜像创建和使用方式,通常有三个因素影响镜像安全:
a、基础镜像不安全:镜像通常是开发者基于某个基础镜像创建的,无论是攻击者上传的恶意镜像,还是现有镜像存在的安全缺陷,基于它创建的镜像都将会是不安全的。
b、使用包含漏洞的软件:开发者经常会使用软件库的代码或软件,如果它们存在漏洞或恶意代码,一旦被制作成镜像,也将会影响容器的安全。
c、镜像被篡改:容器镜像在存储和使用的过程中,可能被篡改,如被植入恶意程序和修改内容。一旦使用被恶意篡改的镜像创建容器后,将会影响容器和应用程序的安全。
2、容器技术风险:容器隔离依赖于 Linux 内核 namespaces 和 cgroups 等特性,从攻击者的角度出发,可以利用内核系统漏洞,容器运行时组件和容器应用部署配置等多个维度发起针对性的逃逸和越权攻击。K8s、Docker等开源软件近年来也相继爆出不少的高危漏洞,这都给攻击者提供了可乘之机。
3、东西向流量防护:传统的企业应用安全模型通常基于内部架构不同的信任域来划分对应的安全边界,在信任域内的东西向服务交互被认为是安全的。而上云后企业应用需要在 IDC 和云上部署和交互,在物理安全边界消失后,如何在零信任的网络安全模型下构建企业级容器安全体系是云服务商需要解决的重要问题。以Docker环境为例,它支持Bridge、Overlay和Macvlan等网络,尽管实现方式不同,但有一个共同和普遍的问题:如果容器之间未进行有效隔离和控制,则一旦攻击者控制某台主机或某台容器,可以以此为跳板,攻击同主机或不同主机上的其他容器,也就是常提到的“东西向攻击”,甚至有可能形成拒绝服务攻击。
4、访问控制:由于云环境的特殊性,云原生架构下的数据泄露风险远远大于传统环境。因此,需要充分利用云原生架构下的认证授权体系,结合应用自身的权限控制,严格遵循最小权限法则配置云上资源的访问控制和容器应用的权限。例如,如非必要尽量避免使用特权容器。
谐云容器安全解决方案
浙大SEL实验室自2011年开始在PaaS技术层面的展开研究,并于2015年作为高校代表以创始会员的身份和google一起创建了CNCF组织。起源于浙大SEL实验室的谐云从成立起,就致力于助力企业落地云原生技术,根据10多年的云原生项目技术落地经验,提出了云原生时代下的容器安全解决方案。为了更好地应对容器化进程中的安全挑战,谐云认为企业的容器安全应当做到动态防护,覆盖容器全生命周期。
基础设施安全:容器构建于云平台之上,云平台的安全是容器安全的基础。谐云科技在多年容器运维经验的基础上,结合社区,形成了一套完善的容器与主机最优化基线配置,保障服务组件的默认安全性。
供应链安全: 将DevSecOps观念纳入交付流程,实现安全左移。在镜像构建阶段,进行镜像漏洞扫描,病毒木马扫描,webshell检测。同时进行镜像签名,确保进入镜像仓库的镜像安全,分发和部署中的镜像不被篡改。
运行时安全:将已知攻击手段加入容器行为黑名单,建立默认防护规则。并在CI\CD过程中,通过自学习形成容器行为基线,并生产环境进行防护,拦截基线以外的系统调用、可执行文件的执行。
应用安全:以BPF技术和sidecar注入两种方式,实现七层容器网络防火墙,可检测和阻止诸如xss、sql注入等威胁,同时结合AI进行应用画像,利用基于EBPF的旁路监听手段,自动学习容器访问关系拓扑,实现东西向流量可视化,识别网络连接安全风险,提供完备的容器网络微隔离方案。
同时,谐云容器安全平台支持多集群管理方案,控制平面与探针agent全面容器化,最大化利用容器资源与弹性伸缩特性。
安全是企业上云的首要关键,未来,谐云会通过更加完善的技术手段和产品布局,帮助用户全面解决云原生落地过程中的安全问题,加速企业数字化转型,携手拥抱云原生。