BRICKSTORM:基于Go语言的高级Linux后门恶意软件技术分析

本文详细分析了BRICKSTORM后门恶意软件,这是一种用Go语言编写的64位ELF可执行文件,与中国威胁组织UTA0178有关。它使用DoH、多层TLS加密、WebSocket和SOCKS代理等先进技术进行通信和横向移动,并具备持久化、环境感知和文件管理能力。

BRICKSTORM 后门恶意软件 - MAR-251165.c1.v1

摘要

BRICKSTORM是一种与中国威胁组织UTA0178相关联的后门恶意软件,根据CIRCL OSINT情报源的报告。该恶意软件被标记为后门,表明其能为攻击者提供未经授权的远程访问和控制能力,从而在受感染系统上实现持久驻留。然而,现有信息缺乏关于攻击向量、受影响的软件产品或版本的具体细节,这增加了精确技术分析的难度。目前尚无可用的补丁或修复措施,也没有在野外观察到已知的利用活动,表明这可能是一个新近被识别或低活跃度的威胁。提供的技术细节非常有限,仅有一个UUID和一个原始时间戳,难以洞察其内部工作原理或传播方法。该威胁被标记为中等严重性,反映了基于潜在的未授权访问和有效载荷安装能力的中等风险级别。与中国威胁组织的关联以及提权标记的存在,暗示该恶意软件可能被用于定向间谍活动或网络入侵行动。由于缺乏详细的指标或签名,检测在很大程度上依赖于行为分析和网络异常监控。该威胁在"有效载荷安装"下的分类证实了其在受害者环境中建立立足点的作用。总的来说,BRICKSTORM代表了一种隐秘且持久的威胁,尽管目前利用证据有限,但仍需要主动的防御措施。

潜在影响

对欧洲组织而言,BRICKSTORM由于其后门功能,存在未授权远程访问、数据窃取和潜在操作中断的风险。缺乏已知的野外利用降低了直接风险,但并未消除未来定向攻击的威胁,特别是针对关键基础设施、政府实体和技术公司的攻击。该恶意软件安装持久有效载荷的能力可能为长期间谍或破坏活动提供便利,损害敏感系统的保密性、完整性和可用性。与存在技术供应链联系或运营于战略重要性领域的欧洲实体可能面临更高的风险。中等严重性表明了中等的影响潜力,但后门的隐秘性可能导致长时间未被发现的危害,从而增加累积损害。此外,缺乏补丁意味着组织必须依赖检测和遏制而非修复。如果该威胁在协调的网络行动中被利用,可能会破坏对数字生态系统的信任并使事件响应工作复杂化。

缓解建议

  1. 实施高级端点检测与响应(EDR)解决方案,能够识别指示后门活动的异常行为,例如不寻常的网络连接或进程执行。
  2. 强制执行严格的网络分段,以限制攻击者利用后门进行横向移动的机会。
  3. 定期开展威胁狩猎演练,重点关注与持久有效载荷安装和权限提升相关的入侵指标。
  4. 集成威胁情报源,包括CIRCL OSINT,以保持对与BRICKSTORM和UTA0178相关的新兴指标和战术的了解。
  5. 通过应用最小权限原则和强制执行多因素身份验证来强化访问控制,降低未授权访问的风险。
  6. 监控出站网络流量,查找与未知或高风险IP地址(尤其是与中国威胁组织相关的IP地址)的可疑通信。
  7. 维护全面的日志记录和审计跟踪,以促进事件调查和快速响应。
  8. 对安全团队进行关于后门恶意软件特征和特定威胁组织概况的教育,以提高检测能力。
  9. 与国家级网络安全机构和行业合作伙伴合作,共享情报并协调防御策略。
  10. 准备包含隐蔽后门入侵场景的事件响应计划,以确保就绪状态。

受影响国家

德国、法国、英国、荷兰、意大利、西班牙、波兰

入侵指标

YARA规则

