通过暴露的Docker API渗透容器:AESDDoS僵尸网络恶意软件分析 - 嘶吼 RoarTalk – 回归最本质的信息安全,互联网安全新媒体,4hou.com
2019-07-02 09:51:49 Author: www.4hou.com(查看原文) 阅读量:180 收藏

导语:在本篇文章中,我们将详细介绍一种攻击类型,其中流行的DevOps工具Docker Engine-Community的开源版本中存在一个API配置错误,允许攻击者渗透容器,并运行恶意软件变种。

概述

在当今的互联网中,错误配置已经不是一个新鲜的话题。然而,网络犯罪分子正持续将其作为一种行之有效的方式来获取组织的计算机资源,并进而将其用于恶意目的,由此导致了一个非常值得关注的安全问题。在本篇文章中,我们将详细介绍一种攻击类型,其中流行的DevOps工具Docker Engine-Community的开源版本中存在一个API配置错误,允许攻击者渗透容器,并运行恶意软件变种。该变种源自Linux僵尸网络恶意软件AESDDoS,由我们部署的蜜罐捕获,检测为“Backdoor.Linux.DOFLOO.AA”。

在容器主机上运行的Docker API允许主机接收所有与容器相关的命令,以root权限运行的守护程序将会执行。无论是由于错误配置还是故意设置,允许外部访问API接口将会导致攻击者可以获得主机的所有权,从而使得他们能够利用恶意软件感染在主机中运行的实例,并进一步获得对用户服务器和硬件资源的远程访问权限。此前,我们曾经发现过网络犯罪分子对公开暴露的Docker主机进行利用,可能会在其中部署加密货币挖掘的恶意软件。

参考阅读:

容器安全——检查对容器环境的潜在威胁

攻击方法

在此次新型攻击中,威胁行为者首先通过向2375端口发送TCP SYN数据包来对指定的IP范围进行外部扫描,2375端口是与Docker守护进程进行通信的默认端口。一旦该扫描过程中识别出开放的端口,则会建立一个要求运行容器的连接。当其发现正在运行的容器时,会使用docker exec命令部署AESDDoS僵尸软件,该命令允许通过Shell访问公网暴露主机中所有符合要求的运行中容器。因此,恶意软件将在已经运行的容器内执行,同时试图隐藏其自身的存在。

工具和Payload分析

在对我们的蜜罐收到的查询进行检查时,我们注意到,从HTTP文件服务器(HFS)面板中发现一个文件的链接。众所周知,在过去,可访问的HFS面板经常会被来自中国的威胁行为者滥用,以托管他们的恶意二进制文件,例如ELF Linux/BillGates.Lite恶意软件,以及像Elknot/Setag、MrBlack和Gafgyt这样的僵尸网络。

包含托管恶意软件和工具列表的HFS面板:

1.png

在我们发现的HFS面板中,有一个名为“2375-SYNG口漏洞.zip”的文件,经过分析,发现它是威胁行为者用于扫描互联网特定范围内易受攻击主机的工具。该工具还会产生一些有趣的内容,批处理文件首先执行WinEggDrop扫描程序(s.exe),它在所有主机上尝试针对ip.txt文件中指定的中文IP地址范围扫描2375端口。该命令执行后,其输出结果将被保存到名为ips.txt的文件中,然后将其输入到Docker.exe文件。

“2375-SYNG口漏洞.zip”压缩包中保存的内容:

2.png

我们还观察到,威胁行为者滥用了一个名为“Docker Batch Test Tool”(Docker批测试工具)的工具,该工具是为了检测Docker中是否存在漏洞而开发的。

“2375端口Docker批量检测”的屏幕截图:

3.png

WinEggDrop端口扫描程序:

4.png

在运行Docker.exe工具后,将会向恶意运营者显示以下消息。

Docker扫描程序进度消息:

5.png

Docker.exe工具尝试通过/containers/json列出指定计算机中的所有Docker容器。

列出所有可用容器的JSON查询:

6.png

