实现提前加强安全性

Last reviewed 2025-02-05 UTC

Google Cloud 架构完善框架的安全支柱中的这一原则可帮助您确定可在软件开发生命周期早期实施的实用控制措施,以改善安全状况。它会提供一些建议,有助于您实施预防性安全保障措施和部署后安全控制措施。

原则概览

安全左移是指在软件开发生命周期的早期阶段就采用安全实践。此原则旨在实现以下目标:

  • 在进行系统更改之前避免出现安全缺陷。实施预防性安全措施,并采用基础架构即代码 (IaC)、政策即代码和 CI/CD 流水线中的安全检查等实践。 您还可以在 Google Cloud中使用其他平台专属功能,例如组织政策服务强化型 GKE 集群
  • 在提交任何系统更改后,尽早、快速且可靠地检测并修复安全 bug。采用代码审核、部署后漏洞扫描和安全测试等实践。

实现设计中的安全性和“提前确保安全性”原则相关,但范围不同。安全性设计原则有助于您避免需要重新设计整个系统的基本设计缺陷。例如,威胁建模练习显示,当前设计不包含授权政策,如果没有授权政策,所有用户将具有相同的访问权限级别。左移安全性有助于您在应用更改之前避免实现缺陷(bug 和配置错误),并能在部署后快速可靠地修复问题。

建议

如需为云工作负载实施左移安全原则,请考虑以下各部分中的建议:

采用预防性安全控制措施

此建议与以下重点领域相关:

  • 身份和访问权限管理
  • 云治理、风险与合规性

预防性安全控制对于在云端保持强大的安全态势至关重要。这些控制措施可帮助您主动降低风险。您可以防止错误配置和未经授权的资源访问,使开发者能够高效工作,并有助于确保符合行业标准和内部政策。

如果使用基础架构即代码 (IaC) 来实现预防性安全控制措施,效果会更佳。借助 IaC,预防性安全控制措施可以在部署更改之前对基础设施代码进行更自定义的检查。与自动化功能结合使用时,预防性安全控制措施可以作为 CI/CD 流水线自动检查的一部分运行。

以下产品和 Google Cloud 功能可帮助您在环境中实施预防性控制措施:

借助 IAM,您可以根据权限授权哪些人可以对特定资源执行操作。如需了解详情,请参阅使用 IAM 对组织资源进行访问权限控制

组织政策服务可让您设置对资源的限制,以指定资源的配置方式。例如,您可以使用组织政策执行以下操作:

除了使用组织政策之外,您还可以使用以下方法限制对资源的访问:

  • 使用 IAM 的标记:为一组资源分配一个标记,然后为该标记本身设置访问权限定义,而不是为每个资源定义访问权限。
  • IAM Conditions:为资源定义基于属性的条件访问权限控制。
  • 深度防御:使用 VPC Service Controls 进一步限制对资源的访问。

如需详细了解资源管理,请参阅确定 Google Cloud 着陆区的资源层次结构

自动预配和管理云资源

此建议与以下重点领域相关:

  • 应用安全
  • 云治理、风险与合规性

如果您还采用声明式 IaC(而非命令式脚本),则可以更有效地自动预配和管理云资源及工作负载。IaC 本身并不是一种安全工具或实践,但有助于提高平台的安全性。采用 IaC 可让您创建可重复的基础设施,并为运营团队提供已知良好状态。Iac 还可以提高回滚、审核更改和问题排查的效率。

与 CI/CD 流水线和自动化相结合时,Iac 还使您能够通过 OPA 等工具采用政策即代码等实践。您可以随时审核基础架构变更,并在部署变更之前对基础架构代码运行自动检查。

如需自动部署基础架构,您可以使用 Config Controller、Terraform、Jenkins 和 Cloud Build 等工具。为了帮助您使用 IaC 和自动化功能构建安全的应用环境,Google Cloud 提供了企业基础蓝图。此蓝图是 Google 的专业设计,遵循了我们所有的推荐实践和配置。该蓝图提供了分步说明,指导您使用 Terraform 和 Cloud Build 配置和部署 Google Cloud 拓扑。

您可以修改企业基础蓝图的脚本,以配置符合 Google 建议并满足您自身安全要求的环境。您可以基于该蓝图和其他蓝图构建自动化功能,也可以设计自己的自动化功能。Google Cloud 架构中心提供了其他可在企业基础蓝图之上实现的蓝图。以下是这些蓝图的一些示例:

