CNCF 宣布完成对开源 Kubernetes 的安全审计

阅读数:2665 2019 年 8 月 8 日 10:50

CNCF宣布完成对开源Kubernetes的安全审计

近日,云原生计算基金会(CNCF)宣布完成了对 Kubernetes 的安全审计,并将最终结果公布在 Github 上。

CNCF宣布完成对开源Kubernetes的安全审计

近日,CNCF 通过官方博客宣布已经完成对Kubernetes 的安全审计,并针对不同角色的人员提供相关指导意见,最终结果可以通过 Github 进行查看,而这种对安全审计工作的开展最早可以追溯至去年,为了提高生态系统的整体安全性,CNCF 决定为项目执行和开放第三方安全审计,并从 CNCF 社区收集了关于该试点计划是否有用的反馈。

根据介绍,参与该计划的第一批项目是 CoreDNS Envoy Prometheus ,首次公开审计确定了从一般弱点到关键漏洞的安全问题,审计结果可以帮助 CoreDNS,Envoy 和 Prometheus 的项目维护人员解决已识别的漏洞并添加文档来帮助用户。

虽说 Kubernetes 属于已毕业项目,但公共安全审计是测试开源项目质量及其漏洞管理流程的一种很好的方法,尤其是对毕业的项目而言,这些项目已经被全球很多大型公司广泛使用,遵守最高级别的最佳安全实践是非常有必要的。

因此,CNCF 社区决定提供资金对 Kubernetes 进行安全审计,成立安全审计工作组,寻找有信誉的第三方供应商。该小组创建了一份公开提案请求,负责评估收到的提案,并对最适合完成Kubernetes 安全评估的供应商给出建议。最终,考虑到项目的高度复杂性和广泛性,工作组选择了两家公司来完成这项工作: Bits 和 Atredis Partners 。该团队认为,这两家公司均由信息安全行业的资深和知名员工组成,将提供最好的结果。

在长达四个月的管理审计中,Kubernetes 整个威胁模型主要审查了六个控制系列中的组件:

  • 联网
  • 加密
  • 认证
  • 授权
  • 加密管理
  • 多租户

由于 Kubernetes 本身是一个大型系统,功能范围从 API 网关到容器编排再到网络及其它。最终,整个工作组在庞大的 Kubernetes 生态系统中选择了八个组件进行威胁模型评估:

  • Kube-apiserver
  • Etcd
  • Kube-scheduler
  • Kube-controller-manager
  • Cloud-controller-manager
  • Kubelet
  • Kube-proxy
  • Container Runtime

评估产生了大量关于 Kubernetes 集群的操作和内部知识。评估结果和支持文件已正式公布,可在 Github 上找到,以下是一些有关使用 Kubernetes 需要注意的事情,比如:

(地址: https://github.com/kubernetes/community/tree/master/wg-security-audit

  • 不会应用策略,从而导致错误的安全感
  • 默认情况下,使用不安全的 TLS
  • 某些凭证在环境变量和命令行参数中公开
  • 加密名称泄露在日志中
  • 没有证书撤销
  • 默认情况下不启用 seccomp

针对集群管理员的建议包括:

  • 基于属性(Attribute)的访问控制与基于角色的访问控制
  • RBAC 最佳实践
  • 节点主机配置和权限
  • 默认设置和向后兼容性
  • 网络
  • 环境因素
  • 日志和告警

对 Kubernetes 开发人员的建议包括:

  • 避免硬编码依赖的路径
  • 文件权限检查
  • 监控 Linux 上的进程
  • 将进程移动到 cgroup
  • cgroup 注意事项
  • Kubernetes 的流程处理注意事项

最后,该审计流程部分受到  Core Infrastructure Initiative (CII) Best Practices Badge program 计划的启发,所有 CNCF 项目都需要通过该计划,该计划由 Linux Foundation 提供,是开源项目表明遵循最佳安全实践的一种方式。

虽然 Kubernetes 将像所有软件一样存在漏洞,但 CNCF 首席技术官 Chris Aniszczyk 指出,应用于 Kubernetes 网络安全的资源数量超过任何其他平台。此外,CNCF 还致力于为流程提供前所未有的透明度,帮助审计人员证明 Kubernetes 环境是安全的。

总体而言,Aniszczyk 表示,从网络安全的角度来看,Kubernetes 和运行于其上的容器化应用程序的最佳之处在于可以快速替换含有缺陷代码的模块。Aniszczyk 指出,Kubernetes 环境可以在 DevOps 流程的上下文中进行更新,而不是等待数月才能实现,这比现有的补丁管理方法更快且灵活。

收藏

评论

微博

用户头像
发表评论

注册/登录 InfoQ 发表评论