规则:CISA_251165_02

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
rule CISA_251165_02 : BRICKSTORM backdoor installs_other_components communicates_with_c2 exfiltrates_data
{
   meta:
       author = "CISA Code & Media Analysis"
       incident = "251165"
       date = "2025-09-29"
       last_modified = "202051001_1008"
       actor = "n/a"
       family = "BRICKSTORM"
       capabilities = "installs-other-components communicates-with-c2 exfiltrates-data"
       malware_type = "backdoor"
       tool_type = "unknown"
       description = "Detects Go-Based BRICKSTORM backdoor samples"
       sha256_1 = "aaf5569c8e349c15028bc3fac09eb982efb06eabac955b705a6d447263658e38"
   strings:
       $s0 = { 6D 61 69 6E 2E 73 74 61 72 74 4E 65 77 }
       $s1 = { 6D 61 69 6E 2E 73 65 6C 66 57 61 74 63 68 65 72 }
       $s2 = { 6D 61 69 6E 2E 73 65 74 53 65 72 76 69 63 65 43 66 67 }
       $s3 = { 73 6F 63 6B 73 2E 48 61 6E 64 6C 65 53 6F 63 6B 73 52 65 71 75 65 73 74 }
       $s4 = { 77 65 62 2E 57 65 62 53 65 72 76 69 63 65 }
       $s5 = { 63 6F 6D 6D 61 6E 64 2E 48 61 6E 64 6C 65 54 54 59 52 65 71 75 65 73 74 }
       $s6 = { 77 65 62 73 6F 63 6B 65 74 2E 28 2A 57 53 43 6F 6E 6E 65 63 74 6F 72 29 2E 43 6F 6E 6E 65 63 74 }
       $s7 = { 66 73 2E 28 2A 57 65 62 53 65 72 76 65 72 29 2E 52 75 6E 53 65 72 76 65 72 }
       $s8 = { 68 74 74 70 73 3A 2F 2F 31 2E 30 2E 30 2E 31 2F 64 6E 73 2D 71 75 65 72 79 }
       $s9 = { 68 74 74 70 73 3A 2F 2F 31 2E 31 2E 31 2E 31 2F 64 6E 73 2D 71 75 65 72 79 }
       $s10 = { 68 74 74 70 73 3A 2F 2F 38 2E 38 2E 34 2E 34 2F 64 6E 73 2D 71 75 65 72 79 }
       $s11 = { 68 74 74 70 73 3A 2F 2F 38 2E 38 2E 38 2E 38 2F 64 6E 73 2D 71 75 65 72 79 }
       $s12 = { 68 74 74 70 73 3A 2F 2F 39 2E 39 2E 39 2E 39 2F 64 6E 73 2D 71 75 65 72 79 }
   condition:
       8 of them
}

规则:CISA_251155_02

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
rule CISA_251155_02 : BRICKSTORM backdoor installs_other_components communicates_with_c2 exfiltrates_data
{
   meta:
       author = "CISA Code & Media Analysis"
       incident = "251155"
       date = "2025-09-15"
       last_modified = "20250916_1511"
       actor = "n/a"
       family = "BRICKSTORM"
       capabilities = "installs-other-components communicates-with-c2 exfiltrates-data"
       malware_type = "backdoor"
       tool_type = "unknown"
       description = "Detects Go-Based BRICKSTORM backdoor samples"
       sha256_1 = "320a0b5d4900697e125cebb5ff03dee7368f8f087db1c1570b0b62f5a986d759"
       sha256_1 = "dfac2542a0ee65c474b91d3b352540a24f4e223f1b808b741cfe680263f0ee44"
       sha256_1 = "b91881cb1aa861138f2063ec130b2b01a8aaf0e3f04921e5cbfc61b09024bf12"
       sha256_1 = "bfb3ffd46b21b2281374cd60bc756fe2dcc32486dcc156c9bd98f24101145454"
   strings:
       $s0 = { 04 30 0F B6 54 04 2C 31 D1 88 4C 04 34 48 FF C0 }
       $s1 = { 48 83 F8 04 7C E7 48 C7 04 24 }
       $s2 = { 48 8D 44 24 34 48 89 44 24 08 48 C7 44 24 10 04 }
       $s3 = { 48 89 44 24 48 48 89 4C 24 50 48 8B 6C 24 38 48 }
       $s4 = { 48 83 EC 40 48 89 6C 24 38 48 8D 6C 24 38 C7 44 24 }
       $s5 = { 83 EC 38 48 89 6C 24 30 48 8D 6C 24 30 C6 44 24 }
       $s6 = { 4C 24 20 48 89 44 24 40 48 89 4C 24 48 48 8B 6C }
       $s7 = { 64 48 8B 0C 25 F8 FF FF FF 48 3B 61 10 0F 86 81 }
       $s8 = { 64 48 8B 0C 25 F8 FF FF FF 48 3B 61 10 0F 86 91 }
   condition:
      all of them
}

