为什么软件供应链需要更多的安全性

Kim Lewandowski
2023-12-22 19:56:48
248
欧易OKX
全球三大交易所之一,注册领500 USDT数币盲盒!

Kim Lewandowski是安全创业公司Chainguard的联合创始人兼产品主管。在加入Chainguard之前,她曾在谷歌担任产品经理,最近一次的工作重点是保护公司的开发管道及其使用的开源工具。

在这次采访中,她讨论了安全软件供应链的概念,以及为什么这个想法在过去几年中如此流行。她还谈到了在平衡开发人员生产力与审查开源组件的需要之间所带来的挑战,以及大型企业以安全和项目可持续性的名义支持开源工具的需要。


未来:在谷歌工作期间,你参与了很多项目,但与本次讨论更相关的项目之一是Tekton。你能简要解释一下泰克顿吗?

KIM LEWANDOWSKI:Tekton是一个开源项目。它是一个CI/CD框架和一个非常可插入的系统,用于帮助开发人员使用源代码部署管道。在创办Tekton时,我听到很多公司的很多客户询问安全问题;这始终是每个参与者的首要考虑。

然后有机会帮助保护谷歌免受开源安全威胁。从实际的CI/CD实现管道部分开始,然后从安全角度考虑,这是一个非常自然的过程。不仅仅是漏洞,还有当公司开始更加依赖开源时所承担的一小部分风险。

所以,基本上是一个安全的软件供应链的想法。对于一个没有跟上讨论进度的人,你会如何定义这一点?

有些人听到这个短语,认为它是关于实体供应链——制造、分销和其他东西——实际上是相似的。想想像我们的笔记本电脑这样的产品是如何生产的:有很多不同的步骤、阶段和部件会导致最终结果。例如,当你想到软件供应链和Zoom这样的软件(我们现在正在使用)时,下面是数百甚至数千名开发人员,他们贡献了最终形成最终产品的代码。然后它变得更加复杂,因为最终产品由许多其他依赖项组成。

还有其他类型的供应链攻击,如冒充开发者或项目接管。这比仅仅考虑代码中的漏洞或其他什么更全面。

当你开始审视整个画面——软件是如何从开发人员编写代码一直到最后的——在这个管道的每个环节和阶段都有弱点。所有的依赖关系,所有用于构建软件的东西,以及其间的所有部分,都是我们所说的软件供应链。

为什么它是谈话的主题现在?应用程序的开发方式以及系统的构建和架构方式发生了什么变化,这让人们关注到构成其应用程序的各个部分?

我认为这有点像目前正在发生的疫情。有一个大事件,每个人都在争先恐后地关注它,并逐渐减少,然后发生了其他事情,这是一个类似的故事。所以我不认为这个问题本身是新的,但在过去几年里,我们已经看到了袭击事件的大幅增加。对于供应链攻击,我认为我看到的最新数字是2021年增长了650%。

有很多不同的原因。我听说的一个原因是,我们在保护技术中的其他东西方面做得更好,所以这是攻击者抓住的下一个最弱的环节。开源技术的普及率越来越高,它带来了我们尚未做好防范工作的不同风险载体的完整来源。仅从经济角度来看,随着我们最近看到的一些攻击,比如Log4j漏洞,攻击者得到了很大的回报。

但这并不是一个全新的想法:人们经常引用的一篇论文是Ken Thompson 1984年的《关于信任的思考》,该论文解释了如何后门进入编译器,然后通过它做很多恶意的事情。

所有的依赖关系,所有用于构建软件的东西,以及其间的所有部分,都是我们所说的软件供应链。

开源在这一切中的作用是什么?你已经提到它是一种安全风险,但有一种观点认为开源更安全,因为你对它有额外的关注…

争论可以通过任何一种方式进行,但我认为现实——这就是它应该是的——是开源确实构成了我们今天软件应用程序的大部分。这样做的目的是让公司能够创新,加快他们想要做的事情的生产。但随之而来的是风险。

当我们谈论开源安全风险时,有很多开源项目——其中许多是公司所依赖的,或者开发人员只是因为做了需要做的事情而找到并使用的——没有得到很好的支持或维护。这些事情背后并不总是有一家大企业。有一个xkcd的图像一直在传播,所有这些现代的基础设施和架构都被这个由内布拉斯加州一些孤独的开发商维护的小街区所支撑。事实就是这样。

因此,尽管开源令人惊叹,它推动了我们在技术和其他方面的发展,但它也带来了不受支持的项目的风险,不知道它们是如何维护的,不知道他们遵循的最佳实践,诸如此类。

来源:xkcd

软件供应链的对话在多大程度上是关于容器的,以及现在非常流行的将应用程序和工具打包为容器的做法?

好吧,从我公司的角度来看,这就是我们所关注的,因为这是我们目前拥有最多专业知识的地方。总的来说,集装箱开发正是人们流动的地方。不幸的是,我看到随着人们转向容器化应用程序开发,安全性被进一步推到了优先考虑的位置。如果我是一名开发人员,我就不是一名安全开发人员——我需要推出一个功能,我需要构建我的产品。如果有一些开源软件包可以进行图像编辑或视频编辑,我可能会抓住它,而不是从头开始编写代码,甚至不会三思而后行。

除了仔细检查你提取的容器图像外,还有什么答案?例如,如果你看看Docker Hub,有报道称,有相当一部分图像存在漏洞。你是如何对它们进行审查的?

听听你对仔细审查的描述会很有趣,因为我认为这是从那里开始的。事实上,拉进这些包或容器的人正在对代码进行逐行分析。在Docker Hub中,甚至无法追溯放入容器的源代码的来源。

回到物理供应链的类比,首先,你必须能够追溯这些东西的起源:它们是谁开发的?哪些工程师正在将代码放入其中?它是如何建造的?其中包含哪些包和哪些依赖项?了解这些管道,并在此过程中提供相关信息的证据,将使您能够做出比现在更好的信任决策。

随着人们转向容器化应用程序开发,安全性被进一步推到了优先考虑的位置。如果我是一名开发人员,我就不是一名安全开发人员——我需要推出一个功能,我需要构建我的产品。

这听起来有点像是组织内部的标准化,并确保不同的团队和不同的开发人员不会都在构建雪花或遵循不同的指导方针。

确切地这就是我们今天看到的大企业苦苦挣扎的地方,因为我们都知道太阳风事件特别是攻击了构建系统。因此,现在公司正在更加仔细地研究代码是如何构建的,甚至是在内部。这不仅仅是我们所说的开源风险——内部风险是大公司真正需要担心的问题。

通常是狂野的西部,因为公司不想妨碍他们的开发人员完成工作。所以他们会说,“嘿,开发人员,去拿任何工具,去使用任何你需要的构建系统来完成你的工作。”但从安全的角度来看,这变成了一场噩梦。我采访过的一家公司有120种不同的构建系统。想象一下,比如说,在120家不同的工厂生产一种你一无所知的药物。

个人或公司应该如何解决这个问题,一方面,我们说开发人员的生产力是首要任务,另一方面,安全性是首要任务?

我认为第一件事是意识。人们仍然没有广泛意识到存在的风险以及人们是如何看待这些事情的,即使是在更高层。我不知道人们是否完全意识到这里所涉及的不同威胁模型,只是作为一个起点。我确实认为这里的答案是用不同的技术制作对开发人员友好的工具,从而降低这方面的难度。Chainguard的使命是在默认情况下确保软件供应链的安全,因为我们认为,让开发人员采用更安全的实践和更安全的工具的唯一方法是确保你不会妨碍他们——让这对他们来说非常容易。

我刚接到一个电话,说我们正在为开发人员进行一项开源工作,以加密方式签署Git提交,而这根本不会妨碍他们。你可以用你的凭据签署你的代码提交,然后人们基本上可以在另一边进行验证。这是一个例子,说明了开发人员如何在没有很多事情阻碍的情况下开始变得更加安全。

现在,这确实给开发人员带来了更多的责任,因为你必须登录并进行身份流,但经济学表明,如果你更早地发现问题,你就不会在另一方面为它们支付那么多费用。

然而,我们看待这个问题的方式是,它不仅向左移动,而且一直向右移动。你必须了解你在生产系统中运行的到底是什么,并能够追溯到它。这是我们在Log4j事件的余波中看到的一件大事:许多公司根本不知道自己是否受到了影响。因此,我认为我们确实需要双方的力量来帮助解决这个问题。

许多组织害怕更新,因为他们认为一切都会崩溃。这样做的缺点是,它们会让易受攻击的软件运行,当它们在未来更新许多版本时,这简直是一场噩梦。我们需要让组织更频繁地更新。总的来说,我认为所有这一切的关键是自动化部分——避开开发人员的方式,左右移动以确保事情尽可能自动化。

左移左移是在软件开发生命周期的早期执行测试、安全检查和其他过程的做法,以便尽早发现这些过程并避免在后期出现问题。

如果一切都如此复杂,为什么有这么多人致力于微服务或云原生开发,或者你想怎么称呼它?回拨电话不是有道理吗?

也许有人会提出那个论点,但我不会提出那个论点。就它为我们这个社会所做的一切以及现在从中产生的技术而言,我认为容器只是给了我们一种新的方式来思考这些问题,并能够迎头赶上。我甚至不知道这是否是“追赶”,因为老实说,我不确定在没有容器的情况下,工具比起来有多好,就像我们在使用VM之类的东西时所做的那样。