随后,它在正在运行的容器中执行命令。下面的JSON字符串中的cmd参数是该工具.zip压缩包中Shell.txt文件的内容。

向正在运行的容器中设置exec实例的查询:

7.png

然后,Docker.exe将部署AESDDoS僵尸网络恶意软件,攻击者可以发起多种类型的DDoS攻击,例如SYN、LSYN、UDP、UDPS和TCP Flood。此前,我们已经看到,该恶意软件变种针对易受攻击的Confluence Server和数据中心版本的系统执行DDoS攻击、远程代码执行和加密货币挖掘活动。

AESDDoS在连接到其C&C服务器时显示此消息:

8.png

已实现的DDoS方法列表:

· TCP_Flood(void *)

· UDPS_Flood(void *)

· CC2_Flood(void *)

· CC3_Flood(void *)

· CC_Flood(void *)

· UDP_Flood(void *)

· LSYN_Flood(void *)

· SYN_Flood(void *)

· getlocalip(void)

· DNS_Flood3(void *)

· DNS_Flood2(void *)

· DNS_Flood1(void *)

· DNS_Flood4(void *)

DevOps安全建议和解决方案

Docker官方明确警告,避免将Docker守护程序设置为2375端口侦听,因为这会使得任何人都能够获取运行守护程序的主机的root访问权限,因此我们必须严格限制对API和地址的访问。

为了防范基于容器的安全事件发生,组织可以遵循以下原则:

1、检查API配置。系统管理员和开发人员应该确保将API设置为仅从指定主机或内部网络接收请求。并且,应该使用HTTPS和证书保护API终端。

2、实施最小特权原则。应当确保对容器映像进行签名和身份验证。应该限制针对关键组件的访问,例如协助运行容器的守护程序服务等。此外,网络连接也应该进行加密。

3、遵循推荐的最佳实践方案。Docker提供了一个全面的最佳实践清单,其中包含专业人员可以利用的内置安全功能,系统管理员和开发人员应当根据此清单进行部署。

4、使用自动运行时和映像扫描噢工具,来进一步增强对容器的进程的可视性。这样可以帮助确认进程是否已经被篡改,或者它是否具有漏洞。此外,应用程序控制和完整性监控将有助于管理员密切关注服务器、文件和系统区域是否发生异常的改动。

使用混合云安全解决方案,可以在组织内部的DevOps过程中提供强大、简单和自动化的安全性保障,同时提供多种XGen威胁防御技术,以保护运行时物理、虚拟和云工作负载。此外,通过服务器深度安全防护系统解决方案和服务器深度安全防护系统智能检查,可以加强对容器的保护,该解决方案可以在开发过程的任何时间间隔内扫描Docker容器映像中是否存在恶意软件。

IoC

SHA-256:643B16F4F6228BE95736A9F37FA9B527CA831EA7AE998CFA6725ECD426C8B4E1

8909895D92C4544A423C70995F9673987F791F7ACB9FE4843E0C6940D7739897

检测名称:Backdoor.Linux.DOFLOO.AA

文件名称:Payload

SHA-256:F8FB19F075831C1FCDD780C8283E751B8B4D35D3635E048CDE244F8D52C1243C

检测名称:Trojan.Win32.PARITE.AC

文件名称:Batch file(批处理文件)

SHA-256:DCE9A06646113DEC4AEC515B3C9A3C9EAB9D20CCA45BEEA015281C376C09B3D7

检测名称:PE_VIRUX.O

文件名称:s.exe

SHA-256:BF8BB06B694E775DCA1EB64B4EE4AFD243E4EAED0A03219A9BB175FF1DC5F280

检测名称:PE_PARITE.A

文件名称:Docker.exe 

本文翻译自:https://blog.trendmicro.com/trendlabs-security-intelligence/aesddos-botnet-malware-infiltrates-containers-via-exposed-docker-apis/如若转载,请注明原文地址: https://www.4hou.com/malware/18596.html


文章来源: https://www.4hou.com/malware/18596.html
如有侵权请联系:admin#unsafe.sh