Skip to main content

定义密钥扫描的自定义模式

您可以扩展 > - 秘密扫描 以检测默认模式之外的机密。

秘密扫描 is available for organization-owned repositories in GitHub Enterprise Server if your enterprise has a license for GitHub Advanced Security. For more information, see "GitHub's products."

关于 秘密扫描 的自定义模式

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

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

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

您可以将 > - 秘密扫描 的自定义模式指定为一个或多个正则表达式。

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

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

秘密扫描 使用 Hyperscan 库,只支持 Hyperscan regex 结构(PCRE 语法的子集)。 不支持 Hyperscan 选项修饰符。 有关 Hyperscan 模式构造的更多信息,请参阅 Hyperscan 文档中的“模式支持”。

定义仓库的自定义模式

在定义自定义模式之前,您必须确保仓库上启用了 秘密扫描。 更多信息请参阅“为仓库配置 秘密扫描”。

  1. 在 您的 GitHub Enterprise Server 实例 上,导航到仓库的主页面。

  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮

  3. 在左侧边栏中,单击 Security & analysis(安全和分析)仓库设置中的"Security & analysis(安全和分析)"选项卡

  4. 在“Code security and analysis(代码安全性和分析)”下,找到“GitHub Advanced Security”。

  5. 在“秘密扫描”下的“Custom patterns(自定义模式)”下,单击 New pattern(新模式)

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

    1. 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
    2. 您可以点击更多选项 来提供密钥格式的其他周围内容或额外匹配要求。
    3. 提供示例测试字符串,以确保您的配置与预期的模式匹配。

    创建自定义 秘密扫描 模式表

  7. When you're satisfied with your new custom pattern, click Create pattern.

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

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

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

特征字段和正则表达式
长度介于 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

定义组织的自定义模式

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

注意: 由于没有试运行功能,我们建议您先在存储库中测试自定义模式,然后再为整个组织定义它们。 这样,可以避免创建过多的误报 秘密扫描 警报。

  1. 在 GitHub Enterprise Server 的右上角,单击您的头像,然后单击 Your organizations(您的组织)个人资料菜单中的组织

  2. 在组织旁边,单击 Settings(设置)设置按钮

  3. 在左侧边栏中,单击 Security & analysis(安全和分析)组织设置中的"Security & analysis(安全和分析)"选项卡

  4. 在“Code security and analysis(代码安全性和分析)”下,找到“GitHub Advanced Security”。

  5. 在“秘密扫描”下的“Custom patterns(自定义模式)”下,单击 New pattern(新模式)

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

    1. 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
    2. 您可以点击更多选项 来提供密钥格式的其他周围内容或额外匹配要求。
    3. 提供示例测试字符串,以确保您的配置与预期的模式匹配。

    创建自定义 秘密扫描 模式表

  7. When you're satisfied with your new custom pattern, click Create pattern.

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

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

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

注意: 由于没有试运行功能,我们建议您先在存储库中测试自定义模式,然后再为整个企业定义它们。 这样,可以避免创建过多的误报 秘密扫描 警报。

  1. 在 GitHub Enterprise Server 的右上角,单击您的个人资料照片,然后单击 Enterprise settings(Enterprise 设置)GitHub Enterprise Server 上个人资料照片下拉菜单中的"Enterprise settings(企业设置)"

  2. 在企业账户侧边栏中,单击 Policies(政策)企业帐户侧边栏中的 Policies(政策)选项卡

  3. 策略下,单击“Advanced Security(高级安全性)”。 侧边栏中的"高级安全性"策略

  4. 在“GitHub Advanced Security”下,单击 Security features(安全功能)选项卡。

  5. 在“Secret scanning custom patterns(机密扫描自定义模式)”下,单击 New pattern(新建模式)

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

    1. 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
    2. 您可以点击更多选项 来提供密钥格式的其他周围内容或额外匹配要求。
    3. 提供示例测试字符串,以确保您的配置与预期的模式匹配。

    创建自定义 秘密扫描 模式表

  7. When you're satisfied with your new custom pattern, click Create pattern.

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

编辑自定义模式

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

  1. 导航到创建自定义模式的位置。 可以在存储库、组织或企业帐户中创建自定义模式。
  2. 在“秘密扫描”下要编辑的自定义模式的右侧,单击
  3. 查看并测试更改后,单击 Save changes(保存更改)

删除自定义模式

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

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

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

  4. 单击 Yes, delete this pattern(是,删除此模式)

    确认删除自定义 秘密扫描 模式