模式对的检测
密钥扫描仅在 ID 和密钥位于同一文件中并且两者都推送到代码库时才会检测模式对,例如 AWS 访问密钥和密钥。由于必须将一对中的两个元素(ID 和密钥)一起使用才能访问提供商的资源,因此配对匹配有助于减少误报。
推送到不同文件或未推送到同一代码库的对不会导致警报。有关支持的模式对的更多信息,请参阅“支持的密钥扫描模式”中的表格。
关于旧版 GitHub 令牌
对于 GitHub 令牌,我们检查密钥的有效性以确定密钥是活动还是非活动状态。这意味着对于旧版令牌,密钥扫描不会在 GitHub Enterprise Cloud 上检测到 GitHub Enterprise Server 个人访问令牌。类似地,GitHub Enterprise Cloud 个人访问令牌不会在 GitHub Enterprise Server 上被找到。
推送保护限制
如果推送保护未检测到您认为应该检测到的密钥,则应首先检查推送保护是否在支持的密钥列表中支持密钥类型。有关更多信息,请参阅“支持的密钥扫描模式”。
如果您的密钥在支持的列表中,则推送保护可能无法检测到它的原因有很多。
- 推送保护仅阻止最容易识别的用户警报模式子集上的泄露密钥。当此类密钥被阻止时,贡献者可以信任安全防御,因为这些模式的误报率最低。
- 您的密钥版本可能很旧。某些令牌的旧版本可能不受推送保护的支持,因为这些令牌产生的误报可能比其最新版本多。推送保护也可能不适用于旧版令牌。对于 Azure 存储密钥等令牌,GitHub 仅支持最近创建的令牌,而不支持与旧版模式匹配的令牌。
- 推送可能太大,例如,如果您尝试推送数千个大型文件。如果推送太大,推送保护扫描可能会超时并且不会阻止用户。如果需要,GitHub 仍将在推送后扫描并创建警报。
- 如果推送导致检测到超过五个新密钥,我们只会向您显示前五个(我们始终只会一次显示最多五个密钥)。
- 如果推送包含超过 1000 个现有密钥(即已为其创建警报的密钥),推送保护将不会阻止推送。