供应链漏洞挖掘:从单点突破到全网沦陷的深度狩猎指南

admin 2026年3月10日01:06:21评论188 views字数 9044阅读30分8秒阅读模式

本文深度剖析2025-2026年供应链攻击新趋势,涵盖Notepad++更新劫持、SonicWall云备份漏洞致74家银行沦陷等实战案例,系统揭示软件供应链、第三方服务链与开发工具链四大攻击面,并公开GuardDog恶意包检测、自动化武器库等全套挖掘方法。

个Notepad++更新,让开发者机器成为黑客的跳板;一个SonicWall云备份漏洞,让74家银行集体沦陷——供应链攻击的本质是:你信任的,正在杀死你。

2025年,npm平台恶意包数量突破10,000个,同比增长超过100%。同年,Notepad++的更新分发服务被攻陷,攻击者在长达4个月的时间里,向特定目标投递了三种完全不同的恶意载荷。而在另一起事件中,攻击者通过SonicWall云备份服务的API漏洞,获取了防火墙配置数据,最终导致74家银行被勒索软件攻击。

这不是偶然,这是供应链攻击的常态化。本文将首次完整公开我的供应链漏洞深度挖掘体系——从软件供应链、第三方服务供应链到开发工具链,涵盖4大类核心攻击面、8个2025-2026年最新实战案例、全套挖掘方法与自动化武器库,全是干到拧不出水的干货。

第一章 重新认知供应链攻击:为什么它是“核武器级”漏洞

1.1 供应链攻击的三层穿透

攻击层次
攻击目标
典型案例
破坏半径
软件供应链
开源包、二进制组件、更新服务
Notepad++更新劫持、npm恶意包
可达数百万开发者
第三方服务供应链
云服务、SaaS、外包商
SonicWall云备份漏洞、Oracle Cloud泄露
波及数千家企业
开发工具链
IDE插件、CI/CD系统、代码仓库
VS Code Marketplace恶意扩展
直接影响开发环境

核心认知:供应链攻击的可怕之处在于杠杆效应——攻击者攻破一个上游,就能控制成百上千个下游。

1.2 为什么2025-2026年是供应链攻击的爆发年

ReversingLabs的《2026软件供应链安全报告》揭示了几大趋势:

  • npm平台:2025年检测到超过10,000个恶意包,占各平台检测总量的近90%

  • 开发工具链攻击:攻击者开始针对VS Code Marketplace,利用平台特性渗透开发者环境

  • AI安全风险:攻击者利用Python的Pickle格式在Hugging Face上分发恶意模型

  • 凭证窃取升级:Shai-hulud蠕虫通过npm传播,将窃取的私钥暴露在公开仓库中

一句话总结:攻击者已经从“碰运气”的域名仿冒,进化到“精准打击”的供应链深度渗透。

第二章 软件供应链漏洞挖掘

2.1 开源包恶意代码检测

GuardDog:开源恶意包检测利器

Datadog开源的GuardDog是一个专门用于检测开源包恶意行为的Python工具,支持PyPI、npm和Golang生态系统。

核心技术

Python# GuardDog的核心检测架构- Metadata scanners:检查包的元数据,如typosquatting、包含二进制可执行文件- Semgrep rules:语言特异性语义分析,检测复杂行为模式(如窃取环境变量并外发)- YARA rules:复杂模式匹配(如base64编码字符串)

实战流程

  1. 全量摄取:每天处理约20,000个新发布的开源包

  2. 基于发现过滤:选择同时触发多个告警的包(如访问敏感系统文件+外发数据)

  3. 人工研判:安全研究员确认是否为真正的恶意包

成果:Datadog已收集近5,000个恶意包样本,并公开数据集。

2.2 安装钩子滥用检测

最常用的TTP:攻击者利用包管理器提供的安装钩子(如npm的preinstall)实现代码执行。

实战案例:Stressed Pungsan的npm攻击

