Skip to main content
Skip to content

秘密扫描

通过在利用机密之前自动检测公开的凭据,防止机密的欺诈性使用。

将 API 密钥和密码等凭据作为硬编码机密提交到存储库时,它们将成为未经授权的访问的目标。 Secret scanning 自动检测凭据泄漏,以便可以在它们被利用之前对其进行保护。

提示

随时可以针对泄露的机密运行对组织代码的免费评估。

若要生成报表,请打开 在你所在组织的 Security and quality 选项卡中,显示“评估”页面,然后单击“扫描你的组织”****。

密钥扫描如何保护您的代码

Secret scanning 在存储库的所有分支上扫描整个 Git 历史记录,以获取硬编码凭据,包括 API 密钥、密码、令牌和其他已知机密类型。 这有助于在出现安全风险之前识别机密蔓延、存储库中凭据不受控制的激增。 GitHub 还会在添加新的机密类型时定期重新扫描存储库。

GitHub 还会自动扫描:

  • 问题中的说明和注释
  • 待解决和已关闭_历史_问题中的标题、说明和注释。
  • 拉取请求中的标题、描述和评论
  • 在 GitHub Discussions 中的标题、说明和注释
  • Wikis
  • 机密 Gist

在GitHub Actions工作流日志中检测到机密

注意

在工作流日志中检测机密 GitHub Actions 处于 公开预览 阶段,可能会发生变化。

GitHub Actions 默认情况下禁用工作流日志扫描。 企业所有者可以为其企业中的所有存储库启用它。 有关详细信息,请参阅“强制实施企业的代码安全性和分析策略”。

启用后,对于已启用 secret scanning 的存储库,GitHub 会在每次新的工作流运行完成后扫描其日志。 过去的工作流运行日志不会被扫描。

对于 GitHub Actions 工作流日志, secret scanning 仅检测提供程序模式。 它不会检测日志中的通用模式、自定义模式、AI 检测到的机密 或日志中被 GitHub Actions 掩码的值。

GitHub Actions 工作流日志中的机密警报不会在 公开预览 期间生成通知。 若要查看这些警报,请检查存储库的 secret scanning 警报。

如果多个工作流运行或作业中出现相同的机密,单个警报可能会引用多个位置。 对于每个位置,警报链接到机密的来源工作流文件,以及打印出机密的日志行。 警报不包括日志内容的内联预览。

Secret scanning 警报和修正

检测到凭据泄漏时 secret scanning , GitHub 会在存储库的 Security and quality 选项卡上生成警报,其中包含有关公开凭据的详细信息。

收到警报时,立即轮换受影响的凭据以防止未经授权的访问。 虽然还可以从 Git 历史记录中删除机密,但如果你已经撤销了凭据,这很耗时,而且通常不必要。

合作伙伴整合

GitHub 与各种服务提供商合作,以验证检测到的机密。 当检测到合作伙伴机密时,我们会通知服务提供商,让他们采取行动,例如撤销凭据。 合作伙伴机密将直接报告给提供程序,不会显示在存储库警报中。 有关详细信息,请参阅“密码扫描合作伙伴计划”。

可自定义性

除了默认检测合作伙伴和提供商机密之外,还可以扩展和自定义 secret scanning 以满足你的需求。

  • 泛型模式。 将检测扩展到未绑定到特定服务提供商的机密,例如私钥、连接字符串和通用 API 密钥。

  • 自定义模式。 定义自己的正则表达式,以检测默认模式未涵盖的组织特定机密。

  • 有效性检查。 通过检查检测到的机密是否仍然处于活动状态来确定修正的优先级。

  • AI 检测到的机密。 使用 AI 检测非结构化机密(如密码)。

  • AI 生成的正则表达式。 使用 AI 为自定义模式生成正则表达式。

关于有效性检查

有效性检查通过验证检测到的机密是否仍然处于活动状态,帮助确定要首先修正的机密的优先级。 启用有效性检查时,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 时,可在 GitHub Enterprise Server 上使用。

公众监督

除了扫描企业拥有的存储库之外,还可以启用公共监视,以检测企业成员在公共存储库 GitHub中泄露的机密。 这会将 secret scanning 的范围从贵企业拥有的仓库扩展到整个平台,以跟踪贵企业成员的活动。 请参阅“机密扫描的公开监控”。