Skip to main content
我们经常发布文档更新,此页面的翻译可能仍在进行中。 有关最新信息,请访问英语文档

为机密扫描定义自定义模式

你可以扩展 secret scanning 以检测默认模式之外的机密。

Secret scanning 可用于 GitHub Enterprise Server 中的组织拥有的存储库。 有关详细信息,请参阅“关于 GitHub Enterprise Server 上的 机密扫描”和“关于 GitHub Advanced Security”。

关于 secret scanning 的自定义模式

您可以定义自定义模式来标识 secret scanning 支持的默认模式未检测到的机密。 例如,您可能有一个属于您组织内部的密钥模式。 有关支持的机密和服务提供商的详细信息,请参阅 “Secret scanning 模式”。

您可以为企业、组织或存储库定义自定义模式。 Secret scanning支持每个组织或企业帐户最多 500 个自定义模式,每个存储库最多 100 个自定义模式。

自定义模式的正则表达式语法

你可以将 secret scanning 的自定义模式指定为一个或多个正则表达式。

  • 机密格式: 描述机密本身格式的表达式。
  • 机密之前: 描述机密之前的字符的表达式。 默认情况下,此值设置为 \A|[^0-9A-Za-z],这意味着机密必须位于行首或前面有非字母数字字符。
  • 机密之后: 描述机密后面的字符的表达式。 默认情况下,此值设置为 \z|[^0-9A-Za-z],这意味着机密后面必须跟有新行或非字母数字字符。
  • 其他匹配要求: 机密本身必须或不得匹配的一个或多个可选表达式。

对于简单令牌,通常只需指定机密格式。 其他字段提供了灵活性,以便您可以指定更复杂的机密,而无需创建复杂的正则表达式。 有关自定义模式的示例,请参阅下面的“使用附加要求指定的自定义模式示例”。

Secret scanning 使用 Hyperscan 库,只支持 Hyperscan 正则表达式构造(PCRE 语法的子集)。 不支持 Hyperscan 选项修饰符。 有关 Hyperscan 模式构造的详细信息,请参阅 Hyperscan 文档中的“模式支持”。

定义仓库的自定义模式

在定义自定义模式之前,您必须确保仓库上启用了 secret scanning。 有关详细信息,请参阅“为存储库配置 secret scanning”。

  1. 在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。 1. 在存储库名称下,单击 “设置”。 “存储库设置”按钮
  2. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。
  3. 在“代码安全性和分析”下,查找“GitHub Advanced Security”。 1. 在“Secret scanning”下的“自定义模式”下,单击“新建模式”。 1. 输入新自定义模式的详细信息:
  4. 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
  5. 可以单击“更多选项”来提供密钥格式的其他周围内容或额外匹配要求。
  6. 提供一个示例测试字符串,用于确保配置与预期模式匹配。 创建自定义 secret scanning 模式窗体
  7. 准备好测试新的自定义模式时,若要识别存储库中的匹配项而不创建警报,请单击“保存并试运行”。
  8. 试运行完成后,你将看到结果示例(最多 1000 个)。 查看结果并确定任何误报结果。 显示试运行结果的屏幕截图
  9. 编辑新的自定义模式以修复结果的任何问题,然后测试更改,单击“保存并试运行”。 1. 如果对新的自定义模式感到满意,请单击“发布模式”

模式创建后,secret scanning 将在 GitHub 仓库中存在的所有分支上扫描整个 Git 历史记录的任何密钥。 有关查看 机密扫描警报 警报的详细信息,请参阅“管理来自 secret scanning 的警报”。

使用其他要求指定的自定义模式示例

公司具有具有五个特征的内部令牌。 它们使用不同的字段来指定如何标识令牌,如下所示:

