将 API 密钥和密码等凭据提交到存储库时,它们将成为未经授权的访问的目标。 Secret scanning 会自动检测这些暴露的机密,以便你在其被利用前加以保护。
提示
随时可以针对泄露的机密运行对组织代码的免费评估。
要生成报告,请打开 在组织的“ Security”选项卡中,显示“ Assessments”页面,然后��击“Scan your organization”************。
密钥扫描如何保护您的代码
Secret scanning 会扫描存储库所有分支上的完整 Git 历史记录,查找 API 密钥、密码、令牌和其他已知机密类型。 当添加新的机密类型时,GitHub 还会定期重新扫描存储库。
GitHub 也会自动扫描:
- 问题中的说明和注释
- 标题、描述和评论,在开放和关闭的_历史_问题中
- 拉取请求中的标题、描述和评论
- GitHub Discussions 中的标题、说明和评论
- Wiki
- 私密代码片段
Secret scanning 警报与修复
当 secret scanning 发现潜在机密时,GitHub 会在存储库的“安全”**** 选项卡上生成警报,并提供有关暴露凭据的详细信息。
查看警报并立即轮换受影响的凭据,以确保不再使用它。 虽然还可以从 Git 历史记录中删除机密,但如果你已经撤销了凭据,这很耗时,而且通常不必要。
合作伙伴整合
GitHub 与众多服务提供商合作,以验证检测到的机密。 当检测到合作伙伴机密时,我们会通知服务提供商,让他们采取行动,例如撤销凭据。 合作伙伴机密将直接报告给提供程序,不会显示在存储库警报中。 有关详细信息,请参阅“密码扫描合作伙伴计划”。
可自定义性
除了默认检测合作伙伴和提供商的机密外,你还可以扩展和自定义 secret scanning 以满足自身需求。
-
**非供应者模式。** 将检测扩展到未绑定到特定服务提供商的机密,例如私钥、连接字符串和通用 API 密钥。 -
**自定义模式。** 定义自己的正则表达式,以检测默认模式未涵盖的组织特定机密。 -
**有效性检查。** 通过检查检测到的机密是否仍然处于活动状态来确定修正的优先级。 -
**Copilot 机密扫描。** 使用 AI 检测非结构化机密(如密码)或为自定义模式生成正则表达式。
如何访问此功能?
Secret scanning 可用于以下存储库类型:
-
**公共存储库**:Secret scanning 自动且免费地运行。 -
**组织拥有的私有和内部存储库**:在 GitHub Team 或 GitHub Enterprise Cloud 上启用 [GitHub Secret Protection](/get-started/learning-about-github/about-github-advanced-security) 后可用。 -
**用户拥有的存储库**:在 GitHub Enterprise Cloud 上可用,配合 Enterprise Managed Users。 当企业启用了 [GitHub Secret Protection](/get-started/learning-about-github/about-github-advanced-security) 时,可在 GitHub Enterprise Server 上使用。
后续步骤
-
**如果收到警报**,请参阅 [AUTOTITLE](/code-security/secret-scanning/managing-alerts-from-secret-scanning) ,了解如何查看、解决和修正公开的机密。 -
**如果要保护组织**,请参阅 [AUTOTITLE](/code-security/how-tos/secure-at-scale/configure-organization-security/configure-specific-tools/assess-your-secret-risk) 来确定组织的机密泄露情况。
延伸阅读
- 有关支持的机密和服务提供商的完整列表,请参阅 支持的机密扫描模式。