来源: BPFdoor in Telecom Networks: Sleeper Cells in the backbone
电信网络中的 BPFdoor:骨干网中的休眠小区
执行概要
在全球电信网络中秘密接入的战略定位
Rapid7 Labs历时数月的调查发现,一个名为“红门神”的与中国关系密切的高级网络威胁组织,在电信网络中部署了该团队迄今为止发现的最隐蔽的数字休眠小组。这些行动的目标是进行高级别的间谍活动,包括针对政府网络的攻击。
电信网络是数字世界的中枢神经系统。它们承载着政府通信,协调着关键产业,并支撑着数十亿人的数字身份。一旦这些网络遭到破坏,其后果将远远超出单个运营商或地区。这种级别的网络攻击理应引起国家层面的关注,因为它不仅危及一家公司或机构,更关乎全体民众的通信安全。
过去十年间,多个国家都曾报告过电信入侵事件。在一些案例中,国家支持的黑客获取了通话记录,监控了敏感通信,并利用了运营商之间的可信互联。虽然这些事件通常看似孤立,但一种更广泛的模式正在逐渐显现。
为什么电信网络是战略间谍目标
电信基础设施提供了独特的战略优势。
现代电信网络是由路由系统、用户管理平台、认证服务、计费系统、漫游数据库和合法拦截能力等多层生态系统组成的。这些系统依赖于诸如SS7、Diameter和SCTP等专用信令协议,以协调跨越国家和国际边界的身份、移动性和连接性。
在这些环境中,持续访问权限所带来的危害远不止传统的数据泄露。潜伏在电信核心网的攻击者可以获取用户标识符、信令流、认证交换、移动事件和通信元数据。在最令人担忧的情况下,这种级别的访问权限可能支持长期情报收集、大规模用户跟踪以及对涉及高价值地缘政治目标的敏感通信进行监控。
电信网络处于身份、移动性和全球互联性的交汇点。这一层面的任何妥协都将产生国家和国际层面的影响。
这是一场有组织的行动,而非孤立事件。
看似零星的入侵事件越来越像是一种可重复的攻击模式,旨在建立对电信基础设施的持续访问。
我们的调查揭露了一起与中国有关联的威胁行为者长期持续进行的攻击行动。这些攻击者似乎并非进行短期入侵活动,而是专注于长期部署,他们在电信和关键环境中深度植入隐蔽的访问机制,并长期维持这些机制的运行。
实际上,攻击者正在电信骨干网内部放置休眠单元:这些休眠的立足点在投入使用之前就已经被部署到位。
在各项调查和公开报告中,我们观察到一些反复出现的要素:内核级植入程序、被动后门、凭证窃取工具和跨平台命令框架。这些组件共同构成了一个持久访问层,其目的不仅在于入侵网络,更在于潜入并控制网络。
BPFdoor 如何实现隐蔽、深入的持久化
这项活动的核心是 BPFdoor,这是一个隐蔽的 Linux 后门,旨在操作系统内核中运行。
与传统恶意软件不同,BPFdoor 不会暴露监听端口或维护可见的命令与控制通道。相反,它利用伯克利数据包过滤器 (BPF) 的功能直接在内核内部检查网络流量,并且仅在收到精心构造的触发数据包时才会激活。它没有持续监听器或明显的信标信号。最终,它会在操作系统内部嵌入一个隐藏的后门。
这种方法代表了隐蔽作战技术的转变。由于植入物位于许多传统可见层之下,即使防御者知道该寻找什么,也很难被发现。
我们的研究表明,BPFdoor 不是一个孤立的工具,而是针对大规模电信环境的更广泛的入侵模型的一部分。
攻击者如何获得对电信环境的初始访问权限
这些发现反映了攻击者攻击手段的更广泛演变。攻击者正在将植入程序更深层地嵌入到计算堆栈中——目标是操作系统内核和基础设施平台,而不仅仅依赖于用户空间恶意软件。
电信环境——由裸机系统、虚拟化层、高性能设备和容器化的 4G/5G 核心组件组成——为低噪声、长期持久性攻击提供了理想的场所。通过与合法硬件服务和容器运行时环境融合,植入程序可以绕过传统的终端监控,并在很长一段时间内保持不被察觉。
对于防御者而言,其影响十分重大。许多组织缺乏对 Linux 系统内核级操作、原始数据包过滤行为以及异常高端口网络活动的可见性。应对这一威胁需要将防御可见性扩展到传统边界之外,从而对操作系统行为和基础架构层进行更深入的检查。
负责任地分享情报
我们正在进行调查以确定潜在受害者,一旦发现潜在的安全漏洞,我们将通过相关部门或直接与客户沟通的方式通知受影响方。
作为我们负责任的研究流程的一部分,我们与政府合作伙伴和国家应急响应小组 (CERT) 合作,分享与此活动相关的研究结果和指标。当我们的分析发现可能受到影响的基础设施时,我们主动通知了相关机构,并在研究仍在进行时提供了检测指导,以协助其开展调查和应对工作。
Rapid7 Intelligence Hub 的客户可以访问平台内的完整技术细节和入侵指标,包括 Surricata 规则。这些规则也可通过 AWS Marketplace 获取,我们在该平台上提供精心挑选的 AWS 防火墙规则集。
技术分析
接下来的章节将探讨现代电信网络的结构、初始接入的建立方式,以及 BPFdoor 和相关工具如何在电信骨干网内部实现基础设施级持久性。
现代电信网络结构
为了理解电信环境为何如此具有战略吸引力,将其分层架构可视化(图 2)会有所帮助。最外层是面向客户的服务和接入基础设施:移动基站(RAN)、光纤汇聚路由器、宽带网关、DNS 服务、短信控制器、漫游网关、防火墙、代理、VPN 等安全设备以及互联网对等连接点。这些边缘系统连接到运营商的 IP 核心网和传输骨干网,其中高容量路由器和交换机负责跨区域和国际边界传输海量的语音、数据和信令流量。
更深层的结构是控制平面,它是电信网络的核心,围绕着用户管理系统(例如 HLR/HSS 或 UDM)、认证平台 (AuC)、策略控制功能、计费系统、合法拦截平台和漫游数据库构建而成。这些系统使用专用的电信信令协议进行通信,例如 SS7、Diameter,以及越来越多地用于 LTE 和 5G 核心组件的基于 SCTP 的信令。在底层,大部分基础设施最终运行在经过加固但通常是标准的基于 Linux 或 BSD 的裸机服务器、虚拟化堆栈和高性能网络设备上。当攻击者在这些环境的内核层植入持久性后门时,他们不仅仅是攻破了服务器,而是将自身置于用户数据、信令流以及用于认证和路由国内和国际通信的机制附近。
初始访问
电信入侵很少从核心系统深处开始。相反,攻击者通常专注于暴露的边缘服务和面向互联网的基础设施。诸如利用面向公众的应用程序(T1190)和滥用合法账户(T1078)等技术屡见不鲜。常见的攻击目标包括:Ivanti Connect Secure VPN 设备、Cisco IOS 和 JunOS 网络设备、Fortinet 防火墙、VMware ESXi 主机、Palo Alto 设备,甚至包括 Apache Struts 等面向 Web 的平台。这些系统位于外部流量和内部电信环境的边界,因此是极具价值的入口点。一旦被攻破,它们就能提供进入运营商网络的认证路径,而且通常不会触发传统的端点检测机制。
让我们重点介绍一下我们在初始访问期间观察到的一些工具,并尝试获取更多横向移动的凭证。
CrossC2
一旦获得初始访问权限,运营商通常会部署与 Linux 兼容的信标框架,例如 CrossC2。这款源自 Cobalt Strike 的加载器可在 Linux 主机上启用信标功能,并已在与中国相关的入侵活动中反复出现。它提供与 Windows 环境中常见的后渗透能力相同的功能,例如命令执行、横向移动和部署,但专为 Linux 为主的电信基础设施量身定制。CrossC2 使运营商能够融入构成电信运营骨干的服务器环境,特别是边缘设备和核心路由系统。与 CrossC2 配置一样,调查可以发现 C2 服务器。例如:
TinyShell
为了实现长期持久化,攻击者通常依赖 TinyShell,这是一个开源的被动后门框架,已被多个 APT 组织重新利用和定制。TinyShell 经常出现在防火墙、VPN 设备和虚拟化主机等边界设备上。它编译后可用于 Linux 和 FreeBSD 系统,其设计以隐蔽性为核心:网络占用空间极小、采用被动通信模式,并具备可靠的远程命令执行能力。
键盘记录器和暴力破解器
立足之后,攻击者会专注于持久化和横向移动。他们会使用 Sliver、CrossC2 和 TinyShell 等工具,并辅以 SSH 暴力破解器和基于 ELF 的定制键盘记录器。在某些情况下,运营商会部署包含预填充凭证列表的暴力破解工具,这些列表是专门针对电信环境定制的,甚至包含诸如“imsi”(用户身份识别系统)之类的特定用户名。这种程度的上下文感知表明,攻击者会进行侦察,并根据电信运营术语进行目标定位。他们的目标很明确:横向移动,窃取凭证,并最终到达用户数据和信令基础设施所在的控制平面系统。
BPF门
BPFDoor 大约在 2021 年首次引起公众广泛关注,当时研究人员发现了一个隐蔽的 Linux 后门,该后门被用于针对电信和政府网络的长期间谍活动。据报道,BPFDoor 的源代码在 2022 年泄露到网上,使得这个原本专用的 Linux 后门更容易被其他威胁行为者利用。通常,BPF 被 tcpdump 或 libpcap 等工具用于捕获特定的网络流量,例如过滤 TCP 端口 443。它部分运行在内核空间,这意味着它会在数据包到达用户空间应用程序之前对其进行处理。
BPFdoor 滥用了这一特性。它并非绑定到可见的监听端口,而是在内核中安装一个自定义的 BPF 过滤器,用于检查传入数据包是否符合特定模式——一段预定义的字节序列,通常被称为“魔术包”或“魔术字节”。如果模式不匹配,则不会发生任何事情。流量照常进行,没有开放端口,也没有明显的进程接受连接。但是,当正确的字节序列被发送到正确的目标端口时,行为会立即改变。
想象一下,你从一个安全的自提柜里取包裹。这个自提柜静静地矗立在公共场所,没有警报,也没有任何明显的活动迹象。只有输入正确的密码,它才会打开。
BPFdoor 的行为方式相同。
该植入程序潜伏在 Linux 内核中,被动地检查网络流量。它不会自我广播,也不会响应扫描。但是,当操作员发送正确的“代码”(嵌入在精心构造的数据包中的特定魔术字节序列)时,BPF 过滤器会识别该模式并触发下一阶段。
它不会打开物理门,而是生成一个绑定 shell 或反向 shell。重要的是,这种激活过程无需任何传统的监听服务出现在 netstat 或 ss 的输出中。对于防御者而言,系统看起来一切正常;没有持续开放的端口可供检测。
在我们展示这一点之前,需要注意的是,BPFdoor 操作由两个不同的组件构成:植入体和控制器。
该植入程序是部署在受感染Linux系统上的被动后门,它会安装恶意BPF过滤器,并静默检查传入流量中是否存在预定义的“魔术”数据包。它不会持续发送信标或暴露监听端口,因此极其隐蔽。
另一方面,控制器由攻击者操控,负责构造并发送特殊格式的数据包,以激活后门并建立远程 shell。虽然它可以运行在攻击者控制的基础设施上,例如被入侵的路由器或外部系统,但控制器也被设计成可以在受害者的环境中运行。在这种模式下,它可以伪装成合法的系统进程,并通过发送激活数据包或打开本地监听器来接收 shell 连接,从而在内部主机上触发其他植入程序,有效地实现受控的横向移动。本质上,植入程序就像嵌入在系统中的隐藏锁,而控制器则像钥匙一样可以打开它。关于控制器架构及其在横向移动中的作用的更深入的技术分析将在即将发布的科技博客中进行。
为了演示这些后门的工作原理,我们制作了以下视频,其中我们运行了一个可见的 BPFdoor。接下来,我们向监听的 IP 地址和端口发送魔术包和指令。然后,BPFdoor 打开“安全”区域并创建隧道。在演示的最后部分,我们可以看到,在我们的 Netcat 监听器上,我们获得了一个远程 shell,并且可以查询系统。
执行概要
在全球电信网络中秘密接入的战略定位
Rapid7 Labs历时数月的调查发现,一个名为“红门神”的与中国关系密切的高级网络威胁组织,在电信网络中部署了该团队迄今为止发现的最隐蔽的数字休眠小组。这些行动的目标是进行高级别的间谍活动,包括针对政府网络的攻击。
电信网络是数字世界的中枢神经系统。它们承载着政府通信,协调着关键产业,并支撑着数十亿人的数字身份。一旦这些网络遭到破坏,其后果将远远超出单个运营商或地区。这种级别的网络攻击理应引起国家层面的关注,因为它不仅危及一家公司或机构,更关乎全体民众的通信安全。
过去十年间,多个国家都曾报告过电信入侵事件。在一些案例中,国家支持的黑客获取了通话记录,监控了敏感通信,并利用了运营商之间的可信互联。虽然这些事件通常看似孤立,但一种更广泛的模式正在逐渐显现。
为什么电信网络是战略间谍目标
电信基础设施提供了独特的战略优势。
现代电信网络是由路由系统、用户管理平台、认证服务、计费系统、漫游数据库和合法拦截能力等多层生态系统组成的。这些系统依赖于诸如SS7、Diameter和SCTP等专用信令协议,以协调跨越国家和国际边界的身份、移动性和连接性。
在这些环境中,持续访问权限所带来的危害远不止传统的数据泄露。潜伏在电信核心网的攻击者可以获取用户标识符、信令流、认证交换、移动事件和通信元数据。在最令人担忧的情况下,这种级别的访问权限可能支持长期情报收集、大规模用户跟踪以及对涉及高价值地缘政治目标的敏感通信进行监控。
电信网络处于身份、移动性和全球互联性的交汇点。这一层面的任何妥协都将产生国家和国际层面的影响。
这是一场有组织的行动,而非孤立事件。
看似零星的入侵事件越来越像是一种可重复的攻击模式,旨在建立对电信基础设施的持续访问。
我们的调查揭露了一起与中国有关联的威胁行为者长期持续进行的攻击行动。这些攻击者似乎并非进行短期入侵活动,而是专注于长期部署,他们在电信和关键环境中深度植入隐蔽的访问机制,并长期维持这些机制的运行。
实际上,攻击者正在电信骨干网内部放置休眠单元:这些休眠的立足点在投入使用之前就已经被部署到位。
在各项调查和公开报告中,我们观察到一些反复出现的要素:内核级植入程序、被动后门、凭证窃取工具和跨平台命令框架。这些组件共同构成了一个持久访问层,其目的不仅在于入侵网络,更在于潜入并控制网络。
Actors-tools-regions-graph-threat-groups-telecom-sector.png
图 1:针对电信行业的特定威胁组织所使用的行动者、工具和地区
BPFdoor 如何实现隐蔽、深入的持久化
这项活动的核心是 BPFdoor,这是一个隐蔽的 Linux 后门,旨在操作系统内核中运行。
与传统恶意软件不同,BPFdoor 不会暴露监听端口或维护可见的命令与控制通道。相反,它利用伯克利数据包过滤器 (BPF) 的功能直接在内核内部检查网络流量,并且仅在收到精心构造的触发数据包时才会激活。它没有持续监听器或明显的信标信号。最终,它会在操作系统内部嵌入一个隐藏的后门。
这种方法代表了隐蔽作战技术的转变。由于植入物位于许多传统可见层之下,即使防御者知道该寻找什么,也很难被发现。
我们的研究表明,BPFdoor 不是一个孤立的工具,而是针对大规模电信环境的更广泛的入侵模型的一部分。
攻击者如何获得对电信环境的初始访问权限
这些发现反映了攻击者攻击手段的更广泛演变。攻击者正在将植入程序更深层地嵌入到计算堆栈中——目标是操作系统内核和基础设施平台,而不仅仅依赖于用户空间恶意软件。
电信环境——由裸机系统、虚拟化层、高性能设备和容器化的 4G/5G 核心组件组成——为低噪声、长期持久性攻击提供了理想的场所。通过与合法硬件服务和容器运行时环境融合,植入程序可以绕过传统的终端监控,并在很长一段时间内保持不被察觉。
对于防御者而言,其影响十分重大。许多组织缺乏对 Linux 系统内核级操作、原始数据包过滤行为以及异常高端口网络活动的可见性。应对这一威胁需要将防御可见性扩展到传统边界之外,从而对操作系统行为和基础架构层进行更深入的检查。
负责任地分享情报
我们正在进行调查以确定潜在受害者,一旦发现潜在的安全漏洞,我们将通过相关部门或直接与客户沟通的方式通知受影响方。
作为我们负责任的研究流程的一部分,我们与政府合作伙伴和国家应急响应小组 (CERT) 合作,分享与此活动相关的研究结果和指标。当我们的分析发现可能受到影响的基础设施时,我们主动通知了相关机构,并在研究仍在进行时提供了检测指导,以协助其开展调查和应对工作。
Rapid7 Intelligence Hub 的客户可以访问平台内的完整技术细节和入侵指标,包括 Surricata 规则。这些规则也可通过 AWS Marketplace 获取,我们在该平台上提供精心挑选的 AWS 防火墙规则集。
技术分析
接下来的章节将探讨现代电信网络的结构、初始接入的建立方式,以及 BPFdoor 和相关工具如何在电信骨干网内部实现基础设施级持久性。
现代电信网络结构
为了理解电信环境为何如此具有战略吸引力,将其分层架构可视化(图 2)会有所帮助。最外层是面向客户的服务和接入基础设施:移动基站(RAN)、光纤汇聚路由器、宽带网关、DNS 服务、短信控制器、漫游网关、防火墙、代理、VPN 等安全设备以及互联网对等连接点。这些边缘系统连接到运营商的 IP 核心网和传输骨干网,其中高容量路由器和交换机负责跨区域和国际边界传输海量的语音、数据和信令流量。
电信提供商网络快速7图表.png
图 2:电信运营商网络的简化版本
⠀
更深层的结构是控制平面,它是电信网络的核心,围绕着用户管理系统(例如 HLR/HSS 或 UDM)、认证平台 (AuC)、策略控制功能、计费系统、合法拦截平台和漫游数据库构建而成。这些系统使用专用的电信信令协议进行通信,例如 SS7、Diameter,以及越来越多地用于 LTE 和 5G 核心组件的基于 SCTP 的信令。在底层,大部分基础设施最终运行在经过加固但通常是标准的基于 Linux 或 BSD 的裸机服务器、虚拟化堆栈和高性能网络设备上。当攻击者在这些环境的内核层植入持久性后门时,他们不仅仅是攻破了服务器,而是将自身置于用户数据、信令流以及用于认证和路由国内和国际通信的机制附近。
初始访问
电信入侵很少从核心系统深处开始。相反,攻击者通常专注于暴露的边缘服务和面向互联网的基础设施。诸如利用面向公众的应用程序(T1190)和滥用合法账户(T1078)等技术屡见不鲜。常见的攻击目标包括:Ivanti Connect Secure VPN 设备、Cisco IOS 和 JunOS 网络设备、Fortinet 防火墙、VMware ESXi 主机、Palo Alto 设备,甚至包括 Apache Struts 等面向 Web 的平台。这些系统位于外部流量和内部电信环境的边界,因此是极具价值的入口点。一旦被攻破,它们就能提供进入运营商网络的认证路径,而且通常不会触发传统的端点检测机制。
让我们重点介绍一下我们在初始访问期间观察到的一些工具,并尝试获取更多横向移动的凭证。
CrossC2
一旦获得初始访问权限,运营商通常会部署与 Linux 兼容的信标框架,例如 CrossC2。这款源自 Cobalt Strike 的加载器可在 Linux 主机上启用信标功能,并已在与中国相关的入侵活动中反复出现。它提供与 Windows 环境中常见的后渗透能力相同的功能,例如命令执行、横向移动和部署,但专为 Linux 为主的电信基础设施量身定制。CrossC2 使运营商能够融入构成电信运营骨干的服务器环境,特别是边缘设备和核心路由系统。与 CrossC2 配置一样,调查可以发现 C2 服务器。例如:
Cross-C2-configuration-rapid7-telecom-research.png
图 3:CrossC2 配置
⠀
TinyShell
为了实现长期持久化,攻击者通常依赖 TinyShell,这是一个开源的被动后门框架,已被多个 APT 组织重新利用和定制。TinyShell 经常出现在防火墙、VPN 设备和虚拟化主机等边界设备上。它编译后可用于 Linux 和 FreeBSD 系统,其设计以隐蔽性为核心:网络占用空间极小、采用被动通信模式,并具备可靠的远程命令执行能力。
键盘记录器和暴力破解器
立足之后,攻击者会专注于持久化和横向移动。他们会使用 Sliver、CrossC2 和 TinyShell 等工具,并辅以 SSH 暴力破解器和基于 ELF 的定制键盘记录器。在某些情况下,运营商会部署包含预填充凭证列表的暴力破解工具,这些列表是专门针对电信环境定制的,甚至包含诸如“imsi”(用户身份识别系统)之类的特定用户名。这种程度的上下文感知表明,攻击者会进行侦察,并根据电信运营术语进行目标定位。他们的目标很明确:横向移动,窃取凭证,并最终到达用户数据和信令基础设施所在的控制平面系统。
BPF门
BPFDoor 大约在 2021 年首次引起公众广泛关注,当时研究人员发现了一个隐蔽的 Linux 后门,该后门被用于针对电信和政府网络的长期间谍活动。据报道,BPFDoor 的源代码在 2022 年泄露到网上,使得这个原本专用的 Linux 后门更容易被其他威胁行为者利用。通常,BPF 被 tcpdump 或 libpcap 等工具用于捕获特定的网络流量,例如过滤 TCP 端口 443。它部分运行在内核空间,这意味着它会在数据包到达用户空间应用程序之前对其进行处理。
BPFdoor 滥用了这一特性。它并非绑定到可见的监听端口,而是在内核中安装一个自定义的 BPF 过滤器,用于检查传入数据包是否符合特定模式——一段预定义的字节序列,通常被称为“魔术包”或“魔术字节”。如果模式不匹配,则不会发生任何事情。流量照常进行,没有开放端口,也没有明显的进程接受连接。但是,当正确的字节序列被发送到正确的目标端口时,行为会立即改变。
BPF-overview-variants-bpfdoor-rapid7-research-chart.png
图 4:BPF 概述以及早期 BPFdoor 变体的运行情况
⠀
想象一下,你从一个安全的自提柜里取包裹。这个自提柜静静地矗立在公共场所,没有警报,也没有任何明显的活动迹象。只有输入正确的密码,它才会打开。
BPFdoor 的行为方式相同。
该植入程序潜伏在 Linux 内核中,被动地检查网络流量。它不会自我广播,也不会响应扫描。但是,当操作员发送正确的“代码”(嵌入在精心构造的数据包中的特定魔术字节序列)时,BPF 过滤器会识别该模式并触发下一阶段。
它不会打开物理门,而是生成一个绑定 shell 或反向 shell。重要的是,这种激活过程无需任何传统的监听服务出现在 netstat 或 ss 的输出中。对于防御者而言,系统看起来一切正常;没有持续开放的端口可供检测。
在我们展示这一点之前,需要注意的是,BPFdoor 操作由两个不同的组件构成:植入体和控制器。
该植入程序是部署在受感染Linux系统上的被动后门,它会安装恶意BPF过滤器,并静默检查传入流量中是否存在预定义的“魔术”数据包。它不会持续发送信标或暴露监听端口,因此极其隐蔽。
另一方面,控制器由攻击者操控,负责构造并发送特殊格式的数据包,以激活后门并建立远程 shell。虽然它可以运行在攻击者控制的基础设施上,例如被入侵的路由器或外部系统,但控制器也被设计成可以在受害者的环境中运行。在这种模式下,它可以伪装成合法的系统进程,并通过发送激活数据包或打开本地监听器来接收 shell 连接,从而在内部主机上触发其他植入程序,有效地实现受控的横向移动。本质上,植入程序就像嵌入在系统中的隐藏锁,而控制器则像钥匙一样可以打开它。关于控制器架构及其在横向移动中的作用的更深入的技术分析将在即将发布的科技博客中进行。
为了演示这些后门的工作原理,我们制作了以下视频,其中我们运行了一个可见的 BPFdoor。接下来,我们向监听的 IP 地址和端口发送魔术包和指令。然后,BPFdoor 打开“安全”区域并创建隧道。在演示的最后部分,我们可以看到,在我们的 Netcat 监听器上,我们获得了一个远程 shell,并且可以查询系统。
⠀
接下来,我们将重点介绍我们是如何开始寻找 BPFdoor 的。
寻找 BPFdoor 变体
由于我们注意到一些 BPFdoor 攻击和样本正在传播,我们开始搜寻更多样本,并开发了内部工具来提取、比较和检测新功能的早期迹象。Rapid7 Labs 特别关注的一个威胁搜寻角度是样本的代码相似性。恶意软件样本的代码相似性可以识别出具有相似活动的样本集群,但更重要的是,它还能识别出异常样本,这些异常样本与其他样本没有共同之处,因此是潜在的研究对象。
我们收集和搜寻到的 BPFdoor 样本均为可执行链接格式 (ELF) 文件,但我们也发现了一些编译用于 Solaris 系统的样本。ELF 是 Linux 和类 Unix 操作系统上用于可执行文件、目标代码、共享库和核心转储的标准二进制文件格式。针对 ELF 文件,我们编写了一个自定义工具来对 ELF/BPFdoor 文件进行聚类。该工具通过提取 .text 段字节码块、生成 MinHash 签名并完成其他一些步骤,即可计算精确的 Jaccard 相似度,并将生成的相似度图导出以进行可视化聚类分析。
在我们的可视化图中,我们清晰地观察到了某些 BPFdoor 集群,但也发现了一些异常值和较小的集群,这些都需要进一步调查。线条越粗,表示代码与它所关联的样本越相似。通过创建特征比较/提取工具,我们开始在样本中发现一些有趣的特征,这最终促成了新的控制器发现和安全绕过功能。例如,我们发现了一种名为“F”的变体,它使用了一个包含 26 条 BPF 指令的过滤器,并带有新的魔术包。
尽管此前已有报道称某些样本支持流控制传输协议 (SCTP),但人们往往对此视而不见,未能正确理解其后果。SCTP 并非典型的企业流量;它是公共交换电话网络 (PSTN) 信令以及 4G 和 5G 核心网络元素之间实时通信的基础。通过配置 BPF 过滤器直接检查 SCTP 流量,运营商不再仅仅是维护服务器访问权限,而是将自身嵌入到电信网络的信令层面。这是一种截然不同的定位方式。植入式设备不再位于 IT 边界,而是位于呼叫路由、设备认证和用户移动性管理机制的附近。
访问 SCTP 流量为情报收集提供了强大的机会。在传统网络和过渡环境中,安全措施不当的信令可能会泄露短信内容、IMSI 标识符以及源/目标元数据。通过观察或操纵 SCTP 命令(例如 ProvideSubscriberLocation 或 UpdateLocation)上的流量,攻击者可以追踪设备的实际位置。在 5G 环境中,SCTP 流量承载着注册请求和订阅隐藏标识符 (SUCI),从而可以大规模地进行身份探测。此时,攻击不再局限于服务器持久性,而是扩展到对用户行为和位置的群体级可见性。换句话说,攻击者可以追踪感兴趣的个人。
有趣的观察
裸机到电信设备的链路
在代码调查过程中,我们发现一些 BPFdoor 样本使用代码来模拟裸机基础设施,特别是电信环境中常见的企业级硬件平台。通过伪装成仅在裸机上运行的合法系统服务,该植入程序能够融入到运行噪声中。这在采用 HPE ProLiant 和类似高性能计算系统(用于 5G 核心网和边缘部署)的环境中尤为重要。
在上面 BPFdoor 示例之一的屏幕截图中,我们观察到了进程名称“hpaslimited”。
攻击者通过模仿 HPE ProLiant 服务器的合法服务名称和进程行为,确保植入程序看起来像是硬件环境的原生程序,这种策略大大增加了检测难度。在 BPFdoor 样本中已经发现了几个类似的服务名称,但这个名称尤为突出。hpasmlited.pid会创建进程线程,并模仿与硬件监控服务一致的守护进程行为。真正的hpasmlited进程属于 HPE 的无代理管理服务,该服务运行在裸机 ProLiant 服务器上,用于暴露硬件遥测数据和系统健康数据。
通过采用这个名称并写入相应的进程ID文件,该恶意软件能够融入电信级ProLiant基础设施的预期运行噪声中。当然,这并非偶然命名,而是体现了对环境的感知和目标定位意图。攻击者似乎知道他们正在4G/5G核心网和边缘系统中常见的HPE物理硬件上运行该恶意软件。通过伪装成管理员预期看到的受信任硬件管理守护进程,该植入程序降低了取证审查时的怀疑度,同时将自身直接嵌入到电信基础设施的物理骨干层中。这种策略反映了一种更广泛的战略:不仅隐藏在Linux系统中,而且隐藏在电信环境本身的硬件身份中。
模仿容器
第二种策略涉及伪造核心容器化组件。诸如接入和移动性管理功能 (AMF)、会话管理功能 (SMF) 和用户数据管理 (UDM) 等关键的 5G 核心组件作为云原生网络功能运行在 Kubernetes Pod 中。以下代码片段表明,植入程序能够识别这些组件。
Docker 守护程序 (/usr/bin/dockerd) 和 containerd:该恶意软件以 root 权限执行,并采用合法 Docker 守护程序的精确命令行参数(例如,-H fd:// --containerd=/run/containerd/containerd.sock)。
简单回顾一下
到目前为止,我们在技术分析中描述的内容或多或少都是公开信息;然而,这些信息并没有被整合起来,从而展现出Rapid7 Labs通过深入调查所发现的背景。因此,在我们深入探讨一些能够完整呈现事件真相的新技术发现之前,让我们先停下来,回顾一下刚才描述的内容。
迄今为止,我们的研究结果表明,BPFdoor 的功能远不止是一个隐蔽的 Linux 后门。它具备内核级数据包过滤、通过“魔术包”被动激活、伪装成合法硬件管理服务、感知容器运行时环境以及监控 SCTP 等电信原生协议的能力,这些都表明它是一款旨在深度定位基础设施的工具。运营商似乎并非针对单个服务器,而是专注于支撑现代电信网络的底层平台:运行电信工作负载的裸机系统、托管容器化网络功能的云原生 Kubernetes 环境,以及协调用户身份、移动性和通信流的信令协议。在此背景下,BPFdoor 作为嵌入电信骨干网的接入层发挥作用,提供对关键网络运行的长期、低噪声可视性。
Rapid7 在较新的 BPFdoor 变体中发现了什么
以下章节概述了近期 BPFdoor 样本中新发现的几项功能和行为模式。虽然这些发现凸显了重要的技术发展,但本博客有意侧重于架构影响和运行环境,而非进行全面的逆向工程深入分析。详细的技术分析,包括代码级分解,将在后续的研究文章中发布。
在调查过程中,我们发现了一个此前未被记录的 BPFdoor 变种,该变种引入了多项架构变更,旨在提升其在现代企业和电信环境中的隐蔽性和生存能力。我们将重点介绍这些特性,并阐述该恶意软件如何超越早期的“魔术包”激活模型而不断演进。
网络级不可见性:BPF 陷阱门
正如我们之前所述,早期的 BPFdoor 后门程序在 Linux 内核中安装了一个伯克利数据包过滤器,用于检查传入的网络流量。当一个包含预定义字节序列的特制“魔术包”到达正确的端口时,后门程序就会被激活并生成一个 shell。由于系统实际上从未打开过任何端口,因此 netstat、ss 或 nmap 等工具不会检测到任何异常。
新发现的变种进一步发展了这一概念。它不再依赖于可能被入侵检测特征码检测到的简单“魔法包”,而是将触发机制嵌入到看似合法的HTTPS流量中。攻击者发送精心构造的请求,该请求会经过反向代理、负载均衡器或Web应用防火墙等标准网络基础设施。一旦流量到达被入侵的主机,并在正常的SSL终止过程中被解密,隐藏的命令序列就可以被提取出来并用于激活后门。本质上,在我们之前解释“魔法包”机制的比喻中,保险箱仍然需要密码,但现在密码隐藏在正常的加密网络流量中,使其能够通过现代安全控制,最终打开后门。
第七层伪装和“神奇尺子”
为了在代理层之间保持可靠性,攻击者引入了一种巧妙的解析机制。HTTP 代理通常会修改请求头,插入诸如客户端 IP 地址、时间戳或路由元数据之类的额外字段。这些更改会改变请求中数据的位置,从而破坏传统的基于签名的触发机制。为了解决这个问题,攻击者设计了一种数学填充方案,确保特定标记(在观察到的样本中为字符串“9999”)始终出现在请求中固定的字节偏移量处。
这就是26字节或40字节“魔法尺”发挥作用的地方。恶意软件不会解析整个HTTP头部(其内容会因代理行为而异),而是将请求体视为一个可预测的坐标空间。攻击者通过在HTTP请求中填充填充字节,确保标记始终精确地落在被检查数据结构的第26个字节偏移量处。植入程序只需检查这个固定位置;如果标记出现在该字节位置,它就会将周围的数据解释为激活命令。
由于头部本身可以波动,而填充后的有效载荷却保持可预测,恶意软件无需理解或解析完整的 HTTP 结构。相反,它依赖于这个固定的“测量点”,有效地将 26 字节的偏移量作为数据包内部的标尺。这种技术使得触发机制能够绕过代理重写和头部注入,同时仍然隐藏在正常的 HTTPS 流量中。当套接字创建时使用“SOCK_DGRAM”标志,则使用 26 字节的规则;而当套接字创建时使用“SOCK_RAW”标志,则使用 40 字节的标尺。
实际上,这使得混乱多变的 HTTP 协议变成了恶意软件可以视为固定坐标系的东西,从而实现了动态的第 7 层伪装,这是一种出人意料的简单但有效的技术,可以将命令触发器隐藏在合法的加密网络流量中。
RC4-MD5悖论
新控制器的另一个有趣之处在于它继续使用传统的 RC4-MD5 加密例程。虽然这种组合在现代加密标准中已被弃用,但它仍然出现在一些恶意软件样本中。在这种情况下,RC4-MD5 的实现并非 TLS 的一部分,而是在后门激活后应用于交互式命令与控制通道的一个轻量级加密层。RC4 提供速度极快的流加密,适用于交互式 shell,在命令执行期间引入的延迟极低。此外,使用较旧或非标准的加密例程有时会使检测系统感到困惑,尤其是在流量不符合典型协议预期的情况下。最后,重用旧的加密模块通常反映了代码的传承和运行效率,攻击者经常在不同的攻击活动中重复使用经过验证的组件。在本例中,代码比较显示其与 RedXOR 和 PWNIX 等中国恶意软件家族中流传多年的例程存在相似之处。
ICMP 控制通道:“回传”
早期的 BPFdoor 变种主要侧重于隐蔽激活,而新的样本还引入了一种基于互联网控制消息协议 (ICMP) 的轻量级通信机制。代码片段显示,该恶意软件会准备一个 ICMP 有效载荷,并 在使用专用例程 ( send_ICMP_data ) 发送数据包之前,将特定值“0xFFFFFFFF”插入到数据包的某个字段中。乍一看,这似乎很简单,但其逻辑揭示了更有趣的内容:ICMP 数据包不仅是向操作员发送的信号,它还被用作受感染系统之间的控制机制。
在这个模型中,ICMP 充当受感染主机之间的最小命令通道。一台受感染的服务器可以将特制的 ICMP 数据包转发给另一台服务器,从而有效地传递执行指令,而无需传统的命令与控制通信。该机制的关键标记是值 0xFFFFFFFF(符号为 -1),它作为嵌入在数据包结构中的目标信号。当接收主机检测到此值时,它会将数据包解释为终止指令,而不是需要进一步转发的数据包。
实际上,服务器 A 是在告诉服务器 B:“你是最终目的地。”接收系统不会将信号转发下去,而是执行下一阶段的操作,通常是触发反向 shell 或命令处理程序。这种简单的信号机制使得操作者能够在不引入额外协议复杂性的情况下,控制命令在受损基础设施中的传播范围。
这种机制的显著特点在于其简洁性。攻击者无需扩展激活数据包的结构或引入额外的字段,而是重用数据包结构中已有的值来标记链路的结束。通过将该字段设置为 0xFFFFFFFF,他们实际上在通信通道中创建了一个“禁止转发”标志。这使得他们能够在保持数据包格式紧凑一致的同时,管理跨受感染节点的跃点行为。
要点总结
综上所述,新发现的功能表明 BPFdoor 已从隐蔽后门演变为分层访问框架。更新后的版本结合了加密的 HTTPS 触发器、代理感知命令传递、应用层伪装技术、基于 ICMP 的控制信号以及内核级数据包过滤,能够绕过现代网络防御的多层防御。每项技术都针对不同的安全边界,从边缘的 TLS 检测到传输中的 IDS 检测,再到主机端的端点监控,这表明其有意覆盖整个防御体系。
内核级后门正在重新定义隐蔽性。
像 BPFdoor 这样的工具在传统的可见层之下运行,滥用伯克利数据包过滤器机制来创建网络监听器,这些监听器不会暴露端口、进程或传统的命令与控制指标。
电信基础设施是间谍活动的主要目标。
现代 4G 和 5G 网络依赖于复杂的信令系统、容器化网络功能和高性能基础设施。访问这些环境可以实现长期情报收集、用户监控以及对国家通信基础设施的深入洞察。
安全控制措施可以转化为恶意传播机制。
在最新的 BPFdoor 变种中,攻击者利用正常的安全工作流程。经过 TLS 终止和深度包检测的流量一旦到达解密的内部区域,即可传播恶意命令。
基于 BPF 的植入程序很可能预示着更大趋势的开始。BPFdoor
和 Symbiote 等新型 eBPF 恶意软件家族展示了内核数据包过滤如何被滥用以实现隐蔽持久化。随着防御者在更高层级提升可见性,攻击者也越来越多地将植入程序部署到操作系统更深层。
防御者如何检测 BPFdoor 活动
要检测这些威胁,需要将视野更深入地扩展到操作系统和网络堆栈,重点关注异常的原始套接字使用情况、异常的数据包过滤行为以及关键基础设施主机上意外的服务伪装等指标。
为了帮助防御者识别潜在的 BPFdoor 活动,我们开发了一个扫描脚本,旨在检测先前记录的变种以及本研究中讨论的新样本。该脚本专注于识别与 BPFdoor 植入程序使用的隐蔽激活机制、内核级数据包过滤行为和进程伪装技术相关的指标。通过结合对已知特征和行为模式的检查,该扫描器可以帮助安全团队快速评估系统是否可能受到影响。
我们向社区开放此工具,旨在帮助组织主动识别潜在的安全漏洞。该扫描器可在各种 Linux 环境中使用,搜索与 BPFdoor 活动相关的痕迹,包括在历史样本和本次研究中分析的最新变种中发现的指标。我们的目标是帮助防御者快速验证安全风险,并在必要时启动事件响应调查。
在下方视频中,Rapid7 Labs 演示了如何在受感染的受害者组织系统中运行我们的检测脚本。视频首先显示右侧窗口,其中显示 BPFdoor 后门正在运行,并且相关的特定服务已被高亮显示。然后,在左下角的屏幕上,通过发送正确的数据包序列和密码激活 BPFdoor,从而建立远程控制 shell。攻击者在受害者机器上运行了一些命令,并展示了其执行远程命令的能力。最后,在顶部窗口中,我们运行了开发的检测脚本,该脚本将显示检测到的进程和警报。
妥协指标(IOC)
我们在对新控制器进行调查期间发现的 IOC,以及样本和其他相关数据,可以在我们的Rapid7 Labs Github 页面上找到。
个人点评:
想了一下这个最精髓的 magic ruler 好像不能抄来加入代理协议对付GFW,它是在若干数据包中找出一个包来激活触发器,那总不能在 client 和 vps之间先传无效的网页流量,再在中间夹杂一个 magic ruler 唤醒包吧