自动发布安全应用

此建议与以下重点领域相关:应用安全。

如果没有自动化工具,可能很难在部署、更新和修补复杂的应用环境时,确保满足一致的安全要求。我们建议您为软件开发生命周期 (SDLC) 构建自动化的 CI/CD 流水线。借助自动化 CI/CD 流水线,您可以消除手动错误、提供标准化开发反馈环并实现高效的产品迭代。持续交付是 DORA 框架建议的最佳实践之一。

使用 CI/CD 流水线自动发布应用有助于提高您尽早、快速、可靠地检测和修复安全 bug 的能力。例如,您可以在创建制品时自动扫描安全漏洞,缩小安全审核范围,并回滚到已知且安全的版本。您还可以为不同的环境(例如开发、测试或生产环境)定义相应的政策,以便仅部署经过验证的制品。

为帮助您自动执行应用发布流程并在 CI/CD 流水线中嵌入安全检查, Google Cloud 提供了多种工具,包括 Cloud BuildCloud DeployWeb Security ScannerBinary Authorization

如需建立一个可在 SDLC 中验证多项安全要求的流程,请使用 Google 定义的软件制品的供应链等级 (SLSA) 框架。SLSA 要求对源代码、构建流程和代码出处进行安全检查。许多此类要求都可以纳入自动化 CI/CD 流水线中。如需了解 Google 如何在内部应用这些实践,请参阅 Google Cloud的变革方法

确保应用部署遵循批准的流程

此建议与以下重点领域相关:应用安全。

如果攻击者破解了 CI/CD 流水线,则整个应用堆栈可能会受到影响。为了帮助保护流水线,您应在将代码部署到生产环境之前实施已确定的批准流程。

如果您使用 Google Kubernetes Engine (GKE)、GKE Enterprise 或 Cloud Run,则可以使用 Binary Authorization 来建立审批流程。Binary Authorization 会将可配置的签名关联到容器映像。这些签名(也称为证明)可用来验证关联的映像。在部署时,Binary Authorization 会使用这些证明来确定是否已完成相应流程。例如,您可以使用 Binary Authorization 执行以下操作:

  • 验证特定构建系统或 CI 流水线是否已创建容器映像。
  • 验证容器映像是否符合漏洞签名政策。
  • 验证容器映像是否将提升标准传递到下一个部署环境,例如从开发环境到质量检查环境。

通过使用 Binary Authorization,您可以强制规定只有受信任的代码才能在目标平台上运行。

在部署应用之前扫描已知漏洞

此建议与以下重点领域相关:应用安全。

建议您在应用制品部署到生产环境之前使用自动化工具,以便持续对应用制品执行漏洞扫描。

对于容器化应用,请使用 Artifact Analysis 自动运行容器映像的漏洞扫描。Artifact Analysis 会在新映像上传到 Artifact Registry 时扫描这些映像。此扫描可提取有关容器中系统软件包的信息。初始扫描后,Artifact Analysis 会持续监控 Artifact Registry 中所扫描映像的元数据以查找新漏洞。当 Artifact Analysis 从漏洞来源收到新的和更新后的漏洞信息时,它会执行以下操作:

  • 更新已扫描映像的元数据,使其保持最新。
  • 为新的版本说明创建新的漏洞发生实例。
  • 删除不再有效的漏洞发生实例。

监控应用代码是否存在已知漏洞

此建议与以下重点领域相关:应用安全。

使用自动化工具持续监控应用代码是否存在已知漏洞(例如 OWASP 十大风险)。如需详细了解支持 OWASP 十大风险缓解技术的 Google Cloud 产品和功能,请参阅 Google Cloud上的 OWASP 十大风险缓解选项

使用 Web Security Scanner 可帮助识别 App Engine、Compute Engine 和 GKE Web 应用中的安全漏洞。此扫描程序会抓取您的应用,跟踪起始网址范围内的所有链接,并尝试执行尽可能多的用户输入和事件处理脚本。它可自动扫描和检测常见漏洞,包括跨站脚本攻击代码注入混合内容以及过时或不安全的库。Web Security Scanner 可让您尽早识别这些类型的漏洞,而不会因出现误报而让您分心。

此外,如果您使用 GKE Enterprise 管理 Kubernetes 集群舰队,安全状况信息中心会显示切实可行的建议,以帮助改善舰队的安全状况。