软件供应链安全

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 协同工作以保护软件供应链的服务。您可以将这些组件中的部分或全部集成到软件供应链中,以提升安全状况。

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 中工件的漏洞。

保护 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,以便在发现任何政策违规行为时收到通知。

例如,证明可以表明映像是否:

您可以将 Binary Authorization 与 GKE 和 Cloud Run 搭配使用。

价格

每项 Google Cloud 服务都有自己的价格。如需了解详情,请参阅您感兴趣的服务的价格文档。

后续步骤