2025 年 10 月中旬开始,针对知名文本编辑器 Notepad++ 的供应链攻击悄然爆发。攻击者并未直接入侵开发者服务器,而是通过劫持其内置的 WinGUp 更新机制,向用户推送了恶意可执行文件,导致多家企业内网失陷。这一事件不仅暴露了开源软件在自动更新链路上的信任脆弱性,也为我们提供了研究代码注入与签名绕过技术的典型样本。本文将从取证分析的角度,拆解这起攻击的技术细节,并探讨工程化的安全加固策略。
1. 攻击向量解析:从更新流量到代码执行
Notepad++ 使用名为 WinGUp(通常表现为 GUP.exe)的内置工具进行版本更新。根据 F5 安全报告和 BeyondMachines 的分析,攻击的核心在于对更新流量(Update Traffic)的中间人攻击(Man-in-the-Middle, MITM)。早期版本的 Notepad++ 在与更新服务器 notepad-plus-plus.org 通信时,并未强制使用加密链路,或即使使用 HTTPS,也存在被 ISP 级别 TLS 拦截的风险。
更关键的是,为了便于分发,部分早期版本曾依赖存储在 GitHub 上的自签名根证书进行签名校验。这种设计虽然在开发者看来是为了绕过复杂的证书配置,却为攻击者敞开了大门 —— 一旦攻击者能够伪造或信任这些证书,便能肆意篡改下载内容,而不会触发任何安全警告。攻击者正是利用了这一信任链的薄弱环节,在用户触发更新检查时,将下载 URL 重定向至托管恶意载荷的服务器。
2. 恶意载荷行为:侦察与持久化机制
一旦恶意更新被下载并执行,攻击链便进入第二阶段。取证人员在对受感染终端进行分析时,发现了若干特征性的攻击指标(IOCs)。
首先是进程异常。合法的 GUP.exe 在正常更新流程中不应随意 Spawn 其他进程。但在受攻击系统中,观察到 GUP.exe 启动了一个名为 %Temp%\AutoUpdater.exe 的未授权进程。这个恶意的 AutoUpdater.exe 随后执行了一系列系统侦察命令,包括 netstat -ano(查看网络连接)、systeminfo(收集系统信息)、tasklist(列出运行进程)以及 whoami(确认当前用户身份)。这些命令的输出被重定向并写入一个名为 a.txt 的文件。
其次是数据外泄。为了将窃取的信息传出,恶意程序调用了系统自带的 curl.exe 工具,将 a.txt 的内容上传至攻击者控制的域名 temp[.]sh。这种利用合法系统工具(如 curl)进行文件传输的手法,极大地增加了检测难度,因为它绕过了对可疑网络连接的常规告警,转而披上了 “正常工具行为” 的外衣。
3. 签名绕过与信任链滥用
这起事件的核心技术难点在于 “签名绕过”。通常,软件分发都会使用数字签名来确保文件的完整性和来源可信。然而,Notepad++ 的早期实现中存在两个致命缺陷:第一,更新服务器返回的 XML 配置文件缺乏防篡改机制,攻击者可以轻易修改其中的下载链接;第二,客户端对下载下来的安装包(Installer)并未进行严格的证书校验。
根据 BeyondMachines 的报告,攻击的初步迹象还包括:在受感染机器上发现了没有有效 GlobalSign 数字签名的二进制文件。这表明攻击者分发的 payload 并未经过正规 CA 的签名,或者是利用了旧版 Notepad++ 对自签名证书的 “友好” 态度,从而绕过了操作系统的 SmartScreen 和杀毒软件的主动防御。
4. 安全加固与响应策略
针对此类供应链攻击的防御,必须在 “事前、事中、事后” 三个阶段采取不同策略。
事前:构建不可绕过的信任链。 在开发者层面,Notepad++ 已经在 v8.8.9 中引入了严格的签名验证机制。该版本强制要求对所有下载的安装程序进行数字签名和证书验证,一旦验证失败,更新过程将自动中止。此外,新版软件使用由 GlobalSign 颁发的正式证书替代了此前的自签名根证书,从根本上杜绝了伪造的可能性。
事中:阻断恶意流量。 对于企业安全团队而言,当务之急是确保所有终端均已升级至安全版本。同时,应在防火墙和代理层面建立策略:阻断任何来自 GUP.exe 进程指向非官方域名(除了 notepad-plus-plus.org 和 github.com 及其资产域名)的网络连接。特别是要密切监控发往 temp[.]sh 域名的流量,并将其加入黑名单。
事后:取证与清除。 如果怀疑系统已被入侵,应重点检查 %Temp% 目录下是否存在可疑的 update.exe 或 AutoUpdater.exe 文件。同时,审计系统是否安装了任何非官方的根证书,并立即予以移除。对于网络层面,应审查历史日志,查找 netstat、systeminfo 等命令的异常执行记录,以及 curl 向外传输文件的行为。
5. 结语:重新审视 “自动更新” 的安全边界
Notepad++ 供应链攻击是一记警钟。它提醒我们,广泛使用的 “便民” 功能 —— 自动更新 —— 如果缺乏严格的工程安全控制,反而会成为攻击者的 “高速公路”。对于开发者,应坚持使用权威 CA 证书、强制 HTTPS、并在服务端启用响应签名。对于企业,安全团队应将常用开发工具的更新机制纳入零信任网络架构的监控范畴,而非假设其绝对可信。只有开发者与使用者共同收紧信任链,才能有效抵御日益复杂的供应链威胁。
资料来源:
- F5 Threat Report - December 17th, 2025
- BeyondMachines: Notepad++ users targeted in supply chain attack through update mechanism