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

admin 2023年3月21日13:34:00评论138 views字数 1555阅读5分11秒阅读模式

基本介绍

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

产品架构

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

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

产品组件

  • 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开发插件使用扫描服务管理扫描结果


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

扫描原理

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

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

软件使用

客户端扫描

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

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

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

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

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

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

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

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

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

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

Step 6:之后开始进行扫描

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

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

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

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

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

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

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

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

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

Step 9:导出结果

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

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

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

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

Web端扫描

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

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

Step 2:填写表单进行登录

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

Step 3:新建扫描项目

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

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

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

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

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

Step 3:开始进行扫描

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

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

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

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

查看扫描总结:

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

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

打开查看器查看:

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

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

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

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

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

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

Step 5:导出报告

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

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

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

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

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

扫描规则

查询规则查看器:

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

规则集管理器:

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

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

原文始发于微信公众号(七芒星实验室):【SDL实践指南】代码审计之CheckMarx

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月21日13:34:00
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【SDL实践指南】代码审计之CheckMarxhttp://cn-sec.com/archives/1618939.html

发表评论

匿名网友 填写信息