首页 > 其他分享 >CodeQL学习实践

CodeQL学习实践

时间:2023-06-14 19:11:43浏览次数:48  
标签:github CodeQL codeql -- 实践 学习 https 源代码

CodeQL简介

CodeQL是一个非商业的开源代码自动化审计工具,Github收购后,开源了CodeQL的规则部分,所以收集了大量的规则,安全工程师可以依赖CodeQL的规则实现对多种开发语言项目的代码审计工作

CodeQL原理

CodeQL将代码转化成可查询数据库,代码被视为数据,漏洞、bug、错误,被建模为可针对从代码中提取的数据库执行查询. Extractor 模块对源代码工程进行关键信息分析提取,构成一个关系数据库.对于编译型语言,Extractor 会监控编译过程,编译器每处理一个源代码文件,它都会收集源代码的相关信息,如语法信息、语意信息、控制流、数据流。对于解释性语言,Extractor 则直接分析源代码,得到类似的相关信息。分析后的数据导入CodeQL database.

CodeQL安装

解析引擎安装

https://github.com/github/codeql-cli-binaries/releases

下载

https://github.com/github/codeql-cli-binaries/releases/download/v2.13.3/codeql.zip

#Windows
加入系统path

  

#Linux
cd /usr/bin
sudo ln -s /root/Codeql/codeql/codeql codeql
source /etc/profile

  

SDK安装

git clone https://github.com/github/codeql.git

  

创建一个目录

codeql 和 sdk保存到该目录,可以重名为pl(这个很重要,要不然会出一些奇葩错误)

codeql配置环境变量

vscode安装codeql插件,配置好引擎路径

创建数据库

 

codeql database create d:\database\codeqltest --language=java --source-root=源码路径 --command="mvn clean install"

导入数据库

 

打开sdk的工作空间,创建test.ql,执行hello world,代表 CodeQL 开发环境和靶场数据库环境均成功准备完毕

 语法参考:

https://blog.csdn.net/weixin_39190897/article/details/128435897

标签:github,CodeQL,codeql,--,实践,学习,https,源代码
From: https://www.cnblogs.com/fczlm/p/17479508.html

相关文章

  • python装饰器函数学习笔记
    函数也是一个对象,并且这个对象可以被赋值给变量,所以,我们可以通过变量调用该函数defnow():...print('2015-3-25')...f=nowf()2015-3-25函数对象有一个__name__属性,可以拿到函数名字:now.name'now'f.name'now'现在如果我们要增强now()函数的功能,比如,在......
  • python返回函数学习笔记
    内部函数sum可以引用外部函数lazy_sum的参数和局部变量,当lazy_sum返回函数sum时,相关参数和变量都保存在返回的函数中,这种称为“闭包(Closure)”的程序结构拥有极大的威力deflazy_sum(*args):defsum():ax=0forninargs:ax=ax+nreturnaxreturn......
  • 简单易学的机器学习算法——K-Means++算法
    一、K-Means算法存在的问题由于K-Means算法的简单且易于实现,因此K-Means算法得到了很多的应用,但是从K-Means算法的过程中发现,K-Means算法中的聚类中心的个数k需要事先指定,这一点对于一些未知数据存在很大的局限性。其次,在利用K-Means算法进行聚类之前,需要初始化k个聚类中心,在上述的......
  • FFT 学习笔记
    首先就是中考这几天我们学校做考场,然后初二放假在家写作业。然后我就摸鱼来推之前不会的FFT的式子,推一推发现诶麻麻我懂了!麻麻我悟了麻麻!于是在放假第二天我写下了这样一篇学习笔记qwq多项式的系数表示和点值表示我们都知道,一个\(n\)项多项式,如果我们写成一个函数,就可以......
  • SpringSecurity6.0学习常见问题
    环境SpringSecurity6.1版本SpringBoot3.1版本常见问题oauth2客户端请求oauth授权端,响应401检查spring.security.oauth2.client.registration.login-client.client-secret的值很spring.security.oauth2.authorizationserver.client.login-client.registration.client-secret......
  • JavaScript学习笔记 - 语法篇 - 一句废话没有版
    写在前面:绝不废话!放心食用JavaScript语法很简单,可以直接在控制台调试理解目录1、变量和常量2、数据类型3、字符串3.1模板字符串3.2字符串的部分常用函数4、数组5、对象6、对象数组&&JSON7、if条件&&三目运算7.1if条件7.2三目运算8、switch9、循环9.0准备工作9.1......
  • python偏函数学习笔记
    Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partialfunction)比如,int函数默认十进制转换,若提供其它base参数,就可以进行n进制转换int('12345',base=8)5349int('12345',16)74565定义一个int2()的函数,默认把base=2传进去defint2(x,base=2):retu......
  • python高阶函数filter、sorted学习笔记
    filterPython内建的filter()函数用于过滤序列。和map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。e.g在一个list中,删掉偶数,只保留奇数,可以这么写:点击查看代码de......
  • python匿名函数学习笔记
    当我们在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。list(map(lambdax:x*x,[1,2,3,4,5,6,7,8,9]))[1,4,9,16,25,36,49,64,81]由此,匿名函数lambdax:x*x实际上就是:deff(x):returnx*x关键字lambda表示匿名函数,冒号前......
  • 腾讯云低延时直播系统架构设计与弱网优化实践
    “直播带货”可能是2020年最具代表性的词汇之一,那么传统电商该如何融合直播系统,直播过程如何保障用户的最佳观看体验?本文由腾讯云资深架构师何书照在LiveVideoStack线上分享中的内容整理而成,详解了大规模、低延时电商直播系统架构设计以及电商直播的难点、技术挑战与突破。 文/......