内容简介:近期,Kubernetes仪表盘和外部IP代理接连被发现存在安全问题。针对这两个漏洞,Kubernetes发布了相应的补丁版本供会受漏洞影响的用户解决问题。本文将更深入解读这两个安全漏洞的原理、会对您的Kubernetes部署造成的影响以及相应的应对之策。Kubernetes仪表盘漏洞(CVE-2018-18264)会影响v1.10.0或更早的仪表盘版本。因为这一漏洞,用户可以“跳过”登录过程,假设配置的服务帐户,最后获得仪表盘所使用的自定义TLS证书。如果您已将Kubernetes仪表盘配置为需要登录并将
近期,Kubernetes仪表盘和外部IP代理接连被发现存在安全问题。针对这两个漏洞,Kubernetes发布了相应的补丁版本供会受漏洞影响的用户解决问题。本文将更深入解读这两个安全漏洞的原理、会对您的Kubernetes部署造成的影响以及相应的应对之策。
通过kubernetes仪表盘访问自定义TLS证书
Kubernetes仪表盘漏洞(CVE-2018-18264)会影响v1.10.0或更早的仪表盘版本。因为这一漏洞,用户可以“跳过”登录过程,假设配置的服务帐户,最后获得仪表盘所使用的自定义TLS证书。如果您已将Kubernetes仪表盘配置为需要登录并将其配置为使用自定义TLS证书,那么这一漏洞会影响到您,您需要及时注意。
该漏洞的运作原理
此漏洞可以分为两部分来解释。
第一个是,因为登陆时用户可以选择“跳过”这一选项,那么任何用户都可以绕过登录过程,该过程在v1.10.0或更早版本中始终默认启用。这样一来,用户就完全跳过登录过程并能使用仪表盘配置的服务帐户。
第二个是,使用仪表盘配置的服务帐户,必须最低限度地有权限访问自定义TLS证书(以secret的形式存储)。未经身份验证的登录,加上仪表板使用配置的服务帐户来检索这些secret的能力,组合在一起的结果就是这一安全问题。
使用仪表盘v1.10.1补丁时,默认情况下将不再启用“跳过”选项,并且会禁用仪表盘在UI中检索和显示它的功能。
该漏洞对Rancher 1.6.x和2.x意味着什么?
在Rancher 2.x中,默认情况下不会启用Kubernetes仪表盘,因为Rancher 2.0用户界面可用作替代方案。若您不会使用到仪表盘代码库,则不受此漏洞的影响。如果您更改了默认设置、在Rancher管理的任何Kubernetes集群之上部署了Kubernetes仪表盘,请务必使用Kubernetes官方提供的指南及补丁修复这一漏洞。
如果你使用的是Rancher 1.6.x,则完全无需担心。在Rancher 1.6.x中,Kubernetes仪表盘作为每个Kubernetes集群环境的一部分包含在内;但是,1.6.x部署不受影响,因为Rancher Server充当了Kubernetes仪表盘的身份验证授权和代理。它不利用默认的Kubernetes仪表盘登录机制。此外,Rancher部署的Kubernetes仪表盘不使用任何自定义TLS证书。
Kubernetes API服务器外部IP地址代理漏洞
下面让我们来探讨Kubernetes公告所描述的第二个漏洞。
Kubernetes API服务器使用节点、node或服务代理API,将请求代理到pod或节点。通过直接修改podIP或nodeIP,可以将代理请求定向到任何IP。API服务器总是被部署在某网络中的,利用这个漏洞就访问该网络中的任何可用IP了。尽管自从v1.10发布以来,Kubernetes已经在很大程度上增加了检查以缓解这个问题,但最近才发现有一条路径的问题并没有被完全解决——将代理指向本地地址到运行API服务器的主机。
该漏洞的运作原理
通过使用Kubernetes API,用户可以使用节点代理、pod代理或服务代理API请求与pod或节点的连接。Kubernetes接受此请求,找到podIP或nodeIP的关联IP,并最终将该请求转发到该IP。这些通常由Kubernetes自动分配。但是,集群管理员(或具有类似“超级用户”权限的不同角色)可以更新资源的podIP或nodeIP字段以指向任意IP。
这在很大程度上不是问题,因为“普通”用户无法更改资源的podIP或nodeIP。podIP和nodeIP字段位于pod和节点资源的状态子资源中。为了更新状态子资源,必须专门授予RBAC规则。默认情况下,除了集群管理员和内部Kubernetes组件(例如kubelet、controller-manager、scheduler)之外,没有Kubernetes角色可以访问状态子资源。想要利用此漏洞,首先得拥有对集群的高级别访问权限。
这一次Kubernetes官方发布的修复,是确定攻击向量可以存在于与集群分开管理控制面板的设置中。在这种情况下,集群管理员是不能访问运行API服务器的主机的。这种情况存在于您从云提供商处获得的托管Kubernetes服务中。在这种情况下,集群管理员可以通过将podIP / nodeIP修改为本地地址(如127.0.0.1)来访问API服务器的本地地址。今天发布的修复将阻止代理到本地地址。
这对Rancher用户意味着什么?
Rancher托管集群的默认权限,仅允许集群所有者和成员更改podIP或nodeIP字段。将该权限提供给其他用户时,必须假定允许用户能够完全访问集群中的任何节点。所有其他默认角色(例如项目所有者/成员)都无权访问这些字段。今天发布的修复程序所适用的部署的Kubernete集群,是其控制面板网络与应用程序使用的网络不同的。在Rancher 1.6.x或2.x中创建的Kubernete集群,均默认集群管理员具有对控制面板节点的完全访问权限。如果您正在使用Rancher 2.x,并且正在使用托管云提供商(例如EKS、GKE、AKS),请与他们核实安全性是否存在问题,因为控制面板是归云提供商所有。
我们始终希望能确保Rancher用户能够在最短时间内使用到最新的安全修复程序和相应补丁,Kubernetes版本v1.10.12、v1.11.6和v1.12.4解决了这两个安全漏洞,这三个版本的Kubernetes将可在Rancher 版本v2.1.5和v2.0.10中使用。如果你是Rancher v1.6.x版本的用户,则无需做任何更新,因为标准的v1.6.x安装不受这次安全漏洞影响。
您还可以通过下述两个链接了解到Kubernetes官方针对这两个漏洞的相应讨论:
以上所述就是小编给大家介绍的《Kubernetes仪表盘和外部IP代理漏洞及应对之策》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Qt自定义控件之仪表盘2--QPaint绘制仪表盘
- 手动实现一个速度仪表盘
- Qt自定义Widget之仪表盘
- 开源仪表盘-Dashboard-C#/WF
- ClickHouse:创建漂亮的 Grafana 仪表盘
- ELK学习实验009:安装kibana的仪表盘
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Python Algorithms
Magnus Lie Hetland / Apress / 2010-11-24 / USD 49.99
Python Algorithms explains the Python approach to algorithm analysis and design. Written by Magnus Lie Hetland, author of Beginning Python, this book is sharply focused on classical algorithms, but it......一起来看看 《Python Algorithms》 这本书的介绍吧!