Skip to content

Navigation Menu

Sign in
Appearance settings

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
Appearance settings
forked from ASTTeam/CodeQL

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

Notifications You must be signed in to change notification settings

419066074/CodeQL

Repository files navigation

《深入理解CodeQL》

本项目收集整理CodeQL相关内容,包括CodeQL的设计原理实现方法或使用CodeQL进行的漏洞挖掘案例等。CodeQL基于语义的代码分析思想在SAST领域将会是一把利剑,CodeQL是下一代代码审计工具。可以通过CodeQL利用已知的漏洞信息来挖掘类似的漏洞,就像处理数据一样寻找漏洞。作者:0e0w

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

01-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://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高级进阶

一、Java安全分析

二、C#安全分析

三、Golang安全分析

四、Python

五、C++安全分析

六、Ruby

04-CodeQL规则工具

一、CodeQL规则

二、CodeQL工具

05-CodeQL使用案例

一、大型应用分析

二、代码审计案例

06-CodeQL参考资源

Stargazers over time

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

AltStyle によって変換されたページ (->オリジナル) /