按 ESC 键关闭搜索

当“官方更新”成为入口: SolarWinds供应链攻击复盘

张帆律师 - 2026-08-31 18:00:52 - 工作动态

数字暗面 · 第6期  |  事实核查修订版

供应链攻击真正危险的,不只是规模,而是它借用了系统最难放弃的信任。

导读
2020年12月,一起红队工具失窃,牵出了一份带有合法签名、由厂商正常发布的软件更新。SolarWinds事件提醒我们:当攻击者进入软件的生产与交付流程,传统的边界防御会出现盲区。本文从事实、技术与中国刑法三个层面,重新拆解这条被利用的信任链。

一、从红队工具失窃,追到一份官方更新

2020年12月8日,网络安全公司FireEye披露,自家系统遭到入侵,一批用于授权安全测试的红队工具被盗。五天后,调查人员公布了更关键的发现:入侵入口与SolarWinds Orion平台的受污染更新有关。恶意组件SUNBURST藏在一份经过正常构建、数字签名和官方发布的软件中。[1]

SolarWinds后续披露,含有SUNBURST的Orion版本发布于2020年3月至6月;可能安装受影响版本的客户少于18,000家。到2021年5月,公司估计,真正通过SUNBURST遭到后续入侵的客户少于100家。美国政府的联合协调组则称,遭到后续攻击活动的联邦机构少于10个。[2][3]

这几个数字经常被混在一起:下载或安装受影响版本,只能说明存在暴露;后门是否运行、是否完成回连,是第二层问题;攻击者是否选择该组织并继续横向移动、窃取数据,又是第三层问题。把“少于18,000家可能安装”写成“18,000家被攻陷”,会把事件规模放大,也会遮住攻击者精细筛选目标的特点。

一个必须保留的区分
SolarWinds事件不是“所有客户同时失守”。它的危险在于:攻击者利用一条正常的软件交付路径,获得了接近众多高价值网络的机会。

https://www.zhangfanlawyer.com/static/img/wangEditorImg_1788170434966.png

二、供应链攻击,利用的是信任路径

软件供应链并不只是一串第三方公司。它还包括源代码、开源依赖、开发工具、代码仓库、构建环境、签名密钥、发布平台、自动更新服务,以及提供托管或运维能力的外部服务商。任何一环失守,都可能把风险带到下游。

所谓软件供应链攻击,通常是指攻击者先控制这些上游环节,再借正常生产或交付流程,把恶意代码、被篡改的组件或不可信产物送入最终目标。它绕过的不是某一台防火墙,而是一整条缺少持续核验的信任链。

为什么这种攻击难防

• 入口在上游。最终目标可能没有暴露可直接利用的漏洞,但它依赖的供应商、开发工具或构建平台未必同样坚固。

• 恶意产物带着“正常身份”。如果污染发生在签名前,最终文件可能拥有合法签名,并通过熟悉的域名、更新服务和运维账户进入网络。

• 影响范围难以快速厘清。同一组件可能被直接引用,也可能被层层嵌入;企业如果没有准确的资产与依赖清单,很难回答“我是否受影响”。

• 攻击者可以先广泛投递,再谨慎筛选。大规模暴露与少量深度入侵可以同时存在,传统告警数量并不能直接说明真实损失。

这也是数字签名最容易被误解的地方。数字签名可用于核验签名者身份,以及文件在签名后是否被修改;如果密钥或签名流程本身被控制,它不能单独证明产物的真实生产来源,更不能证明代码无害。SolarWinds与Xshell事件都说明,合法签名可能覆盖恶意产物。

三、后门如何进入SolarWinds的构建流程

3.1 公开时间线:已知什么,未知什么

公开调查至今没有确认攻击者最初进入SolarWinds内部环境的具体方式。可以确认的是:SolarWinds把2019年9月列为最早发现的可疑活动;同年10月,攻击者进行了一次代码注入测试;2020年2月起,实际注入SUNBURST的构建劫持工具SUNSPOT开始工作;受污染版本随后于3月至6月发布。SolarWinds称,攻击者在2020年6月从其环境中移除了相关恶意代码。[2][4]

2020年12月8日,FireEye先披露自身遭入侵;12月13日,Mandiant公开SUNBURST与受污染的Orion更新,CISA同日发布警报;12月14日,SolarWinds向美国证券监管机构披露事件。2021年,美国政府将行动归因于俄罗斯对外情报局(SVR);Mandiant后续也把最初编号为UNC2452的活动并入APT29。[1][3]

