行业新闻与博客

您需要了解有关 SolarWinds 攻击的所有信息

SolarWinds Hack 是如何产生的,以及软件开发人员可以从中学到什么

买东西最安全的方法是什么?要确保您获得全新的,功能齐全的且不会受到任何损害的产品?这肯定不是通过带有被盗照片的阴暗的 Craigslist 广告进行的,价格太高了,难以置信。相反,答案直接来自制造商-下线直接给您,而无需任何中间商。

这不仅适用于物理产品,还适用于软件。您是否更愿意直接通过 Microsoft 而不是从第三方站点下载 Windows 更新?和口语的软件更新,他们已经成为我们在 21 生活的重要组成部分ST世纪。我们所有的“智能”设备都在不断连接到制造商的网站,以获取其软件的最新和最佳版本。

但是,如果在那些看似值得信赖的更新中还有其他潜藏在幕后的东西怎么办?如果攻击者不是直接针对最终用户的计算机,而是针对自己的软件更新,该怎么办?破坏更新,理论上下载更新的任何人也会受到威胁。这被称为供应链攻击,最近的 SolarWinds 黑客事件是我们见过的最严重,影响最广泛的实例。我们谈论的是世界 500 强中有 425 家可能受到影响,以及众多政府机构。

这是否意味着您应该停止更新设备?绝对不。实际上,我们仍然无法强调保持设备最新状态的重要性。相反,SolarWinds 攻击对于制造商和开发商而言是一个令人不安的警钟。公司比以往任何时候都更重要的是,创建和维护安全文化,更具体地说,是有效而全面的代码审查和代码签名流程之一。

那么,谁计划了 SolarWinds 攻击?先决条件是什么?攻击本身是如何进行的?最终如何发现违规?组织将来可以采取哪些措施保护自己免受类似攻击?

让我们将其散列出来。

最初的目标– SolarWinds Orion

攻击者选择最初将 SolarWinds 作为其计划的第一步是有原因的– SolarWinds Orion 平台在大型企业和政府机构中非常受欢迎,用于管理基础结构和资产。通过首先损害 SolarWinds,他们可以直接进入最终目标网络-SolarWinds 的客户。

这种策略称为“供应链攻击”,因为顾名思义,这种攻击是在仍在创建和 / 或制造最终产品(软件或硬件)的同时进行的。基本上,如果产品在到达最终用户之前就已经受到危害,那么您正在寻找的是供应链攻击。我们之前已经看过它,对于 SolarWinds Hack,在开发过程中甚至没有通过构建过程之前,软件更新就在开发过程中注入了恶意代码。没有人能捕获到被泄露的代码-它是由 SolarWinds 自己用代码签名证书签名的,并作为日常更新过程的一部分直接发送给他们的客户。

供应链攻击的优势很明显–它为黑客提供了一个秘密的后门,使其进入拥有被感染产品的每个最终用户的网络。对于 SolarWinds 而言,它是黑客更强大的攻击媒介,因为 Orion 平台本身旨在跨越用户网络并具有相当程度的控制力。

然后,一旦黑客进入内部,他们就可以继续部署其他恶意软件,以增强其功能,升级攻击并保持未被发现的状态。例如,Malwarebytes 发现了与其 Office 365 租户有关的可疑活动。事实证明,一旦进入了 Malwarebytes 网络,攻击者便创建了一个包含服务主体帐户凭据的自签名数字证书。它允许他们进行 API 调用并通过 MSGraph 请求电子邮件。稍后我们将详细介绍,黑客在整个 SolarWinds 黑客中使用了各种工具和技术。

谁受到了 SolarWinds 袭击的影响?

SolarWinds 攻击始于犯罪者从 2020年3月开始向 Orion 软件更新中注入恶意代码,并在接下来的 9 个月中利用后门访问了全球的政府和商业网络。在此期间,大约有 18,000 位客户更新了他们的软件,而损害的全部程度仍在确定中。

受影响的组织数量在不断增长,但是我们知道,思科,微软,英特尔,VMware 和 Nvidia 等技术巨头都受到了影响。您可能会从 LinkSys 品牌的网络设备中了解到《财富》 100 强会计师事务所 Deloitte LLP 和 Belkin International,它们也从 SolarWinds 那里收到了受损的软件更新。

