BPFDoor隐蔽控制器在亚洲和中东的攻击活动分析
关键发现
BPFDoor是一种由国家支持的用于网络间谍活动的后门程序。通过调查BPFDoor攻击,我们发现了一个此前未被观测到的控制器,并将其归因于高级持续性威胁(APT)组织Red Menshen(Trend Micro追踪为Earth Bluecrow)。
该控制器能够打开反向Shell,允许攻击者进行横向移动,深入渗透受感染网络,从而控制更多系统或获取敏感数据。
根据我们的遥测数据,近期BPFDoor攻击主要针对电信、金融和零售行业,攻击活动出现在韩国、香港、缅甸、马来西亚和埃及。
BPFDoor具备隐蔽的防御规避技术。Trend Vision One™网络安全为Trend Micro客户提供TippingPoint入侵防御和Deep Discovery Inspector(DDI)规则,以防范此威胁。
(贡献者:Mohammad Mokbel、Daniel Lunghi、Feike Hacquebord和Carl Jayson Peliña)
引言
BPFDoor(检测为Backdoor.Linux.BPFDOOR)是一种具有强大隐蔽能力的后门程序,其多数功能与使用Berkeley包过滤(BPF)技术相关。
在之前的文章中,我们介绍了BPFDoor及基于BPF的恶意软件的工作原理。BPF是一种在操作系统内核虚拟机中执行代码的技术,已有20多年历史,并在2014年eBPF(当时称为扩展BPF)发布后受到广泛关注。
BPFDoor使用BPF的包过滤功能(有时称为经典BPF,cBPF)。BPFDoor恶意软件加载一个能够检查操作系统栈上层网络数据包的过滤器,如netfilter(Linux防火墙)或任何流量捕获工具。
BPFDoor加载的过滤器使恶意软件能够被包含"魔法序列"的网络数据包激活——这是由威胁行为体定义的一组字节序列,指示受感染机器上的后门执行操作。其他恶意软件(如Symbiote)也利用BPF提供类似功能。
由于BPF在目标操作系统中的实现方式,魔法包即使被防火墙阻止也能触发后门。当数据包到达内核的BPF引擎时,它会激活驻留的后门。虽然这些功能在rootkit中常见,但在后门中并不典型。
这样的后门可以在网络中隐藏很长时间,常规安全扫描(如端口扫描)不会发现异常。它还具有规避技术,如更改进程名称和后门不监听任何端口,使系统管理员难以怀疑服务器存在问题。这使得BPFDoor成为长期间谍活动的完美工具。
背景和最新目标
BPFDoor已活跃至少四年,普华永道2021年的一份报告提到了多起涉及该后门的事件。同一报告还将该后门归因于Red Menshen。
根据我们的遥测数据,该高级持续性威胁(APT)组织(Trend Micro追踪为Earth Bluecrow)仍在积极针对亚洲、中东和非洲(AMEA)地区的公司。
日期 | 国家 | 行业 |
---|---|---|
2024年12月 | 韩国 | 电信 |
2024年12月 | 缅甸 | 电信 |
2024年10月 | 马来西亚 | 零售 |
2024年9月 | 埃及 | 金融服务 |
2024年7月 | 韩国 | 电信 |
2024年1月 | 香港 | 电信 |
表1. 2024年BPFDoor攻击目标的国家和行业分布
威胁行为体针对上述组织的Linux服务器。他们使用不同路径隐藏恶意软件,如/tmp/zabbix_agent.log
、/bin/vmtoolsdsrv
和/etc/sysconfig/rhn/rhnsd.conf
。关于初始入口点的调查仍在进行中。
在受攻击的服务器中,我们发现了一个恶意软件控制器,用于在横向移动后访问同一网络中的其他受影响主机。在某些情况下,多台服务器被入侵。
这表明Earth Bluecrow正在积极控制BPFDoor感染的主机,并上传其他工具以供后续使用。这个特定的控制器文件尚未在其他地方被观测到使用。
BPFDoor控制器
控制器揭示了该威胁行为体使用的一些有趣技术细节。
在发送由BPFDoor恶意软件插入的BPF过滤器检查的"魔法包"之前,控制器要求用户输入密码,该密码也将在BPFDoor端进行检查。
根据提供的密码和使用的命令行选项,控制器要求受感染机器执行以下操作之一:
- 打开反向Shell
- 将新连接重定向到特定端口的Shell
- 确认后门处于活动状态
以下是支持的选项列表:
选项 | 描述 |
---|---|
-b | 监听指定的TCP端口(如果收到连接则生成Shell) |
-c | 开启加密 |
-d | 受感染主机上的目标端口(任何开放端口) |
-f | 为TCP或UDP协议设置不同的魔法序列 |
-h | 目标主机(要控制的受感染机器) |
-i | ICMP模式 |
-l | 设置受感染机器将连接的远程主机(反向Shell) |
-m | 将本地IP地址设置为远程主机。覆盖-l选项 |
-n | 不使用密码(检查后门是否存活) |
-o | 将魔法序列设置为0x7155 |
-p | 设置密码。如果缺失,程序将交互式询问 |
-s | 受感染机器将连接的远程端口(反向Shell) |
-t | 未使用 |
-u | UDP模式 |
-w | TCP模式 |
-x | 设置ICMP的魔法序列 |
控制器发送的密码必须与BPFDoor样本中的硬编码值之一匹配。在我们找到的与控制器配对的样本中,恶意软件将明文密码前缀固定盐值,计算其MD5哈希,并与硬编码值比较,如下图所示:
除了使用不同的连接模式外,控制器足够多功能,可以使用BPFDoor支持的三种协议(TCP、UDP和ICMP)控制受感染机器。
对于每种协议,它使用硬编码的魔法序列,但也允许攻击者手动设置(选项-f和-x),这表明威胁行为体考虑了更改魔法字节的可能性,并使控制器准备好与不同的BPFDoor样本配合工作。
除了魔法序列外,密码必须与目标中运行的BPFDoor样本预期的密码之一匹配。连接可以加密(-c),必须提供正确的密码才能使BPFDoor打开Shell或监听端口。
两种连接模式已被现有文章(如技术分析)覆盖;同时,我们的研究从控制器的角度提供了视图。
反向连接模式
TCP模式
为了演示,假设以下场景:攻击者从IP地址为192.168.32.133的机器操作,有一台受感染机器的IP地址为192.168.32.156。以下命令将要求目标机器上运行的BPFDoor打开与攻击者机器在端口8000/tcp的加密反向Shell会话:
|
|
以下是命令行分解:
- -c 开启加密。这是可选的。
- -d 22 设置目标端口为应打开的22/tcp。主机不必接受数据包。这仅用于触发BPFDoor加载的BPF程序,该程序将检查魔法序列。
- -h 172.16.23.129 是目标的IP地址。
- -m 将攻击者机器的外部IP地址设置为反向连接的目标主机。
- -s 8000 设置在攻击者机器上监听传入连接的目标端口。
过程如下:
- 控制器发送包含魔法字节、远程IP地址和端口(供目标连接)以及密码的激活包。
- 由于-m和-s 8000选项,控制器监听端口8000/tcp。
- 目标读取数据包,如果一切正确,它连接到远程IP地址和端口。如果使用-m,远程IP地址将是控制器的IP地址。
- 反向Shell打开。
以下视频演示了我们的模拟,显示此过程在实际中的工作原理:
[视频演示链接]
首先,视频底部显示目标机器。我们首先检查目标的IP地址并运行BPFDoor样本。在同一台机器上,我们使用ss命令再次检查BPF过滤器是否加载。
然后,在攻击者机器上,我们运行控制器并提供目标的IP地址和我们知道开放的SSH端口。输入密码后,反向连接启动。
如视频所示,威胁行为体足够谨慎,禁用Shell中键入的命令和MySQL命令行的日志记录。这是通过以下命令完成的:
|
|
这表明他们专门寻找运行MySQL服务器软件的目标。
在网络层面,我们可以看到控制器发送的第一个TCP包在TCP有效载荷开头包含默认的TCP魔法序列0x5293。它还包含我们输入的"justrobot"密码,如下所示:
图3中高亮显示的行显示以下内容:
- 52 93 00 00 – 用于TCP的魔法字节:0x5293
- c0 a8 20 85 – 远程IP地址设置为192.168.32.133,因为我们使用了-m选项
- 1f 40 – 远程端口设置为8000
- “justrobot” – 未加密的密码
防御者应监视包含32位大小0x5293的TCP包,位于24字节TCP有效载荷开头,后跟32位IPv4地址、16位端口号和以空字符结尾的ASCII字符串。
然而,需要注意的是,需要更深入的数据包分析以避免误报。此外,魔法字节可以通过-f和-x选项轻松更改。在之前的文章中,我们还介绍了使用序列0x39393939进行TCP的样本。
对于-d选项,任何开放端口都可以工作,包括UDP端口。
UDP模式
以下命令使用avahi-daemon进程打开的端口5353/udp:
|
|
唯一的区别是-u选项,它导致控制器使用UDP而不是默认的TCP协议。在这种情况下,防御者应查找在UDP有效载荷开头包含魔法序列0x7255的UDP包。以下截图显示在Wireshark中捕获的流量:
防御者应查找以32位大小0x7255开头的UDP有效载荷。
ICMP模式
如果目标中没有开放的TCP或UDP端口(对于面向互联网的服务器来说非常不可能),攻击者仍然可以尝试通过ICMP连接到目标。可能的命令如下:
|
|
虽然端口号(-d选项)是必需的,但在这种情况下不重要。
图5显示包含0x7255魔法序列和密码的ICMP Echo请求(ping)。反向Shell使用TCP打开。
对于每次感染,用于验证控制器的密码可能不同。因此,编写依赖密码的基于文件或基于网络的检测规则并不有效。
直接模式
为了使威胁行为体更容易,控制器能够直接连接到受感染机器并在其上获取Shell,而无需任何反向连接。为实现此目的,可能的命令行是:
|
|
必须提供正确的密码以激活直接模式。一旦检查密码,BPFDoor恶意软件使用一系列iptables命令将来自控制器IP地址的新连接重定向到目标端口(在我们的示例中为22/tcp)到受感染主机上42391至43390之间的第一个可用端口,BPFDoor将在该端口提供Shell。命令如下:
|
|
控制器等待几秒钟让更改在受感染机器上生效,然后尝试连接到相同的IP地址和端口(此时可能已重定向)。
为避免中断绑定到TCP端口的合法服务(在我们的示例中为SSH),BPFDoor恶意软件删除先前添加的iptables规则。当它删除规则时,攻击者已经连接并能够运行任何命令。以下视频显示此模式在我们实验室中的工作:
[视频演示链接]
直接连接模式仅适用于TCP。由于控制器期望特定响应,防御者可能查找包含4字节TCP有效载荷(包含字符串"3458")的出站TCP包:
归因
基于TTP、目标行业、该特定控制器未在其他地方被看到的事实,以及其与BPFDoor使用的编码风格和编程语言的相似性,我们将涉及该控制器的活动以中等置信度归因于Earth Bluecrow。自2022年BPFDoor恶意软件源代码泄露以来,尚未有其他活动可归因于Earth Bluecrow。
展望和结论
BPFDoor使用BPF触发后门。此类过滤器还有其他恶意用途。如前所述,Symbiote恶意软件使用BPF过滤器防止在流量捕获中被检测到。
BPF为恶意软件作者开辟了未探索可能性的新窗口。作为威胁研究人员,必须通过分析BPF代码为未来发展做好准备,这将有助于保护组织免受BPF驱动的威胁。
此外,重要的是要记住BPF不仅影响Linux系统。例如,有一个针对Solaris编译的BPFDoor样本利用CVE-2019-3010,并且有将eBPF引入Windows的努力。这需要更深入的研究和持续警惕,以获取更多关于在其他环境中发起的攻击的洞察。
使用Trend Vision One™进行主动安全
Trend Vision One™是唯一一个AI驱动的企业网络安全平台,集中了网络风险暴露管理、安全操作和强大的分层保护。这种全面方法帮助您预测和预防威胁,加速整个数字资产的主动安全结果。
凭借数十年的网络安全领导力和Trend Cybertron(行业首个主动网络安全AI),它提供了经过验证的结果:勒索软件风险降低92%,检测时间减少99%。安全领导者可以基准化其态势并向利益相关者展示持续改进。
借助Trend Vision One,您能够消除安全盲点,专注于最重要的事情,并将安全提升为创新的战略合作伙伴。
Trend保护
Trend Micro客户通过以下规则和过滤器受到博客条目中提到的威胁的保护:
Trend Vision One™网络安全
Deep Discovery Inspector (DDI)
- 5360: ICMP_BPFDOOR_REQUEST.APT
TippingPoint入侵防御
- 45583: ICMP: Backdoor.Linux.Bpfdoor.USELVH222运行时检测(入口-激活包)
- 45589: Backdoor.Linux.Bpfdoor.USELVH222运行时检测(入口-激活包)
- 45590: Backdoor.Linux.Bpfdoor.USELVH222运行时检测(入口-激活包)
Trend Vision One威胁情报
为了领先于不断演变的威胁,Trend Vision One客户可以访问一系列情报报告和威胁洞察。威胁洞察帮助客户在网络安全威胁发生之前保持领先,并通过提供关于威胁行为体、其恶意活动及其技术的全面信息,让他们为新兴威胁做好准备。通过利用此情报,客户可以采取主动步骤保护其环境、减轻风险并有效响应威胁。
Trend Vision One情报报告应用[IOC扫描]
- Earth Bluecrow活动中使用的BPFDoor IOC
Trend Vision One威胁洞察应用
- 威胁行为体:Earth Bluecrow
- 新兴威胁:BPFDoor的隐蔽控制器用于针对AMEA目标
狩猎查询
Trend Vision One搜索应用 Trend Vision One客户可以使用搜索应用匹配或狩猎博客帖子中提到的恶意指标与其环境中的数据。
|
|
所有Trend客户应查找检测为以下内容的文件:
- Backdoor.Linux.BPFDOOR
危害指标(IOC)
此条目的危害指标可在此处找到。