Skip to main content

管理来自机密扫描的警报

您可以查看、评估和解析已签入存储库的机密的警报。

谁可以使用此功能?

People with admin access to a repository can view and dismiss secret scanning alerts for the repository.

Secret scanning is available for organization-owned repositories in GitHub Enterprise Server if your enterprise has a license for GitHub Advanced Security. For more information, see "About secret scanning" and "About GitHub Advanced Security."

关于 secret scanning 警报页

在为存储库启用 secret scanning 或将提交推送到启用了 secret scanning 的存储库时,GitHub 会扫描内容,以查找与服务提供商定义的模式以及企业、组织或存储库中定义的任何自定义模式匹配的机密。

当 secret scanning 检测到机密时,GitHub 将生成警报。 GitHub 在存储库的“安全性”选项卡中显示警报。

为了帮助你更有效地对警报进行会审,GitHub 将警报分为两个列表:

  • 高置信度警报。
  • 其他警报。

secret scanning 警报视图的屏幕截图。 在“高置信度”和“其他”警报之间切换的按钮以橙色轮廓突出显示。

高置信度警报列表

“高置信度”警报列表显示与支持的模式和指定的自定义模式相关的警报。 此列表始终是警报页面的默认视图。

“其他”警报列表

“其他”警报列表显示与非提供程序模式(如私钥)。 这些类型警报的误报率较高。

此外还显示属于以下类别的警报:

  • 每个存储库的数量限制为 5000 个警报(这包括打开和关闭的警报)。
  • 不显示在安全概览的摘要视图中,仅在“Secret scanning”视图中显示。
  • 对于非提供程序模式 ,仅显示第一个检测到的位置。

若要让 GitHub 扫描非提供程序模式 ,必须为存储库或组织启用 。 有关详细信息,请参阅“为存储库配置机密扫描”。

查看警报

  1. 在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。
  2. 在存储库名称下,单击“ 安全性”。 如果看不到“安全性”选项卡,请选择 下拉菜单并单击“安全性” 。
    存储库标头的屏幕截图,其中显示了选项卡。 “安全性”选项卡以深橙色边框突出显示。
  3. 在左边栏的“漏洞警报”下,单击“Secret scanning”。
  4. (可选)切换到“其他”警报,可查看非提供程序模式的警报。
  5. 在“Secret scanning”下,单击要查看的警报。

筛选警报

可将各种筛选器应用于警报列表,帮助找到你要查看的警报。 可以使用警报列表上方的下拉菜单,或在搜索栏中输入表中列出的限定符。

Qualifier说明
is:open显示打开的警报。
is:closed显示关闭的警报。
validity:active显示仍处于活动状态的机密的警报。 有关有效性状态的详细信息,请参阅“检查机密的有效性”。
validity:inactive显示不再处于活动状态的机密的警报。
validity:unknown显示有效性状态未知的机密的警报。
secret-type:SECRET-NAME显示特定机密类型的警报,例如 secret-type:github_personal_access_token。 有关支持的机密类型的列表,请参阅“机密扫描模式”。
provider:PROVIDER-NAME显示特定提供程序的警报,例如 provider:github。 有关支持的合作伙伴的列表,请参阅“机密扫描模式”。
confidence:high显示与支持的机密和自定义模式相关的高置信度机密的警报。 有关支持的高置信度模式的列表,请参阅“机密扫描模式”。
confidence:other显示非提供程序模式(如私钥)。 有关支持的非提供程序模式的列表,请参阅“机密扫描模式”。

评估警报

有一些其他功能可以帮助你评估警报,以便更好地排列警报优先级和管理警报。 您可以:

  • 检查机密的有效性,了解机密是否仍处于活动状态。 仅适用于 GitHub 令牌。有关详细信息,请参阅“检查机密的有效性”。
  • 查看令牌的元数据。 仅适用于 GitHub 令牌。 例如查看上次使用令牌的时间。 有关详细信息,请参阅“查看 GitHub 令牌元数据"。

检查机密的有效性

验证检查让您知道哪些机密属于 activeinactive 机密,帮助你排列 警报优先级。 active 机密是仍可能被利用的机密,因此应该优先审查和修正它们的警报。

默认情况下,GitHub 检查 GitHub 令牌的有效性,并在警报视图中显示令牌的验证状态。

有效期Status结果
活动机密activeGitHub 向此机密的提供者进行了核实,发现此机密处于活动状态
可能处于活动状态的机密unknownGitHub 尚不支持对此令牌类型进行验证检查
可能处于活动状态的机密unknownGitHub 无法验证此机密
机密处于非活动状态inactive应确保未发生未经授权的访问

可以使用 REST API 检索每个令牌的最新验证状态的列表。 有关详细信息,请参阅 REST API 文档中的“适用于机密扫描的 REST API 终结点”。 还可以使用 Webhook 来通知与 secret scanning 警报相关的活动。 有关详细信息,请参阅“Webhook 事件和有效负载”中的 secret_scanning_alert 事件。

查看 GitHub 令牌元数据

Note

GitHub 令牌的元数据目前为公共 beta 版本,可能会有变动。

在活动的 GitHub 令牌警报视图中,可以查看有关令牌的某些元数据。 此元数据可以帮助你识别令牌,并确定要采取的修正步骤。

