软件供应链安全

Google Cloud 在 Google Cloud 产品中提供了一整套全面的模块化功能和工具,开发者、DevOps 团队和安全团队可以使用这些工具来改善软件供应链的安全状况。

软件供应链

软件供应链包括组织内外所有有助于开发和交付软件的代码、人员、系统和流程。It includes:

  • 您创建的代码及其依赖项,以及您用于开发、构建、打包、安装和运行软件的内部和外部软件。
  • 系统访问、测试、审核、监控和反馈、沟通和审批的流程和政策。
  • 您信任的系统,用于开发、构建、存储和运行您的软件及其依赖项。

鉴于软件供应链的广泛覆盖面和复杂性,有许多方法可以对您向用户提供的软件进行未经授权的更改。这些攻击途径贯穿整个软件生命周期。虽然有些攻击是针对性的(例如针对 SolarWinds 构建系统的攻击),但其他威胁是间接的,或者是通过流程缺陷或疏忽进入供应链的。

例如,Google 开源分析团队在 2021 年 12 月对 Apache Log4j 漏洞进行的评估发现,Maven Central 中超过 17,000 个软件包受到影响。其中大多数软件包并未直接依赖于存在漏洞的 log4j-core 软件包,但其依赖项需要该软件包。

开发实践和流程也会影响软件供应链。流程缺口(例如缺少代码审核或部署到生产环境的安全标准)可能会导致有害代码无意中进入供应链。同样,缺乏依赖项管理会增加您用于开发、构建或部署的外部源代码或软件包存在漏洞的风险。

保护 Google Cloud 上的软件供应链

Google Cloud 提供:

  • 产品和功能中融入了开发、构建、测试、部署和政策强制执行方面的安全最佳实践。
  • Google Cloud 控制台中的信息中心,可提供有关源代码、build、工件、部署和运行时的安全信息。这些信息包括 build 工件中的漏洞、build 出处以及 Software Bill of Materials (SBOM) 依赖项列表。
  • 使用软件工件的供应链级别 (SLSA) 框架标识软件供应链安全成熟度级别的信息。

下图显示了协同保护软件供应链的 Google Cloud 服务。您可以将其中部分或全部组件集成到软件供应链中,以改善安全状况。

Google Cloud 软件供应链组件

保护开发环境

Cloud Workstations 在 Google Cloud 上提供全代管式开发环境。IT 和安全管理员可以预配、扩缩、管理和保护其开发环境。开发者可以访问具有一致配置和可自定义工具的开发环境。

Cloud Workstations 通过增强应用开发环境的安全状况,实现了向左转移安全性。安全功能包括 VPC Service Controls、专用入站流量或出站流量、强制映像更新,以及 Identity and Access Management 访问权限政策。Cloud Workstations 与 Chrome Enterprise 进阶版搭配使用时,可提供额外的数据泄露防护功能。

保护软件供应

确保软件供应(构建工件和应用依赖项)安全是提高软件供应链安全性的关键一步。开源软件的广泛使用使得这一问题尤为棘手。

  • 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
    • 能够为容器化应用生成经过身份验证且不可伪造的构建来源
    • 针对构建的应用的安全数据分析。其中包括:

      • SLSA build 级别,用于根据 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 服务都有各自的价格。如需了解详情,请参阅您感兴趣的服务的价格文档。

后续步骤