聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
该问题与 system:authenticated 组中用户所获得的权限有关。该组包含所有拥有谷歌账户的用户,尽管可能会被误认为仅包含身份已验证的用户。
Orca 公司在一份研究报告中提到,“当管理员在不知情的情况下将该组与权限过多的角色绑定在一起时,就会制造重大的安全漏洞。”
GKE 是一种 Kubernetes 管理服务,支持集群认证和授权。谷歌作为身份提供商,任何拥有一个谷歌账户的人员均可认证 Kubernetes API 服务器。这也意味着,Kubernetes 内置组如 system:annoymous、system:authenticated 和 system:unauthenticated等可能会发生授权配置不当的情况,而Orca 公司所发现的案例本可造成严重后果。
具体而言,研究人员发现攻击者可通过 OAuth 2.0 Playground 获得访问令牌,并成为 system:authenticated组的组成部分,从而至少可拥有访问发现API的权限。然而,如果认证用户被授予扩展角色,攻击者的访问权限会大得多,从而能够执行侦察活动、接管 Kubernetes 集群、引发拒绝服务或者访问敏感信息。
研究人员表示发现超过25万个 GKE 集群被暴露到互联网,约1300个可能易受该配置不当问题影响。其中超过100个集群可被立刻攻陷。对于一些已识别的实例而言,system:authenticated 组可能获得集群管理员权限,从而导致攻击者能够查询多个资源。
受影响的GKE 集群暴露了AWS 凭据、GCP API 密钥、服务账户认证 JSON 文件、私钥、容器注册表凭据以及重要资源如 Grafana、RabbitMQ 和 ElasticSearch 等的访问权限。
研究人员将发现成果告知谷歌,后者在 GKE 1.28 版本中采取多种措施缓解这些风险,如阻止将管理员角色绑定至 Kubernetes 组、构建可配置的阻止规则、限制网络访问权限、通知 GKE 用户绑定到这些组查看配置。
谷歌在另外一份安全公告中指出,“应用授权网络限制的集群拥有第一层防御:它们不会直接遭到来自互联网的攻击,但我们仍然建议删除这些绑定进行纵深防御以及防御网络控制中的错误。”
原文始发于微信公众号(代码卫士):谷歌GKE 配置不当可导致K8s 集群遭接管
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论