Skip to main content

排查机密扫描问题

如果在 secret scanning 方面遇到问题,可以使用以下提示来帮助解决问题。

谁可以使用此功能?

合作伙伴的机密扫描警报 在 GitHub.com 上的公共存储库和公共 npm 包中自动运行,以向服务提供商通知泄漏的机密情况。

公共存储库可免费使用用户的机密扫描警报。 使用 GitHub Enterprise Cloud 且拥有 GitHub Advanced Security 许可证的组织也可以在其专用存储库和内部存储库上启用 用户的机密扫描警报。 有关详细信息,请参阅 “关于机密扫描”和“关于 GitHub 高级安全性”。

有关如何使用 GitHub Advanced Security 免费试用 GitHub Enterprise 的信息,请参阅 GitHub Enterprise Cloud 文档中的“设置 GitHub Enterprise Cloud 试用版”和“安装 GitHub Advanced Security 试用版”。

模式对检测

Secret scanning 将仅检测模式对(例如 AWS 访问密钥和机密),前提是 ID 和机密位于同一文件中,并且两者都被推送到存储库。 对匹配有助于减少误报,因为对的两个元素(ID 和机密)必须一起使用才能访问提供商的资源。

推送到不同文件或未推送到同一存储库的对不会导致警报。 有关受支持模式对的详细信息,请参阅“机密扫描模式”中的表。

关于旧 GitHub 令牌

对于 GitHub 令牌,我们将检查机密的有效性,以确定机密是活动还是非活动的。 这意味着,对于旧令牌,secret scanning 不会检测 GitHub Enterprise Cloud 上的 GitHub Enterprise Server personal access token。 同样,不会在 GitHub Enterprise Server 上找到 GitHub Enterprise Cloud personal access token。

推送保护限制

如果推送保护未检测到你认为应该检测到的机密,你应首先检查推送保护是否支持受支持机密列表中的机密类型。 有关详细信息,请参阅“机密扫描模式”。

如果你的机密位于受支持的列表中,则推送保护可能无法检测到它的原因有多种。

  • 推送保护仅阻止最可识别的用户警报模式子集上的已泄漏机密。 当此类机密被阻止时,参与者可以信任安全防御,因为这些模式的误报数最少。
  • 机密的版本可能太旧。 推送保护可能不支持某些旧版令牌,因为这些令牌生成的误报数可能高于其最新版本。 推送保护也可能不适用于旧令牌。 对于 Azure 存储密钥等令牌,GitHub 仅支持“最近创建”令牌,不支持与旧模式匹配的令牌。
  • 例如,如果尝试推送数千个大文件,则推送可能过大。 如果推送过大,推送保护扫描可能会超时并且不会阻止用户。 GitHub 在推送后仍会根据需要扫描和创建警报。
  • 如果推送导致检测到五个以上新机密,我们将仅显示前五个机密(我们将始终一次向你显示最多五个机密)。
  • 如果推送包含 1,000 个以上现有机密(即已为其创建了警报的机密),则推送保护不会阻止推送。