10分钟实现CodeQL自动化扫描

admin 2023年2月16日20:46:07评论79 views字数 1607阅读5分21秒阅读模式

前言

以前对代码进行白盒的时候是通过代码审计平台进行扫描的,随着CodeQL的普及,越来越多的人接触到了他,本文以CI/CD的流程为例,作研究分享。

官方文档《CodeQL CLI 入门》:https://codeql.github.com/docs/codeql-cli/getting-started-with-the-codeql-cli/

基础入门

为了省略本文的篇幅,如果你是没接触过CodeQL或者想在复习一下,简单的想走个流程,可以直接看我这篇科普文。

Codeql :https://wiki.freebuf.com/detail?tribal_id=45&camp_id=122&entry_id=18908

这是我根据苹果M1系统电脑写的超详细指南,其他系统的话基本也差不多。

CI/CD

工作流

那么进入正题,想把扫描流程接入自己的CI怎么做。

官方文档《在 CI 系统中安装 CodeQL CLI》:https://docs.github.com/en/code-security/code-scanning/using-codeql-code-scanning-with-your-existing-ci-system/installing-codeql-cli-in-your-ci-system

我这里本地的研究环境不一样,这里简单通过工作流来实现一个扫描流程。官方提供下面的命令

$ wget https://github.com/github/codeql-action/releases/latest/download/codeql-bundle-linux64.tar.gz
$ tar -xvzf ./codeql-bundle-linux64.tar.gz

这里有2个问题。

  1. 国内直接访问github速度真的很慢。
  2. 这安装包好大。
第一个问题

第一个问题,使用github镜像地址

https://gh.api.99988866.xyz

wget https://gh.api.99988866.xyz/https://github.com/github/codeql-action/releases/latest/download/codeql-bundle-linux64.tar.gz

速度对比:10分钟实现CodeQL自动化扫描

第二个问题

为了更快,我们可以提前下载到某个工作流直接调用的地方。我这里的环境刚好提供了源码存放的地址,所以就直接本地传上去了。顺便第一个问题,也可以用这个思路来解决。10分钟实现CodeQL自动化扫描

扫描逻辑

我这里测试的java代码,所以逻辑就是 create数据库 ----》 使用QL规则scan ---》 output扫描结果 代码如下:

cd /root/workspace/codeql
chmod 777 codeql
./codeql database create /root/workspace/ql/db --language="java" --command="mvn clean install --file pom.xml" --source-root=/root/workspace/sdl_server  --overwrite
./codeql database analyze /root/workspace/ql/db /root/workspace/ql/java/ql/src/codeql-suites/java-security-and-quality.qls --format=sarifv2.1.0 --output=1.sarif
echo "本次CodeQL扫描到的漏洞"
cat 1.sarif | jq "[{vuln:.runs[].results[].rule.id}]"
10分钟实现CodeQL自动化扫描
效果
10分钟实现CodeQL自动化扫描

后记

顺便建了一个微信群,欢迎大家学习交流 公众号回复:codeql 获取进群链接10分钟实现CodeQL自动化扫描


原文始发于微信公众号(白帽子飙车路):10分钟实现CodeQL自动化扫描

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月16日20:46:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   10分钟实现CodeQL自动化扫描http://cn-sec.com/archives/1283267.html

发表评论

匿名网友 填写信息