鉴于开源软件面临的复杂安全威胁,构建安全软件供应链需通过强化镜像、全面覆盖、合规认证、断开环境支持及自动化文档,将安全融入开发全周期。
译自:What Good Software Supply Chain Security Looks Like
作者:Rita Manachi, William Jimenez
运行开源软件的企业正面临着比以往任何时候都更具攻击性和复杂的安全与合规环境。根据 Sonatype 发布的第十份年度《软件供应链现状报告》(10th annual “State of the Software Supply Chain” report),恶意行为者正通过直接攻击开发者来绕过传统的安全工具。报告指出,2024年记录的恶意软件包数量同比增长了156%。
尽管过去十多年来的云原生和 DevOps 运动在推动将安全融入整个应用开发和交付周期的理念方面取得了进展,但软件漏洞利用仍然是最常报告的外部攻击方法之一(Forrester 2025年报告《应用安全现状》(The State Of Application Security)中29%的受访者提及),紧随其后的是软件供应链泄露(28%)。
面对日益复杂的安全和合规环境,安全团队、应用开发负责人和IT高管都在探索良好的软件 供应链安全 究竟是怎样的。基于与高度受监管行业(从公共部门机构到全球金融服务组织)的数千小时合作经验,我们识别出了一些特定的模式。
将强化镜像提升到基准线之上
强化容器镜像是当今IT环境中的默认配置。许多软件供应商承诺提供强化镜像和近乎零的常见漏洞和暴露 (CVEs)。然而,要真正利用强化镜像的优势,组织需要确保其基础设施中拥有一个可防御的空间。
在易发生火灾的加利福尼亚州,可防御空间的概念由加州消防局 (Cal Fire) 监管。房主被强制要求在其建筑物周围创建100英尺的可防御空间,方法是从其物业边界移除可能成为快速蔓延火灾燃料的材料。
同样,从容器镜像中移除多余的材料也能达到相同的目的。软件中每增加一行代码,就可能引入一个可被黑客利用的漏洞。
通过移除运行应用程序不需要的软件包和依赖项,恶意行为者可利用的故障机会就越少。灾难通常发生在足够多的事物同时失效时。因此,即使无法完全消除风险,减少故障点也能提高抵御攻击的几率。
无发行版镜像(Distroless images)移除了所有非软件运行必需的组件。这不仅使镜像更轻量,占用机器空间更少,还通过减少可用攻击点来提高应用程序的安全性。
对于需要向容器运行时动态添加库的开发者来说,无发行版镜像并非正确的选择。当应用程序通过概念验证阶段,并且权衡的重心从易用性转向降低被利用的风险时,无发行版镜像的优势就显现出来了。
对于其基础设施已准备好实现最先进容器安全性的团队来说,无发行版镜像必不可少。并非所有团队都能从这种类型的镜像开始,但那些已经在使用复杂技术,如气隙网络或断开网络、零信任或强制访问控制授权模型的团队,将会非常适应使用无发行版镜像。
通过在容器中创建“洁净室”环境,无发行版镜像并非为人类操作而设计,因为它们只包含应用程序底层二进制文件所需的那些组件。但由于它们缺少操作系统中面向人类的部分——如 shell、包管理器、文件系统工具——这使得黑客即使设法进入容器也更难进行利用。
此外,容器镜像的大小也大幅减小,因为它舍弃了那些工具所需的许多额外内容。这使得容器更安全,但代价是调试和故障排除时的易用性降低。
然而,这个生态系统正在开发新的工具,以使无发行版容器更易于使用,从而提升了行业中每个人的可防御空间和主动安全标准。
毫无疑问,无发行版镜像虽然不太方便,但更安全。这就是为什么最好将它们作为最流行应用程序的可选格式。更高级的用户将渴望这种级别的安全性并理解其中的权衡。
全面覆盖
一个考虑到安全因素、以正确方式构建的镜像目录固然很好,但如果开发者所需的应用程序或组件不在该目录中怎么办?
如果开发者因为找不到所需内容而频繁离开您受信任的供应链的“围墙花园”,那么您就无法再声称您的平台符合合规性。而且这些例外情况可能会引入未被跟踪或缓解的风险。
这就是为什么拥有一个能够充分覆盖平台用户所需应用程序和开源项目的目录,对于成功的合规性来说至关重要。否则,开源合规的承诺将是空洞的。
认证优化镜像
大多数合规性要求和框架控制都基于NIST 800-53以及实施和管理这些控制的风险管理框架(RMF)。寻找一个深入理解安全和合规环境的供应商至关重要。
此外,那些开箱即用就能满足这些控制要求的镜像供应商,可以改善您的安全态势,确保您满足基本的合规性要求。这些供应商可以大大减少工作量,并提供模板来回应控制要求以及镜像如何满足这些要求。
操作系统软件包格式
许多组织可能需要定制他们正在使用的标准镜像以满足自身需求。拥有一个行业标准的软件包格式,例如 Red Hat 软件包管理器(RPM),是一种安全可靠的做法。
其他一些强化镜像提供商只支持 Alpine Package Keeper (APK),这不被认为是行业标准,并且可能使得找到该格式的软件包更加困难。
使用开发者不察觉的熟悉技术,您将获得更好的安全结果,这样他们就可以专注于代码。
STIG 就绪
美国国防部 (DoD) 要求所有IT系统都必须遵循 DoDI 8510.01 中定义的风险管理框架。风险管理框架的一个重要部分是强制使用由国防信息系统局 (DISA) 维护的安全技术实施指南 (STIGs) 和安全要求指南 (SRGs)。如果某个产品没有特定的STIG,则必须使用相关的SRG。
无论您是与国防部合作还是在高度受监管的行业中,理解这些要求都至关重要,因为它们可能会影响您的合规性态势。寻找发布STIGs并展示在风险管理中遵循SRG要求经验的工具和供应商。
“STIG 就绪”是指准备符合DISA标准的内容的过程,类似于官方的DISA流程。被标记为“STIG 就绪”的产品,如果提交给DISA官方发布,通常只需最少的改动。在选择供应商以改善您的安全和合规性态势时,请参考其STIG就绪文档。
FIPS 和 SLSA
由美国国家标准与技术研究院 (NIST) 开发的联邦信息处理标准 (FIPS) 在特定政府要求没有可接受的行业标准或解决方案时使用。尽管FIPS是为联邦政府使用而开发的,但许多私营部门自愿使用这些标准来保护其信息和系统,并建立强大的信息安全计划。
为了保护您的供应链并抵御加密攻击,一个经过精心策划的FIPS批准软件目录为更强的安全态势奠定了基础。您可以在此处找到最新的FIPS列表。我们建议查看FIPS 140-2和140-3,它们规定了保护敏感信息的安全系统内部模块的密码和操作要求。
软件制品供应链级别 (SLSA) (SLSA) 框架包含一套供应链安全的可逐步采纳的指南,这些指南是由行业共识(而非管理机构)建立的。它旨在跟踪从源代码到二进制文件的代码处理过程,以防止恶意行为者渗透日益复杂的软件供应链。
理想情况下,您应该可以选择为所有分发资产生成出处证明,以便您可以验证关于软件制品的信息,这些信息描述了生产的地点、时间和方式,并符合SLSA构建级别3。下表显示了根据此规范达到SLSA 3级合规性所需的要求。
支持断开连接的环境
许多联邦机构和高度受监管的组织要求将计算机系统与互联网等外部连接隔离。物理隔离(或气隙)系统通过阻止对系统的远程访问来保护高度敏感的数据,并确保数据的完整性。在许多情况下,它们也支持与数据和隐私保护相关的监管合规标准。
断开连接或气隙网络是提高基础设施安全防御能力的有效方法。然而,这会带来代价,特别是当您所依赖的软件被设计为始终连接到互联网时。这就是为什么在系统设计早期识别能够很好地支持断开连接环境的解决方案至关重要。
要使供应链安全策略有效,软件更新,特别是那些带有CVE修复的更新,需要及时通过气隙。您应该期望您的解决方案提供商提供一份有完善文档的程序和工具,用于将软件从互联网移动到断开连接的环境。
危险在于,如果软件更新处理起来过于困难,断开连接网络策略的好处将因供应链功能受损而减弱。幸运的是,有一些工具,例如开源的Bitnami charts-syncer,它使得在图表仓库和高度受监管的环境之间同步和移动图表包及相关容器镜像变得轻而易举。
自动化合规文档
规模更大、安全意识强的企业和联邦机构要求任何运行或交付的软件都必须包含软件物料清单 (SBOMs)、漏洞可利用性交换 (VEX) 声明和 in-toto 证明。
通过API自动收集合规文档的能力无疑简化了审计流程;它还可以缩短组织从潜在软件供应链攻击中恢复的平均时间。
这里有一个关于SBOMs如何缩短您从中断或攻击中恢复时间的示例。这种整体视图对于支持持续合规性至关重要。
从积木到完整的房子
归根结底,软件供应链安全需要在整个应用开发和交付周期中采用多种工具和流程。不再仅仅是将安全左移——而是将安全融入到每个环节。
随着我们看到 云原生模式 逐渐稳定为平台即服务 (PaaS) 的范畴,为实现无缝安全体验而架构您的系统是明智之举。在这样的架构下,成果在整个系统中得以实现,因此安全性不会阻碍您更定期地发布高质量软件、更快地从挫折和攻击中恢复,并使开发者更加满意。