关于警报类型
有三种类型的 机密扫描警报:
- 用户警报:在存储库中检测到支持的机密时,在存储库的安全选项卡中向用户报告。
- 推送保护警报:当参与者绕过推送保护时,在存储库的安全选项卡中向用户报告。
- 合作伙伴警报:直接向属于 secret scanning 合作伙伴计划的机密提供方报告。 这些警报不会在存储库的安全选项卡中报告。
关于 用户警报
在为存储库启用 secret scanning 或将提交推送到启用了 secret scanning 的存储库时,GitHub 会扫描内容,以查找与服务提供商定义的模式匹配的机密。
当 secret scanning 检测到机密时,GitHub 将生成警报。GitHub 在存储库的“安全性”选项卡中显示警报。
为了帮助你更有效地对警报进行会审,GitHub 将警报分为两个列表:
- 默认警报****
- 通用警报****
默认警报列表
默认警报列表显示与支持的模式和指定的自定义模式相关的警报。 这是警报的主要视图。
通用警报列表
通用警报列表显示与非提供程序模式(如私钥)相关的警报,或者使用 AI 检测到的通用机密(如密码)。 这些类型的警报可以具有较高的测试中使用的误报或机密比率。 可以从默认警报列表切换到通用警报列表。
GitHub 将继续向 generic 警报列表发布新的模式和机密类型,并在功能完成时(即当它们的数量和误报率适当低时)将其提升到默认列表。
此外,属于此类别的警报:
- 每个存储库的警报数量(包括打开和关闭的警报)最多限制为 5000 个。
- 不显示在安全概览的摘要视图中,仅在“Secret scanning”视图中显示。
- 对于非提供程序模式 ,仅在 GitHub 上显示前五个检测到的位置,对于 AI 检测到的通用机密 ,仅显示第一个检测到的位置。
若要让 GitHub 扫描非提供程序模式 和通用机密 ,必须为存储库或组织启用 。 有关详细信息,请参阅 为非提供程序模式启用机密扫描 和 启用 Copilot 机密扫描的通用机密检测。
如果访问资源需要配对的凭据,则只有在同一文件中检测到该配对的两个凭据时,机密扫描才会创建警报。 这可确保最关键的泄漏不会隐藏在有关部分泄漏的信息后面。 对匹配还有助于减少误报,因为对的两个元素必须一起使用才能访问提供商的资源。
关于推送保护警报
推送保护会对包含受支持机密的推送操作进行扫描。 如果推送保护检测到受支持的机密,将会阻止该次推送。 当贡献者绕过推送保护,将机密推送到存储库时,会生成一条推送保护警报,并显示在该存储库的“安全性”选项卡中。 若要查看某个存储库的所有推送保护警报,必须在警报页面中按 bypassed: true 进行筛选。 有关详细信息,请参阅“查看和筛选来自机密扫描的警报”。
如果访问资源需要配对的凭据,则只有在同一文件中检测到该配对的两个凭据时,机密扫描才会创建警报。 这可确保最关键的泄漏不会隐藏在有关部分泄漏的信息后面。 对匹配还有助于减少误报,因为对的两个元素必须一起使用才能访问提供商的资源。
注意
你还可以为个人帐户启用推送保护(称为“面向用户的推送保护”),以防止你无意中将受支持的机密推送到_任何_公共存储库。 如果你仅选择绕过基于用户的推送保护,则_不会_创建警报。 只有在存储库本身启用了推送保护的情况下,才会创建警报。 有关详细信息,请参阅“管理用户的推送通知保护”。
推送保护可能不支持某些旧版令牌,因为这些令牌生成的误报数可能高于其最新版本。 推送保护也可能不适用于旧令牌。 对于 Azure 存储密钥等令牌,GitHub 仅支持“最近创建”令牌,不支持与旧模式匹配的令牌。 有关推送保护限制的详细信息,请参阅 机密扫描检测范围。
关于合作伙伴警报
当 GitHub 在公共存储库或 npm 包中检测到泄露的机密时,如果机密提供方属于 GitHub 的机密扫描合作伙伴计划,则会直接向该机密提供方发送警报。 有关 合作伙伴的机密扫描警报 的详细信息,请参阅 密码扫描合作伙伴计划 和 支持的机密扫描模式。
合作伙伴警报不会发送给存储库管理员,因此你无需对此类警报采取任何操作。
延伸阅读
-
[AUTOTITLE](/code-security/reference/secret-security/supported-secret-scanning-patterns) -
[AUTOTITLE](/code-security/how-tos/secure-your-secrets/detect-secret-leaks/enabling-secret-scanning-for-non-provider-patterns)