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 服务。您可以将其中部分或全部组件集成到软件供应链中,以改善安全状况。
保护开发环境
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 中工件的漏洞。
- 针对容器中的基础容器映像和语言软件包的集成按需或自动扫描。
- 能够为 Artifact Registry 中的映像生成软件物料清单 (SBOM) 并上传漏洞可利用性交流 (VEX) 声明。
保护 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,以便在发现任何违规行为时通知您。
例如,证明可以表明映像:
- 由 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 产品如何支持这些做法。