Git Product home page Git Product logo

codeql's Introduction

《深入理解CodeQL》

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

codeql's People

Contributors

0e0w avatar tonghuaroot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codeql's Issues

WeChat group QR code expired

2022年11月9日 11:46:39,想找个能讨论codeql的地方,麻烦大哥更新个二维码,谢谢了!

WeChat Group QrCode Expired

您好,readme 上的二维码已经过期了,麻烦你更新一下,或者你给我微信号我添加你,拉我进群谢谢。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.