面向云原生环境的安全体系

满堂花醉三千客,一剑霜寒十四洲。这篇文章主要讲述面向云原生环境的安全体系相关的知识,希望能为你提供帮助。
根据云原生环境的构成,面向云原生环境的安全体系可包含三个层面的安全机制。
1. 容器安全容器技术是云原生体系的底层,因而容器安全也是云原生安全的基石。容器层面的安全可以分为以下几部分。

  • 容器环境基础设施的安全性,比如主机上的安全配置是否会影响到其上运行的容器,主机上的安全漏洞和恶意进程是否会影响到容器,容器内的进程是否可以利用主机上的安全漏洞,等等。
  • 容器的镜像安全,包括镜像中的软件是否存在安全漏洞,镜像在构建过程中是否存在安全风险,镜像在传输过程中是否被恶意篡改,等等。
  • 容器的运行时安全,比如运行的容器间的隔离是否充分,容器间的通信是否是安全的,容器内的恶意程序是否会影响到主机或者其他容器,容器的资源使用情况是否安全,等等。
  • 整个容器生态的安全性,比如Docker自身的安全性如何,ServiceMesh/Serverless对容器安全有什么影响,容器中安全密钥的管理与传统环境有什么不同,容器化后的数据隐私保护与传统的数据隐私保护是否一致,等等。
对于容器云的安全方案,可以分别从两个方面进行设计。对于南北向的网络安全,可以通过安全资源池引流的方式,实现相应的安全检测与防护,这也是业界多数云安全解决方案的实现方式。对于容器云内部的安全,可以通过相应的容器安全机制实现。最后将这两部分统一接入云安全集中管理系统,进行统一的安全管理和运营。
2.编排系统安全Kubernetes已经成为事实上的云原生编排系统,那么Kubernetes的安全就成为非常重要的编排安全部分。
  • Kubernetes组件接口存在的风险:绝大多数组件以基于HTTP或HTTPS的API形式提供服务,其中一些非加密的接口容易为利用。

  • 集群网络存在的风险:为了实现集群Pod间相互通信,在安装部署Kubernetes后,我们往往还要额外安装一个网络插件,常见的网络插件有Flannel、Calico和Cilium等。在没有其他网络隔离策略和Pod安全策略的默认情况下,由于Pod与Pod之间彼此可连通,且Pod内的root用户具有CAP_NET_RAW权限,集群内部可能发生网络探测、嗅探、拒绝服务等。
  • 访问控制机制存在的风险:Kubernetes中的访问控制机制主要由认证机制、授权机制和准入机制三个部分组成,每一个部分通常会有一种或多种具体的实现机制可供选择。即使认证和授权机制在容器环境创建初期遵循了最小权限等安全原则,随着时间的推移和环境的更新变动,角色与权限可能会变得混乱,从而为坏人提供可乘之机。
  • 无法根治的软件漏洞:作为一个复杂系统,Kubernetes自然被曝出过许多安全漏洞。比如CVE-2019-11253:YAML炸弹,CVE-2019-9512/9514:HTTP/2协议实现存在问题等等。
3.云原生应用安全【面向云原生环境的安全体系】编排系统支撑着诸多微服务框架和云原生应用,如无服务、服务网格等,这些新型的微服务体系也同样存在各种安全风险。例如,通过编写一段无服务器的代码获得运行无服务程序容器的shell权限,进而对容器网络破坏。云原生应用的安全,包括面向云原生应用的零信任体系、云原生应用的传统安全机制、业务安全和API安全。此外,无服务器计算也是新的云原生计算模式,其安全机制更偏业务层面,其中包括未授权的风险、数据泄露风险、FaaS平台账户的风险、被滥用的风险等等。

    推荐阅读