【SDL实践指南】代码审计之CheckMarx

基本介绍

Checkmarx CxEnterprise(Checkmarx CxSuite)是以色列由的一家高科技软件公司Checkmarx发行的一款源代码安全扫描软件,该软件可用于识别、跟踪和修复源代码中技术上和逻辑上的缺陷,比如:软件安全漏洞、质量缺陷问题和业务逻辑问题等

产品架构

Checkmarx CxEnterprise(Checkmarx CxSuite)产品架构如下:

产品组件

  • CxScanEngine:CxScanEngine安装在指定的服务器上,引擎服务负责扫描和查询扫描任务

  • CxClient:轻量级的客户端组件,安装在客户端的机子上,CxClient通过WCF与CxManager通信

  • CxManager:CxManager安装在指定的服务器上,负责管理用户、项目、扫描任务等CxManager与CxScanEngine通信

  • CxPortal Web Service:Web services用于公司局域网或者外部网络采用web browser或者IDE开发插件使用扫描服务

  • Web浏览器/Eclipse/Visual Studio Plugin:CxPortal客户端,用于公司局域网或者外部Internet网络用户采用web browser或者IDE开发插件使用扫描服务管理扫描结果

扫描原理

Checkmarx CxEnterprise(Checkmarx CxSuite)静态源代码扫描原理:

软件使用

客户端扫描

Step 1:点击桌面上的"Checkmarx Audit"启动客户端并输入用户名密码进行登录

Step 2:点击"New Local Project"按钮选择需要进行代码扫描的JAVA代码的文件夹(记得要有附带完整的jar包,否则Checkmarx编译不成功)

Step 3:点击"Count"可以查看待扫码的代码行数,便于评估代码审计的工作量

Step 4:如果您要手工选择进行代码审计时使用的规则库,那么可以勾选"Select Queries Before Loading Project"选项

Step 5:点击"Scan"加载资源并选择要使用的代码规则库,这里我们扫描的代码是JAVA所以只需要勾选JAVA即可

Step 6:之后开始进行扫描

Step 7:完成扫描后我们可以看到类似下面的扫描结果

为了便于查看扫描到的有效漏洞,我们可以勾选这里的"Hide Empty"将没有漏洞的结果项隐藏掉

Step 8:之后点击Results中的扫描项查看结果,在中间的栏目中可以看到扫描出的漏洞点有几处,在右侧的PATH中会展示参数的整个传递跟踪过程

点击PATH中的节点会跳转到对应的代码点

Step 9:导出结果

导出结果如下,总体感觉不是很友好~

Web端扫描

Step 1;点击桌面的快捷方式"Checkmarx Portal"打开Web操作界面

Step 2:填写表单进行登录

Step 3:新建扫描项目

Step 2:上传java源码压缩包(注意:支持源代码控制系统和拉取源码)

Step 3:开始进行扫描

Step 4:扫描完成后可以看到当前项目的整体漏洞分布情况,包括发现了多少高危漏洞,多少中低危漏洞等

查看扫描总结:

打开查看器查看:

此时左下角为扫描结果,最下方为漏洞扫描的结果条目,通过查阅上下条目可以再上方的框中看到定位的问题代码,同时在右侧可以看到参数的整个传递过程,便于审计人员确定问题是否存在

Checkmarx提供了一个非常好的功能就是我们可以再左下角的扫描结果中选择高、中、低类型,之后选择下方的"图形"界面,之后在图形界面中可以看到Web漏洞触发流程的交集点,此时修复漏洞可以从交集点处直接进行修复,修复一处可疑解决N多处

Step 5:导出报告

扫描规则

查询规则查看器:

规则集管理器:

猜你喜欢

转载自blog.csdn.net/Fly_hps/article/details/129789595