错误配置K8s机器学习框架Kubeflow易招来挖矿攻击

Posted K8S中文社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误配置K8s机器学习框架Kubeflow易招来挖矿攻击相关的知识,希望对你有一定的参考价值。

微软的Azure信息安全中心检查到新的一波对Kubernetes集群的 挖矿攻击 ,主要针对Kubernetes机器学习工具包Kubeflow,微软发现已经有数十个Kubernetes集群受到挖矿攻击影响。

Kubeflow是一个开源项目,最初是使TensorFlow能够在Kubernetes上运作的项目,但随着项目发展,Kubeflow已经发展成为Kubernetes机器学习的热门框架,微软提到,由于用于机器学习工作节点的运算能力,通常比起其他用途节点相对强大,并且在部分情况还会附加GPU,因此是采矿攻击的绝佳目标。

微软在4月时观察到,不同集群都从一个公共储存库部署了可疑的镜像,深入分析该镜像,发现其内含XMRIG挖矿程序,微软还在公开库中,发现了其他拥有不同挖矿配置的镜像。部署这些恶意镜像的集群,几乎都在执行Kubeflow,因此微软表示,这代表攻击者把机器学习框架当作攻击的进入点。

Kubeflow框架包含了各种服务,例如训练模型的框架、Katib以及Jupyter Notebook等,而Kubeflow是一个容器化服务,各种任务在集群中都会以容器的形式执行,因此当攻击者能够以特定方式存取Kubeflow,便能以多种方式在集群中执行恶意代码。

Kubeflow框架中还区分不同的命名空间,以表示Kubeflow服务集合,而这些命名空间会被翻译为Kubernetes命名空间,用来部署资源。预设情况下,仪表板只能通过Istio的Ingress闸道供内部存取,用户需要利用通讯转发(Port Forwarding)服务来存取仪表板,但在部分情况下,当用户将Istio服务配置修改为Load-Balancer,而这会使服务直接暴露在公共网络中。

微软提到,用户这么做通常是因为方便操作,否则存取仪表板还需要通过Kubernetes API服务器建立通道,但只要把服务公开在网络中,用户就可以直接存取仪表板,不过这样的操作并不安全,因为这让任何人都可以在Kubeflow中执行操作,包括在集群中部署新容器,只要攻击者有权限存取仪表板,就有多种方法在集群中部署后门容器。

微软过去侦测到多个针对Kubernetes集群的攻击行动,皆使用类似的存取方式,也就是入侵公开在网络上的服务,而这次则是微软首次侦测到针对Kubeflow框架的攻击行动。

微软提醒集群管理者,在部署Kubeflow这类服务的时候,除了要对应用程序使用身份验证和存取控制之外,也不要将连接字符串直接暴露在网络上,并且还要监控执行环境,包括监控正在执行的容器和程序,而且应该限制集群只能部署受信任的镜像。

参考链接:
https://www.ithome.com.tw/news/138238
https://www.microsoft.com/security/blog/2020/06/10/misconfigured-kubeflow-workloads-are-a-security-risk/



END

Kubernetes CKA实战培训班推荐:


以上是关于错误配置K8s机器学习框架Kubeflow易招来挖矿攻击的主要内容,如果未能解决你的问题,请参考以下文章

6-机器学习场景下Volcano集成调度能力实践

使用Kubeflow构建机器学习流水线

使用Kubeflow构建机器学习流水线

开源Kubeflow:在Kubernetes上运行机器学习

Yarn已过时!Kubeflow实现机器学习调度平台才是未来

轻松扩展机器学习能力:如何在Rancher上安装Kubeflow