摘要
- Orion 攻击行动成功的原因是攻击者破坏了软件生产过程,在自动化构建中插入了 SUNBURST,并允许 SolarWinds 的常规签名和分发机制交付被篡改的组件。有效的签名证明了受破坏的发布过程,但并未独立确认生成的代码与批准的源代码状态一致。
- 可能不到 18,000 个客户获得了受影响版本,但这个数字并非后续操作中被渗透的组织数量。后来的公开估计将确认或评估的后续入侵数量定为 9 个美国联邦机构和不到 100 个非政府组织,而 SolarWinds 单独估计有不到 100 个客户通过 SUNBURST 遭到黑客攻击。
- 俄罗斯对外情报局应对此次间谍行动负责。然而,SolarWinds 控制了构建环境、发布来源、签名路径和产品架构,这些将一次内部入侵转化为客户站点上的可信代码。客户和政府买家控制了分段、日志记录、身份强化、采购和恢复。责任属于各方,针对其能够实际操作的保障措施。
- 法律记录比操作记录更窄。美国证券交易委员会 (SEC) 于 2023 年起诉 SolarWinds 及其首席信息安全官,联邦法院于 2024 年驳回了大部分指控,SEC 于 2025 年 11 月以偏见驳回其余诉讼。这段历史既不证明 SEC 的原指控,也不表明每个构建安全决策都足够;它说明了为什么技术可预防性、披露法和最终法律责任必须分开分析。
更新完全按照信任基础设施的指示行事
SolarWinds 事件通常被描述为软件更新被投毒。这个说法抓住了交付方式,但可能让失败听起来像是隐藏在安装程序中的普通恶意软件。更关键的事实是,受影响的更新是通过供应商的合法发布机制生产和交付的。管理员不必禁用签名验证、访问伪造下载站点或接受未签名的可执行文件。恶意组件被包含在 SolarWinds Orion 包中并进行了数字签名。
这种差异改变了问责分析。软件签名通常被理解为对传输中的来源和完整性的控制。如果包在签名后发生变化,签名验证应该失败。但签名本身并不能证明用于编译的源代码是授权的、编译器在清洁环境中运行、构建工作者未被修改,或者工件与代码审查人员批准的版本一致。当攻击者在签名应用之前行动时,签名可以忠实地为已经受损的输出提供担保。
Mandiant 的原始SUNBURST 技术披露记录了一个包含后门的已签名 SolarWinds Orion 插件。该组件可以等待长达大约两周,分析其环境,通过设计为模仿正常 Orion 流量的 DNS 和 HTTP 模式进行通信,并且仅在攻击者选择受害者后才检索命令。初始植入物设计为安静、有选择性且与主机产品兼容。其目的不是一次性破坏所有安装,而是将可信选项放置在许多网络中,仅对一小部分进行利用。
这就是为什么即使 Orion 通常安装在客户现场,此事件也属于云依赖和公共连续性记录。Orion 监控和管理跨本地、云和混合环境的基础设施。后续活动可能触及联合身份和 Microsoft 365 资源。信任关系像服务依赖一样运作:客户依赖持续维护的供应商产品,接受供应商生产的更新,并将软件放置在可以观察或管理重要系统的地方。可执行文件的位置并未消除对其生产软件的远程工厂的依赖。
主要的公共危害也不是传统的服务中断。联邦电子邮件和运营系统并非都在一个可见的日子停止运作。相反,入侵损害了机密性、身份保障、证据信心以及知道哪些通信或决策被观察到的能力。公共部门连续性包括在可辩护信任的系统上开展政府业务的能力。网络可以保持可用,而其所支持的公共职能却暴露在战略风险之下。
公共记录所确立的事实
最有力的描述来自具有不同制度激励的来源:SolarWinds 的事件披露和证券文件;CrowdStrike 和 Mandiant 的技术分析;CISA、NSA、FBI 和受影响机构的记录;GAO 对联邦应对措施的审查;国会证词;以及后来的法院记录。它们并没有回答所有问题,但确立了几个核心事实。
首先,一个高级行为者保持了对 SolarWinds 环境的访问,时间足够长以研究 Orion 的生产过程。SolarWinds 2021 年 5 月的调查更新表示,公司无法确定初始入口具体何时或如何发生。它报告了受损凭证和对软件开发环境及内部系统(包括 Microsoft 365)的持续访问证据,时间至少持续了九个月,直到 2019 年 10 月的一次测试运行。公司收窄了可能的初始途径,包括第三方零日漏洞、暴力破解(如密码喷洒)或社会工程,但并未声称证明了其中任何一种。
其次,恶意更改是在自动化构建环境中进行的,并未作为永久修改提交到 Orion 源代码仓库。这不是开脱的技术细节。它标识了失败的信任边界。审查人员在构建前后比较仓库可以看到干净的源代码,而构建工作者在编译期间临时替换了恶意文件。仅集中于源代码审查的控制因此会遗漏生成工件的差异。
第三,攻击者在部署操作后门之前测试了其修改构建的能力。SolarWinds 2021 年 1 月的初始构建系统发现将最早已知的可疑内部活动置于 2019 年 9 月,2019 年 10 月 Orion 版本中的测试修改,SUNBURST 注入从 2020 年 2 月 20 日开始,以及 2020 年 6 月从环境中移除恶意代码。后来的公司报告将访问证据推得更早,同时保留了 10 月测试和 3 月至 6 月的分发窗口。
第四,受影响的 Orion 版本通过正常渠道分发。SolarWinds 2020 年 12 月 14 日的8-K 表格表示,在相关期间下载、实施或更新的产品包含漏洞,并估计不到 18,000 个客户可能安装了受影响版本。其 2020 年10-K 表格后来将 SUNBURST 描述为注入到 2020 年 3 月至 6 月发布的构建中,表示受影响软件安装在客户现场,并强调被利用的数量远小于可能安装了受影响版本的数量。
第五,FireEye 在调查自身入侵时于 2020 年 12 月发现了更广泛的攻击活动。公共记录并未显示 SolarWinds 的发布保证或联邦边界计划在客户接收之前检测到受损构建。这个检测缺口本身很重要,无论 SolarWinds 在收到通知后应对得如何。控制可以在危机应对中表现良好,同时在生产过程中未能发现危险状况。
第六,美国政府后来正式将此次攻击活动归因于俄罗斯 SVR。CISA 的2021 年 4 月联合咨询通知记录了美国的归因以及相应的 NSA-CISA-FBI 指南;英国也公开将 SVR 与此次行动联系起来。归因确立了恶意行为者的责任和地缘政治背景。它并不能回答供应商或客户保障措施是否与可预见的供应链攻击类别相称。
三个重要事项仍有边界。初始进入 SolarWinds 的途径在引用的最终公司更新中未得到证明。公共记录并未揭示每个被选中进行后续访问的组织或从这些网络中获取的每项信息。而且受影响的更新并不证明组织遭受了交互式利用。这些缺口需要谨慎的语言,而不是分析瘫痪。
从侦察到签名后门
这次攻击活动是耐心的,因为其目标不仅仅是服务器。它是一个可重复的工业过程。
行为者首先需要访问和理解。构建环境包含编译器、依赖存储、凭证、编排工具、签名接口、发布脚本以及许多中间文件。它们的复杂性创造了机会,但不分青红皂白的篡改会带来噪音。编译失败、可重复性不一致、意外的源代码差异或格式错误的包可能会警示工程师。因此,攻击者必须了解 Orion 构建何时运行,哪个源文件可以携带植入物,该文件如何到达最终插件,以及如何避免破坏产品稳定性。
2019 年 10 月的测试在事后看来是一个关键警告。它表明行为者在提交操作载荷之前正在验证注入路径。在安全的生产设计中,仅在构建期间存在的测试修改仍应通过工件比较、隔离构建者监控、来源检查或确定性发布控制来检测。测试修改通过发布而没有暴露入侵者,这一事实表明构建输出可以与预期源代码存在差异并继续进行。
CrowdStrike 的SUNSPOT 分析解释了机制。SUNSPOT 监视MsBuild.exe,检查命令行信息以识别 Orion 解决方案,并在产品构建期间用恶意变体替换InventoryManager.cs。它保留了原始文件以便之后恢复。它包含了旨在避免构建失败的操作行为,以及让入侵者干净地停止而不是留下明显损坏的编译的设计。该设计将开发人员的怀疑视为主要风险。
生成的恶意代码成为SolarWinds.Orion.Core.BusinessLayer.dll中的 SUNBURST。由于替换发生在构建期间,最终包可以作为普通产品输出通过后续打包和签名步骤。签名是真实的。其背后的来源声明是不完整的。
一旦安装,SUNBURST 会延迟执行并检查可能指示分析的环境条件。它生成针对特定受害者的 DNS 查询,并允许操作者决定哪些信标将继续进行更活跃的命令与控制。Mandiant 的额外技术分析描述了反分析检查、域名生成行为、命令模式以及将状态融入合法 Orion 配置的努力。选择性降低了 18,000 个潜在安装产生 18,000 个可见事件的可能性。
对于选定的受害者,后门可以成为单独载荷、凭证盗窃、横向移动和云访问的入口点。分布式植入物与被利用组织之间的区别至关重要。下载受影响包的组织、在隔离服务器上安装的组织、服务器发出信标的组织以及身份被用于后续访问的组织,属于不同的影响类别。将它们合并为一个计数会产生一个戏剧性的数字,但一个糟糕的事件模型。
攻击者于 2020 年 6 月将 SUNBURST 从 SolarWinds 构建环境中移除,比发现早数月。这一行动限制了未来分发,并从生产系统中移除了明显的实时证据。已经安装受影响版本的客户保留了植入物。因此,该操作比行为者在软件工厂中的存在更持久:一次生产入侵转化为数千个独立部署的工件,每个都遵循客户的维护和保留计划。
为什么源代码审查和代码签名不够
Orion 事件暴露了通常被视为可互换的软件完整性控制之间的差距。
源代码审查询问为版本提交的代码是否可接受。构建完整性询问编译的工件是否确实由该批准的源代码、批准的依赖项、批准的工具和批准的指令在未受损的环境中产生。签名询问特定密钥是否授权了该工件。分发完整性询问客户是否收到了已签名的工件。运行时控制询问工件在安装后允许做什么。每个控制都可能成功而另一个失败。
在 Orion 中,公开证据表明持久源代码库并未携带 SUNBURST 修改。因此,代码审查无法证明工件是干净的。构建系统临时性地包含了未经授权的源代码。然后签名将组织权威附加到输出上。分发交付了该输出,第三方未修改。这些下游控制完成了它们狭隘的工作,但发布决定建立在一个破裂的上游事实上。
这是建立在错误前提上的真实陈述的供应链版本。该包是由 SolarWinds 真实签名的。客户推断的内容更广泛:该包代表了 SolarWinds 意图发布的产品。事件打破了这一推断。
答案不是放弃签名。没有它们,客户还会面临镜像破坏、网络拦截和假冒包的风险。答案是加强附加到签名上的证据。高保证的发布过程应该能够显示哪个源代码修订版、依赖集、工具链、构建者身份、构建策略、测试和批准产生了工件。它应该检测何时工作者替换了不在批准的源代码状态中的文件。它应该防止同一身份在未经独立检查的情况下更改源代码、构建策略、工件和签名决定。
可重复或独立重复的构建可以提供帮助,但它们不是魔法。如果所谓的独立构建者共享凭证、编排、依赖或受损的控制平面,它们可能会复现相同的恶意输出。只有当信任路径真正分离时,比较才有意义。同样,软件物料清单可以识别组件,但无法显示构建者插入了额外的第一方代码。清单有用,但它不等同于来源。
SolarWinds 后来的补救提案认识到了这个问题。其 2021 年 5 月的更新描述了三个独立的构建环境、更改的构建系统、独立的凭证以及跨输出的完整性比较。在国会证词中,CEO Sudhakar Ramakrishna 将该设计呈现为迫使攻击者破坏多个异构环境的方式。公司的书面参议院证词是对当时所声称的响应和架构的证据。它本身并不是此后每个版本都满足该设计的独立认证。
分母问题:18,000 是暴露量,而非确认的利用
事件中很少有数字像 18,000 那样被反复提及。只有在说明其分母时,它才是有用的。
SolarWinds 最初通知了受影响期间及其后处于维护中的约 33,000 个 Orion 客户。它估计不到 18,000 个可能安装了受影响版本。有些下载了但未安装。有些安装在无法到达命令与控制基础设施的系统上。有些执行了植入物但未被选中进行后续活动。还有少得多的群体与后来的基础设施通信,更小的群体在初始后门之外被积极入侵。
2021 年 5 月,SolarWinds 估计不到 100 个客户通过 SUNBURST 遭到黑客攻击。2021 年 3 月,FBI 证词描述了超过 16,000 个受影响的公共和私人客户,9 个联邦机构遭受后续入侵,以及不到 100 个非政府实体属于该类别。如果“受影响”、“已安装”、“发出信标”、“被针对”和“受损”保持区别,这些数字是兼容的。
这种区别并不使事件变得微小。一个潜伏的管理立足点交付给数千个组织,即使国家行为者有选择地利用,也是一起严重的系统性事件。攻击者获得了一个潜在访问菜单,并可以根据情报价值选择目标。风险既存在于已实现的危害中,也存在于可信机会的规模中。
这对客户通知也很重要。供应商不应向每个暴露类别发送相同的消息。客户需要知道他们是否仅下载了工件、安装了它、执行了它、生成了已知信标、收到了命令与控制响应,或者显示出后续身份滥用的证据。每种状态都会改变保存、凭证重置、重建、通知和连续性决策。在供应商范围的遥测无法确定状态的情况下,不确定性本身应被传达。
公共记录还显示为什么不能仅从供应商遥测推断影响。Orion 在客户网络内运行,因此 SolarWinds 无法直接检查每个安装。客户和云提供商持有部分证据。一些后续活动放弃了 SUNBURST,使用了合法凭证或伪造的身份验证断言,使得干净的 Orion 服务器不足以保证更广泛的环境是干净的。事件核算必须结合供应商下载记录、DNS 观察、主机取证、身份日志和受影响组织的调查。
发现与后期可见性的代价
FireEye 的发现常被视为检测的成功,也确实如此。它也是早期安全系统失败的证据。
数月来,受影响版本通过受信任的维护渠道流动。攻击者设计植入物以休眠、避免分析环境、使用熟悉的进程上下文并模仿合法的网络行为。传统防病毒和边界规则很难识别一个由供应商签名的组件,其行为类似产品自身的遥测。网络管理产品也具有天然广泛的行为范围。它盘点系统、跨网段通信、持有有用的凭证,并可能合法地联系供应商基础设施。恶意行为可以隐藏在产品所需的特权中。
CISA 的第一次公开响应反映了这种模糊性的严重性。其12 月 13 日警报识别了受影响版本,紧急指令 21-01 命令联邦民事机构断开受影响的 Orion 产品。该指令不仅仅是“安装补丁”。一个已经受损的管理服务器可能包含超出原始 DLL 的证据、凭证或持久性。将其视为普通漏洞可能会在替换初始文件后保留攻击者。
CISA 后来的驱逐指南针对的是行为者可能已进入 Active Directory 和 Microsoft 365 的网络。驱逐可能需要协调的身份恢复、令牌和凭证失效、云审查、主机重建和监控。这些步骤可能会中断运营并消耗稀缺人员,即使公共服务保持在线。机密泄露的连续性成本部分体现在恢复可辩护信任所需的工作上。
英国的NCSC 指南同样区分了受影响的二进制文件和严重的后续影响。它建议隔离、哈希和 DNS 检查、凭证重置、调查与 Orion 服务器关联的账户,以及考虑完全重建。该建议的全球一致性表明信任失败并不局限于一个政府的采购环境。
检测责任是分布的。SolarWinds 最有能力监控构建工作者、将工件与批准的源代码进行比较、监督签名并识别意外的发布来源。客户最有能力限制 Orion 的特权、将其主机分段、保存 DNS 和身份日志,并注意偏离其自身环境的行为。云身份提供商可以检测跨租户的异常令牌和账户使用。政府协调机构可以汇总报告并发布强制性行动。没有单一观察者拥有全貌,这使得及时的信息共享成为功能性控制而非礼仪。
响应也揭示了一个关于指标的事实。哈希和域名在分类期间很有价值,但耐心的行为者可以轮换基础设施并转向有效账户。一旦入侵跨越到身份系统,已知指标的缺失不是不存在的证据。持久响应必须重建攻击路径并从已知良好状态重建信任。
无可见中断的公共部门连续性
GAO 将此次攻击活动描述为针对联邦政府和私营部门的最广泛、最复杂的黑客行动之一。其2022 年联邦响应审查发现,各机构组成了网络统一协调组,制定了技术指导和工具,共享了信息,并围绕协调、信息获取和事件响应识别了经验教训。响应是实质性的,因为泄露触及了政府理解和管理自身系统的机制。
九个联邦机构被公开识别为遭受后续入侵。司法部表示恶意活动到达了其 Microsoft 365 电子邮件环境,大约三个百分比的邮箱可能被访问,同时没有迹象表明分类系统受到影响。DOJ 的2021 年 1 月声明适当界定了已知影响。它没有将未分类的电子邮件暴露视为无害,也没有声称缺乏证据的系统受到损害。
在此背景下,连续性有多个层面。
第一是运营可用性。机构必须继续提供公共职能,同时隔离管理服务器、重建主机、轮换凭证和调查云账户。紧急指令可以在技术上必要的同时在运营上造成破坏。
第二是机密性连续。官员需要知道政策草案、采购信息、法律策略、日程表或联系网络是否被观察到。间谍行动可以在不更改或破坏文件的情况下提取持久优势。
第三是行政完整性。Orion 在监控和管理网络中的角色意味着客户必须质疑由旨在支持信任的工具提供的信息。受损的管理平面可以隐藏活动、暴露凭证,或使操作者对用于调查的系统感到不确定。
第四是身份连续性。NSA 2020 年 12 月的身份验证机制咨询解释了特权现场访问如何导致伪造的联合身份验证和云访问。一旦本地身份信任被操纵,仅仅清理初始 Orion 主机并不能恢复从中衍生的每个会话或令牌的有效性。
第五是证据连续性。机构需要保留的 DNS、端点、身份、云和管理日志,以决定下载的更新是否成为信标或完全入侵。如果这些记录已老化,领导者必须在更广泛的不确定性下运作,并可能需要更广泛的补救措施。
第六是制度信任。政府买家要求员工将共享的商业技术用于敏感的公共工作。这种模式依赖于供应商准确描述安全实践、以适当精度披露事件、并提供足够证据以支持响应。一个携带后门的已签名更新削弱了补丁程序所依赖的社会和行政假设。
该攻击活动并未表明自动更新本质上不安全。延迟真实的安全修复可能危险得多。它表明更新保障必须包括生产者的开发和构建环境。告诉客户快速打补丁,同时将软件工厂视为普通企业网络,造成了矛盾:客户在接受更新方面变得越安全,受损生产者获得的杠杆就越大。
SolarWinds 的责任:工厂控制
SolarWinds 是蓄意的国家行动受害者。它也占据了使分发机制成为可能的控制位置。
公司控制着对其软件开发系统、构建工作者、发布编排、工件验证、签名路径和客户更新渠道的访问。客户无法在 SolarWinds 的构建者内部部署端点监控。他们无法将签名前工件与公司批准的源代码进行比较、要求第二次内部构建、或阻止供应商的签名密钥授权受损输出。这些是生产者的控制。
运营问责制遵循该控制。相关问题不是任何合理公司能否保证免受 SVR 攻击。没有生产者能做出那种承诺。问题是发布过程是否包含独立的控制措施,能够防止一个受损环境悄然改变已签名产品,或在广泛分发之前检测到这种变化。
2019 年 10 月的测试和后来的 SUNSPOT 操作表明,攻击者找到了修改构建而不产生阻碍发布的差异的空间。长时间的内部访问以及未能检测到生产操纵在控制评估中是不利事实。行为者的老练程度与所需抵抗水平相关,但它不是豁免。其产品在政府和大型企业中占据特权位置的供应商应预期受到有能力的攻击者针对,并相应地设计工厂。
责任还包括事件沟通。SolarWinds 通知了客户、与调查人员合作、发布了关于 SUNSPOT 的技术信息、提供了补救措施,并资助了部分客户支持。这些行动减少了危害,并提供了异常有用的行业证据。它们应被记录。问责不是在寻找一个永久责备的标签;它包括失败的控制和响应的质量。
公司披露在几个重要点上很谨慎。SolarWinds 在政府归因之前没有独立归因行为者。它区分了潜在安装和已确认的后续利用。它承认初始访问仍未解决。其文件承认了诉讼、调查、成本、客户和声誉风险。这些是有意义的优势,尽管后来的执法诉讼对该公司早期的公开安全陈述的某些方面存在争议。
生产者的责任不仅仅在于交付修正的二进制文件。SolarWinds 需要证明构建路径本身已经改变,签名权限不能祝福无法解释的工件,凭证和第三方访问受到约束,以及证据将持久到足以调查耐心的入侵。所声称的三构建架构是对该机制的响应。持久保证需要独立测试分离是否能在真实运营压力下存活。
客户责任:约束受信任的产品
客户不控制 SolarWinds 的构建系统,但他们控制着 Orion 安装的环境。他们的责任始于产品进入该环境。
网络管理软件不应仅仅因为广泛访问方便而获得无限信任。客户可以隔离管理服务器、限制出站互联网访问、分离服务账户、最小化常驻特权、保护管理凭证、监控产品的网络行为,并在被监控系统之外保留日志。NCSC 指出,无法解析或到达外部基础设施的受影响服务器可以防止后门初始推进。这是客户侧防御限制供应商发起失败的 concrete 例子。
客户还控制着云和现场身份信任是否允许一个受损的管理主机成为更广泛的凭证权威。独立管理工作站、分层身份、抗钓鱼多因素认证、受限联合、令牌监控和恢复计划可以减少后续影响。这些控制无法使交付的 DLL 变得良性,但可以改变执行它的后果。
采购和架构团队有另一项责任:将 Orion 归类为高后果依赖。一个看到网络拓扑、处理管理凭证或监控关键资产的工具应不同于普通桌面实用程序进行评估。买家应知道哪些产品可以自动更新、它们信任哪些签名根、发布工件来自何处,以及它们能多快隔离或替换产品而不失去运营可见性。
客户责任仍必须受可行性限制。在 2020 年,客户无法从已签名安装程序重建 SolarWinds 的私有构建来源。大多数买家缺乏合同权利或技术访问来审计生产管道。即使出色的分段也无法告诉他们已签名组件是否匹配批准的内部源代码状态。当分配给客户一个他们无法行使的控制时,共同责任变得回避。
因此,正确的结论不是客户无助或他们因信任更新导致了入侵。应用已签名的供应商更新通常是预期的安全行为。客户负责限制受信任组件的爆炸半径并维护独立检测。SolarWinds 负责其授权和分发的产品的完整性。这些责任在风险降低中重叠而不变得可互换。
政府责任:买家、协调者和连续性所有者
联邦政府不仅是受害者。它是主要买家、监管者和标准制定者、情报持有者,以及最终负责公共使命的运营者。
在 SolarWinds 之前,联邦供应链风险管理已经不完全。GAO 的2021 年 5 月证词指出,在 23 个审查的文职机构中,没有一个完全实施了选定的基础信息通信技术供应链实践。时间很重要:政府不能合理地要求供应商承担全部负担,同时未能盘点、评估和持续管理机构依赖的关键软件。
机构控制着产品放置、服务账户特权、网络出口、身份架构、日志记录、采购要求和恢复能力。CISA 的紧急指令之所以必要,部分原因是受影响机构必须一致且快速地行动。成熟的连续性计划应已知道 Orion 安装在何处、它可以到达什么、它使用哪些凭证、断开时哪些运营可见性消失,以及如何临时替换该功能。
政府还拥有单个客户无法获得的汇总优势。CISA、FBI、NSA、ODNI 和行业合作伙伴可以结合机密和公开信息、关联报告、发布指标并协调驱逐。GAO 发现网络统一协调组帮助组织了响应,同时也识别了涉及信息共享和私营部门访问的挑战。当每个受影响组织分别试图确定同一签名文件是否危险时,协调延迟会产生公共成本。
采购是政府最强大的预防杠杆之一。买家可以要求安全开发证明、事件通知条款、工件来源、漏洞披露、证据保留、响应期间的合作以及获得独立保证的权利。他们还可以避免检查表合规,即询问供应商是否具有安全开发生命周期,但不测试构建是否能偏离审查过的源代码。
事件后的政策记录朝该方向发展。NIST 的安全软件开发框架包括保护开发环境、保留来源、验证发布、响应漏洞和防止复发的实践。NIST 的网络安全供应链指南将供应商风险置于企业治理内部,而不是留给采购问卷。OMB 的M-22-18 备忘录要求联邦机构获取与 NIST 安全开发实践相关的软件生产者证明。
证明只在真实、有范围且可测试时才有用。如果底层的生产证据不可用,签名声明无法解决与签名二进制相同的问题。高后果买家需要请求工件、例外、独立评估和纠正计划的能力。虚假保证可以通过鼓励快速信任而不提供验证声明的方法来增加风险。
法律记录未提供简单裁决
运营问责和法律在事件后明显分歧。
2023 年 10 月,SEC 指控 SolarWinds Corporation 及其首席信息安全官 Timothy Brown 欺诈和控制违规。SEC 诉讼发布声称,在 SUNBURST 之前,公开声明夸大了安全实践并低估了已知风险。这些指控是重要的,但投诉是倡导者的诉状,而非事实认定。
2024 年 7 月,美国纽约南区联邦地区法院驳回了 SEC 的大部分主张。法院允许基于公司 SUNBURST 前网站安全声明的证券欺诈指控继续进行,认为修改后的诉状充分指控了关于访问控制和密码实践的误导性声明。它驳回了基于风险披露、2020 年 12 月 8-K 表格、事件后声明、内部会计控制和披露控制的索赔。该判决适用于诉答和证券法标准。它没有对 SUNBURST 的技术原因进行审判或宣布构建过程安全。
2025 年 11 月 20 日,SEC 与被告达成了带有偏见的驳回协议。该机构的最终诉讼发布称,该决定是自由裁量权的行使,不一定反映其在另一个案件中的立场。带偏见驳回结束了该执法行动。这意味着幸存的指控没有成为最终责任判决。
这一序列支持四个严谨的结论。
首先,SEC 的原始理论不应被重复为既定事实。许多指控被驳回,且没有一个产生审判判决。
第二,执法案件的驳回不应被呈现为 SolarWinds 2019 年和 2020 年的构建控制达到了充分标准的技术证明。该案例涉及特定声明、要素、法规和诉答规则。法院可以驳回证券索赔,同时工程控制失败仍然有记录。
第三,驳回前幸存的网站声明索赔表明,当自愿的安全声明宽泛且难以与内部条件协调时,它们可能产生问责风险。供应商应精确描述结果、范围、例外和保证证据,而不是承诺泛化的安全态势。
第四,法律不确定性不阻止控制能力分析。SolarWinds 控制工厂;客户控制部署边界;政府控制公共采购和协调;SVR 控制恶意活动。合同、损害、因果关系、管辖权和法定义务决定该运营地图是否成为法律补救。这里使用的任何来源都不支持在这些当事方之间分配法律责任的百分比。
该事件还揭示了政策张力。当公司淡化已知事件时,积极执法可能改善坦诚。但如果安全人员认为每个初步关切后来都会被诉为欺诈,它也可能阻止内部文档或自愿威胁共享。更好的问责机制奖励及时、有置信标签的披露,同时惩罚在适当标准下证明的实质虚假声明。它不应要求完美预防作为被视为受害者的代价。
补救必须改变证据,而不仅仅是架构图
SolarWinds 在发现后报告了广泛的变更:更广泛的多因素认证、更严格的最小特权、对第三方应用程序的更严格审查、增强的监控、重新设计的构建流程、多个隔离的构建者、独立的凭证、输出比较、静态分析、开源分析、渗透测试和资产跟踪。其对 SUNSPOT 细节的公开分享为其他生产者提供了具体的威胁模型。这些是相关且针对机制的措施。
最强的补救声明不是“我们现在在三个地方构建”。而是能够证明未经授权的临时源代码更改无法到达签名发布而不产生可检测不匹配的证据体系。该证据应在人员变动、截止日期压力、紧急补丁和构建者替换中幸存。
一个可信的保证包应至少回答以下问题:
- 每个发布的二进制文件能否追溯到不可变的批准源代码修订版、依赖集、编译器和构建策略?
- 构建工作者是临时的还是从已验证状态恢复的,它们的控制平面是否与普通企业身份隔离?
- 一个凭证能否改变构建、抑制遥测并请求生产签名?
- 不同构建是否真正独立,还是共享一个可能产生相同受损的隐藏依赖?
- 签名服务是否验证来源和策略,还是会对授权账户呈现的任何工件进行签名?
- 构建和签名日志是否写入单独管理、防篡改的存储,并保留到预期的国家行为者居住时间?
- 是否使用测试金丝雀或受控故障注入来证明未经授权的构建变体会停止发布?
- 供应商能否撤销发布、按暴露类别通知客户并提供清洁恢复工件而不破坏取证证据?
- 客户是否收到可验证的来源,而不仅仅是签名和营销保证?
- 例外情况是否对领导层和因这些例外情况而风险变化的客户可见?
这些不是要求向每个买家公开源代码或敏感生产秘密。独立审计师、政府评估者和受控透明度机制可以在不发布攻击地图的情况下验证结果。目标是证据与产品特权和系统范围相称。
客户需要补充证明。他们应能够证明 Orion 或等效管理平台不能自由到达每个管理层级;服务账户有范围;出站流量在可行时被列入白名单;身份和 DNS 日志离开受管理环境;受损的管理服务器可以在不失去所有运营意识的情况下被隔离;云联邦可以从已知良好权威重建。
政府买家应测试连续性,而不仅仅是接收文件。桌面演练可以要求机构在数小时内断开其网络管理平台、枚举相关凭证、保存证据、使用替代工具恢复可见性,并协调身份重置。演练中的失败在真实指令到达之前识别公共风险。
问责的实用分配
当责任按控制能力而非与头条新闻的接近程度分配时,事件变得更清晰。
根据美国和盟国的归因,俄罗斯 SVR 策划并实施了这次间谍活动。它选择破坏供应商、设计 SUNSPOT 和 SUNBURST、选择下游目标,并使用被盗访问。其罪责是首要且故意的。
SolarWinds 控制着其内部访问架构是否限制了行为者、构建输出是否必须与批准的源代码对应、构建者和签名是否独立监督、异常发布行为是否产生警报,以及客户是否收到准确和及时的证据。公司还控制着补救和披露的重要部分。其作为受害者的身份不会移除这些责任;其后来的透明度不会抹去最初的失败,但可以减少未来危害。
客户控制着产品放置、特权、网络路径、日志保留、事件升级和身份恢复。一个给予 Orion 不受限制的管理访问权限并缺乏外部监控的组织接受了比隔离该平台的组织更多的后果。这种差异影响可预防性和损害,尽管两个客户都没有造成恶意发布。
云和身份提供商控制着跨租户遥测以及检测或撤销伪造或滥用的身份验证的机制。后续云访问将软件供应链事件转变为更广泛的身份事件。提供商合作和日志因此是恢复信任的一部分。
联邦机构领导者控制着任务连续性、库存、采购条件和全政府供应链实践的实施。CISA 和合作伙伴机构控制着协调警报、指令、工具和共享的事件理解。国会和监管者控制着监督和激励,受限于其法定权限。
软件生产商的高管和董事会控制着资源和激励,决定构建安全是产品要求还是尽力而为的内部项目。具有管理权限的软件的构建管道是产品安全边界的一部分。关于它的投资决策应像对待发布的代码一样被治理。
没有任何一方的责任取消另一方的责任。“客户本应对 Orion 进行分段”并不能回答为什么未经授权的工件被签名。“SolarWinds 本应保护构建”并不能回答为什么管理服务器可以到达客户最高价值的身份。“SVR 很老练”并不能回答独立构建验证是否存在。成熟的叙述允许所有三个陈述均为真,并且仍然问每一方现在必须证明什么。
持久教训:签名需要生产真相链
SolarWinds 入侵改变了软件供应链政策,因为它利用了一种否则是可取的习惯:从供应商处获取更新、验证签名并及时应用。该事件并未使该习惯变得非理性。它表明客户信任已经超过了生产过程中暴露的证据。
纠正模型是生产真相链。批准的源代码应导致已识别的构建请求。请求应在加固、可观察的环境中运行。依赖和工具应固定并记录。生成的工件应针对独立预期进行比较。签名应仅在策略和来源检查后发生。分发应保留工件。客户应能验证超出签名密钥拥有权之外的内容。日志应使每个环节在长期居住后都可调查。
该模型还改进了公共连续性。当发布受到质疑时,机构可以确定他们运行了哪个工件、哪个源代码和构建者产生了它、它拥有什么特权、它联系了什么以及必须恢复哪些身份。不确定性缩小。响应变得有针对性而非不分青红皂白。基本服务花费更少时间重建可证明清洁的系统,而更多时间用于无法证明的系统。
SolarWinds 不应仅仅被记住为被黑客攻击的公司,或用来要求无限供应商责任的符号。更有用的教训是制度性的。软件生产者可以成为其客户的基础设施,即使它销售现场产品。其构建系统可以成为公共信任边界,即使客户从未看到它。而且加密签名可以完全有效,而人们附加到其上的组织声明却是虚假的。
问责标准应基于这一现实。攻击者对入侵负责。供应商负责使发布路径具有抵抗力、可观察性和诚实描述。客户负责限制产品并保存独立证据。政府负责在考虑这些依赖性的情况下进行采购,并在信任崩溃时维持公共使命。2020 年的 Orion 行动跨越了所有四个领域。持久的补救必须同样做到这一点。

