关于 secret scanning 警报页
在为存储库启用 secret scanning 或将提交推送到启用了 secret scanning 的存储库时,GitHub 会扫描内容,以查找与服务提供商定义的模式以及企业、组织或存储库中定义的任何自定义模式匹配的机密。
当 secret scanning 检测到机密时,GitHub 将生成警报。 GitHub 在存储库的“安全性”选项卡中显示警报。
查看警报
- 在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。
- 在存储库名称下,单击“ 安全性”。 如果看不到“安全性”选项卡,请选择 下拉菜单并单击“安全性” 。
- 在左边栏的“漏洞警报”下,单击“Secret scanning”。
- 在“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 令牌。 有关详细信息,请参阅“检查机密的有效性”。
检查机密的有效性
验证检查让您知道哪些机密属于 active
或 inactive
机密,帮助你排列 警报优先级。 active
机密是仍可能被利用的机密,因此应该优先审查和修正它们的警报。
默认情况下,GitHub 检查 GitHub 令牌的有效性,并在警报视图中显示令牌的验证状态。
有效期 | Status | 结果 |
---|---|---|
活动机密 | active | GitHub 向此机密的提供者进行了核实,发现此机密处于活动状态 |
可能处于活动状态的机密 | unknown | GitHub 尚不支持对此令牌类型进行验证检查 |
可能处于活动状态的机密 | unknown | GitHub 无法验证此机密 |
机密处于非活动状态 | 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 上的警报列表中手动关闭这些警报。
-
在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。
-
在存储库名称下,单击“ 安全性”。 如果看不到“安全性”选项卡,请选择 下拉菜单并单击“安全性” 。
-
在左边栏的“漏洞警报”下,单击“Secret scanning”。
-
在“Secret scanning”下,单击要查看的警报。
-
若要消除警报,请选择“关闭原因”下拉菜单,然后单击原因以解决警报。
-
(可选)在“注释”字段中,添加消除注释。 消除操作注释将添加到警报时间线,可在审核和报告期间用作理由。 可以在警报时间线中查看所有已消除警报和消除注释的历史记录。 还可以使用 Secret scanning API 检索或设置注释。 注释包含在
resolution_comment
字段中。 有关详细信息,请参阅 REST API 文档中的“适用于机密扫描的 REST API 终结点”。 -
单击“关闭警报”。
配置 机密扫描警报
的通知
增量扫描和历史扫描的通知不同。
增量扫描
当检测到新的机密时,GitHub Enterprise Server 会根据用户的通知首选项,通知对存储库安全警报具有访问权限的所有用户。 这些用户包括:
- 存储库管理员
- 安全管理员
- 拥有自定义角色(具有读取/写入访问权限)的用户
- 组织所有者和企业所有者(如果他们是机密泄露的存储库的管理员)
Note
无论通知首选项如何,系统都会通知意外提交机密的提交作者。
你将收到电子邮件通知,前提是:
- 你正在监视存储库。
- 你已启用存储库上“所有活动”或自定义“安全警报”的通知。
- 在通知设置中,在“订阅”下,然后在“监视”下,你已选择通过电子邮件接收通知。
-
在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。
-
若要开始监视存储库,请选择“监视”。
-
在下拉菜单中,单击“所有活动”。 或者,若要仅订阅安全警报,请单击“自定义”,然后单击“安全警报”。
-
导航到个人帐户的通知设置。 这些可在 https://github.com/settings/notifications 中找到。
-
在通知设置页上,在“订阅”下,然后在“正在监视”下,选择“通知我”下拉列表。
-
选择“电子邮件”作为通知选项,然后单击“保存”。
有关设置通知首选项的详细信息,请参阅“管理存储库的安全和分析设置”和“为单个存储库配置监视设置”。
历史扫描
对于历史扫描,GitHub Enterprise Server 通知以下用户:
- 组织所有者、企业所有者和安全管理者 - 每当历史扫描完成时,即使找不到任何机密,也会发送通知。
- 存储库管理员、安全管理者和拥有自定义角色(具有读/写访问权限)的用户 - 每当历史扫描检测到机密时,根据他们的通知首选项发送通知。
我们不会通知提交作者。
有关设置通知首选项的详细信息,请参阅“管理存储库的安全和分析设置”和“为单个存储库配置监视设置”。
审核对机密扫描警报的响应
可以使用 GitHub 工具审核为响应secret scanning警报而执行的操作。 有关详细信息,请参阅“审核安全警报”。