Kubeflow框架再被用来对Kubernetes集群发动挖矿攻击

微软安全团队本周警告Kubeflow框架近日又发生大规模攻击,被用在Kubernetes集群上挖取门罗(Monero)或以太(Ethereum)币等加密货币。

这是继去年6月微软首次发现Kubeflow仪表板被利用来经由Jupyter notebooks部署恶意容器后,又一次遭到恶意使用。

Kubeflow起初是在Kubernetes上跑TensorFlow的项目,后来成为在Kubernetes执行机器学习作业很受欢迎的框架。但上个月底,微软发现一波针对Kubeflow的攻击,并借道滥用合法的Tensorflow容器上进行采矿。

5月底,微软研究人员发现多个Kubernetes集群上忽然大量添加了TensorFlow pods。这些pods虽然是以官方的Docker Hub账号,但细究pod的入口点(entrypoint),显示它们是采矿用的容器。Tensorflow的大量增加显示攻击者预先扫描网络上的集群,列出可能目标清单,以作为日后采矿的基地。

上个月的攻击中,攻击者一开始是访问Kubeflow中央化仪表板(dashboard)以创建管线(pipeline)。Kubeflow Pipeline是以Argo Workflow为基础发展出部署ML管线的平台。管线是一系列步骤组成的一个ML工作流,每一步骤都是一个独立容器,这些容器的镜像文件是由管线组态来决定。研究人员指出,如果攻击者能访问管线的UI,就能在集群内创建新管线。在本次事件中,容器内执行的TensorFlow镜像文件就被修改来挖矿。

 

攻击者使用了两种镜像文件来跑恶意程序代码,一是最新版TensorFlow,另一为最新版本支持GPU的Tensorflow。研究人员解释,使用TensorFlow并不令人意外。一来TensorFlow容器经常见,不容易被发现拿来做坏事,其实,TensorFlow镜像文件也可通过Nvidia CUDA技术来跑GPU运算作业,以便扩大挖矿收益。

被攻击的Kubernetes集群中,至少都创建了二个恶意容器,一作为CPU采矿,另一作为GPU采矿。前者使用XMRIG来采门罗(Monero)币,后者则使用Ethminer来采以太(Ethereum)币。此外攻击者也部署了侦察目的的容器,来查询环境中的GPU和CPU信息,作为采矿前的准备。

研究人员警告,这波攻击还在持续中,而跑Kubeflow的添加Kubernetes将可能曝险。因此企业或开发人员如果有使用Kubeflow,应确定其仪表板未暴露在互联网上,如果有也应激活验证。此外也应检查所有跑TensorFlow镜像文件的容器,检查这些容器的入口点。