SOFTWARE SUPPLY CHAIN SECURITY
专注构建世界级软件供应链安全解决方案
CISO 需考虑的五项 Kubernetes 安全措施
发布于: 2022-09-21 10:13:33 浏览量: 351

随着企业对软件开发的安全意识提高,开发和运维环节中各个团队也开始将安全嵌入他们正在使用或处理的平台或应用程序架构中。不同于各团队把对安全的关注放在自己所处理的环节,首席信息安全官(CISO)需要把握和负责从基础架构团队到应用程序团队等企业内部的所有安全问题。


阅读本文,将带您了解 CISO 需要考虑实施的五项 Kubernetes 安全措施。


可靠的身份验证解决方案


在创建一个 Kubernetes 集群或创建 500 个 Kubernetes 集群的时候,每个 CISO 想到的第一个问题是“工程师和用户将如何对这个 Kubernetes 集群进行身份验证?”。现成可用的解决方案有 RBAC 角色和权限,对用户和系统组件(如服务帐户)进行身份验证,以允许访问特定的 Kubernetes 资源。当然这样做可能还不够,企业需要考虑一些其他因素,比如 Kubernetes 的 oAuth 和 SSO。

 

根据企业部署 Kubernetes 的位置,有部分解决方案可以在本地运行,而其他解决方案则需要单另实施。举例来说,Azure Kubernetes Service (AKS) 等基于云的 Kubernetes 服务中,工程师能够获得开箱即用的 Azure Active Directory,从而在整个组织的所有 AKS 集群中启用和实施。Active Directory 是一种久经考验的用户身份验证方法,它可以在 AKS 上运行的所有 Kubernetes 集群中良好应用。


如果使用的 Kubernetes 环境没有像 Active Directory 这样的本机解决方案,可以考虑支持 OpenID Connect (OIDC) 的选项。例如,Okta 和 AuthO 已经集成了可用的 Kubernetes 身份验证解决方案。

 

实施 Kubernetes 时的安全习惯


在首次实施 Kubernetes 时,有很多安全习惯可以帮助缓解大量安全风险。


第一个是单租户和多租户集群。从 Kubernetes 的角度考虑单租户或多租户时,通常会考虑有多少用户可以访问集群以及集群上运行的应用程序的内容。而从用户的角度来看,则更多关注 Kubernetes 集群是不是被设置为只有一个用户能够访问,也就是说每个用户都可以拥有自己的 Kubernetes 集群,从而降低多租户风险。如果需要多租户(很多情况都是如此),那么为用户设置适当的 RBAC 权限至关重要。这样以来,用户就只能访问他们基于自身角色所需要的内容。


对于 Kubernetes,与之交互的所有资源都是 Kubernetes API 的一部分。有 API 的地方就有日志、指标和跟踪。如 Prometheus 和 Grafana,可以从 Kubernetes 集群中检索安全日志,这能够帮助团队有效缓解安全风险。不仅如此,工程团队还可以为这些日志设置警报,以便及时了解和处理。


从隔离的角度来说,从一开始就建立合适的命名空间(Namespace)的习惯非常重要。根据访问级别,用户可能可以跨命名空间部署应用程序和资源,包括 Default 甚至 kube-system,其中包含运行集群所需的核心 Kubernetes Pod。为了避免这个问题,用户和服务帐户应当只有权将应用程序部署到特定的命名空间。


K8s 左移


Kubernetes 左移,以及时发现和缓解相应安全风险,这能为 CISO 及软件工程团队省去不少麻烦。


例如,企业的开发团队正在使用 CI/CD 平台从应用程序构建容器镜像。通过左移场景,可以确保团队正确扫描进入容器镜像的应用程序二进制文件,并且当构建容器镜像完成时,使用 KSOC 等安全平台来扫描部署到 Kubernetes 集群。一旦容器镜像被扫描和验证,它们就可以被部署到 Kubernetes。


Kubernetes 左移能够确保:

- 应用程序二进制文件被扫描

- 容器镜像被扫描

- 所有容器镜像都经过验证


这样可以节省团队的时间、精力并省去后续的手动修复,确保应用程序可以在适当的时间范围内部署到 Kubernetes,并满足上市和发布策略周期。


提高合规性审计


随着 Kubernetes、云原生平台、资源平台等技术的飞速发展,捕捉随时可能出现的每一个可能造成安全隐患的问题几乎是不可能完成的任务。因此企业使用外部审计顾问来帮助满足 HIPPA、PCI、PHI 和 SOC2 合规性需求,还是与内部团队成员一起执行审计,或者内外部审计同时进行,都可以为企业的 Kubernetes 环境提供更好的安全保障。


审核可以采用以下形式:

- 全环境扫描

- 完整的应用程序扫描

- 单个 Kubernetes 集群扫描

- 完整的 Kubernetes 环境扫描

- Kubernetes 生成的日志

- 实时 Kubernetes 漏洞分析

- 上述所有形式


审计并发现漏洞,能够在风险变成更大问题甚至影响整个组织的问题之前,及时并有效降低风险。


多环境的灵活性


最后是关于多环境(multi-environment)的灵活性。随着云原生的不断发展,目前存在三种云环境形式:

- 多云

- 混合云

- 单一云


从单一云的角度来看,CISO 只需要关注和保护一个云中的组件和资源。但是涉及到多云或者混合云环境时,企业资源将位于多个位置,且需要跨网络进行通信。而混合云就是部分基础架构在本地,另一部分则在云上。因此企业需要同时保护基础架构、本地内部网络、云基础架构、云服务以及本地与云之间的通信。对于多云环境,企业不仅要保护每个云中运行的云服务,还要保护云之间的通信。


由于混合云和多云的应用越来越广泛,未来会有越来越少的企业考虑单一环境。因此,如同考虑跨多个数据中心的环境一样,CISO 同样也需要思考存在多个跨云和混合环境时的情况。