微软披露近期针对Kubernetes集群的新形态挖矿攻击,其恶意容器在2小时内,就感染了数十个Kubernetes集群,微软提供用户数项避免被攻击的建议,包括不要在互联网上暴露Kubernetes仪表板,并且只给与仪表板服务账号必要的权限等。
云计算容器调度工具Kubernetes已经成为标准,被企业大量的使用,而容器化环境的加密货币挖矿攻击也并不少见,通常这些恶意挖矿活动,会在有漏洞的容器中悄悄的运行。而微软提到,他们最近发现的这个挖矿攻击,特别之处在于其规模庞大,恶意容器仅在2个小时内,就被部署到数十个Kubernetes集群上。
这个容器来自于公开存储库中的镜像文件kannix/monero-miner,这个镜像文件执行热门的开源加密货币Monero矿工XMRig。从遥测资料显示,这个容器是以Kubernetes部署控制器kube-control部署,配置文件设置每个集群会执行10个Pod副本(Replicas)。
此外,这个恶意攻击在部署挖矿容器的同时,也会枚举包括Kubernetes秘密信息等集群资源,这将会使连接字符串、密码和其他秘密信息暴露,使其能进行横向移动。微软提到,这个攻击有趣的地方在于,其活动身份使用system:serviceaccount:kube-system:kubernetes-dashboard,而这是仪表板的服务账号,代表恶意容器由Kubernetes仪表板部署,同样的,资源枚举也是由仪表板服务账号启动。
恶意攻击者有三种方式可以使用Kubernetes仪表板,第一种是攻击者扫描暴露在互联网上的仪表板,并加以利用,第二种则是攻击者有办法访问集群里其中一个容器,并使用集群内部网络访问仪表板,而这个行为是Kubernetes默认配置,第三种方法,是攻击者利用云计算和集群凭证合法浏览仪表板。
由于微软Azure安全中心所扫描到受攻击的集群,其仪表板都暴露在互联网上,因此微软认为,这次的攻击是使用暴露在互联网的公开仪表板作为媒介,因此微软建议集群管理者,不要把Kubernetes仪表板暴露在互联网上,因为这同时也代表着,向外暴露其管理接口。微软也建议,集群最好应用RBAC(Role-Based Access Control),使用以角色为基础的访问控制,将能有效限制仪表板服务账号的权限,使其无法部署新容器。
当集群使用仪表板,管理者应该仅授与仪表板服务账户必要的权限,像是当仪表板仅用于监控,就仅给予get权限就好。另外,管理者应仅允许集群使用受信任的镜像文件,从受信任的注册表中,部署受信任的容器。