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注入规则的编写造成了一定的误报。

转载于:https://www.cnblogs.com/SEC-fsq/p/8464271.html

checkmarx使用笔记、原理相关推荐

  1. Thrift 教程 开发 笔记 原理 资料 使用 范例 示例 应用

    在这里汇总一下:thrift版本差异和源码及jar包下载.文档,示例(脚本.代码.),白皮书,常见问题. 有很内容是重复的,给位看官自行过滤. 英文资料 API 使用介绍 原理简介(推荐阅读) 和 简 ...

  2. altium designer 学习笔记 原理图库(schematic library)设计与使用

    一,原理图库介绍 二,软件操作 1, 点击panels按键调出 sch library面板 2.画元件 放置引脚 在此面板可以添加所画的原理图库文件 点小眼睛可以隐藏引脚标号 Designator  ...

  3. HDS相关(一)之 HTTP Dynamic Streaming 学习笔记[原理篇]

    一.什么是HTTP Dynamic Streaming 使用传统的HTTP协议进行在线播放叫做"渐进下载",所有的视频内容从头到尾必须从服务器传输到客户端,用户只能在传输完的视频长 ...

  4. bum报文_Vxlan学习笔记——原理

    1. 为什么需要Vxlan 普通的VLAN数量只有4096个,无法满足大规模云计算IDC的需求,而IDC为何需求那么多VLAN呢,因为目前大部分IDC内部结构主要分为两种L2,L3.L2结构里面,所有 ...

  5. 数学之美-隐含马尔可夫模型-笔记

    <数学之美>吴军 著 第二版 --读书笔记 原理 通信模型: Created with Raphaël 2.1.2信息.上下文信息.上下文传递的信息传递的信息接收的信息接收的信息(s1,s ...

  6. 分水岭算法java,OpenCV 学习笔记 04 深度估计与分割——GrabCut算法与分水岭算法...

    1 使用普通摄像头进行深度估计 1.1 深度估计原理 这里会用到几何学中的极几何(Epipolar Geometry),它属于立体视觉(stereo vision)几何学,立体视觉是计算机视觉的一个分 ...

  7. Redis学习笔记①基础篇_Redis快速入门

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...

  8. word2vec需要去标点吗_word2vec学习笔记(应用篇)(金庸武侠)

    写在前面 本来是想写"实战篇"的,感觉实验语料库不大,就算是一个"应用篇"吧.选取了中文语料,主要简单介绍jieba分词的使用,以及Gemsim模块中Word2 ...

  9. 跨站脚本攻击 XSS原理

    个人对XSS攻击的笔记 原理:对可以控制传参的位置,比如url链接中,输入框中,首先闭合输出参数位置前后网页标签,在闭合的中间加上JavaScript代码或者其他的html标签,使得网页能够执行你添加 ...

最新文章

  1. 2013年10月1日C#随机数
  2. [转]Silverlight在调用wcf时传输数据过大返回Not Found的解决办法
  3. 张洋:浅析PageRank算法
  4. mac 安装Android sdk以便开展appium android自动化测试
  5. 关系型数据库的超键、候选键、主键
  6. linux安装mysql不成功怎么处理_Linux上安装MySQL时出现不兼容的解决办法
  7. python获取键盘事件_50-用Python监听鼠标和键盘事件
  8. 关于在asp.net中的调试
  9. 从零开始实现霍夫变换检测图像直线算法 python
  10. stl之map容器的原理及应用
  11. 国内银行卡BIN号速查简表
  12. 北京最最最牛逼的 IT 公司全在这了!
  13. 数字听力Numbers Listening
  14. [徐培成系列实战课程]-docker篇-前序
  15. SteamVR简介(Yanlz+Steam+VR+Unity+AR+MR+XR+=)
  16. 服务器如何备份系统和配置,windows server 2008和2012如何设置完整备份+增量备份
  17. 加州大学欧文分校计算机排名,美国加州大学伯克利分校计算机专业排名
  18. 风控决策引擎——决策流构建实战
  19. 8_gin日拱一足---异步和同步
  20. Xilinx FPGA bit文件和MCS下载流程

热门文章

  1. X200显卡驱动 花屏问题 解决方法
  2. python规范pep8_Python—PEP8规范
  3. 02.爬虫工具的使用
  4. whistle使用指南
  5. java打开密码pdf,在Java中使用密码解密PDF文档
  6. 游戏开发-丛林战争制作2
  7. 程序的江湖——各门派
  8. 界面的设计原则有哪些,你知道么?
  9. DM管理工具部分功能界面显示不全的解决方法
  10. 邮箱正则表达式 带分号