Skip to main content

编辑默认设置配置

你可以编辑 code scanning 的现有默认设置配置,以更好地满足代码安全需求。

谁可以使用此功能?

Code scanning 可用于 GitHub.com 上的所有公共存储库。 若要在组织拥有的专用存储库中使用 code scanning,必须具有 GitHub Advanced Security 许可证。 有关详细信息,请参阅“关于 GitHub 高级安全性”。

编辑默认设置配置的简介

使用默认设置运行代码初始分析后,可能需要对配置进行更改,以便更好地满足代码安全需求。 对于现有默认设置配置,可以编辑 :

  • 语言默认设置会进行分析。
  • 查询套件在分析期间运行。 有关可用查询套件的更多信息,请参阅“CodeQL 查询套件”。
  • 要用于分析的威胁模型 (beta)。 所选的威胁模型将决定哪些受污染数据的来源被视为应用程序的风险。 在 beta 版本中,风险模型仅受 Java/Kotlin 和 C# 分析的支持。 有关威胁模型的更多信息,请参阅“在默认设置中包含受污染数据的本地源”。

如果代码库依赖于 CodeQL 中包含的标准库无法识别的库或框架,则也可以使用 CodeQL 模型包在默认设置中扩展 CodeQL 覆盖范围。 有关详细信息,请参阅“在默认设置中使用 CodeQL 模型包扩展 CodeQL 覆盖范围”。

如果需要更改 code scanning 配置的任何其他方面,请考虑配置高级设置。 有关详细信息,请参阅“配置代码扫描的高级设置”。

自定义现有默认设置配置

  1. 在 GitHub.com 上,导航到存储库的主页。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

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

  4. 在“Code scanning”部分的“CodeQL 分析”行旁边,选择 ,然后单击 “查看 CodeQL 配置”。****

  5. 在“CodeQL 默认配置”窗口中,单击 “编辑”****。

  6. (可选)在“语言”部分中,选择或取消选择用于分析的语言。

  7. (可选)在“扫描设置”部分的“查询套件”行中,选择要对代码运行的其他查询套件。

  8. (Beta)(可选)在“扫描设置”部分的“威胁模型”行中,选择远程和本地源

  9. 要更新配置,并使用新配置运行对代码初始分析,请单击“保存更改”。**** 将来的所有分析都将使用新配置。

定义导致拉取请求检查失败的警报严重性

在拉取请求上启用 code scanning 时,仅当检测到一个或多个严重性为 error 或安全严重性为 criticalhigh 的警报时,检查才会失败。 如果检测到严重性或安全严重性低于此标准的警报,则检查将会成功。 对于重要的代码库,则建议设置为 code scanning 检查在检测到任何警报时失败,以确保在合并代码更改之前必须修正或消除警报。 有关严重性级别的详细信息,请参阅“关于警报严重性和安全严重性级别”。

  1. 在 GitHub.com 上,导航到存储库的主页。

  2. 在存储库名称下,单击 “设置”。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

    存储库标头的屏幕截图,其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。

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

  4. 在“Code scanning”下的“保护规则”部分中,使用下拉菜单定义哪些警报会导致检查失败。 为“安全”类型的警报选择一个级别,为所有其他警报选择一个级别。

在默认设置中包含受污染数据的本地源

注意: 威胁模型目前处于 beta 版本,可能会发生更改。 在 beta 版本中,风险模型仅受 Java/Kotlin 和 C# 分析的支持。

如果代码库只将远程网络请求视为受污染数据的潜在来源,则建议使用默认的威胁模型。 如果代码库认为除网络请求以外的来源可能包含受污染的数据,则可以使用威胁模型将这些其他来源添加到 CodeQL 分析中。 在 beta 版本期间,可以添加可能被代码库视为受污染数据的其他来源的本地源(例如命令行参数、环境变量、文件系统和数据库)。

可以编辑默认设置配置中使用的威胁模型。 有关更多信息,请参阅“自定义现有的默认设置配置”。

在默认设置中使用 CodeQL 模型包扩展 CodeQL 覆盖范围

**注意:**CodeQL 模型包和 CodeQL 模型编辑器当前为 beta 版本,可能会发生更改。 在 beta 版本中,模型包仅受 Java/Kotlin 和 C# 分析的支持。

如果使用 CodeQL 中包含的标准库无法识别的框架和库,则可以对依赖项进行建模并扩展 code scanning 分析。 有关详细信息,请参阅 CodeQL 文档中的“支持的语言和框架”。

对于默认设置,需要在 CodeQL 模型包中定义其他依赖项的模型。 可以通过单个存储库的 CodeQL 模型包扩展默认设置中的覆盖范围,也可以为组织中的所有存储库大规模扩展覆盖范围。

有关 CodeQL 模型包以及编写自己的模型包的详细信息,请参阅“使用 CodeQL 模型编辑器”。

扩展存储库的覆盖范围

  1. 在存储库的 .github/codeql/extensions 目录中,复制模型包目录,该目录应包含一个 codeql-pack.yml 文件和任何 .yml 文件,后者包含要包含在分析中的库或框架的其他模型。
  2. 这些模型包将在 code scanning 分析中自动检测和使用。
  3. 如果以后将配置更改为使用高级设置,则 .github/codeql/extensions 目录中的任何模型包也将被识别和使用。

扩展组织中所有存储库的覆盖范围

注意: 如果通过组织中所有存储库的 CodeQL 模型包扩展覆盖范围,则必须将指定的模型包发布到 GitHub Container registry,并且可供运行代码扫描的存储库访问。 有关详细信息,请参阅“配置包的访问控制和可见性”。

  1. 在 GitHub.com 的右上角,选择个人资料照片,然后单击 “你的组织”****。

    @octocat 的个人资料图片下的下拉菜单的屏幕截图。 “你的组织”以深橙色标出。

  2. 在组织名称下,单击 “设置”****。 如果看不到“设置”选项卡,请选择“”下拉菜单,然后单击“设置”********。

    组织配置文件中选项卡的屏幕截图。 “设置”选项卡以深橙色标出。

  3. 单击“代码安全和分析”。

  4. 找到“Code scanning”部分。

  5. 在“展开 CodeQL 分析”旁边,单击“配置”。

  6. 输入对要使用的已发布模型包的引用,每行一个应用,然后单击“保存”。

    组织设置中的“展开 CodeQL 分析”视图的屏幕截图。

  7. 当 code scanning 在组织中启用了默认设置的任何存储库上运行时,将自动检测和使用模型包。