CodeQL for VS Code使用指南
2024-9-23 00:14:8 Author: www.freebuf.com(查看原文) 阅读量:7 收藏

一、CodeQL简介

CodeQL 是 GitHub 提供的一种静态代码分析工具,旨在帮助开发者和安全专业人士识别和修复代码中的潜在漏洞和质量问题。通过利用 CodeQL 进行静态分析,开发者可以主动发现和解决潜在问题,从而提升软件的可靠性和安全性。无论是在代码审计、性能优化还是合规性检查方面,CodeQL 都能够提供重要的支持。

1.主要功能

  • CodeQL 使用一种专门设计的查询语言,让用户能够编写自定义查询。通过这些查询,用户可以检索出代码中的特定模式或问题。

  • CodeQL 支持多种编程语言,包括但不限于Java、Python、Go等,因而 CodeQL 可以被广泛应用于不同的项目和代码库。

  • CodeQL 能够自动检测常见的安全漏洞,如:SQL 注入、XSS等,通过识别这些漏洞,开发团队可以在发布之前进行修复。

  • 通过 GitHub Actions 等工具,开发者可以在每次提交代码时自动运行 CodeQL 分析,以确保代码的安全性和质量。

  • CodeQL 提供了一个丰富的开源查询库,用户可以直接使用这些已有的查询,也可以在此基础上进行自定义和扩展。

  • CodeQL 允许生成可视化的分析报告,帮助团队更好地理解发现的问题,便于后续的修复和优化。

2.使用场景

  • 代码审计:开发团队可以在代码审计阶段利用 CodeQL 识别潜在的安全漏洞和代码缺陷。

  • 合规性检查:在需要遵循特定安全标准或法规的环境中,CodeQL 可以帮助确保代码符合相关要求。

  • 性能优化:通过分析代码,CodeQL 可以帮助发现可能影响性能的代码段,从而进行优化。

  • 团队协作:CodeQL 可以作为团队协作的一部分,帮助团队成员共享和复用查询,提高整体开发效率。

二、CodeQL安装

CodeQL主要包含了两部分:CodeQL SDK和CodeQL CL。简单来说,CodeQL 是概念和工具的整体,而 CodeQL CLI 是其中的一个具体实现,主要用于通过命令行进行代码分析和管理。

1.CodeQL SDK

CodeQL SDK包含了漏洞的查询规则集,可根据需要编写自定义规则。

下载地址:https://github.com/github/codeql

2.CodeQL CLI

CodeQL CLI 包含CodeQL二进制文件、支持语言的查询库以及所有包含查询的预编译版本。它是 CodeQL 的命令行工具,提供对 CodeQL 功能的访问和管理。

下载地址:https://github.com/github/codeql-cli-binaries/releases

下载之后将两个文件解压到同一个目录下,codeql是CodeQL CLI的解压文件,codeql-main是CodeQL SDK的解压文件。

image

接下来配置一下codeql的环境变量。我用的终端是zsh,配置文件在 ~/.zshrc,需要根据实际情况自行配置。

export PATH=$PATH:/Users/user/CodeQL/codeql:${PATH}

刷新配置,使其生效

source ~/.zshrc

配置完成后,测试是否安装成功

image

CodeQL CLI能够成功运行之后就可以执行相关命令了。使用CodeQL分析代码主要分为两步,创建数据库和查询分析数据库。

CodeQL创建数据库基础语句如下:

codeql database create <database> --language=<language-identifier> --command=<build> --source-root=/Users/vul-demo

<database> 用于存放构建的数据库文件。
--language 设置编译语言类型,支持C/C++、Java、Python、Go等语言。
--commmand 用于配置编译命令,不配置的话会使用默认的编译命令和参数。
--source-root 默认情况下假定当前目录是源文件的根目录,使用此选项可指定其他位置。

CodeQL分析数据库基础语句如下:

codeql database analyze <database> --format=<format> --output=<output>
<database> 指定要分析的 CodeQL 数据库的目录路径。
--format 指定分析过程中生成的结果文件的格式,支持CSV等格式。
--output 指定要保存结果文件的位置。

官方提供了CodeQL CLI的命令手册,更多命令可查看:https://docs.github.com/zh/code-security/codeql-cli/codeql-cli-manual

三、VS Code使用CodeQL

访问VS Code官网下载并安装对应版本。

下载地址:https://code.visualstudio.com/Download

在VS Code扩展中搜索CodeQL并点击安装。
image

安装成功后在CodeQL的扩展设置中配置一下CodeQL执行文件的路径。
image

VS Code使用CodeQL分析代码时,首先要为该项目选择数据库,支持一次选择多个数据库。CodeQL扩展提供了三种方式:本地(从 ZIP压缩包或文件夹)、公共 URL 或 GitHub上的项目。
image

要对所选数据库运行查询时,可以打开边栏上的“查询”视图,鼠标右击所需的查询然后单击运行即可。
image

CodeQL 扩展会对当前数据库运行查询,并在VS Code的右下角报告进度。 结果准备就绪后,它们将显示在 CodeQL“查询结果”视图中。


文章来源: https://www.freebuf.com/sectool/411467.html
如有侵权请联系:admin#unsafe.sh