规则:CISA_251186_02

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
rule CISA_251186_02 : BRICKSTORM backdoor installs_other_components communicates_with_c2 exfiltrates_data
{
   meta:
       author = "CISA Code & Media Analysis"
       incident = "251186"
       date = "2025-11-17"
       last_modified = "n/a"
       actor = "n/a"
       family = "BRICKSTORM"
       capabilities = "installs-other-components communicates-with-c2 exfiltrates-data"
       malware_type = "backdoor"
       tool_type = "unknown"
       description = "Detects Go-Based BRICKSTORM backdoor samples"
       sha256_1 = "57bd98dbb5a00e54f07ffacda1fea91451a0c0b532cd7d570e98ce2ff741c21d"
   strings:
       $s0 = { 31 F7 40 88 7C 04 4C 48 FF C0 }
       $s1 = { 44 01 C7 40 88 7C 14 30 48 FF C2 0F 1F 00 }
       $s2 = { 41 89 F0 31 FE 01 D6 66 90 49 83 F8 11  }
       $s3 = { 48 8B 44 24 08 48 8B 5C 24 10 48 8B 4C 24 18  }
       $s4 = { 48 89 C1 48 89 DF 48 8D 05 0F 6F 15 00}
       $s5 = { 48 8D 3D 9A 6D 15 00 4D 89 C1 49 89 F0 }
       $s6 = { 81 39 49 43 4D 50 74 0C  }
       $s7 = { E8 FB E6 FF FF E8 76 D0 FF FF E8 91 C0 FF FF 48 8B 05 EA BF 53}
   condition:
      all of them
}

规则:CISA_251186_01

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
rule CISA_251186_01 : BRICKSTORM backdoor installs_other_components communicates_with_c2 exfiltrates_data
{
   meta:
       author = "CISA Code & Media Analysis"
       incident = "251186"
       date = "2025-11-17"
       last_modified = "n/a"
       actor = "n/a"
       family = "BRICKSTORM"
       capabilities = "installs-other-components communicates-with-c2 exfiltrates-data"
       malware_type = "backdoor"
       tool_type = "unknown"
       description = "Detects Go-Based BRICKSTORM backdoor samples"
       sha256_1 = "013211c56caaa697914b5b5871e4998d0298902e336e373ebb27b7db30917eaf"       
   strings:
       $s0 = { 41 89 F8 31 F7 8D 3C 39 8D 7F }
       $s1 = { 41 31 FA 44 88 14 30 46 88 0C 00 48 83 C1 02 }
       $s2 = { BA 61 6D 64 36 81 FA 61 6D 64 36 }
       $s3 = { 41 89 F0 31 FE 01 CE 01 D6 49 83 F8 1F }
       $s4 = { 4D 89 CA 49 83 F1 5B 41 29 F0 49 83 F9 44 }
       $s5 = { 48 89 F7 48 83 F6 45 48 83 FE 48 }
       $s6 = { B8 11 C6 F3 EB 48 BB 31 46 42 BB 0E DD CF F2 }
       $s7 = { 41 89 F8 31 F7 01 CF 48 83 FE 11 }
   condition:
      all of them
}

哈希值

  • SHA256: aaf5569c8e349c15028bc3fac09eb982efb06eabac955b705a6d447263658e38
  • SHA256: 320a0b5d4900697e125cebb5ff03dee7368f8f087db1c1570b0b62f5a986d759
  • SHA256: dfac2542a0ee65c474b91d3b352540a24f4e223f1b808b741cfe680263f0ee44
  • SHA256: b91881cb1aa861138f2063ec130b2b01a8aaf0e3f04921e5cbfc61b09024bf12
  • SHA256: bfb3ffd46b21b2281374cd60bc756fe2dcc32486dcc156c9bd98f24101145454
  • SHA256: 57bd98dbb5a00e54f07ffacda1fea91451a0c0b532cd7d570e98ce2ff741c21d
  • SHA256: 013211c56caaa697914b5b5871e4998d0298902e336e373ebb27b7db30917eaf
  • 等等(文章列出了多个样本的多种哈希值)