2024年,朝鲜背景的Stressed Pungsan团伙通过npm包分发恶意软件:

json// 恶意包的package.json{  "name""legitimate-looking-package",  "scripts": {    "preinstall""node download_and_execute.js"  }}

用户在安装包的瞬间,恶意代码就已执行。

挖掘方法

bash# 检查npm包的所有脚本钩子npm view <package-name> scripts# 自动检测可疑脚本grep -r "preinstall|postinstall|preuninstall" package.json

2.3 更新基础设施劫持

Notepad++更新劫持事件(2025年6月-12月)

2025年6月至9月,Notepad++的托管服务提供商被攻陷,攻击者获得了更新分发的控制权。令人震惊的是,即使在9月失去服务访问权限后,攻击者仍保留内部服务凭证直至12月。

三种攻击链

#1:ProShow漏洞利用(2025年7月底-8月初)

攻击者将恶意更新文件托管在http://45.76.155[.]202/update/update.exe。该文件执行时:

  1. 创建%appdata%ProShow目录

  2. 执行cmd /c whoami&&tasklist > 1.txt收集系统信息

  3. 通过temp.sh上传结果,将URL通过User-Agent发送回C2

  4. 释放ProShow.exe(合法软件)和包含漏洞利用的load文件

  5. 利用ProShow 2010年代的已知漏洞执行shellcode,下载Cobalt Strike Beacon

#2:Lua脚本加载(2025年9月中旬-月底)

攻击者改用新的感染链:

  1. 工作目录改为%APPDATA%AdobeScripts

  2. 收集更详细的信息:whoami&&tasklist&&systeminfo&&netstat -ano

  3. 释放alien.dll、lua5.1.dll、script.exe和alien.ini

  4. 执行script.exe alien.ini,编译的Lua脚本将shellcode注入内存

  5. 下载Cobalt Strike Beacon

受影响目标:越南、萨尔瓦多、澳大利亚的个人用户,菲律宾政府机构,萨尔瓦多金融机构,越南IT服务提供商。

挖掘方法

bash# 检测异常更新请求# 监控出站连接到非常见文件托管服务(如temp.sh)# 检查进程创建链:GUP.exe -> update.exe -> cmd.exe

2.4 恶意包数据集与实时防护

Datadog的Supply-Chain Firewall是一个pip和npm的封装器,利用每日更新的恶意包数据集和OSV.dev公告,阻止已知恶意包的安装。

bash# 使用供应链防火墙安装包scfw install <package-name>

第三章 第三方服务供应链漏洞挖掘

3.1 云服务提供商漏洞

SonicWall云备份漏洞(CVE-2025-XXXX)

2025年2月,SonicWall的一次API代码变更引入了安全缺口,使得未经授权的访问者能够获取存储在云中的防火墙配置备份文件。这些文件包含:

  • AES-256加密的凭证

  • 配置数据

  • MFA备用码

攻击链

  1. 攻击者通过该API漏洞获取Marquis公司的防火墙配置备份

  2. 利用泄露的MFA备用码绕过已启用的多因素认证

  3. 部署勒索软件,导致运营中断

  4. 后果:波及74家银行,Marquis面临超过36起消费者集体诉讼

挖掘方法

bash检测云备份接口的未授权访问测试常见路径:/backup、/api/backup、/export/config检查备份文件是否包含敏感凭证

3.2 云平台SSO/LDAP泄露

Oracle Cloud大规模凭证泄露(2025年3月)

攻击者“rose87168”从Oracle Cloud的SSO/LDAP服务中窃取了约600万条记录,包括:

  • JKS文件

  • 加密的SSO密码

  • 密钥文件

  • 其他关键凭证材料

影响:超过140,000个租户可能受影响。由于Oracle Cloud支持无数企业,这不仅是孤立事件,更是可能波及整个行业的供应链级沦陷。

3.3 暗网情报与供应链风险监控

Bitsight推出的Dark Web Intelligence for Supply Chains服务,将暗网情报映射到组织的供应商生态系统。