SolarWinds 的攻击也给公共部门带来了沉重打击。司法部发现,攻击者破坏了他们的 Office 365 系统,包括大约 3,000 名员工的电子邮件帐户。他们在首次发现 SolarWinds 骇客事件 9 天后发现了漏洞。

更令人震惊的是,美国的核武器库系统已经进入。幸运的是,攻击者没有进入任何关键的防御系统。受 SolarWinds 袭击打击的其他政府团体包括国防部,卫生与公共服务部,国土安全部,国务院和财政部。

总体而言,估计有大约 50 个组织受到了 SolarWinds 攻击的严重影响。但是,收到最初的后门漏洞的人数要多得多。

谁负责 SolarWinds Hack?

在我们了解 SolarWinds 攻击的技术细节之前,重要的是要了解可以执行此操作的参与方的类型及其策略。

所有证据都表明,SolarWinds 攻击背后有一个高级持久威胁(APT)演员。APT 是长期攻击,入侵者在受害者的网络上保持存在以窃取高价值信息。大型企业和政府网络通常是针对性的,因为 APT 的目标往往是政治或经济上的。

这种攻击通常是由民族国家发起的,因为与来自较小团体或个人的典型“进出”式攻击相比,它们需要更加复杂和计划周密的攻击。APT 攻击往往非常复杂,由经验丰富的网络罪犯团队进行,并有大量的技术和财务资源作为后盾。

SolarWinds 攻击的详细信息表明,由于采用了 DLL 注入技术,因此隐身性和持久性是重中之重。有问题的黑客还付出了很大的努力来划分他们的工作。换句话说,他们非常谨慎地选择了自己的路线,并竭尽所能防止“点连接”从一个动作到另一个动作。他们并没有立即利用他们发现的每个漏洞。

FireEye(也恰好是最早发现 SolarWinds 黑客的网络安全公司)的情报分析总监 John Hultquist 解释了如何

这是关于质量而不是数量。他们访问的每个组织都会危害他们的访问权限-这会威胁到整个运营。

因此,攻击者对他们能够渗透到最初后门的每个组织进行侦察。如果他们不喜欢他们所看到的东西,那么他们就不会冒险,而是转向另一个更具吸引力的目标。

SolarWinds 攻击准备和测试运行

攻击者从 2020年3月开始向 SolarWinds Orion 更新中注入恶意代码时,他们更早地获得了对 SolarWinds 系统的访问权限。我们肯定知道他们会在 2019年9月出现,但是大多数专家都同意他们的计划是在更早开始的。一个月后的十月,攻击者进行了一次测试,以查看他们是否可以在开发过程中成功地将自己的代码插入 Orion Platform。

10月10日,包含此“测试”代码的文件作为更新软件包的一部分发送给客户,并像其他任何更新一样下载。这些文件是干净的,不包含后门或任何其他恶意代码,并且直到 2020年12月仍未被发现。一位与 Yahoo News 匿名交谈的调查员说

我们认为他们想测试它是否会工作以及是否会被检测到。因此,这或多或少是一场空战。他们花了时间。他们决定不立即使用实际的后门。这表明他们更有纪律和更刻意。

SolarWinds 攻击测试运行文件
受损的 SolarWinds.Orion.Core.BusinessLayer.dll 的文件属性,显示十月份的测试运行(图片来源:SecurityScorecard)

如果攻击者能够在 10月份发送文件,那么他们至少必须在几个月前获得对 SolarWinds 系统的访问权限。正如研究人员所解释的, 

这告诉我们,演员比今年早得多可以进入 SolarWinds 的环境。我们至少知道他们可以在 2019年10月10日访问。但是,他们肯定必须拥有更长的访问时间。因此,入侵 [SolarWinds] 必须至少在此之前几个月开始-可能至少在 2019年中期 [如果不是更早]。

SolarWinds Hack 是如何执行的

攻击者于 2020年2月20日开始向 SolarWinds 软件更新中添加恶意代码。到 2020年3月26日,受感染的更新最终被加载到 SolarWinds 软件更新服务器上,然后将其分发给客户并下载到他们的计算机上。这些更新在用户网络上安装了一个称为 Sunburst 的后门,从而使攻击者可以直接访问。

进入后,可以使用 SolarWinds 软件查看网络结构并进行配置更改。然后,攻击者可以利用他们新发现的知识和能力来攻击其他网络位置,并在他们选择的系统上安装更多恶意软件。

代码签名和 SolarWinds 攻击