其他指标

  • 文本标签: eset, unknown, a variant of Linux/BrickStorm.A trojan, sophos, Linux/Brick-B, a variant of Linux/Packed.Obfuscated.B suspicious application
  • SSDeep哈希: 例如 49152:9lDeYNeYunc1S3/U05q+CIKUbwgBfd1Vww/uUJSZina/TokDDko0n8oQhEoAgsUJ:O3lcE380sIDbdB11p3i/TokEIowlb/r
  • 文件名: vmsrc, b3b6a992540da96375e4781afd3052118ad97cfe60ccf004d732f76678f6820a, 57bd98dbb5a00e54f07ffacda1fea91451a0c0b532cd7d570e98ce2ff741c21d, 73fe8b8fb4bd7776362fd356fdc189c93cf5d9f6724f6237d829024c10263fe5, 39b3d8a8aedffc1b40820f205f6a4dc041cd37262880e5030b008175c45b0c46, 013211c56caaa697914b5b5871e4998d0298902e336e373ebb27b7db30917eaf, f7cda90174b806a34381d5043e89b23ba826abcc89f7abd520060a64475ed506, 22c15a32b69116a46eb5d0f2b228cc37cd1b5915a91ec8f38df79d3eed1da26b, MAR-251165.c1.v1.CLEAR_stix2.json
  • 文件大小(字节): 7692288, 6311936, 15511700, 8332689, 26603668, 6303744

技术细节

UUID: 449f1f02-54d1-4af7-9bd8-beaba99e6d0c 原始时间戳: 1765616210

技术分析详情

此工件是一个用Go编程语言编写的恶意64位ELF可执行文件。该二进制文件被识别为名为BRICKSTORM的后门变种,它使用多种先进技术来逃避检测。后门使用SOCKS代理、多层Web服务通信和多种命令执行方式来掩盖其活动。后门结合了几种复杂的技术,包括DoH(基于HTTPS的DNS)、嵌套TLS加密以及滥用合法的云服务来逃避检测。后门包含身份验证密钥、HTTPS和WebSocket地址,作为其复杂、多层的C2(命令与控制)规避技术的一部分。

核心元素

  • 身份验证密钥: [Redacted]hkigbLKHR_Pby6t6Pos235tfg_2ys872o.droso(不同变种)
  • HTTPS地址: https://[redacted].com (运行时构建或硬编码)
  • WebSocket地址: wss://[redacted].com/api/cls/update/akamai/cloudapi (不同变种)

硬编码的域名已从报告中隐去。截至本报告发布,C2域名在不同受害者之间没有重复使用。

执行与持久化

  1. 环境配置: 执行后,后门启动 main_startNew 函数来配置环境变量。
  2. 子进程检测: 后门检查环境变量(如 VMware[redacted]NET6CZePMeGj[redacted]NET4FIOON)以确定其是否作为子进程运行。
  3. 路径验证与自复制: 如果不是子进程,后门通过尝试从特定路径(如 /etc/sysconfig/vmsrc/etc/sysconfig/viocli/etc/sysconfig/network/if-up/etc/sysconfig/vnetd/etc/sysconfig/vmckd/etc/sysconfig/vts)加载文件内容来验证其当前执行路径。如果并非从指定路径运行,则终止代码执行。如果从指定路径执行,则后门将自身复制到新位置(如 /opt/vmware/sbin/vmware-sphere/usr/java/jre-vmware/bin/updatemgr/etc/applmgmt/appliance/vami),并修改PATH环境变量,确保新复制的后门在执行时优先。
  4. 自守护机制: 后门使用 main_selfWatcher 函数确保其持续运行并维持在被入侵系统上的持久性。此自保存机制检查后门是否作为预期进程运行,如果不是,则后门会重新安装并重新执行自身。它检查特定的环境变量(如 Sphere[redacted]NET5rcMJVF[redacted]NET3DIGNN)和相关进程是否存在。
  5. 服务配置: 后门通过 main_setServiceCfg 函数配置其服务,例如禁用记录器并设置不同的休眠时间参数。

