1.3 里程碑案例一:SolarWinds

如果不讨论 SolarWinds 网络攻击,那么现代软件供应链安全事件的讨论就不完整。SolarWinds 是市场上最大的数字系统管理工具提供商之一。2019 年,SolarWinds 开始遭受网络攻击,现在这些攻击被归咎于俄罗斯外国情报局。攻击发生时,SolarWinds 拥有 300,000 个客户,其中包括许多美国政府机构和大多数财富 500 强公司。据估计,在这 300,000 个客户中,有 18,000 个(包括联邦政府机构和客户)收到了受损的软件更新。据说恶意行为者随后专门针对了他们认为是高价值目标的受损客户子集。

虽然在攻击的初始阶段情况并不十分明朗,但现在已经有许多事后报告揭示了恶意行为者的技术复杂性以及受影响的公共和私营部门组织生态系统的下游影响。其中一份由美国政府问责局 (GAO) 编写的报告称 SolarWinds 的网络安全漏洞是“有史以来针对联邦政府和私营部门最广泛、最复杂的黑客攻击之一”(http://gao.gov/blog/solarwinds-cyberattack demands-significant-federal-and-private-sector-response-infographic)。

美国政府问责署还制作了图 1.5 所示的报告 (http://gao.gov/products/gao-22-104746),以帮助传达与 SolarWinds 攻击相关的活动的高级时间表。

SolarWinds 是一个诱人的目标和典型的软件供应链攻击,因为恶意行为者不太可能对 Solar Winds 作为最终目标感兴趣,而是对 SolarWinds 的客户和下游消费者感兴趣。在这次网络安全攻击之前,SolarWinds 在其网站上吹嘘其强大且备受瞩目的客户名单,该名单随后被删除。SolarWinds 网络安全攻击最初不是由该组织本身发现的,而是由其客户之一 FireEye 发现的,而 FireEye 恰好专注于网络安全。据报道,一名 FireEye 员工被提示重置其多因素身份验证设置,这促使该员工将其提请其团队注意。这随后导致 FireEye 调查该事件并将其追溯到 SolarWinds 的恶意软件,特别是他们的 Orion 软件。 FireEye 的事件响应公司 Mandiant 的首席技术官 (CTO) 表示,该公司检查了 50,000 行代码,才确定 SolarWinds 中存在后门。FireEye 发现 SolarWinds 的软件受到感染后,立即联系了供应商和执法部门,告知他们发现的情况。

虽然攻击时间表的某些细节因来源而异,但前面提到的同一份 GAO 报告提供了一些基本事实。时间表可以从私营部门活动和公共部门参与两个角度来查看,当时联邦执法部门意识到了这一点,联邦调查局和网络安全基础设施安全局 (CISA) 等联邦机构也参与其中。

从时间表的角度来看,据说 2019 年 9 月 SolarWinds 内部系统最初遭到入侵。尽管如此,SolarWinds 首席执行官 Sudhakar Ramakrishna 在 2021 年 RSA 大会上表示 (www.cyberscoop.com/solarwinds-ceo-reveals-much-earlier-hack-timeline-regrets-company blaming-intern),最初的侦察活动现在可以追溯到 2019 年 1 月。在 2019 年 9 月首次系统攻击的同时,恶意行为者还将测试代码注入 SolarWinds 环境,以验证他们确实破坏了系统并可以执行其预期活动。

恶意行为者使用名为“Sunspot”的恶意软件破坏 SolarWinds 软件开发过程并构建系统。然后,他们在 2020 年 2 月左右将一个现在称为“Sunburst”的后门注入 SolarWinds 的 Orion 产品中。2020 年 3 月,向客户提供了一个修补程序,随后 18,000 名 SolarWinds 客户下载了该修补程序。 2020 年 6 月,威胁行为者删除了其在 SolarWinds 构建的机器上放置的恶意软件。直到 2020 年 12 月,SolarWinds 才收到 Sunburst 的通知。SolarWinds 随后向美国证券交易委员会 (SEC) 提交了一份 8-K 报告 (http://sec.report/Document/0001628280-20-017451),该报告提供了 SolarWinds 当时所了解的有关情况的见解。

2020 年 12 月 15 日,SolarWinds 发布了软件修复程序来解决受影响的 Orion 产品。当然,这提出了一个有趣的难题,因为供应商之前的软件更新包含恶意软件并影响了客户。 CISA 于 2020 年 12 月 17 日发布了警报 (AA20-352A;http://cisa.gov/uscert/ncas/alerts/aa20-352a),警告存在一种高级持续性威胁 (APT),正在危害政府机构、关键基础设施和私营部门。此警报表明,五个不同版本的动态链接库 (DLL) 受到了影响。该警报还特别指出了威胁行为者的耐心、复杂性以及与攻击相关的整体高水平间谍技术。2021 年 1 月还发现了与 Sunspot 相关的其他发现。

网络安全公司 CrowdStrike 发布了对 SolarWinds 网络攻击的详细技术分析 (http://crowdstrike.com/blog/sunspot-malware-technical-analysis)。分析发现,恶意攻击者使用名为 Sunspot 的恶意软件破坏 SolarWinds 构建过程,并将其 Sunburst 后门插入 SolarWinds Orion IT 管理产品中。Sunspot 通过监控编译 Orion 产品所涉及的过程,用 Sunburst 后门代码替换原始源文件之一。然后,该后门促成了恶意攻击者创建反向 shell,以访问运行受影响版本的 SolarWinds Orion 的受感染受害者的基础设施。

关于 SolarWinds 网络攻击及其相关恶意软件和后门,还有更多内容可以写出来,这是迄今为止规模最大、最复杂的软件供应链攻击之一。几位联邦和商业技术领导人将 SolarWinds 网络攻击称为一次警钟,并强调需要加强行业对软件供应链保护的严格要求。

SolarWinds 网络攻击之所以如此邪恶,部分原因是恶意行为者利用了网络安全领域长期存在的最佳实践,即确保在供应商提供更新时修补软件。在这种情况下,更新被毒害,因此那些遵循最佳实践并及时更新/修补的人可能会受到影响。通过破坏构建过程,恶意行为者还能够将被感染的软件伪装成已签名且合法的软件。

自 SolarWinds 事件爆发以来,该公司已在其软件构建流程和功能方面投入了大量资金。一些报告和评论(例如 SolarWinds 首席信息安全官 Tim Brown 的报道)声称,他们修订后的“安全设计”计划每年将花费高达 2000 万美元(http://cybersecuritydive.com/news/solarwinds-1-year-later-cyber attack-orion/610990)。SolarWinds 参加了题为“保护软件开发构建环境”的网络广播(http://cybersecuritydive.com/news/solarwinds-software-build-reproducible-cyberattack-code/596850),他们在其中讨论了他们的安全设计方法,其中包括使用可重现的构建来消除二进制代码中的差异。这涉及到组织如何管理版本和依赖关系的变化,包括拥有恶意行为者需要破坏的多个环境才能成功破坏组织的代码。可重复构建 (http://reproducible-builds.org) 在 SLSA 等框架中被引用,特别是在其最高成熟度和严谨度级别 SLSA 4 级 (http://slsa.dev/spec/faq)。我们将在以下部分讨论可重复构建,但值得强调的是,它是一种成熟的实现,很可能最初被主要软件生产商采用,而且正如 SolarWinds CISO 所指出的那样,这不是一项廉价或轻松的任务