微软揭露近期针对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权限就好。另外,管理者应仅允许集群使用受信任的镜像,从受信任的仓库中,部署受信任的容器。
参考:https://www.ithome.com.tw/news/136912 https://azure.microsoft.com/zh-tw/blog/detect-largescale-cryptocurrency-mining-attack-against-kubernetes-clusters/