关于 秘密扫描 的自定义模式
您可以定义自定义模式来标识 秘密扫描 支持的默认模式未检测到的机密。 例如,您可能有一个属于您组织内部的密钥模式。 有关支持的机密和服务提供商的详细信息,请参阅“秘密扫描 模式”。
您可以为企业、组织或存储库定义自定义模式。 秘密扫描 最多支持 每个组织或企业帐户 500 个自定义模式,每个存储库最多 100 个自定义模式。
自定义模式的正则表达式语法
您可以将 > - 秘密扫描,用于高级安全 的自定义模式指定为一个或多个正则表达式。
- 机密格式:描述机密本身格式的表达式。
- 机密之前:描述机密之前的字符的表达式。 默认情况下,此值设置为
\A|[^0-9A-Za-z]
,这意味着机密必须位于行首或前面有非字母数字字符。 - 机密之后:描述机密后面的字符的表达式。 默认情况下,此值设置为
\z|[^0-9A-Za-z]
,这意味着机密后面必须跟有新行或非字母数字字符。 - 其他匹配要求:机密本身必须或不得匹配的一个或多个可选表达式。
对于简单令牌,通常只需指定机密格式。 其他字段提供了灵活性,以便您可以指定更复杂的机密,而无需创建复杂的正则表达式。 有关自定义模式的示例,请参阅下面的“使用附加要求指定的自定义模式示例”。
秘密扫描 使用 Hyperscan 库,只支持 Hyperscan regex 结构(PCRE 语法的子集)。 不支持 Hyperscan 选项修饰符。 有关 Hyperscan 模式构造的更多信息,请参阅 Hyperscan 文档中的“模式支持”。
定义仓库的自定义模式
在定义自定义模式之前,您必须确保仓库上启用了 秘密扫描。 更多信息请参阅“为仓库配置 秘密扫描”。
-
在 GitHub.com 上,导航到仓库的主页面。
-
在仓库名称下,单击 Settings(设置)。
-
在边栏的“Security(安全性)”部分中,单击 Code security and analysis(代码安全性和分析)。
-
在“Code security and analysis(代码安全性和分析)”下,找到“GitHub Advanced Security”。
-
在“秘密扫描”下的“Custom patterns(自定义模式)”下,单击 New pattern(新模式)。
-
输入新自定义模式的详细信息:
- 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
- 您可以点击更多选项 来提供密钥格式的其他周围内容或额外匹配要求。
- 提供示例测试字符串,以确保您的配置与预期的模式匹配。
-
当您准备好测试新的自定义模式时,要识别存储库中的匹配项而不创建警报,请单击 Save and dry run(保存并空运行)。
-
试运行完成后,您将看到结果样本(最多 1000 个)。 查看结果并确定任何误报结果。
-
编辑新的自定义模式以修复结果的任何问题,然后,若要测试更改,请单击 Save and dry run(保存并试运行)。
注意: 试运行功能目前处于测试阶段,可能会有所变化。
-
如果对新的自定义模式感到满意,请单击发布模式。
在模式创建后,秘密扫描 将在 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
定义组织的自定义模式
在定义自定义模式之前,您必须确保在组织中为要扫描的仓库启用 秘密扫描。 要在组织中的所有存储库上启用 秘密扫描 ,请参阅“管理组织的安全和分析设置”。
-
在 GitHub.com 的右上角,单击您的头像,然后单击 Your organizations(您的组织)。
-
在组织旁边,单击 Settings(设置)。
-
在边栏的“Security(安全性)”部分中,单击 Code security and analysis(代码安全性和分析)。
-
在“Code security and analysis(代码安全性和分析)”下,找到“GitHub Advanced Security”。
-
在“秘密扫描”下的“Custom patterns(自定义模式)”下,单击 New pattern(新模式)。
-
输入新自定义模式的详细信息:
- 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
- 您可以点击更多选项 来提供密钥格式的其他周围内容或额外匹配要求。
- 提供示例测试字符串,以确保您的配置与预期的模式匹配。
-
当您准备好测试新的自定义模式时,要识别所选存储库中的匹配项而不创建警报,请单击 Save and dry run(保存并试运行)。
-
Search for and select up to 10 repositories where you want to perform the dry run.
-
当您准备好测试新的自定义模式时,请单击 Dry run(试运行)。
-
试运行完成后,您将看到结果样本(最多 1000 个)。 查看结果并确定任何误报结果。
-
编辑新的自定义模式以修复结果的任何问题,然后,若要测试更改,请单击 Save and dry run(保存并试运行)。
注意: 试运行功能目前处于测试阶段,可能会有所变化。
-
如果对新的自定义模式感到满意,请单击发布模式。
创建模式后,秘密扫描 扫描组织的仓库中的任何密钥,包括其所有分支的整个 Git 历史记录。 组织所有者和仓库管理员将会收到发现的任何密钥警报通知,并且可以审查发现密钥的仓库中的警报。 有关查看 秘密扫描 警报的详细信息,请参阅“管理来自 秘密扫描 的警报”。
为企业帐户定义自定义模式
在定义自定义模式之前,必须确保为企业帐户启用机密扫描。 更多信息请参阅“为企业启用 GitHub Advanced Security”。
注意:
- 在企业级别,只有自定义模式的创建者才能编辑该模式,并在试运行中使用它。
- 企业所有者只能使用他们有权访问的存储库上的试运行,而企业所有者不一定有权访问企业内的所有组织或存储库。
-
在 GitHub.com 的右上角,单击您的个人资料照片,然后单击 Your enterprises(您的企业)。
-
在企业列表中,单击您想要查看的企业。
-
在企业账户侧边栏中,单击 Policies(政策)。
-
在 策略下,单击“Advanced Security(高级安全性)”。
-
在“GitHub Advanced Security”下,单击 Security features(安全功能)选项卡。
-
在“Secret scanning custom patterns(机密扫描自定义模式)”下,单击 New pattern(新建模式)。
-
输入新自定义模式的详细信息:
- 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
- 您可以点击更多选项 来提供密钥格式的其他周围内容或额外匹配要求。
- 提供示例测试字符串,以确保您的配置与预期的模式匹配。
-
当您准备好测试新的自定义模式时,要识别企业中的匹配项而不创建警报,请单击 Save and dry run(保存并空运行)。
-
Search for and select up to 10 repositories where you want to perform the dry run.
-
当您准备好测试新的自定义模式时,请单击 Dry run(试运行)。
-
试运行完成后,您将看到结果样本(最多 1000 个)。 查看结果并确定任何误报结果。
-
编辑新的自定义模式以修复结果的任何问题,然后,若要测试更改,请单击 Save and dry run(保存并试运行)。
注意: 试运行功能目前处于测试阶段,可能会有所变化。
-
如果对新的自定义模式感到满意,请单击发布模式。
创建模式后,秘密扫描 扫描企业组织内存储库中的任何机密,并启用 GitHub Advanced Security,包括其所有分支上的整个 Git 历史记录。 组织所有者和仓库管理员将会收到发现的任何密钥警报通知,并且可以审查发现密钥的仓库中的警报。 有关查看 秘密扫描 警报的详细信息,请参阅“管理来自 秘密扫描 的警报”。
编辑自定义模式
将更改保存到自定义模式时,这将关闭使用该模式的先前版本创建的所有 秘密扫描 警报。
- 导航到创建自定义模式的位置。 可以在存储库、组织或企业帐户中创建自定义模式。
- 对于存储库或组织,显示创建自定义模式的存储库或组织的“安全和分析”设置。 更多信息请参阅“定义仓库的自定义模式”或“定义组织的自定义模式”。
- 对于企业,在“Policies(策略)”下显示“Advanced Security(高级安全性)”区域,然后单击 Security features(安全功能)。 更多信息请参阅上面的“为企业帐户定义自定义模式”。
- 在“秘密扫描”下要编辑的自定义模式的右侧,单击 。
- 当您准备好测试编辑的自定义模式时,要识别匹配项而不创建警报,请单击 Save and dry run(保存并空运行)。
- 查看并测试更改后,单击 Save changes(保存更改)。
删除自定义模式
-
导航到创建自定义模式的位置。 可以在存储库、组织或企业帐户中创建自定义模式。
- 对于存储库或组织,显示创建自定义模式的存储库或组织的“安全和分析”设置。 更多信息请参阅“定义仓库的自定义模式”或“定义组织的自定义模式”。
- 对于企业,在“Policies(策略)”下显示“Advanced Security(高级安全性)”区域,然后单击 Security features(安全功能)。 更多信息请参阅上面的“为企业帐户定义自定义模式”。
-
在要删除的自定义模式的右侧,单击 。
-
查看确认,并选择一种方法来处理与自定义模式相关的任何打开的警报。
-
单击 Yes, delete this pattern(是,删除此模式)。