核心功能

  • MITRE ATT&CK映射:将第三方暴露面与攻击者TTPs关联

  • 动态漏洞可利用性评分:基于实际利用活动预测哪些漏洞将被攻击

  • 实时告警:在供应商公开披露前发现被讨论、被针对或被攻陷的迹象

企业反馈:Wienerberger CISO表示,暗网情报让他们在供应商自己意识到问题之前就获得了威胁可见性。

第四章 开发工具链供应链漏洞挖掘

4.1 VS Code Marketplace攻击

ReversingLabs在2025年发现多个针对VS Code Marketplace的恶意活动:

攻击手法1:扩展名重用

  • 攻击者利用平台漏洞,重用已下架但合法的扩展名,上传恶意版本

攻击手法2:GitHub PR滥用

  • 攻击者利用GitHub的pull request功能,将合法扩展转为恶意扩展

挖掘方法

bash# 检测已安装扩展的异常行为# 监控扩展的网络连接、文件访问# 定期验证扩展的发布者和签名

4.2 CI/CD基础设施攻击

攻击者开始瞄准CI/CD管道,通过入侵构建系统向最终产品注入恶意代码。

Shai-hulud蠕虫案例

  • 首次出现的注册表原生蠕虫,通过npm传播

  • 两波攻击中感染了近1,000个npm包

  • 受影响的包括@ctrl/tinycolor(周下载220万)、@asyncapi/specs(周下载140万)等广泛使用的包

  • 攻击者将窃取的私钥硬编码在代码中,通过“迁移”私有仓库使凭证公开

4.3 AI/ML供应链攻击

随着AI编程的普及,AI/ML供应链成为新战场。

nullifAI攻击

  • 攻击者利用Python的Pickle格式在Hugging Face上分发恶意ML模型

  • 随后又在PyPI上针对阿里巴巴AI实验室的用户

  • 证明恶意ML模型已进入威胁态势

MCP服务器攻击

  • 随着模型上下文协议(MCP)服务器的普及,研究人员发现了首个恶意MCP服务器postmark-mcp,通过npm分发

第五章 实战案例库(完整攻击链)

【案例1】Notepad++更新劫持:4个月,3种链,多个目标

时间:2025年6月-12月
来源:托管服务提供商被攻陷
影响:越南、菲律宾、萨尔瓦多、澳大利亚的政府、金融、IT机构

攻击链复盘

  1. 初始访问:攻击者入侵Notepad++的托管服务提供商

  2. 持久化:即使9月失去服务访问权限,仍保留内部服务凭证至12月

  3. 更新劫持:将notepad-plus-plus.org的更新流量重定向到攻击者控制的服务器

  4. 定向投递:根据目标地理位置和行业,投递三种不同的恶意载荷

  5. 执行链1(7-8月):GUP.exe → update.exe → ProShow.exe + load(漏洞利用)→ Metasploit下载器 → Cobalt Strike Beacon

  6. 执行链2(9月):GUP.exe → update.exe → script.exe + alien.ini(Lua脚本)→ 内存shellcode → Cobalt Strike Beacon

  7. 数据外传:通过temp.sh上传系统信息,C2地址在User-Agent中传输

