服务咨询
全天高效服务
- Tel:13533491614
2020年12月,发生了迄今为止最著名的供应链攻击事件发生。为了过滤敏感的国防相关信息,该公司利用Solarwinds最常用的Orion软件管理平台来攻击美国联邦机构、主要技术公司和主要政府承包商。受害者名单中包括美国国务院、能源部、国土安全部以及微软和思科等大公司。诸如Asus, Codecov,Kaseya, and Accellion等软硬件供应商遭受网络攻击的许多类似事件的信息,随后也被相继曝光。
过去的几年里,越来越多的大型企业的安全团队和高级政府组织经历了新形式的网络攻击。此攻击利用组织的软件生态系统的供应链(以及不太常见的硬件组件)注入恶意代码,这些代码后被用来危害对应的实体。过去十年间,供应链攻击已经存在,但自2020年以来,它们在频率、规模和复杂程度上呈指数级增长,这使得减少供应链攻击变得更加困难。
供应链攻击是一种多阶段的破坏行为,通常由最复杂的攻击组织执行,例如高级持续威胁(APT)组。供应链攻击的目的是利用目标组织与其软件供应商之间的信任关系,允许未经授权的代码在预设的受保护系统或分段/孤立的网络中执行。
供应链攻击主要分为三个阶段:
第一阶段:攻击目标软件平台的网络。
此平台通常是目标组织使用的通用IT管理产品。此阶段的目标是寻找并到达该供应商的研发或DevOps环境,并将恶意代码注入下一个软件版本或即将分发给供应商客户的数据或配置更新信息。
第二阶段:注入恶意代码。
软件平台的客户会允许供应商直接或相对容易地远程访问他们的企业网络,从而保持持续的软件更新和升级,攻击者就会利用这一点来实施网络攻击。供应商和客户之间的开放接口使恶意代码(捆绑并隐藏在来自供应商的合法代码中)被注入目标企业。由于这种恶意代码似乎来自一个公认的可信来源,各个组织的安全系统很难检测到它们。
第三阶段:获取网络控制权及特定资源。
供应商的软件平台通常由目标组织的IT团队使用,这意味着他们在各组织的网络中拥有高级的管理访问权限。这使得攻击者更容易实施第三阶段的攻击。为了达到其恶意目标,第三阶段需要通过数据过滤、组件禁用或物理损害来获得各组织网络的控制权,进而获得他们想要利用的特定资产/资源。不幸的是,恶意代码常被认为是值得信赖的供应商软件包的一部分,从而获取了用户的访问权限。这意味着,犯罪者都可以“四处游荡”,而不引起与未授权行为相关的安全警报,直至进程最后或者已造成全部损害。
供应链攻击可以影响热门软件产品的整个用户群,因此该攻击具有非常广的潜在“损害足迹”。这意味着它们不仅可以破坏Solarwinds和Asus 等相对少数的高价值机构和企业,还可以用于有政治动机的攻击组织。它们还可以通过攻击众多广泛使用的软件产品来制造破坏,甚至瘫痪一个国家。
这种看似理论性的设想已在2017年成为现实。一个可能与俄罗斯政府有关联的攻击集团利用了一家名为M.E.Doc的乌克兰通用会计软件供应商。它将恶意代码注入M.E.Doc的产品中,并用其攻击了众多乌克兰的组织机构。这基本上让该国政府和大部分商业部门陷入停滞。从切尔诺贝利核反应堆的监测系统到国际机场,这场攻击导致了数十亿美元的直接和间接损失。
迄今为止,几乎没有任何可用的安全产品或程序能够有效且持续地阻止供应链攻击的大多数变体。一项众创调查发现,84%的受访者表示,供应链攻击是未来三年对他们组织的最大网络威胁之一。63%的受访者表示,由于这些频繁的安全事件,他们对软件供应商(包括微软等主要供应商)失去了信任。
受到这些攻击威胁的企业可以通过严格的供应商审核、谨慎管理软件更新和实施零信任等方法来减少网络攻击的风险。然而,供应链在大多数情况下是非常复杂且不透明的。它们涉及到许多开源组件,一直监控和审计这些组件的供应商是不现实的。因此,尽管这些措施可能很重要,但它们远远不足以有效缓解供应链攻击。
更加有效地减少供应链攻击,有许多可行的方向和方法。软件供应商必须提高其持续集成和持续交付/部署(CI/CD)过程的可见性,从而在软件被封存并投放市场之前检测到恶意代码注入。至关重要的是,目标组织应该部署运行时的环境检测和预防工具。这些工具可以识别软件产品在其环境中未经授权的或异常行为,并阻止其访问本应超出其能力范围的网络资源。
移动目标防御(MTD)是一种在企业网络中实现有效运行时保护的技术。MTD随机变化可信的运行时应用程序代码,因此没有两台机器看起来完全一样,甚至一个系统也会随着时间的推移而不断变化。它允许您随机变化一些底层操作系统组件、常用服务和库api。在可信应用程序认识到修改后的运行时环境后,MTD会阻止任何软件组件,但不会忘记留下的陷阱。
这种方法之所以如此有效,是因为它具有在内存中执行修改的能力,在这种情况下,试图检查、修改甚至绕过的恶意软件会被立即捕获和阻止。这些周期性的内存随机变化让对手很难在一个地方进行训练,从而难以重新或在其他机器上使用其训练的结果。