让我们离题一下。此时,您可能想知道在 SolarWinds 攻击中扮演什么角色代码签名。SolarWinds 是否正在使用代码签名证书?他们为什么不阻止这种攻击?

SolarWinds 确实确实在其软件更新中练习代码签名。但是,攻击者在开发周期中插入了恶意代码,使用窃取的凭据模拟了受信任的帐户,并且未被检测到。在执行代码签名过程之前,软件更新受到了威胁,而这将在开发过程的最后阶段发生。

没有证据表明在 SolarWinds 攻击过程中任何代码签名证书被盗或被破坏。但是,遭到破坏的是 SolarWinds 的代码审查和签名过程。正如我们稍后将讨论的那样,恶意代码被编写为不显眼,并与其余实际代码混合在一起。这帮助它顺利完成了人工审核过程。然后,SolarWinds 使用有效的代码签名证书对其进行了签名,从而使外部观察者可以看到合法,可信的代码。

SolarWinds 签名软件更新
使用合法的 SolarWinds 的代码签名证书签名的安全更新(图片来源:FireEye)

执行代码签名以确保软件文件与最初签名时的文件相同。这样可以防止第三方在软件供应商和最终用户之间的传输过程中的某处插入恶意软件。

代码签名的目的不是将开发人员正在签名的代码与他们实际打算发布的代码进行比较。您正在签名的代码可能无法正常运行,并加载了恶意软件。代码签名证书无关紧要。这是为了确保客户能够准确地获得开发人员所发布的版本。

这就是人为因素发挥作用的地方。光靠代码签名证书就无法阻止 SolarWinds 的黑客入侵。但是,如果 SolarWinds 遵循代码签名最佳实践以及更有效的代码审查,则确实可以避免这种惨败。

我们将在稍后对此进行更详细的介绍,但首先让我们回到检查用于执行 SolarWinds 骇客的特定恶意软件和后门程序。

黑子恶意软件

在攻击者首次获得对 SolarWinds 内部网络的访问权限之后,Sunspot 是部署的第一批恶意软件。它已于 2019年9月安装在其构建服务器上。Sunspot 仅有一个目的,那就是将恶意后门插入 SolarWinds Orion 源代码中。

Sunspot 通过监视构建服务器中的 Orion 构建命令来做到这一点。当检测到这样的命令时,Sunspot 会秘密加载恶意代码来代替合法版本。现在,包含后门恶意软件的被破坏的更新程序包可以像其他任何更新程序一样分发给 SolarWinds 的客户。

森伯斯特后门恶意软件

Sunburst 是通过 Sunspot 插入到更新中的后门恶意软件。Sunburst 位于 DLL 文件“ SolarWinds.Orion.Core.Businesslayer.dll”中,其主要功能是通过 HTTP 与攻击者的服务器进行通信。

包含后门程序的更新文件是常规 Windows Installer 修补程序文件的木马版本。受损的 SolarWinds.Orion.Core.BusinessLayer.dll 文件包含在合法的压缩更新文件中。恶意 DLL 是由 SolarWinds.BusinessLayerHost.exe 或 SolarWinds.BusinessLayerHostx64.exe(取决于系统体系结构)安装的,这也是加载真实更新文件的合法服务。

安装后,该恶意软件将休眠两周,以帮助进一步减少怀疑。唤醒后,它将尝试解析由攻击者控制的恶意域的子域(在本例中为 avsvmcloud.om)。DNS 响应返回指向命令和控制(C2)域的 CNAME 记录。

恶意软件与攻击者域之间的通信所产生的 C2 流量被伪装成普通的 SolarWinds API 通信,伪装成 Orion Improvement Program(OIP)协议。恶意软件生成的数据(包括有关受害者网络,用户,服务器等的敏感信息)被写入合法的插件配置文件,并且对于任何观看者来说都是有效的活动。

后门恶意软件使用隐藏的阻止列表来检测安全或反恶意软件工具,并在存在时暂时停止任何可疑操作。这些称为“作业”的操作包括诸如文件传输,启动可执行文件,系统性能分析以及禁用系统服务之类的任务。

Sunburst 的目标是最终确定受害者是否适合在其系统上部署功能更强大的恶意软件。Sunburst 收集的数据被发送回攻击者并进行了分析。如果受害人的风险太高或太微不足道,那么森伯斯特会自行删除。否则,攻击者会继续部署更多恶意软件。

Solorigate DLL 文件