https://www.zhangfanlawyer.com/static/img/wangEditorImg_1788170410638.png

3.2 构建劫持:恶意代码在签名前进入产物

SUNSPOT被部署在SolarWinds的构建环境中。它监视MSBuild.exe进程,判断Orion项目何时开始编译;命中目标后,临时备份并替换InventoryManager.cs源文件,让SUNBURST代码进入编译结果。构建结束后,它再恢复原文件并删除临时痕迹。攻击者还加入多项检查,尽量避免构建失败引起开发人员注意。[4]

最终生成的SolarWinds.Orion.Core.BusinessLayer.dll经过正常签名并进入更新包。换言之,攻击者不是在签名完成后伪造文件,而是在签名前接管了一小段生产过程。这种差别决定了防御重点:只检查“有没有签名”远远不够,还要验证产物究竟由什么源码、依赖和构建环境生成。

客户安装受污染版本后,SUNBURST最多先休眠约两周,再尝试解析avsvmcloud[.]com的子域名。初始DNS通信帮助攻击者识别环境并筛选目标;被选中的组织随后可能被转向其他控制基础设施,进入凭据窃取、横向移动和数据获取阶段。没有被继续选中的系统,并不等于从未暴露,也不等于一定遭到深度入侵。[1]

https://www.zhangfanlawyer.com/static/img/wangEditorImg_1788170692068.png

四、三个案例,代表三种不同的供应链风险

4.1 XcodeGhost:被篡改的开发工具

2015年,一些开发者从第三方渠道获取了被篡改的Xcode。使用这类工具编译应用时,恶意对象文件会被一并链接进App,随后部分受影响应用进入了苹果应用商店。苹果删除相关应用,并提醒开发者从Mac App Store或Apple Developer网站获取Xcode,同时保持Gatekeeper开启、验证代码签名。[5]

这一事件说明,开发工具本身也是供应链的一部分。对开发者而言,编译器、插件、脚本和包管理器的来源,与上线后的服务器补丁同样重要。

4.2 Xshell / ShadowPad:签名包也可能被污染

2017年,卡巴斯基在NetSarang多款产品的部分安装包中发现ShadowPad后门,包括Xshell 5 Build 1322。恶意代码位于nssock2.dll中,文件带有合法的NetSarang数字签名,并曾通过厂商网站分发。厂商收到通知后移除了相关文件并发布更新。[6]

公开资料没有给出可靠的受害者总数,因此不宜写成“十万级用户中招”。这个案例真正可核实的教训是:签名能够验证来源与完整性,却不能替代对构建环境、源码差异和运行行为的检查。

4.3 Log4Shell:不是同类攻击,却暴露同一难题

Log4Shell(CVE-2021-44228)是Log4j Core中的远程代码执行漏洞。它不是像SolarWinds那样由攻击者主动污染供应商交付流程,但Log4j被广泛嵌入商业软件和开源项目,使大量机构一度难以确认哪些资产、哪个版本、哪一层依赖真正受影响。[7]

把Log4Shell称为“供应链攻击”并不准确;更合适的说法是,它展示了开源组件带来的系统性供应链暴露。两者的共同问题都是可见性:如果组织不知道自己用了什么,就无法迅速修复。

https://www.zhangfanlawyer.com/static/img/wangEditorImg_1788170838422.png

五、放在中国刑法框架下,可能涉及哪些责任

法律分析前提
以下讨论以同类行为发生在我国刑法管辖范围内、证据能够证明主观故意与客观行为为前提,仅用于普法说明。不能直接据此对境外SolarWinds事件中的主体作中国法定罪结论。

5.1 对攻击者:先看“侵入”,更要看取数、控制与破坏

刑法第285条第一款针对非法侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统。对其他计算机信息系统,第285条第二款规制的是非法获取系统数据或者实施非法控制,并要求达到“情节严重”。因此,普通系统只是被未经授权进入,并不能当然推出第285条第二款成立;还要继续查明是否发生取数、控制及是否达到入罪标准。[8][9]

同条第三款规制的是“提供”行为:向他人提供专门用于侵入、非法控制计算机信息系统的程序、工具,或者明知他人实施相关违法犯罪仍予提供,并达到“情节严重”,才可能适用。仅编写或者自行使用相关工具,不因该行为本身当然构成本款犯罪。[9]

