Google Cloud 提供了一套全面的模块化功能和工具,涵盖 Google Cloud 产品,可供开发者、DevOps 和安全团队用来改善软件供应链的安全状况。
软件供应链
软件供应链包含有助于开发和交付软件的所有代码、人员、系统和流程,无论这些代码、人员、系统和流程是在组织内部还是外部。其中包括:
- 您创建的代码、其依赖项,以及您用于开发、构建、打包、安装和运行软件的内部和外部软件。
- 系统访问、测试、审核、监控和反馈、沟通和审批流程及政策。
- 您信任的用于开发、构建、存储和运行软件及其依赖项的系统。
鉴于软件供应链的覆盖范围广且复杂,有多种方式可能会在您向用户交付的软件中引入未经授权的更改。这些攻击途径涵盖了整个软件生命周期。虽然有些攻击是针对性的,例如针对 SolarWinds 构建系统的攻击,但其他威胁是间接的,或者通过流程中的弱点或疏忽进入供应链。
例如,Google Open Source Insights 团队在 2021 年 12 月对 Apache Log4j 漏洞进行评估时发现,Maven Central 中有超过 17,000 个受影响的软件包。这些软件包大多不直接依赖于存在漏洞的 log4j-core
软件包,但其依赖项需要该软件包。
开发实践和流程也会影响软件供应链。流程缺陷(例如缺少代码审核或部署到生产环境的安全标准)可能会导致不良代码无意中进入供应链。同样,缺乏依赖项管理会增加因您用于开发、构建或部署的外部来源或软件包而导致出现漏洞的风险。
保护 Google Cloud上的软件供应链
Google Cloud 提供:
- 在开发、构建、测试、部署和政策执行方面融入了安全最佳实践的产品和功能。
- Google Cloud 控制台中的信息中心,可提供有关来源、构建、制品、部署和运行时的安全信息。这些信息包括 build 制品中的漏洞、build 出处和软件物料清单 (SBOM) 依赖项列表。
- 使用软件制品的供应链等级 (SLSA) 框架来标识软件供应链安全性的成熟度级别的信息。
下图展示了 Google Cloud 协同工作以保护软件供应链的服务。您可以将这些组件中的部分或全部集成到软件供应链中,以提升安全状况。
保护开发环境
Cloud Workstations 在 Google Cloud上提供全托管式开发环境。IT 和安全管理员可以预配、扩缩、管理和保护其开发环境。开发者可以访问配置一致且工具可自定义的开发环境。
Cloud Workstations 通过增强应用开发环境的安全态势,将安全性提前到开发流程的早期阶段。安全功能包括 VPC Service Controls、专用入站流量或出站流量、强制映像更新和 Identity and Access Management 访问政策。如果与 Chrome 企业进阶版搭配使用,Cloud Workstations 可提供额外的数据泄露防护功能。
保护软件供应
确保软件供应(构建制品和应用依赖项)安全是提高软件供应链安全性的关键一步。开放源代码软件的广泛使用使得这个问题尤其具有挑战性。
Assured Open Source Software 提供 Google 已验证和测试的开源软件包。这些软件包是使用 Google 的安全流水线构建的,并且会定期进行扫描、分析和测试以检查是否存在漏洞。
Artifact Registry 属于通用软件包管理器,适用于所有构建制品和依赖项。通过集中管理所有制品和依赖项,您可以更好地了解和控制软件供应链中的代码。
- 远程仓库用于存储来自预设外部来源(例如 Docker Hub、Maven Central、Python Package Index (PyPI)、Debian 或 CentOS)以及用户定义的受支持格式的工件。缓存远程代码库中的制品可缩短下载时间、提高软件包可用性,并且在启用扫描功能后,还可进行漏洞扫描。
- 虚拟代码库将相同格式的代码库整合到单个端点后面,并允许您控制上游代码库的搜索顺序。您可以优先处理私有软件包,从而降低依赖项混淆攻击的风险
- 您还可以通过配置访问权限控制、VPC Service Controls 服务边界、组织政策和其他安全功能等安全功能来保护制品。如需了解详情,请参阅 Artifact Registry 文档。
Artifact Analysis 可主动检测 Artifact Registry 中工件的漏洞。
- 针对容器中的基础容器映像和语言软件包提供集成的按需扫描或自动扫描。
- 能够生成软件物料清单 (SBOM) 并上传 Artifact Registry 中映像的漏洞可利用性交流 (VEX) 声明。
保护 CI/CD 流水线
不法分子可以通过危害 CI/CD 流水线来攻击软件供应链。以下产品可帮助您保护 CI/CD 流水线:
Cloud Build 可在 Google Cloud基础设施上运行构建。安全功能包括精细的 IAM 权限、VPC Service Controls 以及隔离且短暂的构建环境。与软件供应链安全相关的特定功能包括:
- 支持适用于容器映像的 SLSA 3 级 build。
- 能够为容器化应用生成经过身份验证且不可伪造的build provenance。
已构建应用的安全性数据洞见。其中包括:
- SLSA 构建级别,用于根据 SLSA 规范确定软件构建流程的成熟度级别。
- build 工件中的漏洞。
- 构建来源,即关于构建的一组可验证的元数据。它包括已构建映像的摘要、输入源位置、构建工具链、构建步骤和构建时长等详细信息。
如需了解如何查看已构建应用的安全数据洞见,请参阅构建应用并查看安全数据洞见。
Cloud Deploy 可按指定序列自动将应用交付到一系列目标环境。它支持直接向 Google Kubernetes Engine、GKE Enterprise 和 Cloud Run 进行持续交付,并提供一键式审批和回滚、企业级安全性和审核,以及内置的交付指标。此外,它还会显示已部署应用的安全数据洞见。
保护生产环境中的应用
Google Kubernetes Engine (GKE) 和 Cloud Run 可帮助确保运行时环境的安全状况。两者都具有安全功能,可在运行时保护您的应用。
GKE 可以评估您的容器安全状况,并针对集群设置、工作负载配置和漏洞提供主动指导。GKE 包含一个安全状况信息中心,可为您提供切实可行的针对性建议来提高您的安全状况。如需了解如何在 GKE 安全状况信息中心内查看安全数据分析,请参阅部署到 GKE 并查看安全数据分析。
Cloud Run 包含一个安全面板,用于显示软件供应链安全数据分析,例如 SLSA build 级别合规性信息、build 出处以及在运行的服务中发现的漏洞。如需了解如何在 Cloud Run 安全数据分析面板中查看安全数据分析,请参阅部署到 Cloud Run 并查看安全数据分析。
通过政策构建信任链
Binary Authorization 通过收集证明(用于为映像提供证明的数字文档)来帮助您在软件供应链中建立、维护和验证信任链。
证明可表明关联的映像是通过成功执行特定的必需进程来构建的。基于收集的这些证明,Binary Authorization 可帮助定义、验证和强制执行基于信任的政策。它可确保只有当证明符合组织的政策时才会部署映像。您可以配置 Binary Authorization,以便在发现任何政策违规行为时收到通知。
例如,证明可以表明映像是否:
- 由 Cloud Build 构建。
- 不包含高于指定严重程度的漏洞。 如果存在不适用于您的应用的特定漏洞,您可以将其添加到许可名单中。
您可以将 Binary Authorization 与 GKE 和 Cloud Run 搭配使用。
价格
每项 Google Cloud 服务都有自己的价格。如需了解详情,请参阅您感兴趣的服务的价格文档。
- Cloud Workstations
- Cloud Code:所有 Google Cloud 客户均可免费使用。
- Assured OSS:如需了解价格信息,请与销售团队联系。
- Artifact Registry
- Artifact Analysis
- Cloud Build
- Cloud Deploy
- Cloud Run
- GKE
- Binary Authorization
后续步骤
- 了解软件供应链面临的威胁。
- 评估您现有的安全状况,以便确定增强安全性的方法。
- 了解保护软件供应链的实践以及 Google Cloud 产品如何支持这些实践。