乐趣区

关于google:数据安全思考数据安全取决于安全的软件开发供应链

黑客利用 SolarWinds 破绽大面积攻打政府和私人网络的事件曾经产生了几个月,尽管这次攻打事件的宽泛影响早已引起了器重,但始终不足对于施行的攻打类型的探讨。

最近,谷歌软件工程师 Dan Lorenc 在一篇文章中具体地形容了此类攻打的性质,并提出了一些对于供应链平安的最佳实际。

此外,Dan Lorenc 还就开源社区是否可能提供一些领导,应用更好的平安办法来开发具备平安优先思维的软件问题进行了深入探讨。

Dan Lorenc 是谷歌的一名软件工程师,专一于开源云技术。他领导的一个工程团队致力于简化为 Kubernetes 构建和交付零碎的过程。他创立了 Minikube、Skaffold 和 Tekton 开源我的项目,并且是继续交付基金会技术监督委员会的成员。

什么是供应链黑客?

打个比方,让咱们看看产生在 20 世纪 80 年代的芝加哥泰诺谋杀案。起因是有人闯入了芝加哥的一家药店,关上了含有氰化物的泰诺药瓶,把药瓶放回了货架。后果,服用这些含有毒品的泰诺药片的人病得很重,导致多人死亡。这个概念相似于供应链攻打(软件或基础设施 )),即黑客通过一个小的后门闯入软件被应用的中央,或者潜入恶意代码,这些恶意代码将接管计算机,或者对软件的最终使用者造成任何模式的侵害。在 SolarWinds 黑客案例中,攻击者攻打了军方和政府承包商应用最多的特定供应商域服务器。

对用于交付软件(或软件自身)的基础设施进行小规模隐形攻打的结果可能会产生很大影响。这是隐秘的,因为很难追踪供应链左侧到底出了什么问题。

其实,供应链攻打并不陈腐,早在 1984 年 Ken Thompson 的驰名论文《Reflections On Trusting Trust》中,就探讨过这种攻打。

在当今世界,开源软件普遍存在,供应链攻打更具破坏性,因为有成千上万的“成分”由多方奉献。这意味着在思考任何包的残缺依赖关系树时,有更多的点可供某人进入并攻打。这并不是说开源应该为这个和其余的供应链攻打负责。事实上,现在在公有或关闭源代码基础设施上有太多的开源组件,整个开源与关闭源代码之间的答辩都是毫无意义的。要害的挑战是,咱们如何能力确保当今这个次要由开源和闭源混合体形成的生态系统的平安。

要克服的次要阻碍是与文化无关的。也就是说,开源开发的实质是建设在信赖和通明的根底上的ーー开发人员实际上是将源代码收费提供给每个人。以 Libtiff 为例,它是 33 年前创立的一个组件,用于出现特定类型的图像。明天,它被索尼 PSP、Chrome 浏览器、Windows、Linux 和其余许多公司所应用。创造者素来没有想到它会在生态系统中失去如此宽泛的利用。如果恶意代码被引入到这个根组件中,将带来难以想象的宽泛毁坏。

如何避免供应链黑客带来的威逼?

那么,思考到当今普遍存在的文化背景和开源办法,咱们都采取了哪些理论步骤来限度将来供应链黑客的危险?

首先,开发人员须要开始注入基础设施,以爱护正在应用的软件开发管道。制订一些协定,帮忙生态系统了解组件是如何制作的,以及它们将用于什么目标。同样,也不要在计算机上运行来自互联网的开源软件包。可怜的是,每个开发者每天都要做 100 次这样的事件。

其次,将所有这些信息传播给用户和消费者,以便他们可能做出有依据的决策。咱们须要更好的证实软件过程的透明性,不仅是在凋谢源代码中,而且是在从凋谢到敞开等等的整个管道中。回到泰诺的比喻,因为那个可怕的事件,瓶子上的防篡改封条被发明进去。同样,软件供应链也开始辨认须要修复的要害局部,以爱护其免受攻打。

其中之一是通过软件物料清单传播组件或成分。这是对于建设基础架构,以容许在整个供应链中进行信息交换。有许多我的项目试图做到这一点,包含 intoto、Grafeas、SPDX 和 3T SBOM。他们都试图将验证向左移,将透明度向右移。回到这个比喻,如果有人可能看清 Tylenol 瓶上的 FDA 批准封条,他们晓得他们能够食用它,并且在生产过程中要进行大量的制衡工作以确保其平安。咱们在软件供应链中须要这种类型的软件原语,以便咱们能够更好地与软件的上游使用者进行沟通。

咱们不要漠视懈怠的因素。开发者晓得他们应该应用加密技术,在应用之前签名和查看签名,然而这不不便,而且没有被认真对待。软件构建和 CI/CD 过程通常是最容易被忽视的; 它通常是一台放在某人桌子上面的机器,被设置了一次之后就再也没有看过。可怜的是,这正是咱们真正须要强制执行和爱护的平安要点。

如 Linux Foundation 2020 FOSS 贡献者考察所示。在一个多方参加的合作式开放源码开发生态系统中,生产者(开发者)没有能源去交换软件组件,因为斗争产生在供应链的其余中央。例如,SolarWinds 没有受到攻打的影响,然而他们的用户受到了影响。作为链条一部分的每一个人都须要意识到,对组件进行外表辨认在每个级别上都是至关重要的。

咱们须要一个加密的纸质记录,该记录可提供通过加密签名的可验证信息,从而提供无关如何遵循该实际的见解。Linux 基金会最近公布了一篇博客文章,其中援用了一些倡议,以避免像 SolarWinds 这样的供应链攻打。生态系统须要确保每件事都严格遵守,供应链中的每一个行为都是正确的,每一个软件产品都是由正确的人发明的,由正确的人生产,并且在过程中没有篡改或黑客行为。通过强调通过软件供应链进行核查,由此产生的透明度将使好人的黑客行为更难被发现,从而限度了对软件消费者的上游影响和侵害。这种供应链的审计线索还使得在攻打产生时更容易进行侦察。


现在,繁琐的开源安全性工作使许多人感到痛苦,然而开源管理器然而开源经理、平安专家和开发人员有机会成为意想不到的英雄,与那些试图危害咱们零碎的人作奋斗。

因为开发的软件的普及性,咱们有了一些用意和一致性,从而可能帮忙解决咱们这个时代最大的技术挑战之一。

退出移动版