您好,欢迎来到暴趣科技网。
搜索
您的当前位置:首页checkmarx使用笔记、原理

checkmarx使用笔记、原理

来源:暴趣科技网
checkmarx使⽤笔记、原理

checkmarks是⼀款商业的代码静态分析⼯具,和pmd类似的地⽅是他分析的是java⽂件,⽽⾮class⽂件。checkmarks使⽤ .net开发,必须安装在windows上,它的规则也是类似.net语⾔的语法。checkmarks 的⼯作机制⼤概如下:

1、创建任务时可以通过git、svn、或者上传代码打包。2、checkmarks会将代码进⾏语法树解析。

3、然后分析代码中的数据流,并将整个代码中的数据流存储到sql server数据库中,可以理解成⼀张庞⼤的数据流⽹,这个分析⽐较吃内存。

4、然后匹配规则,checkmarx⾃带了各种规则,也可以⾃⼰编写规则。规则也叫query,顾名思义就是从整个数据流⽹中查找我们关⼼的数据流。⽐如数据流的起点是request.getparameter(\"url\")的调⽤,终点是 httpClient.exec,这样我们来判断是否存在ssrf漏洞。

⾃定义规则:

checkmarks的规则就是⼀个⼀个的查询,这个查询定义了如何从数据流⽹中找到我们关⼼的数据流。

checkmarks内置了⼤量的函数,100多个吧,我们利⽤这种函数找到我们关⼼的数据流的起点,终点。当然也可以的定义过滤点,⽐如某个安全API的调⽤作为⼀个过滤点,过滤掉已经修复了安全问题的数据流。

不⾜之处:

⽬前checkmarks的问题还是⽐较多的,虽然⽀持了各类的语⾔,常见语⾔基本都⽀持java、php、go等等,但是默认的规则基本上实⽤性⽐较差,需要花很多时间去⾃⼰编写规则。

⽬前不⽀持模块引擎语⾔,⽐如velocity、freemarker、thymeleaf等的分析

对前后端分离的项⽬分析⽆法⽀持,⽐如后端spring mvc,前端vue就⽆法关联分析了。也不⽀持 vue、react等框架⽂件的分析。其实实际代码审计关联分析java、xml、vue等⽂件类型,⽬前cheackmarx不会做这样的分析。这两条对xss这样的规则编写造成了很⼤的困扰。checkmarks封装的⽐较死,写规则时有时候让⼈琢磨不透,没法做定制开发,不够灵活。

对spring这种依赖注⼊的情况,数据流经常是不完整的,注⼊的接⼝类没有实际逻辑就会断,其实数据流是⾛到了接⼝的实现类,checkmarx并不会分析实际注⼊了哪个实现类并进⾏数据流跟踪。会造成⼀定的漏报。

对⼀些orm框架也没法做数据流分析,⽐如mybatis、spring data jpa等,实际执⾏sql操作的类都是运⾏时产⽣的,⽐如mapper接⼝实现类,checkmarx不会根据这些框架的实际情况进⾏分析。这对sql注⼊规则的编写造成了⼀定的误报。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baoquwan.com 版权所有 湘ICP备2024080961号-7

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务