Kubernetes仪表盘和外部IP代理漏洞及应对之策

近期,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官方针对这两个漏洞的相应讨论:

https://discuss.kubernetes.io/t/security-release-of-dashboard-v1-10-1-cve-2018-18264/4069

https://discuss.kubernetes.io/t/security-impact-of-kubernetes-api-server-external-ip-address-proxying/4072

原文地址:http://blog.51cto.com/12462495/2340005

时间: 2024-10-08 15:20:17

Kubernetes仪表盘和外部IP代理漏洞及应对之策的相关文章

Kubernetes中的PodIP、ClusterIP和外部IP

Kubernetes是Google开源的容器集群管理系统,是Docker容器的主要集群管理系统之一. 其中,Kubernetes中管理主要有三种类型的IP:Pod IP .Cluster IP 和 外部IP. Pod IP Kubernetes的最小部署单元是Pod.利用Flannel作为不同HOST之间容器互通技术时,由Flannel和etcd维护了一张节点间的路由表.Flannel的设计目的就是为集群中的所有节点重新规划IP地址的使用规则,从而使得不同节点上的容器能够获得"同属一个内网&qu

动态ip软件基本知识和动态ip代理使用方法扫盲

一.什么叫动态ip代理电脑软件? 动态ip代理电脑软件是介于电脑浏览器和web集群服务器的一台网络服务器,如果你利用动态ip代理电脑软件上外网访问时,电脑浏览器并不是立即到web网络服务器去取回来网页页面,只是向动态ip代理电脑软件发出请求,由动态ip代理电脑软件来取回来电脑浏览器所须要的信息内容,并传输给你的电脑浏览器. 二.什么叫完全免费动态ip代理电脑软件 ? 在应用芝麻代理等软件搜索动态ip代理手机软件详细地址时,会在认证通知栏中经常出现类似于"要登陆密码"."Fre

python获取ip代理列表爬虫

最近练习写爬虫,本来爬几张mm图做测试,可是爬到几十张的时候就会返回403错误,这是被网站服务器发现了,把我给屏蔽了. 因此需要使用代理IP.为了方便以后使用,我打算先写一个自动爬取ip代理的爬虫,正所谓,磨刀不误砍柴工,读完高中再打工! 先看看运行结果: 函数返回一个列表 废话少说,放码出去: #-*- coding: utf-8 -*- import urllib import urllib2 import re import time # obtain some ip and port f

SocksHub - 您专业的海外ip代理供应商。

SocksHub.net 中国站向各位中国朋友问好了! SocksHub.net是一家专业的ip代理供应商,绝对原装正版,不做二次交易. 为客户扩大市场是我们的终极目标,且多年来一直保持不变.就我们而言,我们有能力为您提供实现理想的完美工具. SocksHub.net已达到最大的代理能力,这为我们的许多客户获得了成功和利润. 我们的优势: - 流量使用不受限制: - 多种付费方式供您选择: - 数十万代理ip节点,ip段不重复: - 高匿名,为您提供私密的工作环境: - 支持多线程同时使用,速度

scrapy_随机ip代理池

什么是ip代理? 我们电脑访问网站,其实是访问远程的服务器,通过ip地址识别是那个机器访问了服务器,服务器就知道数据该返回给哪台机器,我们生活中所用的网络是局域网,ip是运营商随机分配的,是一种直接访问服务器的方式 代理服务器是一种间接方式,本地机器访问ip代理服务器,ip代理服务器帮我们发起服务请求,然后代理服务器接收数据返回给本机,由于中间有了层ip代理服务器,访问的速度和稳定性取决于代理服务器的性能 常规访问: 用户 >> ip  >> 服务器 代理访问: 用户用户 >

IP代理软件

IP代理软件 IP代理软件就是通过第三方网络协议传输数据的一种加密软件:跟VPN,代理服务器原理一样,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通 过这个服务与另一个网络终端(一般为服务器)进行非直接的连接.一些网关.路由器等网络设备具备网络代理功能.一般认为代理服务有利于保障网络终端的隐私 或安全,防止攻击. 代理软件的原理 VPN代理是前端计算机和VPN服务器之间的点对点连接,在连接成功后建立一个虚拟专用隧道.前端将原本要发送给目标服务器的请求通过隧道发送给VPN代理服务器,然后

随机IP代理

第一个例子就设置了一个代理IP,也是不靠谱的,最好的方式就是多设置几个,如第二个例子,通过http://www.youdaili.net/Daili/你可以找到很多代理IP, 抓取国内网站时尽量选取中国的IP(虽然这种免费IP代理很多,不过免费的东西靠不靠谱就说不好了,实际上以我的经验,我会初始设置100个左右,根据他们的访问效率测试抓取,再筛选几个靠谱的代理正式抓取),第二个例子中用到了随机数,每次抓取都是随机选取一个IP代理.

python开源IP代理池--IPProxys

今天博客开始继续更新,谢谢大家对我的关注和支持.这几天一直是在写一个ip代理池的开源项目.通过前几篇的博客,我们可以了解到突破反爬虫机制的一个重要举措就是代理ip.拥有庞大稳定的ip代理,在爬虫工作中将起到重要的作用,但是从成本的角度来说,一般稳定的ip池都很贵,因此我这个开源项目的意义就诞生了,爬取一些代理网站提供的免费ip(虽然70%都是不好使的,但是扛不住量大,网站多),检测有效性后存储到数据库中,同时搭建一个http服务器,提供一个api接口,供大家的爬虫程序调用. 好了,废话不多说,咱

如何换网页IP代理

如何换网页IP代理 | 浏览:21 | 更新:2014-08-31 13:46 1 2 3 4 5 6 7 分步阅读 如何设置网页IP代理的步骤:现在就看下图如何换网页IP和清理浏览器cookie,[360浏览器设置IP代理] 方法/步骤 1 http://www.mesk.cn/ip/china/ 这些都是代理IP列表 2 点击最新国内高速代理IP列表 3 点开之后出现一些IP代理 4 这是360浏览器所设置的网页IP代理,点击工具,代理服务器.代理服务器设置. 5 把刚才复制的IP代理粘贴到