恶意攻击者持续关注和攻击运行Docker容器的目标环境。研究人员近期发现一起攻击使用Alpine Linux的Docker 容器来释放恶意加密货币挖矿机和DDoS 僵尸主机的活动。早在今年5月,研究人员也发现一起类似的攻击活动。
感染链分析
在该攻击活动中,感染首先是从连接到暴露的Docker 服务器开始的,然后创建和运行一个Docker 容器。在Docker 容器中,执行的命令如图1所示:
图 1. 在Docker 容器中执行的命令代码段
XMI 下载文件是一个bash脚本,如图2所示,会使用/.ssh/known_hosts 中的信息在同一容器网络内传播到其他主机中。
图 2. 攻击中使用的bash脚本代码段
图3中的命令执行后会下载和执行XMI bash脚本和一个名为“d.py” 的python脚本。
图 3. 发送给目标的命令代码段
XMI shell脚本会使用Base64 编码方式来绕过检测。解码后的字符串如图3所示会生成图4中的命令,该命令会下载和执行 d.py。
图 4. 下载和执行“d.py” 组件的代码段(解码后)
如图5所示,XMI bash脚本中含有注释的命令的shell脚本看似是通过SSH 暴力破解来传播恶意软件的。攻击活动背后的攻击者过去主要攻击SSH 服务器。
图 5. XMI bash脚本中含有注释的代码段
攻击活动使用多种技术来建立驻留。除了设置cron作业外,还会创建自动payload 执行的服务,如图6所示。
图 6. 使用cron作业来实现驻留的代码段
创建服务的部分也是base64编码的。解码后会放在/etc/init.d 目录中,如图7所示。
图 7. 放在/etc/init.d 目录中的脚本解码后的代码段
研究人员检测到了加密货币挖矿的payload,下载的脚本如图8所示。攻击者使用的加密货币钱包与一起CVE-2019-3396漏洞利用和Apache Struts CVE-2017-5638漏洞利用活动中使用的加密货币钱包相同。
图 8. 加密货币挖矿payload 下载的代码段
为检查恶意payload是否成功释放,恶意软件还会用一个计算和验证128位 MD5 哈希值的程序——md5sum。验证方法与Kinsing 恶意软件使用的方法类似。
此外,攻击活动还会释放一个DDoS 僵尸主机,如图9所示:
图 9. 下载和执行的释放器脚本代码段
DDoS 主机的部分后门命令如图10所示,DDoS 主机是基于IRC的,看似是Kaiten的一个变种,其C2 服务器是c4k[.]xpl[.]pwndns[.]pw,104[.]244[.]75[.]25和 107[.]189[.]11[.]170。
图 10. DDoS 主机后门命令相关的代码段
d.py会建立驻留和释放加密货币挖矿机以及DdoS 主机payload。D.py代码段如图11所示:
图 11. d.py Python脚本代码段
攻击的感染链如图12所示:
图 12. 攻击活动感染链
安全建议
研究人员给出了一些关于容器安全的最佳安全实践:
· 部署应用防火墙来增强容器安全,并在威胁进入容器环境前发现。
· 最小化第三方软件的使用,使用可验证的软件来确保不会将恶意软件引入容器环境中。
· 最小权限原则。容器镜像文件应该进行签名和认证。到关键组件的网络连接和访问应该被限制。
· 进行应用控制和完整性监控来发现服务器、文件和系统区域的异常修改。
本文翻译自:https://www.trendmicro.com/en_us/research/20/i/exposed-docker-server-abused-to-drop-cryptominer-ddos-bot-.html如若转载,请注明原文地址