如果行为人删除、修改、增加系统功能、数据或应用程序,或者制作、传播破坏性程序,导致系统不能正常运行并造成严重后果,则可能涉及刑法第286条。2011年司法解释列举的“后果严重”标准包括:造成10台以上系统的主要软件或硬件不能正常运行;对20台以上系统中的数据实施删除、修改、增加;造成一定数额的违法所得或经济损失等。对预设条件触发的破坏性程序,造成20台以上系统被植入,也是相关标准之一。原稿所写“100台以上感染病毒”并非这一条的准确表述。[9]

5.2 对供应商:存在漏洞,不等于构成犯罪

刑法第286条之一规定拒不履行信息网络安全管理义务罪,但它不是一般意义上的“安全事故罪”。要适用这一条,至少要依次判断:行为人是否属于刑法意义上的网络服务提供者;是否违反法律、行政法规规定的安全管理义务;是否经有权监管部门以文书责令改正;是否有能力改正却拒不改正;以及是否出现法定严重后果。[8][10]

2019年司法解释将网络接入、计算、存储、传输服务,信息发布、即时通讯、网络支付、安全防护、应用商店等网络应用服务,以及部分网络公共服务纳入“网络服务提供者”范围。软件厂商、云平台或SaaS经营者是否落入其中,仍要结合其实际提供的服务判断,不能按企业标签一概而论。[10]

因此,供应商自身遭到高水平攻击、软件存在漏洞或发生信息泄露,都不能跳过“法定义务—责令改正—拒不改正—严重后果或其他严重情节”这条证明链,直接推导刑事责任。这不意味着供应商无需承担其他责任;是否涉及行政、民事或合同责任,还要结合其法定义务、服务关系、过错与损害另行判断。

5.3 第287条不是一个独立的“兜底罪名”

刑法第287条的作用,是提示利用计算机实施诈骗、盗窃、窃取国家秘密等犯罪的,依照相应犯罪定罪处罚。供应链攻击如果同时涉及公民个人信息、商业秘密、国家秘密、诈骗所得等,应回到对应罪名逐一判断。最终是一罪、想象竞合、牵连关系还是数罪并罚,还要看行为数量、故意内容和法益侵害,不能概括为“一律从一重罪处罚”。

https://www.zhangfanlawyer.com/static/img/wangEditorImg_1788170891540.png

六、防守重点:让“可信更新”可以被验证

SolarWinds留下的不是“不要更新”这条简单教训。数字系统离不开补丁与升级,真正需要改变的是:不再把信任押在品牌、域名或一张数字证书上,而是为组件来源、构建过程、发布审批和运行行为留下可以核验的证据。

6.1 对供应商与企业:把软件生产当成高权限系统

• 建立资产与依赖清单。SBOM记录软件组件及其供应链关系,可帮助组织在漏洞出现时快速定位潜在影响;但SBOM只是基础,还要与漏洞情报、可利用性信息、部署状态和负责人关联。[11]

• 保护构建流水线。将CI/CD与办公网络分隔,缩小服务账户权限,使用多因素认证和短期凭据,限制构建环境出网,并对源码、依赖与构建配置的变更留痕。

• 生成可验证的构建来源证明。SLSA v1.2的Build Track分为L1至L3,逐步强调来源证明、托管构建与强化隔离。原稿所写“L0至L4四个等级”已是旧版表述。[12]

• 签名之外再做独立验证。把签名密钥与构建环境分离,核对制品摘要与来源证明;条件允许时,引入可复现构建、双流水线比对或透明日志,降低单一构建系统失守的影响。

• 采用测试、灰度、监测和回滚机制。企业可以先在隔离环境和小范围设备中验证更新,再分阶段部署;同时监控新进程、异常DNS、身份令牌与权限变化,保留快速隔离和回退路径。

• 把供应商风险写进采购与合同。明确组件清单、支持期限、漏洞通报、事件协作、取证保全和停服退出要求,并定期验证,而不是只在招标时收一次问卷。

NIST的安全软件开发框架(SSDF)也强调,应把安全实践嵌入整个软件开发生命周期,并让采购方和供应商使用共同语言沟通安全要求。[13]

6.2 对个人与小团队:别用“延迟更新”替代判断

