本文档主要介绍有助于在软件供应链的各个流程和系统中保护软件的最佳实践。其中还介绍了如何在 Google Cloud 上实现某些做法。
在保护软件方面,还有一些跨软件生命周期的注意事项,或者是支持软件供应链安全的基础开发实践。例如:
- 控制对系统的物理访问和远程访问。
- 实现审核、监控和反馈机制,以便您能够快速识别和应对威胁以及违反政策的情况。
- 基础编码实践,包括设计、输入验证、输出到不可信系统、数据处理、代码分析和加密。
- 本文档中未提及的基础 DevOps 实践,包括技术方法、团队流程和组织文化。
遵守软件许可条款,包括直接依赖项和传递依赖项的开源许可。
某些开源许可具有限制性的许可条款,这对商业软件来说会造成问题。具体而言,某些许可要求您以与要重复使用的开源软件相同的许可发布源代码。如果您想将源代码设为私有,请务必了解您所用开源软件的许可条款。
通过为员工提供培训,提高对网络安全的认识。 根据对信息安全专业人士进行的调查,2021 年网络安全状况报告第 2 部分显示,社会工程学是最常见的攻击类型。受访者还表示,网络安全培训和宣传活动对员工的安全意识有一定积极影响(46%)或显著积极影响(32%)。
请参阅以下部分中的资源,详细了解这些主题。
Google Cloud 上的安全性
如需了解如何设置组织结构、身份验证和授权、资源层次结构、网络、日志记录、检测控制措施等,请参阅 Google Cloud 安全最佳实践中心中的指南之一,即 Google Cloud 企业基础蓝图。
您可以使用以下 Google Cloud 服务集中查看有关漏洞和可能风险的信息:
- 使用 Security Command Center 查看 Google Cloud 组织中的漏洞和威胁相关信息。
- 使用 Recommender 获取有关服务使用情况的信息,包括有助于您降低风险的建议。例如,您可以识别拥有过多权限的 IAM 正文或无人看管的 Google Cloud 项目。
如需详细了解 Google Cloud 的安全性,请参阅 Google Cloud 网站的“安全”部分。
DevOps 和软件开发实践
请参阅 DevOps 功能文档,详细了解有助于更快地交付更可靠、更安全的软件的 DevOps 实践。
此外,还有适用于所有编程语言的设计、开发和测试代码的基础做法。您还需要评估自己分发软件的方式,以及所有依赖项中的软件许可条款。Linux 基金会提供以下主题的免费在线培训:
- 开发安全软件:软件供应链安全背景下的软件开发基础实践。本课程重点介绍了设计、开发和测试代码的最佳实践,但也涵盖了处理漏洞披露、保证用例以及软件分发和部署注意事项等主题。 Open Source Security Foundation (OpenSSF) 制作了此培训。
- 面向开发者的开源许可基础知识 了解开放源代码项目的许可和版权。
- 开源许可合规性管理简介 了解如何为贵组织构建开源合规性计划。
制定政策
在逐步实现最佳实践的过程中,请记录贵组织的政策,并将政策验证纳入开发、构建和部署流程。例如,您的公司政策可能包含您使用 Binary Authorization 实现的部署条件。
- 最简可行安全产品:用于建立产品安全基准状态的控制措施安全核对清单。您可以使用此核对清单来确定最低安全控制要求,并评估第三方供应商的软件。
- NIST 适用于信息系统和组织的安全和隐私控制出版物 (SP 800-53)。