关于 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。 有关详细信息,请参阅“为存储库配置机密扫描”。
-
在 你的 GitHub Enterprise Server 实例 上,导航到存储库的主页。 1. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择 下拉菜单,然后单击“设置” 。
-
在左侧边栏中,单击“安全性和分析”。 1. 在“代码安全性和分析”下,查找“GitHub Advanced Security”。 1. 在“Secret scanning”下的“自定义模式”下,单击“新建模式”。 1. 输入新自定义模式的详细信息。 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
-
在“模式名称”字段中,键入模式的名称。
-
在“机密格式”字段中,键入机密模式格式的正则表达式。
-
可以单击“更多选项”来提供密钥格式的其他周围内容或额外匹配要求。
-
提供一个示例测试字符串,用于确保配置与预期模式匹配。
-
如果对新的自定义模式感到满意,请单击“创建模式” 。
-
模式创建后,secret scanning 将在 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
定义组织的自定义模式
在定义自定义模式之前,您必须确保在组织中为要扫描的仓库启用 secret scanning。 要启用组织中所有存储库上的 secret scanning,请参阅“管理组织的安全和分析设置”。
注意: 由于没有试运行功能,我们建议你先在存储库中测试自定义模式,然后再为整个组织定义它们。 这样,可以避免创建过多的误报 机密扫描警报。
-
在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“你的组织”。
2. 在组织旁边,单击“设置”。 -
在左侧边栏中,单击“安全性和分析”。
-
在“代码安全性和分析”下,查找“GitHub Advanced Security”。 1. 在“Secret scanning”下的“自定义模式”下,单击“新建模式”。 1. 输入新自定义模式的详细信息。 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
-
在“模式名称”字段中,键入模式的名称。
-
在“机密格式”字段中,键入机密模式格式的正则表达式。
-
可以单击“更多选项”来提供密钥格式的其他周围内容或额外匹配要求。
-
提供一个示例测试字符串,用于确保配置与预期模式匹配。
-
如果对新的自定义模式感到满意,请单击“创建模式” 。
创建模式后,secret scanning 扫描组织的仓库中的任何密钥,包括其所有分支的整个 Git 历史记录。 组织所有者和仓库管理员将会收到发现的任何密钥警报通知,并且可以审查发现密钥的仓库中的警报。 有关查看 机密扫描警报 的详细信息,请参阅“管理来自机密扫描的警报”。
为企业帐户定义自定义模式
在定义自定义模式之前,必须确保为企业帐户启用机密扫描。 有关详细信息,请参阅“为企业启用 GitHub Advanced Security”。
注意:由于没有试运行功能,我们建议你先在存储库中测试自定义模式,然后再为整个企业定义它们。 这样,可以避免创建过多的误报 机密扫描警报。
-
在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”。
1. 在企业帐户边栏中,单击“ 策略”。 1. 在 “策略”下,单击“Advanced Security”。 1. 在“GitHub Advanced Security”下,单击“安全功能”选项卡。 -
在“机密扫描自定义模式”下,单击“新建模式”。
-
输入新自定义模式的详细信息。 您至少必须提供模式的名称,以及秘密模式格式的正则表达式。
-
在“模式名称”字段中,键入模式的名称。
-
在“机密格式”字段中,键入机密模式格式的正则表达式。
-
可以单击“更多选项”来提供密钥格式的其他周围内容或额外匹配要求。
-
提供一个示例测试字符串,用于确保配置与预期模式匹配。
-
如果对新的自定义模式感到满意,请单击“创建模式” 。
-
创建模式后,secret scanning 扫描企业组织内存储库中的任何机密,并启用 GitHub Advanced Security,包括其所有分支上的整个 Git 历史记录。 组织所有者和仓库管理员将会收到发现的任何密钥警报通知,并且可以审查发现密钥的仓库中的警报。 有关查看 机密扫描警报 的详细信息,请参阅“管理来自机密扫描的警报”。
编辑自定义模式
将更改保存到自定义模式时,这将关闭使用该模式的先前版本创建的所有 机密扫描警报 警报。
- 导航到创建自定义模式的位置。 可以在存储库、组织或企业帐户中创建自定义模式。
- 对于存储库或组织,显示创建自定义模式的存储库或组织的“安全和分析”设置。 有关详细信息,请参阅“为存储库定义自定义模式”或“为组织定义自定义模式”。
- 对于企业,在“策略”下显示“高级安全”区域,然后单击“安全功能”。 有关详细信息,请参阅上面的“为企业帐户定义自定义模式”。
- 在“Secret scanning”下要编辑的自定义模式的右侧,单击“”。
- 查看并测试更改后,单击“发布更改”。
删除自定义模式
- 导航到创建自定义模式的位置。 可以在存储库、组织或企业帐户中创建自定义模式。
- 对于存储库或组织,显示创建自定义模式的存储库或组织的“安全和分析”设置。 有关详细信息,请参阅“为存储库定义自定义模式”或“为组织定义自定义模式”。
- 对于企业,在“策略”下显示“高级安全”区域,然后单击“安全功能”。 有关详细信息,请参阅上面的“为企业帐户定义自定义模式”。
- 在要删除的自定义模式的右侧,单击“”。
- 查看确认,并选择一种方法来处理与自定义模式相关的任何打开的警报。
- 单击“是,删除此模式”。