Skip to main content

此版本的 GitHub Enterprise Server 已于以下日期停止服务 2024-07-09. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

管理来自机密扫描的警报

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

谁可以使用此功能?

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 在存储库的“安全性”选项卡中显示警报。

查看警报

  1. 在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。
  2. 在存储库名称下,单击“ 安全性”。 如果看不到“安全性”选项卡,请选择 下拉菜单并单击“安全性” 。
    存储库标头的屏幕截图,其中显示了选项卡。 “安全性”选项卡以深橙色边框突出显示。
  3. 在左边栏的“漏洞警报”下,单击“Secret scanning”。
  4. 在“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。 有关支持的合作伙伴的列表,请参阅“机密扫描模式”。

评估警报

你可以检查机密的有效性,了解机密是否仍处于活动状态。 仅适用于 GitHub 令牌。 有关详细信息,请参阅“检查机密的有效性”。

检查机密的有效性

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

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

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

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

修复警报

只要密码被提交到仓库,便应视为受到威胁。 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警报而执行的操作。 有关详细信息,请参阅“审核安全警报”。