一、漏洞概述
2026年7月,SonicWall披露了其SMA1000系列安全远程访问设备中两个被在野利用的零日漏洞。这两个漏洞可被链接利用,形成一条从未认证远程SSRF到Root级别远程代码执行的完整攻击路径。威胁组织UTA0533在补丁发布前22天就已开始活跃利用此漏洞链,针对互联网暴露的VPN设备发起定向攻击。
| 属性 | CVE-2026-15409 | CVE-2026-15410 |
|---|---|---|
| CVSS v3.1 评分 | 10.0 (Critical) | 7.2 (High) |
| CWE 分类 | CWE-918 (SSRF) | CWE-94 (代码注入) |
| 认证要求 | 无需认证 | 后认证 (链式后可绕过) |
| 用户交互 | 无需 | 无需 |
| 攻击复杂度 | 低 | 低 |
| 影响范围 | 变更 | 变更 |
| 受影响组件 | WorkPlace Web界面 | Appliance Management Console (AMC) |
| 受影响固件 | 12.4.3 (03245/03387/03434)、12.5.0 (02283/02624/02800) | 同左 |
| 修复版本 | 12.4.3-03453 / 12.5.0-02835 及以上 | 同左 |
SMA1000是SonicWall的企业级SSL VPN网关设备,通常部署在网络边缘,作为企业远程访问的入口。这类设备聚合了远程访问凭证、VPN会话令牌,并直接暴露在互联网上,因此一旦被攻破,攻击者不仅能够获取管理员凭证,还能以此为跳板渗透内部网络。
二、SonicWall SMA1000架构分析
要理解漏洞链的利用原理,首先需要分析SMA1000的内部架构。SMA1000设备内部运行着多个服务和组件,它们之间通过本地网络端口通信,部分服务本应仅在localhost可达。
架构关键组件说明
1. WorkPlace Web界面 (:443)
SMA1000对外暴露的主要Web界面,通过NGINX反向代理提供服务。用户通过此界面进行VPN认证和访问内部资源。/wsproxy端点是WorkPlace界面中负责WebSocket代理的功能模块,正是CVE-2026-15409的注入点。
2. Appliance Management Console (AMC)
设备的管理控制台,用于配置设备、管理用户、设置访问策略和监控会话。AMC内部的ctrl-service提供了包括热修复管理(remove_hotfix)在内的RPC接口,CVE-2026-15410即存在于该工作流中。
3. Erlang应用 (localhost:1050)
设备内部运行的Erlang应用程序,通过RPC进行通信。关键问题在于,该Erlang节点使用的RPC Cookie在所有设备中硬编码且相同,这意味着一旦攻击者能够通过SSRF建立到该端口的连接,即可无需认证地与Erlang应用交互。
4. ctrl-service (localhost:8188)
内部控制服务,提供设备管理RPC接口。其remove_hotfix工作流负责处理热修复文件的移除操作,但对该流程中hotfix参数的路径校验存在缺陷,导致路径穿越漏洞。
5. CouchDB实例
设备内置的CouchDB数据库实例,使用默认凭证运行于couchdb服务账户下。攻击者通过Erlang RPC隧道可达此实例,进而获得低权限的文件读写能力。
三、CVE-2026-15409:未认证SSRF漏洞深度分析
3.1 漏洞原理
CVE-2026-15409是一个典型的服务端请求伪造(SSRF)漏洞,位于SMA1000 WorkPlace Web界面的/wsproxy端点。该端点的设计初衷是为WebSocket代理功能提供服务,允许设备代理客户端的WebSocket连接。然而,该端点对用户提交的host参数缺乏充分的输入验证,允许攻击者指定任意目标地址。
漏洞的核心在于:/wsproxy端点在处理请求时,会根据用户提供的host参数发起出站连接。由于没有对目标地址进行白名单校验或内网地址过滤,攻击者可以构造请求使设备向localhost或::ffff:127.0.0.1等回环地址发起连接,从而访问本应仅限内部访问的服务。
3.2 请求路径与参数注入点
攻击者向/wsproxy端点发送的请求中,包含以下关键参数:
| 参数 | 作用 | 漏洞利用方式 |
|---|---|---|
host |
指定WebSocket代理目标主机 | 设置为localhost或::ffff:127.0.0.1,访问内部服务 |
bmID |
连接标识参数 | 以-3389开头的特定值,触发特定代理行为 |
User-Agent |
HTTP请求头 | 设置为SMA Connect Agent,伪装为合法客户端 |
bmID参数以-3389开头这一特征尤为重要。该参数值会影响代理行为的分支逻辑,特定的前缀值会引导请求进入未做内部地址校验的代码路径。
3.3 内部服务发现
通过SSRF漏洞,攻击者可以建立到以下内部服务的WebSocket隧道:
-
Erlang应用 (
localhost:1050):由于RPC Cookie硬编码,攻击者无需认证即可与该应用交互,进而通过Erlang RPC调用执行操作。这直接将网络访问能力转化为代码执行能力,但权限限于couchdb服务账户。 -
ctrl-service (
localhost:8188):内部控制服务,提供设备管理RPC接口。通过SSRF隧道可达该服务,为后续CVE-2026-15410的利用创造了条件。 -
CouchDB实例:使用默认凭证运行的数据库,攻击者可通过Erlang隧道读取硬件ID等敏感信息,并获得低权限的文件读写能力。
SSRF漏洞在此处的价值不仅在于信息泄露,更重要的是它打破了网络隔离边界:将这些仅限localhost访问的内部服务暴露给了远程未认证攻击者,为后续的代码注入漏洞创造了可达性条件。
3.4 SSRF PoC概念代码
以下为CVE-2026-15409 SSRF漏洞的概念性HTTP请求示例。此代码仅用于防御研究和漏洞理解,不应用于未经授权的测试。
POST /wsproxy HTTP/1.1
Host: <target-appliance>:443
User-Agent: SMA Connect Agent
Content-Type: application/x-www-form-urlencoded
Connection: Upgrade
Upgrade: websocket
bmID=-3389&host=localhost&port=1050
# 概念性利用脚本(伪代码,仅用于安全研究)
import requests
import websocket
TARGET = "https://<target-appliance>:443"
# 第一步:通过SSRF建立到内部Erlang应用的WebSocket隧道
ssrf_url = f"{TARGET}/wsproxy"
headers = {
"User-Agent": "SMA Connect Agent",
"Connection": "Upgrade",
"Upgrade": "websocket"
}
params = {
"bmID": "-3389",
"host": "localhost", # 指向内部服务
"port": "1050" # Erlang应用端口
}
# 建立WebSocket隧道 -> 获取内部Erlang RPC访问能力
# 由于RPC Cookie硬编码,隧道建立后无需认证即可交互
ws_tunnel = websocket.create_connection(
ssrf_url,
header=headers,
subprotocols=["binary"],
host=f"{params['host']}:{params['port']}"
)
# 第二步:通过隧道与Erlang应用交互
# 读取CouchDB中存储的硬件ID
# 获得couchdb服务账户权限下的文件读写能力
hardware_id = erlang_rpc_call(ws_tunnel, "get_hardware_id")
# 第三步:准备过渡到CVE-2026-15410
# 将恶意脚本写入/tmp目录(couchdb账户可写)
write_file(ws_tunnel, "/tmp/stage.sh", payload_script)
关键分析点:
User-Agent: SMA Connect Agent是合法客户端的标识,请求头伪装使得流量看起来像正常的SMA连接代理请求。bmID=-3389前缀触发了特定的代理逻辑分支,该分支缺少对host参数的内网地址校验。host=localhost使设备向自身的内部服务发起连接,实现了从外部到内部的访问跨越。- WebSocket隧道的建立意味着攻击者获得了双向交互通道,而非简单的单向请求转发。
四、CVE-2026-15410:代码注入漏洞深度分析
4.1 漏洞原理
CVE-2026-15410是位于AMC(Appliance Management Console)内部控制服务ctrl-service中的代码注入漏洞。该漏洞存在于remove_hotfix(热修复移除)工作流中,属于后认证漏洞——正常情况下需要管理员认证才能访问。
然而,当与CVE-2026-15409 SSRF漏洞链接使用时,攻击者已通过WebSocket隧道获得了对ctrl-service(localhost:8188)的访问能力,从而绕过了AMC的正常认证机制。这使得原本需要认证的代码注入漏洞变为未认证可达。
4.2 文件路径解析为可执行脚本
漏洞的核心在于remove_hotfix工作流对hotfix参数的处理方式。正常工作流程如下:
正常流程:
1. 管理员请求移除特定热修复
2. ctrl-service接收hotfix参数(预期为热修复ID/文件名)
3. 根据hotfix参数定位热修复文件路径
4. 执行移除操作
漏洞流程:
1. 攻击者通过SSRF隧道调用remove_hotfix RPC
2. 提交经过路径穿越构造的hotfix参数
3. hotfix参数指向攻击者预先写入/tmp的脚本文件
4. ctrl-service对该文件执行chmod +x(添加可执行权限)
5. 以root权限执行该脚本文件
具体来说,remove_hotfix工作流在处理hotfix参数时,会将其拼接到文件系统路径中,用于定位需要移除的热修复文件。由于缺少对路径穿越字符(如../)的过滤,攻击者可以构造如下的hotfix参数值:
hotfix=../../../../tmp/stage.sh
该路径从热修复目录穿越到/tmp目录下攻击者预先写入的脚本文件。随后,ctrl-service会执行以下操作:
- 路径拼接:将
hotfix参数值拼接到基础路径上,形成完整的文件路径。 - 权限修改:对引用的文件执行
chmod +x操作,将其标记为可执行文件。 - 命令执行:以root权限执行该文件,因为
ctrl-service以root身份运行。
由于ctrl-service以设备最高权限(root)运行,攻击者通过此路径执行的脚本将继承root权限,从而完成从零权限到完全控制设备的跨越。通常,此操作会触发设备的立即重启,这也成为了一个可观测的入侵指标。
4.3 从SSRF到代码注入的权限提升路径
权限演进路径:
[互联网攻击者] [权限:无]
│
│ CVE-2026-15409 (SSRF)
▼
[WebSocket隧道 → Erlang :1050] [权限:无 → 网络访问]
│
│ 硬编码RPC Cookie
▼
[CouchDB / couchdb账户] [权限:低权限服务账户]
│
│ 文件读写(写入/tmp/stage.sh)
▼
[SSRF隧道 → ctrl-service :8188] [权限:网络访问]
│
│ CVE-2026-15410 (路径穿越代码注入)
▼
[remove_hotfix → root执行] [权限:ROOT]
│
▼
[完全控制设备] [权限:Root RCE]
五、完整漏洞链利用时序图
时序关键节点解析
节点1 - SSRF隧道建立:攻击者仅需一个HTTP请求即可建立到内部服务的双向通信隧道。此步骤无需任何凭证,攻击复杂度极低。
节点2 - 硬编码Cookie利用:Erlang RPC Cookie在所有SMA1000设备中相同,这是一个严重的架构缺陷。一旦网络可达性通过SSRF获得,认证层即被完全绕过。
节点3 - 路径穿越到Root:remove_hotfix工作流以root权限运行且对路径参数缺少校验,这是整个漏洞链中权限跃升的关键环节。攻击者从couchdb低权限账户一步跳升至root。
节点4 - 持久化部署:Root权限获取后,攻击者立即部署多层后门机制,确保即使设备重启也能维持访问。
六、UTA0533攻击者TTP分析
UTA0533是Volexity跟踪的威胁组织,在该攻击活动中展示了针对SonicWall设备的高度定制化攻击能力。以下是基于MITRE ATT&CK框架的TTP映射分析。
| ATT&CK 技术 ID | 技术名称 | 战术阶段 | UTA0533具体行为 |
|---|---|---|---|
| T1190 | 利用面向公众的应用 | 初始访问 | 利用CVE-2026-15409 SSRF漏洞攻击互联网暴露的SMA1000设备 |
| T1190 | 利用面向公众的应用 | 初始访问 | 链式利用CVE-2026-15410代码注入获取root权限 |
| T1059.006 | Python | 执行 | 部署Python编写的KNUCKLEBALL加载器(deploy_new.py) |
| T1055 | 进程注入 | 防御规避 | 将Java载荷注入到已运行的合法SonicWall进程内存中 |
| T1068 | 利用漏洞进行权限提升 | 权限提升 | 通过CVE-2026-15410路径穿越漏洞从couchdb账户提升至root |
| T1068 | 利用漏洞进行权限提升 | 权限提升 | 部署setuid二进制ROOTRUN作为独立提权备份路径 |
| T1505.003 | Web Shell | 持久化 | 部署ORANGETAIL Java Web Shell(/workplace/dialogs/errorDialog.jsp) |
| T1505.003 | Web Shell | 持久化 | 修改workplace启动脚本实现重启后自动重新注入恶意载荷 |
| T1573.002 | 加密通道:非对称加密 | 命令与控制 | 通过伪装为正常设备流量的加密Web Shell通信 |
| T1090 | 代理 | 命令与控制 | 部署Suo5 HTTP代理工具,将设备作为内网渗透跳板 |
| T1090.003 | 代理:内部代理 | 命令与控制 | 利用Suo5代理将攻击流量转发至内网深层系统 |
| T1040 | 网络嗅探 | 凭证访问 | 使用tcpdump捕获设备内网接口上的未加密LDAP认证流量 |
| T1552.001 | 未加密凭证:文件中凭证 | 凭证访问 | 从设备存储中读取缓存的用户和管理员凭证 |
| T1070.004 | 删除文件 | 防御规避 | ORANGETAIL在非匹配User-Agent请求时返回正常404页面 |
| T1098 | 账户操作 | 持久化 | 通过修改NGINX Unit配置添加隐蔽路由实现C2通道 |
| T1021 | 远程服务 | 横向移动 | 尝试使用捕获的LDAP凭证向域控制器发起认证 |
| T1071.001 | 应用层协议:Web协议 | 命令与控制 | 所有C2通信通过HTTPS伪装为正常设备Web流量 |
攻击者工具集分析
UTA0533部署的恶意软件工具集是专门为SMA1000平台定制的,而非通用工具,这表明攻击者对该设备有深入的研究:
1. KNUCKLEBALL(恶意软件加载器)
- 文件路径:
/usr/lib/python3.11/site-packages/deploy_new.py - 类型:Python脚本,内嵌两个JAR归档文件
- 功能:将Java载荷注入到已运行的合法SonicWall进程内存中,避免在磁盘上释放独立可执行文件
- 防御规避特点:进程注入方式使恶意代码不产生新进程,难以通过进程监控发现
2. ORANGETAIL(Java Web Shell)
- 暴露路径:
/workplace/dialogs/errorDialog.jsp - 类型:基于Behinder模型定制的Java Web Shell
- 防御规避特点:仅对携带特定User-Agent的请求响应;对其他请求返回正常404页面,完美融入设备正常Web流量
3. Suo5(HTTP代理工具)
- 暴露路径:
/workplace/error.jsp - 类型:开源高性能HTTP代理转发工具
- 战术价值:此前曾在中国APT针对Ivanti CSA设备的攻击中被使用;使攻击者能够将受控设备作为内网渗透跳板
4. ROOTRUN(本地提权二进制)
- 文件路径:
/usr/bin/xzfind - 类型:setuid ELF二进制文件
- 功能:允许任何非特权本地用户以root权限执行任意命令
- 战术价值:作为独立于CVE-2026-15410原始利用链的持久化提权备份路径
持久化机制
UTA0533建立了多层持久化机制以确保持续访问:
- 启动脚本修改:修改设备合法的workplace启动脚本,使恶意软件在设备重启后自动重新注入运行。
- NGINX Unit配置篡改:重写
/var/lib/unit/conf.json配置文件,添加将互联网可达URI映射到Suo5和ORANGETAIL载荷的路由规则,将C2访问点隐藏在设备自身的反向代理配置中。 - setuid提权后门:ROOTRUN二进制提供独立的提权路径,不依赖原始漏洞利用链。
凭证窃取
获取root权限后,UTA0533通过tcpdump在设备内网接口上嗅探未加密的LDAP认证流量,捕获用户凭证以支持进一步的横向移动。攻击者还从设备存储中读取缓存的用户和管理员凭证,并可能获取TOTP/MFA种子值。
七、检测规则
7.1 Suricata规则:SSRF检测
以下Suricata规则用于检测针对/wsproxy端点的SSRF攻击尝试:
# 规则1:检测/wsproxy端点携带内部地址参数的请求
alert http $EXTERNAL_NET any -> $HOME_NET 443 ( \
msg:"CVE-2026-15409 SonicWall SMA1000 SSRF via /wsproxy endpoint"; \
flow:established,to_server; \
content:"POST"; http_method; \
content:"/wsproxy"; http_uri; \
content:"bmID=-3389"; http_client_body; \
content:"SMA Connect Agent"; http_header; \
pcre:"/host=(localhost|127\.0\.0\.1|::ffff:127\.0\.0\.1|0\.0\.0\.0)/Hi"; \
reference:cve,2026-15409; \
classtype:attempted-recon; \
sid:2026154091; rev:1; \
metadata:attack_target Networking_Equipment, created_at 2026_07_14; \
)
# 规则2:检测/wsproxy WebSocket升级请求携带内部端口
alert http $EXTERNAL_NET any -> $HOME_NET 443 ( \
msg:"CVE-2026-15409 SonicWall SMA1000 SSRF targeting internal Erlang/ctrl-service ports"; \
flow:established,to_server; \
content:"/wsproxy"; http_uri; \
content:"Upgrade|3a 20|websocket"; http_header; \
pcre:"/port=(1050|8188)/Hi"; \
reference:cve,2026-15409; \
classtype:attempted-admin; \
sid:2026154092; rev:1; \
metadata:attack_target Networking_Equipment, created_at 2026_07_14; \
)
7.2 Suricata规则:代码注入与后门检测
# 规则3:检测ORANGETAIL Web Shell访问
alert http $EXTERNAL_NET any -> $HOME_NET 443 ( \
msg:"SonicWall SMA1000 ORANGETAIL webshell access via errorDialog.jsp"; \
flow:established,to_server; \
content:"/workplace/dialogs/errorDialog.jsp"; http_uri; \
content:"Upgrade|3a 20|websocket"; http_header; \
classtype:trojan-activity; \
sid:2026154101; rev:1; \
metadata:attack_target Networking_Equipment, created_at 2026_07_17; \
)
# 规则4:检测Suo5代理工具访问
alert http $EXTERNAL_NET any -> $HOME_NET 443 ( \
msg:"SonicWall SMA1000 Suo5 proxy tool access via error.jsp"; \
flow:established,to_server; \
content:"/workplace/error.jsp"; http_uri; \
content:"POST"; http_method; \
detection_filter:track by_src, count 5, seconds 60; \
classtype:trojan-activity; \
sid:2026154102; rev:1; \
)
# 规则5:检测C2通信回连
alert ip $HOME_NET any -> [45.131.194.0/24,45.146.54.0/24,63.135.161.0/24,173.239.211.0/24,193.37.32.179,193.37.32.214,216.73.163.151,216.73.163.158] any ( \
msg:"UTA0533 C2 communication from compromised SonicWall SMA1000"; \
classtype:trojan-activity; \
sid:2026154103; rev:1; \
metadata:attack_target Networking_Equipment, created_at 2026_07_17; \
)
7.3 Sigma规则:日志检测
以下Sigma规则用于检测设备日志中的恶意活动迹象:
SSRF检测规则:
title: SonicWall SMA1000 CVE-2026-15409 SSRF Detection
id: 7a3f2c1e-2026-1540-9b8c-d4e5f6a7b8c9
status: experimental
description: >
检测SonicWall SMA1000 extraweb_access.log中的可疑/wsproxy请求,
可能表明CVE-2026-15409 SSRF漏洞利用
references:
- https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2026-0008
author: Security Research Team
date: 2026/07/15
logsource:
product: sonicwall
service: extraweb_access
detection:
selection_ssrf:
uri|contains: '/wsproxy'
user_agent|contains: 'SMA Connect Agent'
filter_host_param:
uri|re: 'host=(localhost|127\.0\.0\.1|::1)'
condition: selection_ssrf
falsepositives:
- 合法的SMA Connect Agent内部连接(需排除内部IP来源)
level: high
tags:
- attack.initial_access
- attack.t1190
- cve.2026-15409
代码注入检测规则:
title: SonicWall SMA1000 CVE-2026-15410 Code Injection Detection
id: 8b4e3d2f-2026-1541-0c9d-e5f6a7b8c9d0
status: experimental
description: >
检测SonicWall SMA1000 ctrl-service.log中的可疑hotfix移除操作,
可能表明CVE-2026-15410路径穿越代码注入漏洞利用
references:
- https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2026-0008
author: Security Research Team
date: 2026/07/15
logsource:
product: sonicwall
service: ctrl-service
detection:
selection_hotfix:
message|contains: 'remove_hotfix'
filter_path_traversal:
message|re: '(\.\.\/|\.\.\\|%2e%2e%2f)'
condition: selection_hotfix and filter_path_traversal
falsepositives:
- 极少;合法热修复移除操作不应包含路径穿越字符
level: critical
tags:
- attack.privilege_escalation
- attack.t1068
- cve.2026-15410
后门文件检测规则:
title: SonicWall SMA1000 UTA0533 Backdoor File Detection
id: 9c5f4e3a-2026-1542-1d0e-f6a7b8c9d0e1
status: experimental
description: >
检测UTA0533在受感染SMA1000设备上部署的后门文件和配置篡改
references:
- https://www.volexity.com/blog/2026/07/17/proxying-to-compromise-sonicwall-secure-mobile-access-0-day-exploitation/
author: Security Research Team
date: 2026/07/17
logsource:
product: linux
category: file_event
detection:
selection_knuckleball:
TargetFilename|endswith: '/usr/lib/python3.11/site-packages/deploy_new.py'
selection_rootrun:
TargetFilename: '/usr/bin/xzfind'
selection_nginx_config:
TargetFilename|endswith: '/var/lib/unit/conf.json'
selection_webshell:
TargetFilename|contains:
- '/workplace/dialogs/errorDialog.jsp'
- '/workplace/error.jsp'
condition: selection_knuckleball or selection_rootrun or selection_nginx_config or selection_webshell
falsepositives:
- 无已知误报情况
level: critical
tags:
- attack.persistence
- attack.t1505.003
- attack.t1098
- attack.g1201
7.4 日志取证检查清单
除自动化规则外,应对以下日志文件和位置进行手动取证检查:
| 检查项 | 日志路径 | 检测特征 |
|---|---|---|
| SSRF请求 | extraweb_access.log |
可疑/wsproxy请求携带内部host参数 |
| API滥用 | extraweb_access.log |
对/__api__/login或/__api__/logout的异常200状态请求 |
| 热修复移除 | ctrl-service.log |
remove_hotfix操作中出现路径穿越条目 |
| NGINX配置篡改 | /var/lib/unit/conf.json |
非预期的login/logout路由映射 |
| setuid二进制 | /usr/bin/ |
意外的setuid权限文件(特别是xzfind) |
| Python包目录 | site-packages/ |
非预期的deploy_new.py文件 |
| 启动脚本 | workplace启动脚本 | 非预期的修改或注入内容 |
八、防御配置
8.1 SMA1000加固清单
紧急修复措施:
| 优先级 | 措施 | 详情 |
|---|---|---|
| P0 | 立即升级固件 | 升级至12.4.3-03453或12.5.0-02835及以上平台热修复版本 |
| P0 | 取证审查 | 对所有SMA1000设备执行文件系统和日志IoC检查 |
| P0 | 受感染设备重建 | 若确认任何IoC存在,重新镜像物理设备或重新部署虚拟设备,不要尝试原地清理 |
| P1 | 轮换所有凭证 | 轮换通过受影响设备认证或管理的所有用户和管理员密码 |
| P1 | 重置MFA种子 | 重置所有TOTP/MFA种子值,因种子可能已被从设备中窃取 |
| P1 | 配置审计 | 若无早于受影响版本的备份,手动审计当前配置是否被篡改 |
访问控制加固:
SMA1000访问控制加固配置:
1. 限制管理接口访问
- AMC管理控制台仅允许从内部管理网段访问
- 配置防火墙规则限制管理流量来源IP
- 禁用不必要的管理协议(Telnet、HTTP明文)
2. 网络分段隔离
- 将SMA1000部署在独立DMZ网段
- 内部服务网段与VPN接入网段严格隔离
- 限制SMA1000内网接口的可达范围
- 确保LDAP流量使用LDAPS加密(防止tcpdump嗅探)
3. 认证加固
- 强制MFA/TOTP对所有管理员账户
- 定期轮换管理员凭证
- 禁用默认账户和默认凭证
- 审计CouchDB默认凭证是否已更改
4. 日志与监控
- 启用详细访问日志记录
- 将日志转发至集中SIEM平台
- 配置针对/wsproxy端点的异常请求告警
- 监控设备配置文件的未授权变更
8.2 网络分段建议
网络分段关键原则:
-
DMZ隔离部署:SMA1000设备必须部署在独立DMZ网段,与内部核心网络物理或逻辑隔离。防火墙应仅允许HTTPS:443入站流量到达设备。
-
管理流量隔离:AMC管理控制台的访问应通过独立的VPN隧道或跳板机进行,不应直接暴露在互联网上。管理网段应与VPN用户接入网段严格隔离。
-
LDAP加密强制:内部LDAP通信必须使用LDAPS(端口636)加密,消除UTA0533通过tcpdump嗅探未加密LDAP凭证的攻击面。
-
域控制器保护:限制SMA1000设备对域控制器的直接访问。监控源自设备内部IP但无对应活跃VPN会话的异常域控制器认证请求。
-
出站流量管控:配置出站防火墙规则限制SMA1000设备的出站连接,阻断到已知UTA0533 C2基础设施的通信。特别关注ASN 206092(FNS Holdings Limited)的流量。
-
日志独立存储:将设备日志实时转发至独立的SIEM平台,防止攻击者获取root权限后篡改本地日志。
九、漏洞披露时间线分析
时间线关键分析
| 日期 | 事件 | 分析要点 |
|---|---|---|
| 2026-06-22 | UTA0533开始活跃利用 | 最早的可观测入侵迹象。攻击者在此日期即开始利用零日漏洞,此时漏洞尚未公开,SonicWall未发布任何补丁或通告。 |
| 2026-07-04 | 持续定向攻击 | 攻击活动持续进行,Rapid7 MDR团队独立确认了公开披露前的定向利用活动,表明这是一次协调的预披露利用行动。 |
| 2026-07-14 | SonicWall发布补丁 | 从首次利用到补丁发布历时22天。SonicWall同时发布了安全通告SNWLID-2026-0008和IoC。CISA同日将两个漏洞加入KEV目录。 |
| 2026-07-17 | CISA修复截止日 | CISA要求联邦机构在此日期前完成修复,从加入KEV到截止仅3天,反映了漏洞的严重性和在野利用状态。 |
| 2026-07-21 | 公开披露 | 完整技术细节公开披露。Volexity此前已发布详细技术分析,多个安全厂商跟进发布威胁报告。 |
时间线暴露的问题
1. 零日窗口期过长
从UTA0533开始利用(6月22日)到补丁发布(7月14日),存在长达22天的零日窗口期。在此期间,所有运行受影响固件版本的SMA1000设备均处于无防护状态。这22天中攻击者可以不受限制地利用漏洞进行定向攻击。
2. 补丁发布与披露的同步性
SonicWall选择在发布补丁的同日加入CISA KEV目录,且设置极短的修复期限(3天)。这表明厂商和CISA均认为威胁紧迫性极高,但也给运维团队带来了巨大的修复压力。
3. 补丁不足以消除威胁
SonicWall明确指出,仅安装补丁不足以清理已被入侵的设备。如果设备已感染KNUCKLEBALL等恶意软件,必须重新镜像或重新部署设备,并轮换所有凭证。这意味着补丁管理只是恢复工作的第一步。
4. 预披露利用的严重性
UTA0533在漏洞公开前近一个月即开始利用,且Rapid7独立确认了这一活动。这表明攻击者可能通过独立漏洞研究发现了这些缺陷,而非从公开信息中获取利用方法。这种预披露零日利用对防御方构成了极大挑战。
十、IOC指标汇总
文件系统IOC
| IOC类型 | 路径 | 关联组件 |
|---|---|---|
| Python加载器 | /usr/lib/python3.11/site-packages/deploy_new.py |
KNUCKLEBALL |
| setuid提权二进制 | /usr/bin/xzfind |
ROOTRUN |
| NGINX配置 | /var/lib/unit/conf.json(被篡改) |
持久化路由 |
| Web Shell | /workplace/dialogs/errorDialog.jsp |
ORANGETAIL |
| 代理工具 | /workplace/error.jsp |
Suo5 |
网络IOC(C2基础设施)
| IP地址 | 备注 |
|---|---|
| 45.131.194.0/24 | UTA0533 C2网段 |
| 45.146.54.0/24 | UTA0533 C2网段 |
| 63.135.161.0/24 | UTA0533 C2网段 |
| 173.239.211.0/24 | UTA0533 C2网段 |
| 193.37.32.179 | UTA0533 C2 IP |
| 193.37.32.214 | UTA0533 C2 IP |
| 216.73.163.151 | UTA0533 C2 IP |
| 216.73.163.158 | UTA0533 C2 IP |
攻击者通过ExpressVPN和Mullvad出口节点跨200+个IP地址路由流量,并使用了包括Kali Linux在内的多个攻击者主机(DESKTOP-KRLUI3J、DESKTOP-IC3C80F、DESKTOP-5P0TSCP)。
十一、总结与启示
CVE-2026-15409/15410漏洞链展示了边缘设备安全中几个深刻的问题:
1. 硬编码凭证的致命风险
Erlang RPC Cookie在所有SMA1000设备中相同,这意味着一旦攻击者通过网络漏洞(SSRF)获得对内部服务的可达性,认证层即形同虚设。硬编码的共享密钥是分布式系统设计中的反模式,在安全设备中尤其不可接受。
2. SSRF作为漏洞链入口的破坏力
CVE-2026-15409单独来看"仅"是SSRF漏洞,但其真正的破坏力在于打破了网络隔离边界,使仅限localhost访问的内部管理服务暴露给远程攻击者。SSRF漏洞在边缘设备上不应被低估为低风险问题——当设备内部运行着高权限管理服务时,SSRF实质上是通向RCE的桥梁。
3. 路径校验缺失的连锁后果
remove_hotfix工作流对hotfix参数的路径穿越校验缺失,使低权限的couchdb服务账户能够通过路径穿越触发root权限的命令执行。这是经典的输入验证不足导致的权限提升问题。
4. 零日窗口期的防御困境
22天的零日窗口期对防御方意味着在此期间只能依赖网络分段、出站流量管控和异常行为检测等补偿性控制措施。这凸显了深度防御架构的重要性——单一补丁管理无法覆盖零日风险。
5. 边缘设备作为高价值目标
SMA1000作为SSL VPN网关,聚合了远程访问凭证并直接暴露在互联网上,是天然的高价值目标。攻击者获取root权限后不仅可以窃取凭证、嗅探内网流量,还能将设备作为持久化的内网渗透跳板。设备的root级失陷等同于网络边界的全面突破。
6. 持久化的多层设计
UTA0533的持久化机制设计精巧——从启动脚本修改到NGINX配置篡改,从进程注入到setuid二进制,多层后门确保即使某一层被发现和清除,攻击者仍可通过其他路径重新获取访问。这要求防御方在进行事件响应时必须彻底重建设备,而非简单地清除已知恶意文件。
对于运行SMA1000设备的组织,当务之急是立即升级至修复版本,执行全面的取证检查,并对任何确认感染的设备执行彻底重建和凭证轮换。同时,应审视整体网络架构,确保边缘设备与核心网络之间有充分的隔离和监控,以在未来类似的零日攻击中获得更长的响应缓冲期。
免责声明:本文中的PoC代码和检测规则仅用于安全研究和防御目的。未经授权对他人系统进行漏洞测试是违法行为。所有技术细节基于公开披露的安全通告和研究报告编写。
参考资料:
- SonicWall安全通告 SNWLID-2026-0008
- Volexity技术分析报告 (2026-07-17)
- CISA已知被利用漏洞目录 (KEV)
- Rapid7、Tenable、SecPod威胁分析报告
浙公网安备 33010602011771号