Docker服务器被滥用于释放加密货币挖矿机和DDoS僵尸主机

2020/10/10 14:47:00

       恶意攻击者持续关注和攻击运行Docker容器的目标环境。研究人员近期发现一起攻击使用Alpine Linux的Docker 容器来释放恶意加密货币挖矿机和DDoS 僵尸主机的活动。早在今年5月,研究人员也发现一起类似的攻击活动。


  • 感染链分析

      

        在该攻击活动中,感染首先是从连接到暴露的Docker 服务器开始的,然后创建和运行一个Docker 容器。在Docker 容器中,执行的命令如图1所示:

1599620432144631.png

图 1. 在Docker 容器中执行的命令代码段

       XMI 下载文件是一个bash脚本,如图2所示,会使用/.ssh/known_hosts 中的信息在同一容器网络内传播到其他主机中。

1599620432178689.png

图 2.  攻击中使用的bash脚本代码段

       图3中的命令执行后会下载和执行XMI bash脚本和一个名为“d.py” 的python脚本。

1.png

图 3. 发送给目标的命令代码段

       XMI shell脚本会使用Base64 编码方式来绕过检测。解码后的字符串如图3所示会生成图4中的命令,该命令会下载和执行 d.py。

1.png

图 4. 下载和执行“d.py” 组件的代码段(解码后)

       如图5所示,XMI bash脚本中含有注释的命令的shell脚本看似是通过SSH 暴力破解来传播恶意软件的。攻击活动背后的攻击者过去主要攻击SSH 服务器。

1.png

图 5. XMI bash脚本中含有注释的代码段

       攻击活动使用多种技术来建立驻留。除了设置cron作业外,还会创建自动payload 执行的服务,如图6所示。

1.png

图 6. 使用cron作业来实现驻留的代码段

       创建服务的部分也是base64编码的。解码后会放在/etc/init.d 目录中,如图7所示。

1.png

图 7. 放在/etc/init.d 目录中的脚本解码后的代码段

       研究人员检测到了加密货币挖矿的payload,下载的脚本如图8所示。攻击者使用的加密货币钱包与一起CVE-2019-3396漏洞利用和Apache Struts CVE-2017-5638漏洞利用活动中使用的加密货币钱包相同。

1.png

图 8. 加密货币挖矿payload 下载的代码段

       为检查恶意payload是否成功释放,恶意软件还会用一个计算和验证128位 MD5 哈希值的程序——md5sum。验证方法与Kinsing 恶意软件使用的方法类似。

       此外,攻击活动还会释放一个DDoS 僵尸主机,如图9所示:

1.png

图 9. 下载和执行的释放器脚本代码段

       DDoS 主机的部分后门命令如图10所示,DDoS 主机是基于IRC的,看似是Kaiten的一个变种,其C2 服务器是c4k[.]xpl[.]pwndns[.]pw,104[.]244[.]75[.]25和 107[.]189[.]11[.]170。

1.png

图 10. DDoS 主机后门命令相关的代码段

       d.py会建立驻留和释放加密货币挖矿机以及DdoS 主机payload。D.py代码段如图11所示:

1.png

图 11. d.py Python脚本代码段

       攻击的感染链如图12所示:

1.png

图 12. 攻击活动感染链


  • 安全建议

 

       研究人员给出了一些关于容器安全的最佳安全实践:

 

  1. 部署应用防火墙来增强容器安全,并在威胁进入容器环境前发现。

  2. 最小化第三方软件的使用,使用可验证的软件来确保不会将恶意软件引入容器环境中。

  3. 最小权限原则。容器镜像文件应该进行签名和认证。到关键组件的网络连接和访问应该被限制。

  4. 进行应用控制和完整性监控来发现服务器、文件和系统区域的异常修改。