Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

《深入理解CodeQL》Finding vulnerabilities with CodeQL.

NotificationsYou must be signed in to change notification settings

ASTTeam/CodeQL

Repository files navigation

CodeQL

本项目收集CodeQL相关内容,包括CodeQL的设计原理实现方法或使用CodeQL进行的漏洞挖掘案例等。其优点在于可以利用已知的漏洞信息来挖掘类似的漏洞,就像处理数据一样寻找漏洞。基于语义的代码分析思想在SAST领域更将会是一把利剑,这种思想更是下一代代码审计工具的发展方向。但CodeQL往往更适合开发人员对自己项目的漏洞自检,在某些环节处理上还存在较大问题,技术瓶颈有待提高。作者:0e0w

本项目创建于2021年12月13日,最近的一次更新时间为2023年11月21日。

01-CodeQL资源

本章节收集整理CodeQL的相关资源内容,文章内容质量参差不齐,建议深入学习官方资源!

一、官方资源

二、优秀资源

三、视频资源

四、学术刊物

五、其他资源

02-CodeQL基础

本章节介绍CodeQL的基础用法及设计思路实现原理等!

  • AST、source、sink、
  • CodeQL的处理对象并不是源码本身,而是中间生成的AST结构数据库,所以我们先需要把我们的项目源码转换成CodeQL能够识别的CodeDatabase。
  • 1、创建数据库。2、对数据库进行查找。3、分析查询结果发现漏洞
  • Engine、Database、Queries
  • AutoBuilder、extractor、trap、逻辑谓词、连接词、逻辑连接词、predicate
  • CodeQL的缺点?不能直接通过打包好的程序进行代码审计。

一、CodeQL安装

二、CodeQL语法

三、CodeQL数据库

  • https://github.com/waderwu/extractor-java
  • https://lgtm.com/help/lgtm/generate-database
  • 生成数据库之前,需要先保证被分析程序可以正常跑起来。
  • 创建数据库
    • codeql database create java-db --language=java
    • codeql database create java-db --language=java --command='mvn clean install'
    • codeql database create cpp-database --language=cpp --command=make
    • codeql database create csharp-database --language=csharp --command='dotnet build /t:rebuild
    • codeql database create csharp-database --language=csharp --command='dotnet build /p:UseSharedCompilation=false /t:rebuild'
    • codeql database create java-database --language=java --command='gradle clean test'
    • codeql database create java-database --language=java --command='mvn clean install'
    • codeql database create java-database --language=java --command='ant -f build.xml'
    • codeql database create new-database --language=java --command='./scripts/build.sh'
  • 分析数据库
    • codeql database analyze java-db CWE-020.ql --format=csv --output=result.csv

03-CodeQL语言

本章节介绍QL语言的语法规则,包括优秀规则等内容。CodeQL为王,规则为先!

一、基础语法

二、规则编写

  • Java
  • C#
  • Go

三、官方规则

四、优秀规则

04-CodeQL进阶

本章节是针对不同的开发语言进行CodeQL扫描的例子,本章节待整理。

一、Java安全分析

二、C#安全分析

三、Golang安全分析

四、Python

五、C++安全分析

六、Ruby

七、CodeQL工具

05-CodeQL案例

本章节介绍CodeQL的具体使用案例,包括自己通过CodeQL挖掘的漏洞等内容。

一、大型应用分析

二、代码审计案例

06-CodeQL参考

Stargazers

Stargazers @ASTTeam/CodeQL

Forkers

Forkers @ASTTeam/CodeQL

Stargazers over time

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp