本文来自微信公众号“安全自动化”,作者/董任远。
业务成功的关键驱动力在于企业开发和交付软件的速度。团队任务是不断寻找尽可能高效的工作新方法,通常会借助开源库和组件来加快交付速度。事实上,有研究表明市场上多达97%的应用程序都使用开源软件。
虽然开源仓库有助于节省时间,但也成为了网络罪犯的主要目标。因为只需破坏开源库中的一个软件包,这些恶意攻击者就能获得多家企业的后门访问权限,给全球数百万开发者的工作带来安全隐患。
在“生产竞赛”中,速度绝不能以牺牲安全为代价。以下三大实用步骤能够最大限度地降低软件供应链中的风险:
01
确保正在使用的开源库得到正确扫描
2022年,全球1700家企业遭受到软件供应链攻击,超1000万人受到影响,其中几乎所有攻击都包含一些错误或恶意的开源代码。正如下文中的数字所示一般。
相关行业研究显示,仅仅在1月份,NPM就新增了95,000个软件包。除此之外,75万个新版本的现有软件包也被更新到库中。虽然这些库毫无疑问希望确保代码合法,但开源的本质意味着几乎不可能进行验证。因此,企业有责任确保这些软件包可以安全地添加到其开发供应链中。业界曾用维基百科来比喻开源关系:虽然维基百科是很棒的免费资源,但使用它的个人有责任核实信息的准确性。
企业可以用可扩展的方式实现这种程度的审查,通过连接到开源仓库并扫描与软件包或更新版本相关的元数据,以了解其上下文,如它们是否与恶意攻击或漏洞相关联,或它们是何时创建的。通过回答此类问题,开发者可以在自己的生态系统中将代码推进到下一阶段的开发,并增强对代码安全性的信心。
02
开发一种“超越”左移的方法
左移模式对企业来说非常有帮助,因为可以尽可能地在入口点附近对开源组件进行检查。相较于软件开发的早期“狂野西部”时代(只有在最后阶段才会对代码进行检查,一旦发现问题就不得不再次从头开始),这一方法颇受欢迎。
随着软件开发不断成熟,最重视软件安全的企业将寻求一种超越左移的方法。
为此,可以在将组件引入集成开发环境之前检查组件是否存在漏洞。具体而言,可以通过创建一个气隙环境,根据企业特定需求定制的策略来检查输入的开源代码,并在进入环境前便可过滤掉不符合标准的代码。
03
将安全措施集中于单一平台
上述两种方法将有助于以更具成本效益的方式管理软件供应链中的潜在安全问题。此外,使用专门针对这些领域的解决方案,能够帮助把握可能在软件开发周期后期出现的安全问题。
众所周知,开源数据库的流动性非常高,并且一直处于不断变化之中。即使一个软件包通过扫描和左移前的安全措施,仍无法百分之百保证其安全性。我们可以采用能够理解此生命周期每个阶段的解决方案,一旦发现恶意内容,企业可以在整个开发过程中的任何时间点采取适当的补救措施。
以安全为重的软件供应链平台可通过上述最佳实践,帮助实现整个软件构建与发布流程的自动化并确保其安全,从而助力开发者加快软件交付速度,同时强化企业的安全态势。
优先考虑软件供应链安全
大多数软件开发所依赖的开源生态系统将持续存在。这些库的便利性和速度无与伦比,是现代开发团队的必备资源。然而,由于一些环境的性质,使用它们的个人和企业有责任确保其安全可靠。
采用上述三大步骤,能够持续推动开发工作流的创新和效率,并在企业中应用顶级安全实践操作。