BRICKSTORM后门分析 | CISA
发布日期 2025年12月4日 警报代码 AR25-338A
执行摘要
网络安全和基础设施安全局 (CISA)、国家安全局 (NSA) 和加拿大网络安全中心 (Cyber Centre) 评估认为,中华人民共和国 (PRC) 国家支持的网络攻击者正在使用 BRICKSTORM 恶意软件在受害系统上保持长期持久性。CISA、NSA 和 Cyber Centre 发布此恶意软件分析报告,以分享基于八个 BRICKSTORM 样本分析的危害指标 (IOC) 和检测特征。CISA、NSA 和 Cyber Centre 敦促各组织使用这些 IOC 和检测特征来识别 BRICKSTORM 恶意软件样本。
关键行动
- 使用 IOC 和检测特征来识别 BRICKSTORM 样本。
- 如果检测到 BRICKSTORM、类似恶意软件或可能相关的活动,请立即向 CISA、Cyber Centre 或相关主管部门报告事件。
引言
网络安全和基础设施安全局 (CISA)、国家安全局 (NSA) 和加拿大网络安全中心 (Cyber Centre) 评估认为,中华人民共和国 (PRC) 国家支持的网络攻击者正在使用 BRICKSTORM 恶意软件在受害系统上保持长期持久性。受害组织主要分布在政府服务和设施部门以及信息技术部门。BRICKSTORM 是一个针对 VMware vSphere(特别是 VMware vCenter 服务器和 VMware ESXi)和 Windows 环境的复杂后门。
攻击者已被观察到针对 VMware vSphere 平台。一旦被攻破,攻击者可以利用他们对 vCenter 管理控制台的访问权限,窃取克隆的虚拟机快照以提取凭据,并创建隐藏的、恶意的虚拟机。
CISA 分析了从受害组织获得的八个 BRICKSTORM 样本,包括一个 CISA 进行了事件响应参与的组织。在该组织中,PRC 国家支持的网络攻击者在 2024 年 4 月获得了对其内部网络的长期持久性访问权限,并将 BRICKSTORM 恶意软件上传到内部 VMware vCenter 服务器。
CISA、NSA 和 Cyber Centre 敦促各组织使用本恶意软件分析报告中的危害指标 (IOC) 和检测特征来识别 BRICKSTORM 恶意软件样本。如果识别到,请遵循“事件响应”部分中的指导。
恶意软件概述
BRICKSTORM 是一个自定义的、基于 Go 语言的可执行与可链接格式 (ELF) 后门。分析的样本在功能上有所不同,但都使攻击者能够保持隐蔽访问,并提供初始化、持久性和安全命令与控制 (C2) 的能力。即使分析的样本是针对 VMware vSphere 环境的,但也有关于 Windows 版本的报告。
BRICKSTORM 通过运行检查来启动,并通过使用自我监视功能来保持持久性,如果被中断,它会自动重新安装或重新启动。
对于 C2,BRICKSTORM 使用多层加密(HTTPS、WebSockets、嵌套的传输层安全协议)来隐藏其与攻击者 C2 服务器的通信。它还使用 DNS-over-HTTPS (DoH) 并模拟 Web 服务器功能,以使其通信与合法流量融合。对于远程系统控制,BRICKSTORM 为攻击者提供系统上的交互式 shell 访问权限,并允许他们浏览、上传、下载、创建、删除和操作文件。此外,一些样本充当 SOCKS 代理,促进横向移动并允许攻击者危害其他系统。
恶意软件交付
在 CISA 进行事件响应参与的受害组织中,PRC 国家支持的网络攻击者在 2024 年 4 月 11 日访问了一台 Web 服务器。该 Web 服务器位于组织的隔离区 (DMZ) 内,攻击者通过服务器上存在的 Web shell [T1505.003] 访问了它。事件数据没有表明他们如何获得对 Web 服务器的初始访问权限,或者 Web shell 是何时被植入的。同一天,攻击者使用服务账户凭据 [T1078],通过远程桌面协议 (RDP) [T1021.001] 从 Web 服务器横向移动到 DMZ 中的一个域控制器,并从中复制了 Active Directory (AD) 数据库 (ntds.dit) [T1003.003]。
2024 年 4 月 12 日,攻击者使用与第二个服务账户关联的凭据,通过 RDP 从 Web 服务器横向移动到内部网络中的一个域控制器。随后,他们复制了 AD 数据库,获得了一个托管服务提供商 (MSP) 账户的凭据。利用 MSP 凭据,攻击者继续从内部域控制器移动到 VMware vCenter 服务器。
从 Web 服务器,攻击者还使用服务器消息块 (SMB) 横向移动到两个跳板服务器和一个 ADFS 服务器,并从那里窃取了加密密钥。
在获得对 vCenter 的访问权限后,攻击者使用 sudo 命令 [T1548.003] 提升权限,将 BRICKSTORM 恶意软件放入服务器的 /etc/sysconfig/ 目录 [T1105],并修改了系统中的 init 文件(位于 /etc/sysconfig/)以运行 BRICKSTORM。
修改后的 init 文件控制 VMware vSphere 系统上的启动过程 [T1037] 并执行 BRICKSTORM。
恶意软件元数据
有关分析样本的元数据,请参见表 1 至表 8。
| 表 1. BRICKSTORM 样本 1 |
|---|
| 文件名: vmsrc |
| 大小: 7692288 字节 |
| 类型: ELF 64 位 LSB 可执行文件,x86-64,版本 1 (SYSV),静态链接,已剥离 |
| MD5: 8e4c88d00b6eb46229a1ed7001451320 |
| SHA1: 9bf4c786ebd68c0181cfe3eb85d2fd202ed12c54 |
| SHA256: aaf5569c8e349c15028bc3fac09eb982efb06eabac955b705a6d447263658e38 |
| SHA512: 5e654776e9c419e11e6f93a452415a601bd9a2079710f1074608570e498a9af37b81bb57c98cb8bb626c5ee4b3e35757d3ae8c1c3717f28d9f3fe7a4cebe0608 |
| ssdeep: 49152:9lDeYNeYunc1S3/U05q+CIKUbwgBfd1Vww/uUJSZina/TokDDko0n8oQhEoAgsUJ:O3lcE380sIDbdB11p3i/TokEIowlb/r |
| 熵: 5.993799 |
(表 2 至表 8 详细列出了其他 7 个样本的元数据,包括文件名、大小、哈希值和熵值。格式类似,信息从略。)
恶意软件功能
所有分析的样本都使攻击者能够保持隐蔽访问,并提供环境配置(初始化)、持久性和安全 C2 的能力。虽然初始化和持久性功能在各样本中相似,但安全 C2 功能各不相同。BRICKSTORM 使用自定义处理程序来设置 SOCKS 代理、在受感染系统上创建 Web 服务器以及在受感染系统上执行命令。
样本 7 和 8 设计用于虚拟化环境,使用虚拟套接字接口来促进虚拟机间通信、数据窃取和保持持久性。
大多数样本使用异或密码加密来隐藏关键字符串,例如公共 DoH 服务器的 IPv4 地址。
初始化能力
执行时,BRICKSTORM 运行检查,可以重新安装和重新启动自身以保持持久性。BRICKSTORM 启动一个函数(在某些样本中称为 main_startNew)来配置特定于受感染环境的环境变量,使其能够有效运行。随后,BRICKSTORM 识别其是否已处于预期状态,并根据以下逻辑继续运行、复制自身执行或终止:
- 环境变量检查:BRICKSTORM 检查指定的环境变量(因样本而异,见表 9)以确定它是否作为子进程运行。
- 文件路径验证和复制:如果 BRICKSTORM 从已验证的路径运行,它会将自身复制到具有特定文件名的特定位置。
- 终止:如果 BRICKSTORM 不是从已验证的路径运行,它将终止自身执行。
持久性能力
为确保其持续运行,BRICKSTORM 在运行时使用内置的自我监控和持久性功能。具体来说,它具有一个内置的自我监视函数(在某些样本中称为 main_selfWatcher)以保持持久性。该函数监视 BRICKSTORM 是否正确运行,如果没有,BRICKSTORM 会重新安装并执行自身,模拟其初始化能力。
安全命令与控制
通过初始化检查后,BRICKSTORM 建立与 C2 服务器的连接,保护与服务器的通信,并使攻击者能够完全控制受感染系统。这种控制包括文件系统管理和交互式 shell 访问等功能。在大多数样本中,BRICKSTORM 还提供 SOCKS 代理以促进隧道和横向移动。
这些功能的实现在各样本间有所不同,样本 7 和 8 针对虚拟化环境有显著差异。
样本 1
- 初始连接到 C2 服务器:样本 1 首先为硬编码的 C2 域创建加密的 DNS 查询。该样本使用 DoH,通过向以下合法的公共 DoH 解析器之一发送加密的 HTTPS 请求 [T1071.001] 来解析其 C2 服务器的地址。
- 建立安全通信:样本 1 使用 HTTPS 与 C2 服务器建立加密连接,然后将会话升级为具有额外 TLS 加密层的 WebSockets。
- 完全系统控制:一旦与 C2 域建立安全连接,样本 1 使用自定义的 Go 包
wssoft2来管理传入的网络连接和处理接收到的命令。命令根据所需功能被定向到三个处理程序之一:SOCKS 处理程序、Web 服务处理程序和命令处理程序。
样本 2 至 6
- 初始连接到 C2 服务器:与样本 1 类似,这些样本为硬编码的 C2 域创建加密的 DNS 查询,并使用 DoH 解析其 C2 服务器的地址。
- 建立安全通信:与样本 1 类似,这些样本与 C2 服务器建立 WebSocket Secure (WSS) 连接并设置多路复用层。
- 完全系统控制:一旦通过 WebSockets 与 C2 服务器建立连接,这些 BRICKSTORM 样本接收的命令被定向到四个特定处理程序之一,以在受感染系统上执行任务:SOCKS 处理程序、Web 服务处理程序、命令处理程序或 CommandNoContext 处理程序。
样本 7
- 初始连接到 C2 服务器:样本 7 从环境变量检索配置参数,执行检查,生成用于与 BRICKSTORM 客户端进行安全通信的 TLS 配置,并启动网络通信例程。此样本还使用 VSOCK 接口来促进虚拟机间通信、支持数据窃取和维护在虚拟化环境中的持久性。
- 建立安全通信:样本 7 建立具有最少外部依赖性的安全 WebSocket 服务器;具体来说,所有通信都使用内存中的自签名证书进行加密。
- 完全系统控制:一旦与 C2 服务器建立 WSS 连接,样本 7 通过四个处理程序之一处理传入命令:Web 服务处理程序、命令处理程序、VSOCK 代理处理程序或 VSOCK 处理程序。
样本 8
与样本 7 类似,样本 8:
- 从环境变量检索 C2 参数。
- 使用内存中的自签名 X.509 证书和相应的 2048 位 RSA 私钥来促进加密通信,而不依赖 CA。
- 建立一个安全的 WebSocket 服务器以进行加密通信。
- 将命令定向到特定的处理程序。
检测
YARA 规则
部署表 12 中的 CISA 创建的 YARA 规则以检测恶意活动。
| 表 12. YARA 规则 |
|---|
| BRICKSTORM 规则 1 |
| (YARA规则内容从略) |
| BRICKSTORM 规则 2 |
| (YARA规则内容从略) |
Sigma 规则
部署表 13 中的 CISA 创建的 Sigma 规则以检测 BRICKSTORM。
| 表 13. Sigma 规则 |
|---|
| BRICKSTORM |
| (Sigma规则内容从略) |
其他检测资源
有关检测 BRICKSTORM 的更多资源,请参考报告中列出的第三方分析,包括 Google Mandiant、NVISO 和 CrowdStrike 提供的检测规则和工具。
事件响应
美国组织:如果检测到 BRICKSTORM、类似恶意软件或可能相关的活动,CISA 和 NSA 敦促各组织按照法律和适用政策的要求报告活动。为使 CISA 能够提供量身定制的事件响应协助并全面了解此活动,CISA 和 NSA 敦促各组织:
- 立即通过 CISA 的 24/7 运营中心、1-844-Say-CISA 或 CISA 的事件报告系统报告发现。请说明活动与 BRICKSTORM 相关,CISA 将联系下一步行动。
- 使用 CISA 的恶意软件分析提交表提交包含恶意代码的文件。在“开放事件 ID”字段中包含 CISA 提供的事件 ID 号。
加拿大组织:通过电子邮件联系 Cyber Centre 或在线上通过报告工具报告事件。
缓解措施
CISA、NSA 和 Cyber Centre 建议组织根据攻击者的活动实施以下缓解措施,以提高组织的网络安全态势。这些缓解措施与 CISA 和国家标准与技术研究院 (NIST) 制定的跨部门网络安全性能目标 (CPG) 保持一致。
- 将 VMware vSphere 服务器升级到最新版本 [CPG 1.E]。
- 通过应用 VMware 的指南来强化您的 VMware vSphere 环境。
- 清查所有网络边缘设备 [CPG 1.A],并监视来自这些设备的任何可疑网络连接。
- 确保适当的网络分段限制从 DMZ 到内部网络的网络流量 [CPG 2.F]。
- 禁用从 DMZ 到内部网络的 RDP 和 SMB。
- 应用最小权限原则,并将服务账户的权限限制在仅需要的范围内。
- 加强对服务账户的监控,这些账户具有高权限并具有可预测的行为模式。
- 阻止未经授权的 DoH 提供商和外部 DoH 网络流量,以减少未受监控的通信。
附录 A: MITRE ATT&CK 技术
有关本报告中引用的所有威胁攻击者策略和技术的表格,请参见原文的表 14 至表 20。包括持久性、权限提升、防御规避、发现、凭据访问、命令与控制、数据窃取等类别下的具体技术编号和使用描述。
附录 B: 在远程主机上扫描的指导
以下工具旨在支持识别潜在恶意工件和活动,但不应用作独立的检测机制。
- 使用 Nessus 进行远程 YARA 扫描:提供了通过 Nessus 配置和运行 YARA 扫描的详细步骤。
- 不使用 Nessus 进行远程 YARA 扫描:提供了通过 SSH 挂载远程服务器文件系统并运行 YARA 扫描的命令行方法。