(文/Palo Alto Networks(派拓网络)威胁情报团队Unit 42)在2019年9月至2019年12月之间,Palo Alto Networks (派拓网络)威胁情报团队Unit 42的研究人员定期扫描并收集了暴露于互联网的Docker主机元数据(很大程度上是由于用户无意造成的),这项研究揭示了攻击者在受感染的Docker引擎中使用的一些策略与技术。在我们的研究中,总共发现了1,400个不安全的Docker主机、8,673个活跃容器、17,927个Docker镜像和15,229个卷。下图1显示了Docker守护进程的位置分布,图2则为使用的Docker版本和操作系统类型。我们的团队通知Docker团队该情况后,Docker团队立即与Unit 42一起快速合作以删除恶意镜像。
图1:暴露的不安全Docker主机位置
图2.不安全的Docker主机版本(左)和操作系统(右)
在过去几年中,容器技术获得了极大的普及,并且正在成为包装、交付和部署新型应用的主流方法。尽管该技术正在迅速发展并被采用,但与此同时也成为攻击者的重要目标。
尽管大多数恶意活动都涉及挖矿劫持(大多数情况下是针对门罗币的挖掘),但一些受感染的Docker引擎却被用来发起其他攻击或在主机上安装黑客程序。还可以从公开的日志中找到敏感信息,例如应用凭证和基础设施配置。我们经常看到的一种有趣的策略是,攻击者将整个主机文件系统安装到一个容器上,并从该容器访问主机操作系统(OS)以对其进行读取/写入。
我们将观察到的恶意活动划分为以下四个类别:
(1)使用恶意代码部署容器镜像。
恶意镜像首先被推送到公共注册表。然后拉取镜像并部署在不安全的Docker主机上。
(2)部署良性容器镜像并在运行时下载恶意有效负载。
良性镜像已部署在Docker主机上。然后在良性容器内下载并执行恶意的有效负载。
(3)在主机上部署恶意负载。
攻击者会将整个主机文件系统安装到一个容器上,然后从该容器访问主机文件系统。
(4)从Docker日志中获取敏感信息。
攻击者会抓取Docker日志以查找敏感信息,例如凭证和配置信息。
图3 观察到的四种恶意活动
结论
本研究针对攻击者在破坏容器平台时使用的策略和技术提供了第一手的一般性观点。我们不仅研究了容器平台中的恶意活动,还研究了检测和阻止这些活动所需的对策。由于大多数漏洞是由不安全的Docker守护进程意外暴露于互联网引起的,因此,一些有效缓解这些漏洞的防御策略包括:
在Docker守护进程socket上配置TLS时,始终强制进行双向身份验证
使用Unix socket在本地与Docker守护进程通信,或使用SSH连接到远程Docker守护进程
仅允许白名单里的客户端IP访问Docker服务器
在Docker中启用内容信任,以便仅拉取经过签名和验证的镜像
扫描每个容器镜像中的漏洞和恶意代码。
部署运行时间保护工具以监测正在运行的容器。