codeql自动化漏洞检测入门

2024-09-20 78 0

Codeql简介

codeql是一个可以对代码进行分析的引擎, 安全人员可以用它作为挖洞的辅助或者直接进行挖掘漏洞,节省进行重复操作的精力。

Codeql组成

Codeql主要由两个部分组成,解析引擎和SDK

解析引擎:用来解析我们编写的规则,本身不开源,可以直接在官网下载二进制文件使用

SDK:包含大部分现成的漏洞规则,可以利用其编写自定义规则。完全开源

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

SDK下载地址:https://github.com/Semmle/ql

CodeQL的使用协议里禁止在企业的CI/CD里部署

安装过程

新建一个codeql文件夹,并且从官网下载引擎以及SDK

引擎下载:https://github.com/github/codeql-cli-binaries/releases

SDK下载:git clone https://github.com/Semmle/ql

codesql文档:https://codeql.github.com/docs/

下载以后在codeql目录中有两个文件夹

codeql自动化漏洞检测入门插图

设置codeql引擎的环境变量

codeql自动化漏洞检测入门插图1

另外,我们可以在该目录下新建databases目录,用于存在codeql生成的数据库。

codeql自动化漏洞检测入门插图2

上面安装完成了引擎和SDK,下面我们需要安装一个vscode插件,以便我们可以方便的使用。

codeql自动化漏洞检测入门插图3

配置引擎路径

codeql自动化漏洞检测入门插图4

先来大致看一下这个插件

包含了四个部分:

1)导入数据库:使用首先要导入一个codeql生成的数据库

2)VARIANT ANALYSIT REPOSITORIES:暂时不知道作用

3)query history:查询历史

4)AST VIEWER:可以查看生成的AST内容

codeql自动化漏洞检测入门插图5

简单使用过程

codeql自动化漏洞检测入门插图6

首先使用命令通过codeql引擎生成可以别ql查询的数据库,然后编写ql查询语句查询数据库,根据设置的规则判断是否存在漏洞。

1.生成数据库

CodeQL的处理对象并不是源码本身,而是中间生成的AST结构数据库,所以我们先需要把我们的项目源码转换成CodeQL能够识别的CodeDatabase。

我使用了java漏洞靶场来生成数据库。

codeql database create E:\codeql\databases\hellojavasec-database --language=java --command="mvn clean install --file pom.xml" --source-root=E:\java靶场\Hello-Java-Sec-master --overwrite

codeql自动化漏洞检测入门插图7

没有报错,则生成了AST数据库

codeql自动化漏洞检测入门插图8

将数据库导入VScode中

codeql自动化漏洞检测入门插图9

接下来,就可以编写查询语句进行查询了

codeql语法基础

AST语法树

要想学习codeql必须了解AST语法树,这个是学习的基础。

CodeQL是识别不了源码本身的,而是通过CodeQL引擎把源码转换成CodeQL可识别的AST结构数据库,所以想要真正理解CodeQL原理,要学会看懂分析AST抽象语法树。

codeql自动化漏洞检测入门插图10


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论