现在,关于包含森伯斯特代码的 DLL 文件。正如我们在 2019年10月所看到的那样,攻击者开始使用非恶意代码测试其代码插入功能。这是通过将空类添加到 DLL 文件来完成的。

下一步是将非空类添加到现有的 DLL 文件中,该类最终将包含恶意代码。他们将类 OrionImprovementBusinessLayer 命名为可与其余合法代码融合在一起。攻击者明智地避免使用诸如“后门”或“利用”之类的明显术语,以免引起怀疑(并且考虑到该恶意软件几个月未被发现,他们显然做得很好)。该类包含后门的全部功能,使用了 13 个子类和 16 个方法。该恶意软件被设计为轻巧的,不会干扰或阻碍 DLL 的正常运行。

SolarWinds 攻击 DLL 文件
Solorigate DLL 文件中的感染方法(图片来源:Microsoft)

黑客还需要将其代码放置在 DLL 中的正确位置。他们选择了一种方法中的位置,无论用户在做什么,该位置都将被定期调用。这样,可以保证首先执行,然后再继续运行。他们选择了满足这些要求的称为 RefreshInternal 的方法,并确保在并行线程中初始化恶意软件,以免破坏 RefreshInternal 的正常执行。

泪珠和雨滴

攻击者通过森伯斯特完成对潜在受害者的情报收集后,他们将向他们认为很适合升级的恶意软件部署另一种恶意软件。使用了两种不同的后门恶意软件,称为 Teardrop 和 Raindrop。尽管两者在代码级别上有所不同,但是它们具有几乎相同的功能,即部署 Cobalt Strike Beacon。

Cobalt Strike Beacon 是一种工具,用于扩展和升级受害者网络中的访问权限。它可以:

  • 联系 C2 服务器
  • 启动 WMI 以加载恶意 DLL
  • 窃取凭证
  • 查询活动目录
  • 提升当前用户权限

Teardrop 已部署在最初感染了 Sunburst 恶意软件的计算机上。但是,Raindrop 已横向部署到同一网络上的其他系统。Raindrop 仅在少数几个目标上有选择地使用,并且就恶意软件而言,这是 SolarWinds 攻击的最后一步。似乎没有使用 Sunburst 来安装 Raindrop。

发现 SolarWinds Hack

因此,考虑到攻击的复杂性以及攻击者隐瞒其活动的时间,有人怎么知道这是怎么回事?

正如我们前面提到的,它始于安全公司 FireEye。他们首先确定他们的系统在 12月8日受到威胁,尽管尚无法立即了解到 SolarWinds 的链接。最终,SolarWinds 直到 12月18日才从其服务器中完全删除受感染的更新程序包。

森伯斯特仍然有效,直到 12月18日
直到 2020年12月18日,Sunburst 仍存在于更新程序包中(图片来源:SecurityScorecard)

当攻击者试图在 FireEye 的多因素身份验证系统中注册设备时,就会发生发现。会自动生成警报并将其发送给内部安全团队,每当使用未知设备时都会发生。FireEye 的高级副总裁兼首席技术官 Charles Carmakal 解释了如何

他们必须提供凭据以向 [多因素身份验证系统] 验证 [其设备],以便向 FireEye VPN 进行身份验证。攻击者遵循此流程才能注册生成警报的 MFA 解决方案。

FireEye 不断挖掘,并很快发现目标不只是 FireEye。卡拉玛说

我们查看了 50,000 行源代码,可以确定在 SolarWinds 中存在后门。

关闭 SolarWinds 攻击后门

在最初发现 SolarWinds 攻击后不久,就可以明显看出影响范围是广泛的。几天后,Microsoft,FireEye 和 GoDaddy 做出了回应。他们为后门创建了一个 kill 开关,迫使恶意软件破坏自身。

这是通过首先抓住攻击者正在使用的 C2 域 avsvmcloud.com 来实现的。它没有解析到黑客的服务器,而是解析为 Microsoft 拥有的 IP 地址 20.140.0.1。该 IP 地址在恶意软件的阻止列表中,如果恶意软件检测到该地址,则会指示其删除自己。这被称为“污水池”,用作捕获和遏制恶意软件以及分析流量以识别其他受害者的方法。每个 FireEye,

此 killswitch 将通过禁用仍然对 avsvmcloud [。] com 起作用的 SUNBURST 部署,影响新的和以前的 SUNBURST 感染。

防范未来的 SolarWinds 式攻击

人与文化

