安装并使用checkmarx进行代码审计

安装并使用checkmarx进行代码审计


背景

在客户侧审计C++代码,本来前期交流已明确说明不做客户端代码审计,主要是没有太大的必要,浪费人力物力,并且对审计人员不太友好,进入现场实施发现客户极其不配合,而且盲目自信,对于这种客户我没有去说服他的勇气,只能按照他的意愿进行审计,审计正常开展,发现大量c++代码,这部分代码属于安卓客户端项目中底层的一些依赖组件,主要是安卓的native层,Native层这部分常见一些本地服务和一些链接库等。这一层的一个特点就是通过C和C++语言实现。比如我们现在要执行一个复杂运算,如果通过java代码去实现,那么效率会非常低,此时可以选择通过C或C++代码去实现,然后和我们上层的Java代码通信(这部分在android中称为jni机制)。又比如我们的设备需要运行,那么必然要和底层的硬件驱动交互,也要通过Native层。
对于native层代码的话,利用难度很高,而且没法通过一个native层的接口就能确定有安全风险,只能找一下是否存在危险函数,是否有一些逻辑问题,前期准备使用fortify sca辅助分析,但是fortify sca 分析C++代码需要将分析指令加到编译指令当中,修改安卓SDK的mmma命令,将fortify sca 扫描指令加到mmma函数中,通过运行,会出现各种问题,尝试各种办法后放弃了。目前只能用flawfinder,cppcheck检查一下了,整体效果很差经,这时候想到了checkmarx,尝试了一下还行,中规中矩。
本篇就是一片水文,看官酌情处理。

准备

从互联网上找到了checkmarx 8.7的按照包和激活工具,但是没有激活教程,网上也没找到,只能自己摸索着来,希望激活工具管用,百度云链接详见参考。

20201030-01
由于checkmarx耗费资源不少,使用内部的一台虚拟的windows server 2012来安装,由于某些杀软会删除checkmarx部分dll文件,需要先关闭杀软,我的这台内网服务器也没安装杀软,具体情况我也不清楚,官方安装文档中说明的,可详见Checkmarx安装说明文档8.7.pdf(该文档位于百度云压缩包中)

安装

首先解压CxSAST.870.Release.Setup_8.7.0.57.zip,获取CxSetup.exe,使用管理员权限运行该安装文件。
20201030-02
初次安装选择多合一安装就行,如果需要自定义安装,根据手册进行安装
20201030-03

基本上都是直接一路点击下一步,注意,如果有许可证书可以输入证书,如果没有证书,选择请求新许可证

20201030-04

点击安装,静静的等待吧,除了安装checkmarx还会安装Microsoft SQL Server 2012,如果电脑上已安装过 Sql server 2012要注意,使用高级安装进行自定义安装。
20201030-05
20201030-06
安装成功
20201030-07
桌面上会生成两个快捷方式
20201030-08

激活

这里只是个人使用,自己就是一个穷鬼,如果单位使用,强烈建议采用官方正版授权。
进入checkmarx的安装目录,我这里是 *** C:\Program Files\Checkmarx\ ***
将CheckMarx_Keygen.zip压缩包中的文件解压到 *** License Importer *** 目录下,双击运行KeyGen_Check.exe ,这里需要注意,默认授权有效期是当前时间,建议修改有效期为未来的时间,看个人喜好,授权单位随便写就行,点击生成许可,生成证书。
20201030-09
然后点击修补程序
20201030-10
如果提示写入文件出错,大概率是IIS,checkmarx进程在后台运行,使用任务管理器,强制关闭即可
20201030-12
20201030-11
20201030-13
替换成功后,退出即可
20201030-14

点击License Importer目录下的CxLicenseImporter.exe,导入刚才生成的证书。
20201030-15
导入成功后,启动相关服务
20201030-16
确保以下这几个服务已启动,如果未启动,手动启动,如果启动出现问题,可能是证书问题,请重新生成证书。

  • CxJobsManager
  • CxScansManager
  • CxSystemManager
  • CxScanEngine
  • IIS Admin Service
  • World Wide Web Publishing Service

使用

桌面上的Checkmarx Portal是checkmarx url的快捷方式,Checkmarx Audit是本地客户端,点击 Checkmarx Portal 配置checkmarx,需要等待片刻。首先进行配置管理员账号和密码,(首次登陆设置超级管理员的账号和密码,复杂度要求是要有大写小写字母数字以及标点符号,最少为9位),这个要求挺变态的。
20201030-17
设置完成以后,可以登录checkmarx
20201030-18

checkmarx 使用很友好,通过创建项目,上传扫描源代码压缩包,然后等待就可以了。
20201030-20
20201030-21
点击Finish按钮后,进入查询界面,自动开始扫描源代码,checkmarx Audit 的使用和此类似。
20201030-22
扫描结果可以通过扫描列表查看,点击预览,可以查看详细的扫描信息,操作比较友好,不懂的可以随便点点就行了,步步高点火机,那里不会点那里。
20201030-23
20201030-24

配置

主要是配置以下默认语言,其他按需配置,依次点击Management->Application Settings -> General,点击最下面的edit按钮进行编辑。
20201030-19

遇到的错误

我遇到的错误就是使用激活软件未修改授权有效期,只生成了当天的证书,当我第二天准备再试用一下,发现checkmarx多个进程无法启动,强制启动就会报错,相当尴尬,找了半天才发现是证书授权问题,好多时间被浪费了。

20220331 更新

有同学加我好友询问安装包解压密码,密码在《Checkmarx安装说明文档8.7.pdf》文档当中,checkmarx在互联网企业中使用的较多,博主从20年到现在,使用checkmarx比较少,并且尚未获取到最新的checkmarx安装版本,据某大厂的朋友说,由于checkmarx的规则一般,但是检测引擎集相关配套设施比较不错,他们自行在优化规则。

参考