云原生应用安全落地,你需要了解的容器安全体系
摘要
容器安全作为云原生安全的重要组成部分,为用户业务的云原生落地提供了基础的安全保障。腾讯云凭借多年来在容器安全以及云原生安全领域的研究和实践运营经验,同时结合腾讯云容器平台TKE千万级核心规模容器集群治理经验,提出云原生容器安全体系框架,助力用户安全的实现云原生落地。
概述
容器作为云原生重要的支撑技术,近年来被广泛的认可和应用。根据《中国云原生用户调查报告(2020)》[1]显示,60%以上用户已在生产环境中应用容器技术,其中:43%的用户已将容器技术应用于核心生产环境,19%的用户已将容器技术用于非核心生产环境。
然而一次次安全事件的曝光,不管是特斯拉在亚马逊上的Kubernetes集群被入侵,还是Docker Hub频繁被爆含有漏洞和恶意程序的镜像,让用户在享受云原生红利的同时,产生了极大的安全担忧。根据云原生用户调查报告显示,容器的安全问题已成为用户应用云原生的最大担忧,其中63%的用户认为容器安全是紧迫的需求。
在实现云原生的主要技术中,容器作为支撑应用运行的重要载体,为应用的运行提供了隔离和封装,成为云原生应用的基础设施底座。因此容器的安全与否,将直接影响着整个云原生系统的安全性。
腾讯云依托在云原生以及安全方向的持续投入、积累和沉淀,一直致力于在云原生领域为用户提供更全面、更稳定、更安全的云原生服务,助力用户实现应用系统的云原生化,并且持续的保障其安全稳定的运行。
基于腾讯多年安全攻防技术的研究积累,持续在安全能力上的沉淀,以及对云原生安全领域的研究和实践运营,同时结合腾讯云容器平台TKE千万级核心规模容器集群治理经验,我们提出腾讯云原生容器安全体系框架,打造安全的容器云平台。框架描述了作为云原生安全底座的容器安全所覆盖的安全防护能力和范围,以及结合安全管理和安全运营,如何系统全面的保障容器安全。
容器安全体系设计四大原则
云原生计算的特性决定了云原生容器安全在架构设计上,一个重要的原则就是安全能力的原生化,也就是在基础设施和基础架构上原生的提供安全能力,使得云原生应用能够做到上线即安全。
同时我们采用安全左移的思路,更早的投入安全资源和安全能力去更有效的收敛安全问题,然后将安全能力全面融入到DevOps体系中,实现面向DevSecOps的全生命周期安全防护。
容器安全防护的主体从主要以IP为标记的主机变成了以Label、Tag等作为标记的应用程序,其安全边界变的更加模糊。因此,需要采用零信任架构,通过全面有效的身份权限管理以及持续的检测与响应来实现对云原生应用的安全防护。
全方位层次化的云原生容器安全体系框架
腾讯云容器平台的安全体系,采用层次化的方式,逐层实现安全防护。主要分为承载容器云平台的基础设施层安全、容器和容器云平台基础架构层安全、以及容器承载的应用层安全。
基础设施安全
在基础设施层,不管是运行在公有云、私有云、专有云、还是混合云,我们会提供针对容器平台运行主机的安全防护措施,包括采用腾讯专有的安全内核和安全操作系统,以及对已知漏洞进行安全性的修复和管理。同时,针对主机上的基础软件,进行安全配置基线的检测与加固,在基础设施层面减小攻击面。
基础架构安全
在容器云平台TKE的基础架构层,首先我们会提供针对容器和编排系统的安全防护措施,包括提供有效的资源隔离和限制措施,用户的身份和权限管理机制,基于CIS的安全配置加固,对云原生实现组件的漏洞管理与修复等。
其次,在网络安全上,我们采用零信任架构,持续的对集群网络进行监控和异常检测,保证网络的有效隔离和安全通信,包括租户、Service、Pod等不同粒度的网络隔离,网络通信的加密,访问控制,网络的入侵检测,基于机器学习进行网络行为的异常检测与处置等。
最后,在容器运行前,首先我们会对启动的容器镜像进行准入检测,确保拉起的镜像符合基本的安全要求,从运行开始阶段进行安全风险的筛查;当容器启动运行后,我们会持续的对包括容器逃逸、反弹shell、异常进程、文件篡改、高危系统调用等在内的入侵行为进行检测与告警,实现运行时的实时检测与防护。同时,我们还会结合机器学习、人工智能等大数据分析技术,对容器的行为进行监控、画像,从行为分析角度,对容器内的行为进行异常检测。多维度保障容器的运行安全。
应用安全
在容器应用层,我们提供了全面的软件供应链安全防护措施,通过提供对镜像的安全扫描能力,深度扫描本地/仓库镜像,分析镜像的安全漏洞、恶意文件、敏感信息等。通过多维度深度扫描,帮助用户发现不安全镜像,从源头上解决容器镜像安全问题。
同时我们还提供针对容器镜像的安全态势监控能力,持续监测镜像的安全态势。另外,我们还可以通过API网关、API监控等方式,对微服务间的API通信进行安全防护,包括API的访问控制、身份管理,调用链异常分析等。
安全能力全面原生化
云原生依托容器、服务网格等关键技术,实现了更轻量的隔离方式、更灵活的负载管理、更复杂的容器网络、更短的容器生命周期、以及更敏捷的开发流程。这些重要变化,使得传统的安全防护手段很难发挥应有的作用。
因此,要实现容器安全或者是云原生安全,一定要充分匹配云原生的特性,采用原生安全的方式。这里的原生安全包括两个方面:一方面是原生的基础安全,我们在容器、编排、微服务等云原生基础架构的构建过程中,就充分的融入安全性的设计和考虑,使我们的云原生系统天然的就具备安全特性,使得安全成为像计算、存储、网络一样的基础能力;另一方面,就是安全能力的云原生实现,充分利用云原生的技术优势,来实现安全检测与防护能力,使相关的安全能力同样具备云原生的低成本、高效率和高可用特性。
安全防护全生命周期
在云原生架构中,业务的快速迭代以及容器生命周期短、业务复杂、网络复杂等特点会造成运行时的安全检测投入成本很高。因此,基于上述层次化的安全框架,我们在容器生命周期的各个阶段,嵌入相应的安全能力,实现对容器的全生命周期安全防护。
全生命周期防护的一个重要的特点就是实现“安全前置”或者“安全左移”,在软件开发生命周期的更早阶段,投入更多的安全资源和能力,嵌入安全动作,来有效的收敛安全漏洞问题,尽可能更早的确定其安全性。
容器安全框架有效的与腾讯云CODING产品进行协同联动,在DevOps流程中嵌入安全能力,通过对应用程序的代码进行安全分析、审计、加固等措施,在开发阶段保障代码的安全性。
同时,在容器镜像服务TCR以及容器服务TKE中,分别嵌入镜像安全以及容器运行安全的相关安全能力,实现全生命周期的安全防护,打通DevSecOps闭环。
安全威胁全面可观测
容器化的基础设施使得应用自身变的更快、更轻,一台主机上可以快速部署运行几十个、甚至上百个容器,应用的部署密度以及变化频率,较传统环境,有着巨大的变化。
正所谓“未知攻焉知防”,面对云原生架构下的大规模集群以及海量灵活的微服务应用,只有知道集群中应用的具体操作、行为,才能够进行高效的安全防护。
腾讯云容器平台TKE提供了全面的可观测服务,这既包括了系统日志、应用日志等一整套完善的日志管理服务,还包括了各类运行指标的高性能监控服务,以及进程行为追踪、服务调用链追踪等追踪服务,使我们能够清晰的了解系统的详细的运行状况,进而快速高效的进行威胁的检测、追踪与溯源。
除此之外,我们还提供了对安全事件和安全告警的全面可观测服务,使得安全威胁更加直观可视化,能够快速的进行异常定位,快速的实现应急响应。
安全责任共担
腾讯云在安全建设上,一直倡导和践行着安全责任共担的原则,对于容器云平台的安全性保障,同样需要腾讯云以及云上用户的共同努力。
腾讯云的责任主要包括保护硬件、内核、操作系统等基础设施环境的安全,同时还包括保护容器、集群等容器云基础架构的安全,例如安全的配置和加固、身份权限的管理、网络的隔离以及入侵检测等。
客户的责任主要是管理和维护容器云上的工作负载,比如应用的代码安全、容器镜像的安全、相关版本的升级以及对监控、告警的响应等。
总结
云原生架构给安全防护带来了前所未有的挑战,容器安全作为云原生安全的技术底座,对云原生安全起到了重要的支撑作用。
在云原生化、安全左移、零信任等设计原则的指导下,我们提出层次化的云原生容器安全体系框架,从基础设施安全到容器基础架构安全,再到容器化应用的安全,逐层实现安全防护。同时,容器安全体系还与DevOps体系进行协同联动,在DevOps流程中嵌入安全能力,实现安全左移,降低运行过程中安全检测和防护的成本。在安全管理和运营上,通过密钥管理、安全策略管理、漏洞管理等服务,实现对用户云上的容器服务持续的检测和响应,确保其安全性。我们希望通过这一套完备的安全防护体系,打造一个原生安全的容器云平台,助力用户安全的实现云原生转型,享受云原生带来的红利。
参考资料
[1]《中国云原生用户调查报告(2020)》:【http://www.caict.ac.cn/kxyj/qwfb/ztbg/202010/t20201021_360375.htm】