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

时间:2018-08-06 13:38:35

标签: csrf minikube

使用--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

为什么主机容易受到攻击?这样的攻击如何工作?

2 个答案:

答案 0 :(得分:5)

跨站点伪造是一种攻击:

  

诱使用户不小心使用其凭据来调用状态更改活动

自变量--vm-driver=none

  

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

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

我认为最危险的部分是:--vm-driver=none以root身份公开整个过程。您的kubeapi以root身份运行。如果攻击者可以利用它来控制运行在以root用户身份运行的内核中的进程,并且众所周知,这将使攻击者成为系统的所有者,并且不仅可以成为CSFR攻击的网关。 >

另外值得一提的是,安全性不是minikube中的优先考虑的问题,因为如果您想更关注安全性,可以考虑使用kubeadm,它是主要的学习工具:

  

是一个工具包,用于引导最佳实践的Kubernetes集群在   现有基础架构。

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

Harden master API against web attacks #10351

这是我能够找到的,我建议您尝试在GitHub上询问开发人员,以解决问题以获取更准确的信息。

答案 1 :(得分:0)

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

安全性降低 minikube启动可能在Internet上可用的服务。请确保您具有防火墙以保护主机免受意外访问。例如: apiserver侦听TCP *:8443 kubelet侦听TCP *:10250和*:10255 kube-scheduler侦听TCP *:10259 kube-controller监听TCP *:10257 容器可以完全访问您的文件系统。 容器可以使用诸如CVE-2019-5736之类的容器转义漏洞在主机上执行任意代码。请保持最新的minikube版本。