为什么使用"--vm driver=none"启动的Minikube集群易受CSRF攻击



当使用--vm-driver=none选项启动Minikube实例时,会收到以下警告:

WARNING: IT IS RECOMMENDED NOT TO RUN THE NONE DRIVER ON PERSONAL WORKSTATIONS
The 'none' driver will run an insecure kubernetes apiserver as root that may 
leave the host vulnerable to CSRF attacks

为什么主机易受攻击?这样的攻击怎么会起作用?

跨站点请求伪造是一种攻击:

欺骗用户意外使用他们的凭据来调用状态更改活动

参数--vm-driver=none:

此驱动程序可用于在主机上而不是在VM中运行Kubernetes集群组件。

关于minikube内部攻击的文档很少。基本上,当您使用--vm-driver=none时,kubectl配置和凭据将为root用户所有,并且在主目录中可用。您需要移动它们并设置适当的权限。此外,通常用于保护免受此类攻击的秘密令牌也很容易被攻击者访问。如果你不移动组件并设置权限,它们可能会成为一个潜在的载体,在以root身份引入请求时,将apiserver用作一个困惑的代理。

我认为最危险的部分是:--vm-driver=none将整个过程暴露为根。您的kubeapi正在以root身份运行。如果攻击者能够利用该漏洞,他将控制内核内以root身份运行的进程——正如我们所知,这使攻击者成为系统的所有者,并可能成为CSFR攻击的网关。

此外,值得一提的是,安全性并不是minikube的首要问题,因为它主要是学习的工具。如果你想要更注重安全的东西,你可以考虑kubeadm,它是:

是一个工具包,用于在现有基础设施。

以下是Kubernetes开发人员关于实现CSRF和执行这种攻击的一些历史对话,您可以在这里找到:

哈登大师API对抗网络攻击#10351

这就是我所能找到的,我建议你尝试在GitHub上询问开发人员,填写问题以获得更准确的信息。

您可以在这里找到答案:https://minikube.sigs.k8s.io/docs/reference/drivers/none/

安全性降低minikube启动可能在互联网上可用的服务。请确保您有防火墙来保护您的主机免受意外访问。例如:apiserver在TCP*上侦听:8443kubelet在TCP*:10250和*:10255上侦听kube调度程序在TCP*上侦听:10259kube控制器在TCP*上侦听:10257容器可能可以完全访问您的文件系统。容器可以通过使用容器转义漏洞(如CVE-2019-5736(在主机上执行任意代码。请随时更新您发布的minikube。

最新更新