GitHub CodeQL 代码扫描现已支持设置威胁模型

GitHub 扩展 CodeQL 代码扫描功能,支持指定威胁模型

GitHub 最近扩展了基于 CodeQL 的代码扫描功能,新增了指定威胁模型的选项。该功能目前以 Beta 版本的形式支持 Java 语言。

主要功能

新的威胁模型设置允许用户选择在代码扫描中使用的威胁模型,从而决定哪些输入数据可以被信任,哪些数据可能成为系统的潜在风险源。

  • 默认配置:CodeQL 默认使用一个威胁模型,将任何远程来源(如 HTTP 请求)视为“受污染的”(即不可信数据)。
  • 扩展配置:许多代码库可能需要扩展“受污染”输入数据的来源,包括本地文件、命令行参数、环境变量和数据库等。为此,用户可以启用本地威胁模型选项,帮助安全团队和开发者发现并修复更多的潜在安全漏洞。

启用方式

用户可以通过以下三种方式启用新的威胁模型选项:

  1. GitHub UI:在代码扫描设置中,找到“Threat model”选项,与“Query suite”设置并列。
  2. Actions 工作流文件:在文件中指定 threat-models: local
  3. 命令行或第三方 CI/CD:使用 --threat-model=local 标志。

威胁模型的重要性

理解与系统或代码库相关的威胁模型是确保其安全的关键步骤。根据《威胁建模宣言》,这种分析从识别可能出错的地方和列出所有可能的威胁开始。威胁通常针对每个系统,并取决于其设计和实现方式。

安全实践

尽早识别威胁可以更好地解决它们。代码扫描可以被视为一种“左移”方法,旨在提高系统的安全性。如果未能提前识别威胁,则需要在系统生命周期的后期阶段定义缓解措施。

当前限制

尽管支持本地威胁模型是 GitHub 功能的一大进步,但代码扫描的威胁建模还有许多其他维度尚未覆盖,包括身份验证、执行频率、访问资源和受保护资产等。

GitHub 通过允许用户指定威胁模型,使其代码扫描解决方案更加灵活,能够更好地适应不同的代码库,并提供特定上下文中的安全信息。

阅读 49
0 条评论