什么是 GitHub 高级安全?
GitHub 具有许多功能,可帮助你提高和维护代码的质量。 其中一些功能包含在所有计划中,例如依赖项关系图和 Dependabot 警报。 其他人仅在公共存储库上以有限的功能模式运行。 还有其他一些需要 GitHub 高级安全许可证才能在私有仓库上运行。
在本单元中,你将详细了解 GitHub 高级安全性,并发现具有 GitHub 高级安全性的项目的外观。
GitHub 高级安全功能
下表总结了公共和专用存储库上 GitHub 高级安全功能的可用性。
| 功能 | 公共存储库 | 没有高级安全性的专用存储库 | 具有高级安全性的专用存储库 |
|---|---|---|---|
| 代码扫描 | 是的 | 否 | 是的 |
| 机密扫描 | 是(仅限有限功能) | 否 | 是的 |
| 依赖项检查 | 是的 | 否 | 是的 |
| 安全概览 | 否 | 否 | 是的 |
如上表所述,除安全概述之外的所有 GitHub 高级安全功能默认为 GitHub.com 上的所有公共存储库启用。 若要在专用存储库和内部存储库上访问这些功能,需要具有 GitHub 高级安全许可证的 GitHub 企业帐户。
GitHub 高级安全许可证为专用存储库和内部存储库提供这些功能:
- 代码扫描:自动检测常见漏洞和编码错误。
- 机密扫描:在签入机密或密钥时接收警报,从扫描中排除文件,并定义多达 100 种自定义模式。
- 依赖项评审:显示依赖项更改的全部效果,并在合并拉取请求之前查看任何易受攻击版本的详细信息。
- 安全概述:查看组织的安全配置和警报,并识别存在最大风险的存储库。
软件开发生命周期中的 GitHub 高级安全性
那么,GitHub 高级安全功能在软件开发生命周期中有什么区别? 让我们先了解一个基本安全方案。
此示例说明了一种传统的 安全门控 方法,其中单个安全测试或一系列安全测试是在质量保证阶段进行的。 在这种情况下,安全性最终成为交付软件的瓶颈。 这种情况是您的公司希望通过将安全措施前移来解决的。
现在,让我们看一下 GitHub Advanced Security 的相同软件开发生命周期。
项目配置阶段通过安全策略从一开始就设置安全性。 开发人员在开发过程的每个步骤中都会收到潜在安全问题的警报:
- 代码扫描:每次提交和合并时扫描潜在的漏洞和编码错误。
- 密码扫描:每次提交和合并时扫描意外提交的令牌和私钥。
- 依赖项评审:跟踪项目依赖项更改及其对项目安全性的影响。 它将存储库清单文件与每个拉取请求中已知漏洞的数据库进行比较。
此外, 安全概述 为管理员提供了项目安全状态的高级视图。 此视图允许管理员识别需要干预的有问题的存储库。
在进入质量保证阶段之前,会多次查看代码的安全性,因此在发货前出现瓶颈的可能性较小,技术债务更少。