我想,我们认为这个问题很容易解决,但这只是一项艰巨的工作,尤其是当你开始谈论这些人人都依赖的开源项目时;大型企业可能会使用它们,但通常情况下,它们不会为项目做出贡献或提供任何形式的财政支持。

支持开源项目是一个很大的讨论话题,但除了更好的工具之外,还可以做些什么来提高安全性?

它是巨大的。总的来说,我认为这有很多方面:我认为这是这些项目的资源。我认为大型企业只是更好地了解他们的库存,他们所依赖的东西,并希望在他们对其中一些项目产生依赖的地方做出贡献。有人努力制作更具策划性的开源项目,让人们知道他们更强硬。

我也确实认为,政府层面围绕软件供应链进行了很多讨论,并引入了更多的监管。因此,直接向政府销售的公司将被要求做一定数量的事情或满足某些合规要求。然后它就成了另一个问题,因为那些向政府销售产品的人依赖于自己的供应商,他们使用自己的开源代码。我想,在接下来的5年或10年里,我们只会看到它一路涓涓细流。

CISO面临着巨大的压力,要求他们让事情变得更安全,但他们很难在整个组织中挥舞着锤子说:“你必须开始这样做!”

这会产生加州排放标准类型的影响吗?如果你正在建造符合一个主要市场或买家要求的东西,每个人都会受益?

这是一个巨大的问题空间,我真的相信,这些大公司团结起来,改善整个状况,对每个人来说都是一件好事。因此,在开源社区或像Kubernetes这样的大型开源项目中取得的任何进展,我认为都是令人敬畏的,我只希望我们在未来几年左右的时间里为这场大火注入更多的燃料。因为我确实认为这对很多这样的公司来说不是一个战略优势,但它确实保护了他们,并帮助提升了其他人。

在潜在客户中,你在和谁交谈,或者你在和什么级别的人交谈?

我们还很早——我们在10月份推出了第一款产品——但很多来找我们的人都来自受监管的行业。银行、医疗保健、监管领域的任何人——这都是我们的首要考虑。我与CISO进行了交谈,试图找出是什么让他们夜不能寐,并询问他们将如何解决软件供应链问题。他们害怕新规定吗?他们将如何应对?

但最终,你也必须把这些东西卖给开发人员,因为他们最终会使用它们。我认为这就是冠军的用武之地——能够向开发人员和安全团队演示和展示不同的功能,让他们了解这将如何在他们的真实生产环境中实际工作。这有点像三明治模式:这里的人有钱,下面的人在做工作。

我不知道我是否能羡慕这些公司的首席信息官的工作。他们承受着巨大的压力,要让事情变得更安全,但他们很难在整个组织中拿起锤子说:“你必须开始这样做!”这就是如何在让事情变得更加安全和不激怒所有人之间找到平衡。

许多组织害怕更新,因为他们认为一切都会崩溃。这样做的缺点是,它们会让易受攻击的软件运行,当它们在未来更新许多版本时,这简直是一场噩梦。

在一个越来越关注软件供应链、零信任和这些更现代的方法的世界里,我们可能会称之为“遗留”的安全、防火墙和防病毒程序等方法的未来是什么?

就防火墙而言,我认为现实是,我们并不是都在封闭的墙后运行。在基础设施和SaaS方面,仍有很多迁移到云,这意味着你需要一个像零信任这样的框架,以便在用户级别验证对数据、资源或其他东西的访问,而不仅仅是信任网络上的一切。

我们不要忘记,您仍将在所有这些防火墙环境中运行开源软件。现在可能很少有系统是完全气隙的,不使用任何开源或第三方代码。如果这些组件中的任何一个易受攻击和利用,则入侵者已经在您的网络中,并且呼叫来自房屋内部。

我唯一的希望是人们开始更认真地对待这些事情,开始审视他们的系统——他们的风险在哪里——并开始采用最佳实践和即将出现的东西。因为我认为有很多好事正在发生,尤其是在开源社区,可以帮助每个人的生活。

    Kim Lewandowski是Chainguard的联合创始人兼产品主管。关注推特网站Derrick Harris是a16z的编辑合作伙伴,专注于未来的企业和人工智能报道。关注Twitter
Chaincores提醒:本文不构成投资建议,请广大读者理性看待区块链,切实提高风险意识,警惕各类虚拟代币发行与炒作,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。
热门币种
币种
价格
24H涨跌幅
暂无数据
更多热门币种
最新币种
币种
价格
24H涨跌幅
暂无数据
更多最新币种