特征字段和正则表达式
长度介于 5 到 10 个字符之间机密格式:[$#%@AA-Za-z0-9]{5,10}
不以 . 结尾机密之后:[^\.]
包含数字和大写字母其他要求:机密必须匹配 [A-Z][0-9]
一行中不包含多个小写字母其他要求:机密不得匹配 [a-z]{2,}
包含 $%@! 之一其他要求:机密必须匹配 [$%@!]

这些令牌将与上述自定义模式匹配:

a9@AAfT!         # Secret string match: a9@AAfT
ee95GG@ZA942@aa  # Secret string match: @ZA942@a
a9@AA!ee9        # Secret string match: a9@AA

这些字符串与上述自定义模式不匹配:

a9@AA.!
a@AAAAA
aa9@AA!ee9
aAAAe9

定义组织的自定义模式

在定义自定义模式之前,您必须确保在组织中为要扫描的仓库启用 secret scanning。 若要在组织中的所有存储库上启用 secret scanning,请参阅“管理组织的安全和分析设置”。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“你的组织”。 贵组织在配置文件菜单中 2. 在组织旁边,单击“设置”。 设置按钮

  2. 在边栏的“安全性”部分中,单击“ 代码安全性和分析”。

  3. 在“代码安全性和分析”下,查找“GitHub Advanced Security”。 1. 在“Secret scanning”下的“自定义模式”下,单击“新建模式”。 1. 输入新自定义模式的详细信息:

  4. 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。

  5. 可以单击“更多选项”来提供密钥格式的其他周围内容或额外匹配要求。

  6. 提供一个示例测试字符串,用于确保配置与预期模式匹配。 创建自定义 secret scanning 模式窗体

  7. 准备好测试新的自定义模式时,若要在不创建警报的情况下识别所选存储库中的匹配项,请单击“保存并试运行”。

  8. 选择要在其中执行试运行的存储库。

    • 若要在整个组织中执行试运行,请选择“组织中的所有存储库”。 显示为试运行选择的存储库的屏幕截图
    • 若要指定要在其中执行试运行的存储库,请选择“所选存储库”,然后搜索并选择最多 10 个存储库。 显示为试运行选择的存储库的屏幕截图
  9. 准备好测试新的自定义模式后,请单击“运行”。 1. 试运行完成后,你将看到结果示例(最多 1000 个)。 查看结果并确定任何误报结果。 显示试运行结果的屏幕截图

  10. 编辑新的自定义模式以修复结果的任何问题,然后测试更改,单击“保存并试运行”。 1. 如果对新的自定义模式感到满意,请单击“发布模式”

创建模式后,secret scanning 扫描组织的仓库中的任何密钥,包括其所有分支的整个 Git 历史记录。 组织所有者和仓库管理员将会收到发现的任何密钥警报通知,并且可以审查发现密钥的仓库中的警报。 有关查看 机密扫描警报 警报的详细信息,请参阅“管理来自 secret scanning 的警报”。

为企业帐户定义自定义模式

在定义自定义模式之前,必须确保为企业帐户启用机密扫描。 有关详细信息,请参阅“为企业启用 GitHub Advanced Security”。

注意:

  • 在企业级别,只有自定义模式的创建者才能编辑模式,并在试运行中使用它。
  • 企业所有者只能对有权访问的存储库使用试运行,并且企业所有者不一定有权访问企业中的所有组织或存储库。
  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”。 GitHub Enterprise Server 上个人资料照片下拉菜单中的“企业设置” 1. 在企业边栏中,单击 “策略”。 企业帐户边栏中的“策略”选项卡 1. 在 “策略”下,单击“高级安全”。 边栏中的“高级安全”策略 1. 在“GitHub Advanced Security”下,单击“安全功能”选项卡。

  2. 在“机密扫描自定义模式”下,单击“新建模式”。

  3. 输入新自定义模式的详细信息:

    1. 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
    2. 可以单击“更多选项”来提供密钥格式的其他周围内容或额外匹配要求。
    3. 提供一个示例测试字符串,用于确保配置与预期模式匹配。 创建自定义 secret scanning 模式窗体
  4. 准备好测试新的自定义模式时,若要识别企业中的匹配项而不创建警报,请单击“保存并试运行”。

  5. 搜索并选择最多 10 个要在其中执行试运行的存储库。 显示为试运行选择的存储库的屏幕截图

  6. 准备好测试新的自定义模式后,请单击“运行”。 1. 试运行完成后,你将看到结果示例(最多 1000 个)。 查看结果并确定任何误报结果。 显示试运行结果的屏幕截图

  7. 编辑新的自定义模式以修复结果的任何问题,然后测试更改,单击“保存并试运行”。 1. 如果对新的自定义模式感到满意,请单击“发布模式”

创建模式后,secret scanning 扫描企业组织内存储库中的任何机密,并启用 GitHub Advanced Security,包括其所有分支上的整个 Git 历史记录。 组织所有者和仓库管理员将会收到发现的任何密钥警报通知,并且可以审查发现密钥的仓库中的警报。 有关查看 机密扫描警报 警报的详细信息,请参阅“管理来自 secret scanning 的警报”。

编辑自定义模式

将更改保存到自定义模式时,这将关闭使用该模式的先前版本创建的所有 机密扫描警报 警报。

  1. 导航到创建自定义模式的位置。 可以在存储库、组织或企业帐户中创建自定义模式。
  2. 在“Secret scanning”下要编辑的自定义模式的右侧,单击
  3. 准备好测试编辑后的自定义模式时,若要识别匹配项而不创建警报,请单击“保存并试运行”。
  4. 查看并测试更改后,单击“发布更改”。

删除自定义模式

  1. 导航到创建自定义模式的位置。 可以在存储库、组织或企业帐户中创建自定义模式。

  2. 在要删除的自定义模式的右侧,单击

  3. 查看确认,并选择一种方法来处理与自定义模式相关的任何打开的警报。

  4. 单击“是,删除此模式”。

    确认删除自定义secret scanning模式