挖掘要点

  • 监控temp.sh等文件托管服务的异常上传

  • 检测cmd /c whoami等侦察命令的执行

  • 分析进程链中出现的非标准文件路径(%APPDATA%ProShow%APPDATA%AdobeScripts

【案例2】SonicWall云备份:一个API漏洞,74家银行沦陷

时间:2025年2月(漏洞引入)-8月(攻击发生)
来源:SonicWall API代码变更引入漏洞
影响:Marquis Software Solutions及其服务的74家银行

攻击链复盘

  1. 漏洞引入:SonicWall在2025年2月的API代码变更中,使云备份服务暴露安全缺口

  2. 凭证获取:攻击者通过API获取Marquis防火墙的配置备份,内含AES-256加密凭证和MFA备用码

  3. 绕过MFA:利用泄露的MFA备用码,绕过已启用的多因素认证

  4. 勒索软件部署:在Marquis网络内部署勒索软件,导致运营中断

  5. 连锁反应:影响Marquis服务的74家银行,引发超过36起集体诉讼

挖掘要点

  • 审计第三方云备份服务的API权限配置

  • 检查备份文件是否包含明文或可解密凭证

  • 测试备份接口的未授权访问(IDOR)

【案例3】Shai-hulud蠕虫:注册表原生的自我复制

时间:2025年
来源:npm平台
影响:近1000个npm包,包括周下载220万的@ctrl/tinycolor

攻击链复盘

  1. 初始包上传:攻击者上传包含恶意代码的npm包

  2. 自我复制:蠕虫在感染后,利用窃取的GitHub凭证访问其他仓库

  3. 代码注入:将恶意代码注入到广泛使用的开源包中

  4. 凭证收割:窃取硬编码的私钥、API密钥等

  5. 数据暴露:将私有代码仓库“迁移”到公开仓库,使凭证公开

挖掘要点

  • 监控npm新包的异常行为(如安装钩子、网络请求)

  • 检查开源包是否包含可执行的二进制文件

  • 使用GuardDog等工具进行自动化检测

【案例4】Jaguar Land Rover供应链瘫痪

时间:2025年8月-10月
来源:IT系统遭勒索软件攻击
影响:英国多家工厂停产六周,数千供应商受波及

攻击链复盘

  1. 初始入侵:攻击者攻破JLR的IT系统,部署勒索软件

  2. 运营中断:JLR主动关闭系统以控制损害,生产停滞

  3. 连锁反应:欧洲供应商因JLR停产面临破产风险

  4. 政府干预:英国政府提供15亿英镑贷款担保以稳定供应链

财务损失:季度税前亏损约4.85亿英镑,其中1.96亿英镑为事件直接成本。

启示:供应链攻击不只影响数据,更直接影响物理生产和实体经济。

【案例5】VS Code Marketplace扩展劫持

时间:2025年
来源:VS Code Marketplace平台特性被滥用
影响:下载恶意扩展的开发者

攻击链复盘

  1. 识别目标:寻找已下架但仍有大量用户的合法扩展

  2. 名称重用:利用平台漏洞,用相同名称上传恶意版本

  3. GitHub PR滥用:通过pull request将合法扩展转为恶意

  4. 感染开发环境:恶意扩展在开发者机器上执行任意代码

挖掘要点

  • 定期审计VS Code已安装扩展

  • 验证扩展的发布者和签名

  • 监控扩展的更新历史和权限申请

第六章 自动化武器库

6.1 GuardDog:开源恶意包检测

bash# 安装GuardDogpip install guarddog# 扫描本地npm包guarddog npm scan <package-name># 扫描本地PyPI包guarddog pypi scan <package-name># 生成SARIF报告guarddog npm scan <package-name> --format sarif
自定义检测规则
python# 自定义Semgrep规则示例rules:  - id: suspicious-env-exfil    patterns:      - pattern: |          import requests          requests.post($URL, data=os.environ)    message: "Possible exfiltration of environment variables"    languages: [python]    severity: WARNING

6.2 恶意包数据集API

python# 查询Datadog恶意包数据集import requestsdef check_malicious_package(ecosystem, package_name):    url = f"https://raw.githubusercontent.com/datadog/malicious-software-packages-dataset/main/{ecosystem}/{package_name}.json"    response = requests.get(url)    if response.status_code == 200:        return response.json()  # 存在恶意记录    return None

6.3 更新劫持检测脚本

python# update_hijack_detector.pyimport requestsimport hashlibimport jsonclass UpdateHijackDetector:    def __init__(self, software_name, update_url, expected_hash=None):        self.software = software_name        self.url = update_url        self.expected_hash = expected_hash    def check_update(self):        """下载更新文件并验证"""        response = requests.get(self.url, timeout=10)        if response.status_code != 200:            return {"status""error""msg""无法下载更新"}        # 计算哈希        file_hash = hashlib.sha256(response.content).hexdigest()        # 与预期哈希对比        if self.expected_hash and file_hash != self.expected_hash:            return {                "status""suspicious",                "msg"f"哈希不匹配: 预期{self.expected_hash}, 实际{file_hash}",                "hash": file_hash            }        # 检查更新文件中的异常特征        suspicious_indicators = self.check_suspicious_patterns(response.content)        if suspicious_indicators:            return {                "status""suspicious",                "msg"f"发现可疑特征: {suspicious_indicators}",                "indicators": suspicious_indicators            }        return {"status""clean""hash": file_hash}    def check_suspicious_patterns(self, content):        """检查更新文件中的可疑模式"""        indicators = []        # 检查临时文件托管服务        if b"temp.sh" in content or b"pastebin.com" in content:            indicators.append("文件托管服务引用")        # 检查系统信息收集命令        if b"whoami" in content and b"tasklist" in content:            indicators.append("系统信息收集")        # 检查APPDATA路径操作        if b"%APPDATA%" in content or b"AppData" in content:            indicators.append("APPDATA目录操作")        return indicators if indicators else None

6.4 Nuclei供应链检测模板

yamlid: suspicious-npm-packageinfo:  name: Suspicious npm Package Detection  author: supply-chain-hunter  severity: mediumrequests:  - methodGET    path:      - "https://registry.npmjs.org/{{package}}"    extractors:      - type: json        name: scripts        json:          - ".scripts"    matchers:      - type: word        words:          - "preinstall"          - "postinstall"          - "install"        condition: or        part: scripts

第七章 防御视角:构建供应链韧性

7.1 OSC&R框架:供应链的ATT&CK

OSC&R是第一个也是唯一一个专注于软件供应链的攻击矩阵。它将攻击者的战术、技术和过程系统化组织,覆盖:

  • 第三方库和组件漏洞

  • 构建和部署系统的供应链攻击

  • 被感染的软件更新

应用方式

  • 评估现有防御措施

  • 确定优先应对的威胁

  • 跟踪攻击组织的行为

  • 设定渗透测试和红队演习范围

7.2 企业自查清单

  • 是否对所有第三方开源包进行恶意代码扫描?(如GuardDog)

  • 是否监控npm/PyPI等平台的安装钩子滥用?

  • 软件更新机制是否有签名验证和防回滚?

  • 是否审计云备份接口的权限配置?

  • 是否监控暗网/深网中关于供应商的讨论?(如Bitsight)

  • VS Code等开发工具扩展是否经过验证?

  • CI/CD系统是否受最小权限原则保护?

  • 是否建立供应链事件响应预案?

第八章 结语:信任的终结

Notepad++事件告诉我们:即使你信任的软件本身是安全的,它的分发渠道也可能被攻陷。

SonicWall事件告诉我们:即使你启用了MFA,备份文件泄露也能让它形同虚设。

Shai-hulud蠕虫告诉我们:攻击者正在用自我复制的方式,让供应链攻击指数级扩散。

供应链安全的本质,不是信任,是验证。

下次评估一个系统时,别只盯着它自己的代码。

先问自己四个问题:

  1. 它依赖的每个开源包都安全吗?

  2. 它的更新机制能被劫持吗?

  3. 它的服务提供商够可靠吗?

  4. 它的开发工具链被污染过吗?

答案,往往决定你是在防守,还是在裸奔。

而你的挖掘能力,也在这四个问题的延长线上。

原文始发于微信公众号(逍遥子讲安全):供应链漏洞挖掘:从“单点突破”到“全网沦陷”的深度狩猎指南

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2026年3月10日01:06:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   供应链漏洞挖掘:从单点突破到全网沦陷的深度狩猎指南https://cn-sec.com/archives/5069561.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息