当 API 密钥和密码等凭证以硬编码的机密形式提交到仓库时,它们会成为未授权访问的目标。机密扫描会自动检测凭证泄漏,帮助您在被利用之前进行保护。
提示
随时,您都可以对组织的代码进行免费评估,以检测泄漏的机密。
要生成报告,请打开组织的 安全与质量标签页,显示 评估页面,然后点击扫描您的组织。
机密扫描如何保护您的代码
机密扫描会在仓库的所有分支上扫描整个 Git 历史,以查找硬编码凭证,包括 API 密钥、密码、令牌以及其他已知的机密类型。这帮助您在机密蔓延——凭证在仓库中失控扩散——成为安全风险之前进行识别。GitHub 也会在新增机密类型时定期重新扫描仓库。
GitHub 也会自动扫描
- 议题中的描述和评论
- 开放和已关闭的历史议题中的标题、描述和评论
- 拉取请求中的标题、描述和评论
- GitHub 讨论中的标题、描述和评论
- Wiki
- 私密 gist
机密扫描警报与补救
当机密扫描检测到凭证泄漏时,GitHub 会在您仓库的 安全与质量标签页生成一条警报,提供有关暴露凭证的详细信息。
收到警报后,请立即轮换受影响的凭证,以防止未授权访问。虽然您也可以从 Git 历史中移除机密,但这需要耗费大量时间,且如果您已经撤销了凭证,通常没有必要这样做。
合作伙伴集成
GitHub 与众多服务提供商合作,对检测到的机密进行验证。当检测到合作伙伴机密时,我们会通知相应提供商,以便其采取行动,例如撤销凭证。合作伙伴机密直接报告给提供商,不会显示在您的仓库警报中。欲了解更多信息,请参阅机密扫描合作伙伴计划。
可定制性
除了默认检测合作伙伴和提供商的机密外,您还可以扩展和自定义机密扫描,以满足您的需求。
-
非提供商模式。 将检测范围扩展到不绑定特定服务提供商的机密,例如私钥、连接字符串以及通用 API 密钥。
-
自定义模式。 定义您自己的正则表达式,以检测默认模式未覆盖的组织特定机密。
-
有效性检查。 通过检查检测到的机密是否仍然有效来优先进行补救。
-
Copilot 机密扫描。 使用 AI 检测密码等非结构化机密,或生成自定义模式的正则表达式。
关于有效性检查
有效性检查通过验证检测到的机密是否仍然有效,帮助您确定应优先补救哪些机密。启用有效性检查后,机密扫描可能会联系机密的签发服务,以确定凭证是否已被撤销。
有效性检查独立于机密扫描的合作伙伴计划。合作伙伴机密会自动报告给服务提供商以进行撤销,而有效性检查则在您自己的警报中验证机密的状态。欲了解更多信息,请参阅关于有效性检查。
我如何访问此功能?
以下仓库类型支持机密扫描
- 公共仓库: 机密扫描免费自动运行。
- 组织拥有的私有和内部仓库: 在 GitHub Team 或 GitHub Enterprise Cloud 上启用 GitHub Secret Protection 后可用。
- 用户拥有的仓库: 在启用了企业托管用户的 GitHub Enterprise Cloud 上可用。当企业在 GitHub Enterprise Server 上启用了 GitHub Secret Protection 时也可用。
后续步骤
- 如果您已收到警报,请参阅管理机密扫描警报,了解如何查看、解决和补救暴露的机密。
- 如果您正在保护组织,请参阅为您的组织运行机密风险评估,以确定组织对泄漏机密的暴露程度。
延伸阅读
- 欲获取受支持机密和服务提供商的完整列表,请参阅受支持的机密扫描模式。