关于 Solarwinds 攻击,由于许多组织无法访问他们只是从中消费服务的软件供应商的源代码,那么组织如何防御供应链攻击呢?
如何防御软件供应链攻击?
您无法避免风险,但可以通过多种方式减轻风险。
减少攻击面。与其使用来自许多不同供应商的大量工具,不如只使用您真正需要的几个。卸载任何你不需要的东西。机器上运行的软件越少,感染的风险就越低。
分离环境、虚拟化、其他类型的分离。如果您将某些软件与其他重要数据分开,则可以减轻感染的影响。例如,如果您在虚拟机内运行某些软件,则此类软件的供应链感染不会影响外部环境(除非它与利用虚拟机中的严重错误相结合)。使用单独的物理机器运行不同的软件(可能是不太受信任的软件)是另一种选择。一般而言,其他类型的分离可能是与特权分离、网络分离、严格的防火墙规则等相关的任何东西。这些安全控制中的许多可以被认为是通常称为深度防御的一部分。
检测。只要您能够尽快检测到感染,您就可以接受感染的风险。如果发生任何可疑情况,入侵检测系统和定期审核会提醒您,您将能够限制损害。
独立的软件分析和审查。可以在编译和安装开源软件之前对其进行检查。但是,如果您没有程序员和安全专家团队,那么审查每个新版本中的所有新代码将是不可能的,因此这种防御只能由大型组织尝试。请注意,此过程需要时间,但另一方面更新通常需要尽快安装,因此您需要一个良好的补丁管理计划来找到平衡点。
编写自己的关键软件。当您太害怕依赖不受信任的一方来处理对您的业务至关重要的事情时,通常会这样做。可能没有您需要的开源替代品,因此您可能不想信任闭源二进制 blob。或者您可能是无法信任来自其他国家/地区的软件的政府机构。不管是什么原因,请记住,编写自己的应用程序可能需要大量资源,通常您最好将这些资源花在我提到的其他方面(分析、检测、补丁管理、一般的安全控制等)。
这种攻击是 ISO 27002 有第 14 章和第 15 章(采购和供应商关系)的原因。从理论上讲,正确检查您在其他地方采购的系统的安全方面应该尽可能地保护您。实际上,您受到可用信息的限制,而且很少有源代码。但是我们不要自欺欺人,即使你有源代码,也不太可能在其中发现任何问题,除非你是 NSA。
因此,第一个答案是,对供应商的安全性进行严格评估,包括他们持有的任何认证等,确保您购买的东西不会在有人看到它有趣时立即崩溃。这是一个很好的做法。
第二个答案是,Solarwinds 获得了 ISO 27001 认证以及一系列其他认证,并且没有做蹲,因为它不包括对所有源代码的同行评审或其他深入分析。我以 ISO 27001 为生,认证给你的实际安全性是相当基本的。在大多数公司甚至无法实现任何拥有一些资源的人都不会嘲笑的基本安全性的时代,这是一个很棒的工具,但是如果您正在寻找州级或其他高能力威胁参与者没有妥协的保证他们,一文不值。
所以第三个答案是,对于你真正重要的东西,你不信任任何人,什么都不信任,并且你拥有尽可能多的保护层。最终,您的数据必须存储在某个地方并且必须使用某些东西进行处理,但是这些东西是否必须具有 Internet 连接?您是否需要到全世界的传出流量(包括恶意软件 C&C 服务器)?您是否需要每个软件都能够访问设备上的每个文件?您目前不访问的数据是否需要未加密存储?
通过良好的纵深防御,即使是成功的违规行为,您也可以减少对供应链的影响,最终发生的事情只是 Solarwinds 的客户安装了一个恶意软件。它并没有神奇地禁用他们的防火墙或 DLP 系统。
因此,如果您的安全理念不是建造一座坚不可摧的城堡,而是假设您已经被攻破并在这种情况下努力保护尽可能多的皇冠上的明珠,那么此类攻击对您的影响有限。
在实践中,他们不能。他们将不得不从头开始构建他们的互联网浏览器、操作系统、路由器和计算机。这是不可能的,因为公司必须依赖其他人,即使在研究了所有供应商的安全实践并选择了具有可靠安全性的供应商之后,其中一些也可能受到损害。
如果您的防病毒公司遭到入侵,并且在公司的每台计算机和手机上以 SYSTEM 权限运行的软件遭到入侵,您将无能为力。即使您拥有一支非常熟练的安全团队并遵循安全最佳实践,这些攻击也会对您造成伤害。