将 API 密钥和密码等凭据作为硬编码机密提交到存储库时,它们将成为未经授权的访问的目标。 Secret scanning 自动检测凭据泄漏,以便可以在它们被利用之前对其进行保护。
提示
随时可以针对泄露的机密运行对组织代码的免费评估。
若要生成报表,请打开 在你所在组织的 Security and quality 选项卡中,显示“评估”页面,然后单击“扫描你的组织”****。
密钥扫描如何保护您的代码
Secret scanning 在存储库的所有分支上扫描整个 Git 历史记录,以获取硬编码凭据,包括 API 密钥、密码、令牌和其他已知机密类型。 这有助于在出现安全风险之前识别机密蔓延、存储库中凭据不受控制的激增。
GitHub 还会在添加新的机密类型时定期重新扫描存储库。
GitHub 还会自动扫描:
- 问题中的说明和注释
- 标题、描述和评论,在开放和关闭的_历史_问题中
- 拉取请求中的标题、描述和评论
- 标题、描述和评论中的 GitHub Discussions
- 维基
- 私密代码片段
Secret scanning 警报和修正
检测到凭据泄漏时 secret scanning , GitHub 会在存储库的 Security and quality 选项卡上生成警报,其中包含有关公开凭据的详细信息。
收到警报时,立即轮换受影响的凭据以防止未经授权的访问。 虽然还可以从 Git 历史记录中删除机密,但如果你已经撤销了凭据,这很耗时,而且通常不必要。
合作伙伴整合
GitHub 与各种服务提供商合作,以验证检测到的机密。 当检测到合作伙伴机密时,我们会通知服务提供商,让他们采取行动,例如撤销凭据。 合作伙伴机密将直接报告给提供程序,不会显示在存储库警报中。 有关详细信息,请参阅“[AUTOTITLE](/code-security/secret-scanning/secret-scanning-partnership-program/secret-scanning-partner-program)”。
可自定义性
除了默认检测合作伙伴和提供商机密之外,还可以扩展和自定义 secret scanning 以满足你的需求。
-
**非供应者模式。** 将检测扩展到未绑定到特定服务提供商的机密,例如私钥、连接字符串和通用 API 密钥。 -
**自定义模式。** 定义自己的正则表达式,以检测默认模式未涵盖的组织特定机密。 -
**有效性检查。** 通过检查检测到的机密是否仍然处于活动状态来确定修正的优先级。 -
** Copilot 机密扫描.** 使用 AI 检测非结构化机密(如密码)或为自定义模式生成正则表达式。
关于有效性检查
有效性检查通过验证检测到的机密是否仍然处于活动状态,帮助确定要首先修正的机密的优先级。 启用有效性检查时,secret scanning 可以联系密钥发行服务,以确定凭据是否已吊销。
有效性检查是独立于secret scanning合作伙伴计划的。 虽然合作伙伴机密会自动报告给服务提供商进行吊销,但有效性检查会验证你在自己的警报中管理的机密的状态。 有关详细信息,请参阅“关于有效性检查”。
如何访问此功能?
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) 来确定组织的机密泄露情况。
延伸阅读
- 有关支持的机密和服务提供商的完整列表,请参阅 支持的机密扫描模式。