codeql php,用codeql来处理静态代码扫描

根据codeql的lisence,好像的确禁止使用于工业化的生产以及商业用途。随着改革开放的深化,知识产权的加强。大家千万不要碰资本家的蛋糕,以下内容均为研究学习之用,学会了以后我要买正版的,微软爸爸!

扫描设计

需要git clone代码,且支持更新

需要使用codeql create databasecodeql –language=java且执行codeql analyse ,如果代码更新了还要codeql database upgrade

解析codeql结果重新整理结果发送到soc平台

其他就自己改改需求 自己定时扫描 更新结果 如果开发修复了那就最好自己扫描 然后识别 重置漏洞状态

Codeql主要精力应该放在规则上,优化好规则 基本上可以杜绝大部分的安全问题。

首先我们来看sql注入这个话题,之前我看了findbugs pmd啥的,发现都不行,findbugs差一点,对于一些map数据类型的,findbugs好像就无能为力,故误报率很高,而且不支持发现整个调用栈。但是codeql有个DataFlow,就是数据流的功能,也就是平常我们看到的CFG的二次加工,形成图数据库。

Code

ql的规则就比较头疼了,文档也不是很全,只有一个使用的手册。手册的英文也让我头疼,比如“a Expr response to a node”是啥鸟意思?经过我一部分的摸索。大概知道一些东西,比如“方法”在java里是Method method,而在python里是Call…

首先简单的来说,这个codeql分几个常用的模块,标准 Java 库中最重要的类可以分为五大类:

1. 表示程序元素的类(如类和方法) class method

2. 表示AST节点的类(如语句和表达式) smtm expr

3. 用于表示元数据的类(如注释和注释)

4. 计算度量的类(例如圈复杂度和耦合)

5. 用于导航程序调用图的类

主要还是class method constructor Type variable smtmexpr这些。这些类的子类和方法在官方的手册上有,一般用的多的都是getMethodName,getxxx之类的,

最常用的还是smtm,即用到抽象语法树。

至于怎么写规则,我也不知道,知道了也不写出来。就不分享技术!不然怎么涨工资?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值