令牌(如personal access token和其他凭据)被视为个人信息。 有关使用 GitHub令牌的详细信息,请参阅 GitHub 的隐私声明可接受的使用政策

GitHub 令牌的 UI 的屏幕截图,其中显示了令牌元数据。

GitHub 令牌的元数据可用于任何启用了机密扫描的存储库的活动令牌。 如果令牌已被撤销或无法验证其状态,则元数据将不可用。 GitHub 会自动撤销公共存储库中的 GitHub 令牌,因此公共存储库中 GitHub 令牌的元数据极有可能不可用。 以下元数据可用于活动的 GitHub 令牌:

元数据描述
机密名称GitHub 令牌的创建者为该令牌提供的名称
机密所有者令牌所有者的 GitHub 句柄
创建时间令牌的创建日期
过期日期令牌的过期日期
上次使用时间上次使用令牌的日期
访问令牌是否具有组织访问权限

修复警报

只要密码被提交到仓库,便应视为受到威胁。 GitHub 建议对受到威胁的密码执行以下操作:

  • 对于受到威胁的 GitHub personal access token,请删除受到威胁的令牌,创建新令牌,然后更新使用旧令牌的任何服务。 有关详细信息,请参阅“管理个人访问令牌”。
  • 对于所有其他机密,请先确认提交到 GitHub Enterprise Server 的机密是有效的。 如果有效,请创建新机密,更新使用旧机密的所有服务,然后删除旧机密。

关闭警报

Note

Secret scanning 不会在从存储库中移除相应的令牌时自动关闭警报。 必须在 GitHub 上的警报列表中手动关闭这些警报。

  1. 在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。

  2. 在存储库名称下,单击“ 安全性”。 如果看不到“安全性”选项卡,请选择 下拉菜单并单击“安全性” 。

    存储库标头的屏幕截图,其中显示了选项卡。 “安全性”选项卡以深橙色边框突出显示。

  3. 在左边栏的“漏洞警报”下,单击“Secret scanning”。

  4. 在“Secret scanning”下,单击要查看的警报。

  5. 若要消除警报,请选择“关闭原因”下拉菜单,然后单击原因以解决警报。

    secret scanning 警报的屏幕截图。 标题为“关闭为”的下拉菜单已展开,并用深橙色边框突出显示。

  6. (可选)在“注释”字段中,添加消除注释。 消除操作注释将添加到警报时间线,可在审核和报告期间用作理由。 可以在警报时间线中查看所有已消除警报和消除注释的历史记录。 还可以使用 Secret scanning API 检索或设置注释。 注释包含在 resolution_comment 字段中。 有关详细信息,请参阅 REST API 文档中的“适用于机密扫描的 REST API 终结点”。

  7. 单击“关闭警报”。

配置 机密扫描警报

的通知

增量扫描和历史扫描的通知不同。

增量扫描

当检测到新的机密时,GitHub Enterprise Server 会根据用户的通知首选项,通知对存储库安全警报具有访问权限的所有用户。 这些用户包括:

  • 存储库管理员
  • 安全管理员
  • 拥有自定义角色(具有读取/写入访问权限)的用户
  • 组织所有者和企业所有者(如果他们是机密泄露的存储库的管理员)

Note

无论通知首选项如何,系统都会通知意外提交机密的提交作者。

你将收到电子邮件通知,前提是:

  • 你正在监视存储库。
  • 你已启用存储库上“所有活动”或自定义“安全警报”的通知。
  • 在通知设置中,在“订阅”下,然后在“监视”下,你已选择通过电子邮件接收通知。
  1. 在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。

  2. 若要开始监视存储库,请选择“监视”。

    存储库主页的屏幕截图。 标题为“监视”的下拉菜单,用橙色边框突出显示。

  3. 在下拉菜单中,单击“所有活动”。 或者,若要仅订阅安全警报,请单击“自定义”,然后单击“安全警报”。

  4. 导航到个人帐户的通知设置。 这些可在 https://github.com/settings/notifications 中找到。

  5. 在通知设置页上,在“订阅”下,然后在“正在监视”下,选择“通知我”下拉列表。

  6. 选择“电子邮件”作为通知选项,然后单击“保存”。

    用户帐户的通知设置的屏幕截图。 显示一个标题为“订阅”的元素标头和一个标题为“正在监视”的子标头。 标题为“电子邮件”的复选框用橙色边框突出显示。

有关设置通知首选项的详细信息,请参阅“管理存储库的安全和分析设置”和“为单个存储库配置监视设置”。

历史扫描

对于历史扫描,GitHub Enterprise Server 通知以下用户:

  • 组织所有者、企业所有者和安全管理者 - 每当历史扫描完成时,即使找不到任何机密,也会发送通知。
  • 存储库管理员、安全管理者和拥有自定义角色(具有读/写访问权限)的用户 - 每当历史扫描检测到机密时,根据他们的通知首选项发送通知。

我们不会通知提交作者。

有关设置通知首选项的详细信息,请参阅“管理存储库的安全和分析设置”和“为单个存储库配置监视设置”。

审核对机密扫描警报的响应

可以使用 GitHub 工具审核为响应secret scanning警报而执行的操作。 有关详细信息,请参阅“审核安全警报”。