内容简介:概述在当今的互联网中,错误配置已经不是一个新鲜的话题。然而,网络犯罪分子正持续将其作为一种行之有效的方式来获取组织的计算机资源,并进而将其用于恶意目的,由此导致了一个非常值得关注的安全问题。在本篇文章中,我们将详细介绍一种攻击类型,其中流行的DevOps工具Docker Engine-Community的开源版本中存在一个API配置错误,允许攻击者渗透容器,并运行恶意软件变种。该变种源自Linux僵尸网络恶意软件AESDDoS,由我们部署的蜜罐捕获,检测为“Backdoor.Linux.DOFLOO.AA”
概述
在当今的互联网中,错误配置已经不是一个新鲜的话题。然而,网络犯罪分子正持续将其作为一种行之有效的方式来获取组织的计算机资源,并进而将其用于恶意目的,由此导致了一个非常值得关注的安全问题。在本篇文章中,我们将详细介绍一种攻击类型,其中流行的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面板:
在我们发现的HFS面板中,有一个名为“2375-SYNG口漏洞.zip”的文件,经过分析,发现它是威胁行为者用于扫描互联网特定范围内易受攻击主机的工具。该工具还会产生一些有趣的内容,批处理文件首先执行WinEggDrop扫描程序(s.exe),它在所有主机上尝试针对ip.txt文件中指定的中文IP地址范围扫描2375端口。该命令执行后,其输出结果将被保存到名为ips.txt的文件中,然后将其输入到Docker.exe文件。
“2375-SYNG口漏洞.zip”压缩包中保存的内容:
我们还观察到,威胁行为者滥用了一个名为“Docker Batch Test Tool”(Docker批测试工具)的工具,该工具是为了检测Docker中是否存在漏洞而开发的。
“2375端口Docker批量检测”的屏幕截图:
WinEggDrop端口扫描程序:
在运行Docker.exe工具后,将会向恶意运营者显示以下消息。
Docker扫描程序进度消息:
Docker.exe工具尝试通过/containers/json列出指定计算机中的所有Docker容器。
列出所有可用容器的JSON查询:
随后,它在正在运行的容器中执行命令。下面的JSON字符串中的cmd参数是该工具.zip压缩包中Shell.txt文件的内容。
向正在运行的容器中设置exec实例的查询:
然后,Docker.exe将部署AESDDoS僵尸网络恶意软件,攻击者可以发起多种类型的DDoS攻击,例如SYN、LSYN、UDP、UDPS和TCP Flood。此前,我们已经看到,该恶意软件变种针对易受攻击的Confluence Server和数据中心版本的系统执行DDoS攻击、远程代码执行和加密货币挖掘活动。
AESDDoS在连接到其C&C服务器时显示此消息:
已实现的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
以上所述就是小编给大家介绍的《通过暴露的Docker API渗透容器:AESDDoS僵尸网络恶意软件分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 什么是僵尸进程,如何找到并杀掉僵尸进程?
- BYOB:我的天!又一个僵尸网络开源了BYOB僵尸网络开源代码
- 僵尸扫描
- Linux 系统中僵尸进程
- 追踪分析LiquorBot僵尸网络
- 揭秘Remcos下的僵尸网络
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。