微软公司周三表示,攻击者最近劫持了微软Azure云计算服务内部强大的机器学习集群,以便他们能够挖掘加密货币,代价是租用加密货币的客户的利益。
这些被客户错误配置的节点成为了所谓的加密计划的完美目标。机器学习任务通常需要大量的计算资源。通过重定向它们,让它们执行挖掘数字货币所需的计算密集型工作,攻击者找到了一种以低成本或零成本生成大量货币的方法。
受感染的集群正在运行Kubeflow, Kubeflow是Kubernetes中用于机器学习应用程序的开源框架,它本身是一个用于跨大量计算机部署可扩展应用程序的开源平台。微软表示,它发现的被破坏的集群编号为“10”。他们中的许多人都使用了公共存储库中的图片,表面上是为了避免用户自己创建图片的麻烦。经过进一步检查,微软调查人员发现,它包含的代码暗中挖掘了莫内罗加密货币。
在发现被感染的集群后,调查人员将注意力转向了计算机是如何被入侵的。为了安全起见,默认情况下,允许管理员控制Kubeflow的仪表板只能通过istio ingress访问,istio ingress是一个通常位于集群网络边缘的网关。默认设置阻止Internet上的人访问仪表板并对集群进行未经授权的更改。
在周三发布的一篇文章中,Azure安全中心(Azure Security Center)的安全研究软件工程师约西·魏茨曼(Yossi Weizman)说,一些用户改变了设置。
“我们相信一些用户选择这样做是为了方便,”魏茨曼写道。如果没有这个操作,访问仪表板需要通过Kubernetes API服务器的隧道,而且不是直接的。通过向Internet公开服务,用户可以直接访问仪表板。但是,该操作允许对Kubeflow仪表板进行不安全访问,允许任何人在Kubeflow中执行操作,包括在集群中部署新的容器。”
一旦攻击者能够访问仪表板,他们就有了在集群中部署后台容器的多种选择。例如,攻击者可以创建在集群上运行的所谓的Jupyter笔记本服务器。然后他们可以在木星笔记本中放置一张恶意图片。如果已经安装了木星笔记本,它可以被恶意修改。
周三的帖子提供了几种方法,用户可以检查他们的集群是否受到了威胁。
韦兹曼写道:“Azure安全中心过去曾检测到针对Kubernetes集群的多次攻击,它们都有类似的访问矢量:一种暴露的互联网服务。”“然而,这是我们第一次确定针对库贝特流环境的攻击。”