注意:秘密扫描 的自定义模式目前处于测试阶段,可能会更改。
关于 秘密扫描 的自定义模式
GitHub 在 公共和私有 仓库中执行performs 秘密扫描,以用于 GitHub 和 GitHub 模式提供的密钥模式。 有关 秘密扫描 合作伙伴计划的更多信息,请参阅“密码扫描合作伙伴计划”。
但是,在某些情况下,您需要扫描 私有 仓库中的其他密钥模式。 例如,您可能有一个属于您组织内部的密钥模式。 在这些情况下,您可以在组织和 GitHub 上的私有 仓库中定义自定义 秘密扫描 模式。 您可以为每个 私有 仓库或组织定义多达 20 个自定义模式。
注意: 在测试版中,对 秘密扫描 使用自定义模式时存在一些限制:
- 没有干运行功能。
- 创建自定义模式后,您无法对其进行编辑。 要更改模式,您必须将其删除并重新创建。
- 没有用于创建、编辑或删除自定义模式的 API。 但是,自定义模式的结果在密钥扫描警报 API 中返回。
自定义模式的正则表达式语法
秘密扫描 的自定义模式被指定为正则表达式。 秘密扫描 使用 Hyperscan 库,只支持 Hyperscan regex 结构(PCRE 语法的子集)。 不支持 Hyperscan 选项修饰符。 有关 Hyperscan 模式构造的更多信息,请参阅 Hyperscan 文档中的“模式支持”。
定义仓库的自定义模式
在定义自定义模式之前,您必须确保仓库上启用了 秘密扫描。 更多信息请参阅“为仓库配置 秘密扫描”。
-
在 GitHub 上,导航到仓库的主页面。
-
在仓库名称下,单击 Settings(设置)。

-
在左侧边栏中,单击 Security & analysis(安全和分析)。

-
在“Configure security and analysis features(配置安全和分析功能)”下,查找“GitHub Advanced Security”。
-
在“秘密扫描”下,单击添加 秘密扫描 自定义模式。

-
输入新自定义模式的详细信息:
- 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
- 您可以点击更多选项 来提供密钥格式的其他周围内容或额外匹配要求。
- 您可以提供示例测试字符串,然后单击 Test(测试)按钮,以确保您的配置与预期的模式匹配。

-
当您对新自定义模式满意时,点击 Create custom pattern(创建自定义模式)。
在模式创建后,秘密扫描 将在 GitHub 仓库中存在的所有分支上扫描整个 Git 历史记录的任何密钥。有关查看 秘密扫描 警报的详细信息,请参阅“管理来自 秘密扫描 的警报”。
定义组织的自定义模式
在定义自定义模式之前,您必须确保在组织中为要扫描的 私有 仓库启用 秘密扫描。 要在您的组织中启用 秘密扫描 所有 私有 仓库,请参阅“管理组织的安全和分析设置”。
注意: 自定义模式测试版期间没有干运行功能。 为了避免过多的误报 秘密扫描 警报,我们建议您在为整个组织定义自定义模式之前,先在仓库中测试自定义模式。
-
在 GitHub 的右上角,单击您的个人资料照片,然后单击 Your organizations(您的组织)。
-
在组织旁边,单击 Settings(设置)。

-
在左侧边栏中,单击 Security & analysis(安全和分析)。

-
在“Configure security and analysis features(配置安全和分析功能)”下,查找“GitHub Advanced Security”。
-
在“秘密扫描”下,单击添加 秘密扫描 自定义模式。

-
输入新自定义模式的详细信息:
- 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
- 您可以点击更多选项 来提供密钥格式的其他周围内容或额外匹配要求。
- 您可以提供示例测试字符串,然后单击 Test(测试)按钮,以确保您的配置与预期的模式匹配。

-
当您对新自定义模式满意时,点击 Create custom pattern(创建自定义模式)。
创建模式后,秘密扫描 扫描组织中的私有 仓库中的任何密钥,包括其所有分支的整个 Git 历史记录。 组织所有者和仓库管理员将会收到发现的任何密钥警报通知,并且可以审查发现密钥的仓库中的警报。 有关查看 秘密扫描 警报的详细信息,请参阅“管理来自 秘密扫描 的警报”。
删除自定义模式
删除自定义模式还可以关闭模式创建的所有 秘密扫描 警报。
-
导航到创建自定义模式的仓库或组织的 Security & analysis(安全和分析)设置。 更多信息请参阅“定义仓库的自定义模式”或“定义组织的自定义模式”。
-
在“Configure security and analysis features(配置安全和分析功能)”下,查找“GitHub Advanced Security”。
-
在“秘密扫描”下,找到要删除的自定义模式,然后单击 Remove(删除)。

-
查看确认并单击 Remove custom pattern(删除自定义模式)。