原稿建议个人对非关键更新统一等待一到两周,这并不稳妥。SolarWinds的污染持续数月,简单延迟无法识别风险;面对已经修复的高危漏洞,拖延更新反而会扩大暴露窗口。更合理的做法是区分场景:个人设备原则上及时安装官方安全更新;企业生产系统则通过测试、灰度和回滚控制变更风险。

• 从官方渠道或可信软件仓库获取软件,避免“高速下载器”、来历不明的镜像和破解版。

• 开发者应同样核验编译器、IDE插件、包管理器、构建脚本和依赖锁文件,不把注意力只放在最终应用上。

• 在厂商提供签名或校验值时进行核验,但把它视为一项证据,而不是“安全免检章”。

• 减少长期管理员权限,审查应用权限和启动项,并保持可恢复、经过验证的备份。

• 收到安全公告时,先确认产品、版本、部署方式和缓解措施,再决定升级、隔离或下线。

https://www.zhangfanlawyer.com/static/img/wangEditorImg_1788170994781.png

七、结语:给信任加上证据

SolarWinds事件之所以成为分水岭,不是因为它证明“官方更新不可信”,而是因为它迫使整个行业承认:来源可信、签名有效与过程安全,是三件不同的事。

2021年,美国第14028号行政令推动制定SBOM最低要素和联邦软件供应链安全要求;欧盟《网络韧性法案》于2024年12月10日生效,其中报告义务自2026年9月11日起适用,主要义务自2027年12月11日起适用。供应链安全正在从自愿实践走向可以审计、可以问责的制度安排。[11][14]

对企业而言,真正有价值的问题不是“我们信不信这家供应商”,而是:组件从哪里来,代码由谁编译,产物如何签名,更新由谁审批,出现异常后能否在足够短的时间里识别、隔离和回滚。

最后一句
供应链安全不是取消信任,而是给信任加上证据。

参考资料与核查说明

本文事实核查截至2026年8月25日。技术归因与调查结论可能随新证据更新;法律部分为一般性普法分析,不构成对具体案件的法律意见。

1. Mandiant / FireEye,Highly Evasive Attacker Leverages SolarWinds Supply Chain to Compromise Multiple Global Victims With SUNBURST Backdoor,2020。

2. SolarWinds,New Findings From Our Investigation of SUNBURST,2021。

3. U.S. Government Accountability Office,Cybersecurity: Federal Response to SolarWinds and Microsoft Exchange Incidents,2022。

4. CrowdStrike,SUNSPOT Malware: A Technical Analysis,2021。

5. Apple Developer,Validating Your Version of Xcode,2015。

6. Kaspersky Securelist,ShadowPad in Corporate Networks,2017。

7. Apache Logging Services,CVE-2021-44228 Security Advisory,2021。

8. 国家法律法规数据库,《中华人民共和国刑法》(现行文本),现行文本。

9. 最高人民法院、最高人民检察院,关于办理危害计算机信息系统安全刑事案件应用法律若干问题的解释,2011。

10. 最高人民法院、最高人民检察院,关于办理非法利用信息网络、帮助信息网络犯罪活动等刑事案件适用法律若干问题的解释,2019。

11. NTIA,The Minimum Elements for a Software Bill of Materials,2021。

12. SLSA,About SLSA, Specification v1.2,2026访问。

13. NIST,Secure Software Development Framework (SSDF) Version 1.1,2022。

14. European Commission,Cyber Resilience Act,2026更新。

相关文章

张帆 律师

人物介绍

张帆,中共党员,中国农业大学法学学士、英语学士双学位,中国农业大学法学硕士。北京华让律师事务所专职律师,现任北京华让律师事务所党支部组织委员,北京律师协会会员。

办理案件百余起,接待咨询上万人,拥有丰富的刑事辩护、民事诉讼、商事仲裁经验,法学理论基础扎实,业务能力熟练,为人严谨,具有优异的文书写作及沟通表达能力。

执业理念

胆大且心细,开朗且稳重;

理性为主,感性为辅,独立自主,肩负他人。

专长领域

个人擅长刑事辩护与代理、刑事控告、婚姻家庭纠纷、继承纠纷、合同纠纷、与公司有关的商事纠纷等。

全国咨询热线

微信咨询

微信二维码

在线咨询

首页搜索
电话咨询