通信技术

  1. DoH(DNS over HTTPS): 程序包含一个硬编码的公共DoH服务器列表以促进通信。例如:
    • https://1.0.0.1/dns-query (Cloudflare)
    • https://1.1.1.1/dns-query (Cloudflare)
    • https://8.8.4.4/dns-query (Google)
    • https://8.8.8.8/dns-query (Google)
    • https://9.9.9.9/dns-query (Quad9)
    • https://45.90.28.160/dns-query (NextDNS)
    • https://45.90.30.160/dns-query (NextDNS)
    • https://149.112.112.112/dns-query (Quad9)
    • https://9.9.9.11/dns-query (Quad9)
    • https://149.112.112.11/dns-query (Quad9) 某些变种使用XOR加密来隐藏这些DoH服务器的IPv4地址。
  2. C2解析: 后门依赖来自自定义Go包(如wssoft2)的内部低级函数调用来处理其网络连接和命令处理。后门使用DoH来解析其C2服务器的地址。它创建一个DNS查询,将其封装在标准的HTTPS请求中进行加密,然后发送到由Cloudflare、Google、Quad9或NextDNS运营的合法公共DoH解析器进行处理。
  3. 多层加密通信:
    • 后门通过HTTPS与云平台通信,然后将会话升级为具有附加TLS加密层的WebSocket(例如 wss://[redacted].com/api)。
    • 在WebSocket会话内嵌套额外的TLS加密层。后门在已建立的WebSocket隧道内执行一系列嵌套的TLS握手。
    • 第一层TLS握手是初始HTTPS请求到云平台(如Cloudflare)的标准TLS握手。
    • 第二层TLS握手发生在WebSocket隧道内。在此步骤中,后门使用静态身份验证密钥(报告中已隐去或为hkigbLKHR_Pby6t6P等)向C2服务器进行身份验证。
    • 身份验证成功后,后门设置多路复用层。它处理Simple Multiplexing (smux) 和 Yet Another Multiplexer (Yamux) 库,基于客户端配置或握手数据在单个底层TLS安全连接上创建虚拟流。这种方法使得威胁行为者的活动难以检测,因为多个命令和网络隧道被多路复用并隐藏在单个加密的网络流中。

核心处理器与功能

一旦通过WebSocket与C2服务器建立连接,后门接收命令并定向到特定的处理器以在被入侵系统上执行任务。

主要处理器:

  1. SOCKS处理器 (wssoft2/core/handler/socks.HandleSocksRequestsocks.Socks):
    • 建立SOCKS中继,促进在被入侵网络内的横向移动并路由C2流量。
    • 尝试将传入请求解析为JSON格式的SOCKS参数。根据解析成功与否,它要么响应错误,要么将处理委托给SOCKS处理机制(如 socks.SocksWithLocalAddr)。
    • 通过TCP、UDP和ICMP执行SOCKS中继和网络隧道。
  2. WebService处理器 (wssoft2/core/handler/web.WebServiceweb.WebService):
    • 通过使后门看起来像合法的Web服务器来建立隐蔽的C2通信。
    • 使用Go语言,利用net/http包和gorilla/mux库,在被入侵系统上创建一个Web服务器。
    • 创建专用的API /api/ 端点以接收和执行来自威胁行为者C2服务器的命令。这为威胁行为者提供了对受害者文件系统的广泛控制,允许浏览、查看、创建、删除、上传和下载文件和文件夹。
    • 为了融入环境并逃避检测,后门从指定目录提供静态Web文件(HTML、CSS、JavaScript),使恶意Web服务器看起来像标准的Web应用程序。
  3. 命令处理器 (wssoft2/core/handler/command.HandleTTYRequestcommand.Command / command.CommandNoContext):
    • 用于在被入侵系统上执行shell命令,授予威胁行为者交互式命令行访问权限。
    • 处理器通过其隐蔽通信通道发起请求,将JSON负载解析为特定结构,提取并执行外部命令,专门建立与它的伪终端连接,从而实现交互式控制和数据交换。
    • CommandNoContext 变种在不使用显式安全上下文的情况下执行命令。

文件管理命令:

  • file-md5: 计算指定文件的MD5校验和以验证文件完整性。
  • get-file: 从被入侵系统下载文件到威胁行为者的C2服务器。
  • list-dir: 列出被入侵系统上目录的内容(浏览文件系统)。
  • put-file: 从威胁行为者的C2服务器上传文件到被入侵系统。
  • slice-up: 读取和下载文件的特定部分片段。

其他变种功能

某些变种还具有以下高级功能:

  • VSOCK代理处理器: 实现一个代理,根据传入请求中收到的JSON负载动态配置其出站连接,用于在虚拟化环境中维护隐蔽通信通道、逃避检测和进行网络跳转。
  • VSOCK连接处理器: 处理包含特定配置参数(CID、端口、族)的JSON负载的传入网络请求,以连接到VSOCK端点。
  • 环境变量配置: 某些变种从环境变量(如 listenAddrlistenPathpassword)检索C2连接参数,并动态生成内存中的自签名X.509证书用于WSS(WebSocket Secure)通信。
  • 代码混淆: 使用XOR密码加密隐藏关键字符串(如DoH服务器IP),移除符号调试信息(函数名、变量名),并使用自定义的复杂工具集对变量、核心函数和扩展参数进行混淆,以逃避检测和阻碍分析。

连接持久性

后门保持与C2服务器的持久连接,除非收到特定的终止命令或C2服务器终止连接。

来源: CIRCL OSINT 情报源 发布时间: 2025年12月13日 星期六 标记: TLP:CLEAR,与中国威胁组织UTA0178相关。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计