编辑默认设置配置的简介
使用默认设置运行代码初始分析后,可能需要对配置进行更改,以便更好地满足代码安全需求。 对于默认设置的现有配置,可编辑:
- 语言默认设置会进行分析。
- 分析期间运行的查询套件。 有关可用查询套件的更多信息,请参阅“CodeQL 查询套件”。
- 要用于分析的风险模型 (beta 版本)。 所选的威胁模型将决定哪些受污染数据的来源被视为应用程序的风险。 在 beta 版本 期间,风险模型仅受 Java/Kotlin 和 C# 分析支持。 有关威胁模型的更多信息,请参阅“在默认设置中包含受污染数据的本地源”。
如果代码库依赖于 CodeQL 中包含的标准库无法识别的库或框架,则也可以使用 CodeQL 模型包在默认设置中扩展 CodeQL 覆盖范围。 有关详细信息,请参阅“在默认设置中使用 CodeQL 模型包扩展 CodeQL 覆盖范围”。
如果需要更改 code scanning 配置的任何其他方面,请考虑配置高级设置。 有关详细信息,请参阅“配置代码扫描的高级设置”。
自定义现有默认设置配置
-
在 GitHub 上,导航到存储库的主页面。
-
在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。
-
在边栏的“Security”部分中,单击“ Code security and analysis”****。
-
在“Code scanning”部分的“CodeQL 分析”行旁边,选择 ,然后单击 “查看 CodeQL 配置”。****
-
在“CodeQL 默认配置”窗口中,单击 “编辑”****。
-
(可选)在“语言”部分中,选择或取消选择用于分析的语言。
-
(可选)在“扫描设置”部分的“查询套件”行中,选择要对代码运行的其他查询套件。
-
(beta 版本) 或者,在“扫描设置”部分的“风险模型”行中,选择“远程和本地源”。
-
要更新配置,并使用新配置运行对代码初始分析,请单击“保存更改”。**** 将来的所有分析都将使用新配置。
定义导致拉取请求检查失败的警报严重性
在拉取请求上启用 code scanning 时,仅当检测到一个或多个严重性为 error
或者安全严重性为 critical
或 high
的警报时,检查才会失败。 如果检测到严重性或安全严重性低于此标准的警报,则检查将会成功。 对于重要的代码库,则建议设置为 code scanning 检查在检测到任何警报时失败,以确保在合并代码更改之前必须修正或消除警报。 有关严重性级别的详细信息,请参阅“关于警报严重性和安全严重性级别”。
-
在 GitHub 上,导航到存储库的主页面。
-
在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”。
-
在边栏的“Security”部分中,单击“Code security and analysis”****。
-
在“Code scanning”下的“检查失败”右侧,使用下拉菜单选择你希望导致拉请求检查失败的严重性级别。
在默认设置中包含受污染数据的本地源
Note
风险模型功能目前为 beta 版本,可能随时更改。 在 beta 版本 期间,风险模型仅支持 Java/Kotlin 和 C# 分析。
如果代码库只将远程网络请求视为受污染数据的潜在来源,则建议使用默认的威胁模型。 如果代码库认为除网络请求以外的来源可能包含受污染的数据,则可以使用威胁模型将这些其他来源添加到 CodeQL 分析中。 在 beta 版本 期间,可以添加可能被代码库视为受污染数据的其他来源的本地源(例如命令行参数、环境变量、文件系统和数据库)。
可以编辑默认设置配置中使用的威胁模型。 有关更多信息,请参阅“自定义现有的默认设置配置”。
在默认设置中使用 CodeQL 模型包扩展 CodeQL 覆盖范围
Note
CodeQL 模型包和 CodeQL 模型编辑器当前为 beta 版本,可能随时更改。 模型包由 C#、Java/Kotlin 和 Ruby 分析支持。
如果你使用 CodeQL 中包含的标准库无法识别的框架和库,则可以对依赖项进行建模并扩展code scanning分析。 有关详细信息,请参阅 CodeQL 文档中的“支持的语言和框架”。
对于默认设置,需要在 CodeQL 模型包中定义其他依赖项的模型。 可以通过单个存储库的 CodeQL 模型包扩展默认设置中的覆盖范围,也可以为组织中的所有存储库大规模扩展覆盖范围。
有关 CodeQL 模型包以及编写自己的模型包的详细信息,请参阅“使用 CodeQL 模型编辑器”。
扩展存储库的覆盖范围
- 在存储库的
.github/codeql/extensions
目录中,复制模型包目录,该目录应包含一个codeql-pack.yml
文件和任何.yml
文件,后者包含要包含在分析中的库或框架的其他模型。 - 这些模型包将在 code scanning 分析中自动检测和使用。
- 如果以后将配置更改为使用高级设置,则
.github/codeql/extensions
目录中的任何模型包也将被识别和使用。
GitHub Container registry关联的容器注册表,并且可供运行 code scanning 的存储库访问。 有关详细信息,请参阅“使用容器注册表”。
-
在 GitHub 的右上角,选择个人资料照片,然后单击“你的组织”。
-
在组织名称下,单击 “设置”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。
-
单击“代码安全和分析”。
-
找到“Code scanning”部分。
-
在“展开 CodeQL 分析”旁边,单击“配置”。
-
输入对要使用的已发布模型包的引用,每行一个应用,然后单击“保存”。
-
当 code scanning 在组织中启用了默认设置的任何存储库上运行时,将自动检测和使用模型包。