自从发现 SolarWinds 攻击以来,SolarWinds 的前安全顾问 Ian Thornton-Trump 便挺身而出,并透露他以前曾向管理层表达过自己的安全问题。桑顿·特朗普(Thornton-Trump)在 2017年向至少三位 SolarWinds 高管作了一次演讲,内容涉及加强安全措施的必要性,并制定了改善其现有基础设施的计划。他竟然说

公司的生存取决于内部对安全的承诺。

他的建议最终被忽略了。桑顿·特朗普(Thornton-Trump)一个月后辞职,感到该公司在安全技术上的投入不足,并且在培养网络安全文化方面严重缺乏。他说

在技术产品级别上缺乏安全性,并且在顶部的安全性领导也很少。我们在 2015年知道,黑客正在寻找进入企业的任何途径。但是 SolarWinds 没有适应。那是悲剧。有很多课程可以学习,但是 SolarWinds 并没有关注正在发生的事情。

不幸的是,桑顿·特朗普现在可以说“我告诉过你”。

主动不主动

Thorton-Trump 并不是第一个对雇主的安全文化和基础设施表示担忧的网络安全专业人员。它发生在世界各地的组织中,并且经常采取行动,直到为时已晚。公司将等到发生安全事件后再进行更改,然后再承担后果–不遵守规定的罚款,品牌损害,从其他项目中撤出资源以修复损害等。

网络安全需要被视为一项必要的支出,而公司在实施安全计划时必须积极主动。虽然网络安全本身并不能直接产生利润,但它可以保护您的所有资产,因此应将其作为重要级别来对待。

正确的配置

拥有合适的安全工具至关重要,正确配置它们同样重要。您的门上可能有世界上最好的固定栓,但是如果您未正确锁上它,那将毫无用处。

您需要了解自己网络的细节以及随之而来的风险。适用于其他组织的内容可能不适用于您自己的组织。

通常,对于关键系统,您将需要非常选择允许输入和输出的流量。例如,在 SolarWinds 攻击的情况下,配置良好的防火墙可以阻止攻击者。仅当服务器使用 OIP 协议和 FQDN api.SolarWinds.com 时,才允许服务器访问 Internet 的规则将确保网络安全。

不要仅仅部署保护,而是智能地部署它。

代码签名最佳实践

正如我们之前提到的,SolarWinds 代码签名证书本身并未受到破坏或被盗。相反,代码审查和签名过程受到了损害。为了最大程度地降低风险,请始终遵循代码签名最佳实践,并确保您的员工接受过以下方面的培训:

  • 首先,请务必在签名之前检查并验证所有代码
  • 避免在没有任何控件的情况下分发证书,也不要将其放在任何人都可以访问的存储介质上(例如 USB 驱动器)
  • 不要在所有文件上使用相同的签名密钥
  • 不要在产品线和业务部门之间使用相同的签名密钥
  • 设置适当的控件,以便只有某些已知的人才能签名(并且仅向绝对需要签名的人授予访问权限)
  • 记录谁签署了什么以及何时签署

证书管理最佳实践

您的组织不仅需要制定有效的流程来使用代码签名证书(就此而言,还可以使用任何种类的证书),而且还需要确保正确管理所有各种证书。如果不是这样,您将大大增加证书落入不当之手并被用于邪恶目的的风险。您的团队应遵循的一些证书管理最佳实践包括:

  • 使用严格的访问控制将私钥存储在指定的保管库中
  • 设置精细权限,仅授予用户访问其工作职责所需的功能的权限
  • 保留所有活动证书的列表,包括位置,所有者,所使用的域等详细信息。
  • 创建证书发行和批准工作流,以允许及时且受信任地部署证书
  • 尽可能自动化

最后一点,我们强烈建议您使用自动证书管理平台。同类产品 Sectigo 证书管理器或 DigiCert 的 CertCentral 拿证书管理的负担过你的员工,和自动化功能,同时还可以轻松管理从单一位置的每个证书最大限度地减少人为错误。

网络安全的一线希望?

虽然 SolarWinds 骇客攻击的范围已广为人知,但最终仍有可能带来一些好处。希望组织可以以此为学习经验,激励他们审查自己的安全基础结构。过去的时光无法挽回,但我们可以从他人的错误中吸取教训,并随后进行更改和改进,这些更改和改进将使我们自己的系统比以往更加安全。


需要帮助吗?联系我们的支持团队 在线客服