检测模式对
机密扫描仅在同一文件中找到 ID 和机密并且两者同时被推送到仓库时,才会检测模式对,例如 AWS 访问密钥和密钥。配对匹配有助于降低误报,因为配对的两个元素(ID 和机密)必须一起使用才能访问提供商的资源。
如果配对的文件被分别推送到不同的文件或不同的仓库,则不会触发警报。有关受支持的模式对的更多信息,请参见 Supported secret scanning patterns 中的表格。
关于旧版 GitHub 令牌
对于 GitHub 令牌,我们会检查机密的有效性以确定其是激活还是未激活。这意味着对于旧版令牌,机密扫描不会在 GitHub Enterprise Cloud 上检测到 GitHub Enterprise Server 的个人访问令牌。同样,GitHub Enterprise Cloud 的个人访问令牌也不会在 GitHub Enterprise Server 上被发现。
推送保护限制
如果推送保护未检测到您认为应该检测到的机密,首先应检查该机密类型是否在受支持的机密列表中得到推送保护的支持。有关更多信息,请参见 Supported secret scanning patterns。
即使您的机密在受支持列表中,仍可能由于多种原因导致推送保护未检测到它。
- 推送保护仅针对一小部分最易识别且已提醒用户的模式阻止泄漏的机密。当此类机密被阻止时,贡献者可以信任安全防御,因为这些模式的误报率最低。
- 您的机密版本可能较旧。某些令牌的旧版本可能不受推送保护支持,因为这些令牌可能比最新版本产生更多误报。推送保护也可能不适用于旧版令牌。对于 Azure 存储密钥等令牌,GitHub 只支持最近创建的令牌,而不支持匹配旧版模式的令牌。
- 推送可能过大,例如您试图一次推送数千个大文件。若推送过大,推送保护扫描可能会超时,导致不阻止用户。推送完成后,GitHub 仍会进行扫描并在需要时创建警报。
- 如果一次推送检测出超过五个新机密,我们只会显示前五个(我们始终一次最多显示五个机密)。
- 如果一次推送包含超过 1,000 个已存在的机密(即已创建警报的机密),推送保护将不会阻止该推送。
- 如果公共仓库的推送超过 50 MB,推送保护将跳过并且不进行扫描。
- 如果您看到绕过请求但没有提交或文件路径细节,表示推送保护已超时。该推送过大或历史过于复杂,导致无法定位引入机密的提交。