首页 > 其他分享 >checkmarx笔记

checkmarx笔记

时间:2023-01-03 13:55:21浏览次数:173  
标签:笔记 disabled start && sc checkmarx config

 checkmarx的安装使用笔记

1.重启后启动或禁用checkmarx

1.1)如果是专用的代码扫描服务器可以不用管下面的命令

相关服务全部启用,重启生效
sc config MSSQL$SQLEXPRESS            start= auto      
sc config SQLTELEMETRY$SQLEXPRESS     start= auto 
sc config SQLWriter                   start= auto 
sc config CxEngineService             start= auto 
sc config CxJobsManager               start= auto 
sc config CxSastResults               start= auto 
sc config CxScansManager              start= auto 
sc config CxSystemManager             start= auto 
sc config ActiveMQ                    start= auto 
sc config iisadmin                    start= auto 
sc config w3svc                       start= auto 

相关服务全部禁用,重启生效
sc config MSSQL$SQLEXPRESS            start= disabled 
sc config SQLTELEMETRY$SQLEXPRESS     start= disabled 
sc config SQLWriter                   start= disabled 
sc config CxEngineService             start= disabled 
sc config CxJobsManager               start= disabled 
sc config CxSastResults               start= disabled 
sc config CxScansManager              start= disabled 
sc config CxSystemManager             start= disabled 
sc config ActiveMQ                    start= disabled 
sc config iisadmin                    start= disabled 
sc config w3svc                       start= disabled 

1.2)重启所有cm相关的服务

sc stop CxEngineService && sc stop CxJobsManager && sc stop CxSastResults && sc stop CxScansManager && sc stop CxSystemManager && sc stop CxServicesAvailability && sc stop ActiveMQ && sc start CxEngineService && sc start CxJobsManager && sc start CxSastResults && sc start CxScansManager && sc start CxSystemManager && sc start CxServicesAvailability && sc start ActiveMQ

1.3)如果是代码专用服务器,可以服务器名称改为checkmarx,并在内网域控dns上设置解析策略到对应的ip

1.4)域名访问也可以使用9.4开始内置的工具 CxPostInstall.exe 设置访问地址

需要使用超级管理员启动,比如我们要设置 aaa.cn 访问checkmarx

参照下图的配置,左边是hosts文件,注意ip配置和右边工具的配置需要对应

 

 

注意:每次调整url后,访问都需要清理浏览器的缓存

 

2.安装数据库的坑

2.1)装在windows上时,mssql如果是集成登录会提示失败,如下图

我们需要在mssql新建用户

输入NETWORK SERVICE如下图并点击检查名称

并增加数据库权限

2.2)安装时需要注意将数据库装在linux上,可以避免很多报错(确实找不到为什么,装在linux上就很顺利)

# 启动一个名为 SqlServer2019 端口为1433并只能本地访问的mssql 2019 , 登录密码需要自己改一改
docker run --restart=always -e "ACCEPT_EULA=Y" -e "MSSQL_PID=HMWJ3-KY3J2-NMVD7-KG4JR-X2G8G" -e 'SA_PASSWORD=强口令' --name SqlServer2019 -p 127.0.0.1:1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest

# 查看启动好的 mssql2019的网络信息
docker inspect SqlServer2019

如上图所示,通过命令查看网络信息可知 172.17.0.2 为容器的ip地址

# 利用以下两条防火墙命令,保证只有白名单ip:172.30.81.11 才能访问本地容器172.17.0.2的mssql数据库端口
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.30.81.11 forward-port port=1445 protocol=tcp to-port=1433 to-addr=172.17.0.2'
firewall-cmd --reload

2.3)不要用中文姓名作为对接ldap的用户名,否则会间歇性报错

2.4)如果checkmarx安装后iis异常,应卸载下图中两个服务后重启电脑

重启后安装以下服务,iis就正常了

 

3.安装所有补丁之后再执行破解补丁,破解后checkmarx会检测到被破解并将证书销毁,应利用以下命令让授权文件变成只读,防止被销毁

cacls "C:\Program Files\Checkmarx\Licenses\license.cxl" /t /p everyone:r

必须要看到处理的文件几个字,才算成功

 

4.默认checkmarx不会自动加载git.exe

点击基本设置

点击编辑,如果这个页面什么内容都没有必须多刷新几次,等出现数据后再去点击编辑

输入git.exe的绝对路径

最后点击更新

 

5.git忽略ssl证书

必须设置操作系统环境变量

set GIT_SSL_NO_VERIFY=true

 

6.idea集成checkmarx

官网参考: 

https://checkmarx.atlassian.net/wiki/spaces/SD/pages/1339162909/IntelliJ+Plugin

 

6.1)首先打开官网的插件下载地址    https://checkmarx.com/plugins/

下载整个文件包

6.2)安装插件包

在idea中打开一个项目比如webgoat,然后把文件包拖拽到代码区域,idea会自动安装并提示重启idea

当然也可以直接搜索安装,没有特殊上网速度非常慢,安装成功后如下图

6.3)输入并保存checkmarx的网页地址

6.4)右键点击工程名,点击开始扫描

 

6.5)我们就能直接在ide中看扫描结果了,使用体验和产品web页面一致

 

7.sonarqube集成checkmarx

官网参考: 

https://checkmarx.atlassian.net/wiki/spaces/SD/pages/1339392378/Setting+Up+the+SonarQube+Plugin

搭建sonarqube和checkmarx就不废话了

下载地址: https://checkmarx.com/plugins/

checkmarx的sonarqube插件在写文章的时候只支持8.9

7.1)在第一次启动sonarqube前,我们要把插件放到插件目录中

7.2)之后配置Quality Profiles

7.3)如下配置

7.4)配置策略

点击Repository后选中所需要的checkmarx规则库再点击Bulk Change(我们这里演示的是java)

选择到我们创建的配置中

7.5)把我们创建的CxSonarQube设置为默认扫描配置

7.6)对项目启动一次soanrqube的扫描,在项目的settings中选择checkmarx,并展开配置

7.7)之后使用sonarqube的扫描可以看到扫描的结果

 

8.checkmarx的代码审计策略

8.1)打开Checkmarx Audit

8.2)点击新建本地项目

8.3)如图进行配置并点击scan开始扫描

比如我们只扫描java,就按照下图这样配置再点击scan

8.4)第一次会跑出所有的结果

我们可以把clear All Result清空所有的结果

8.5)在java_general中我们可以找到基础函数

比如Find_Controllers中,checkmarx可以检索出所有的Controller

或者Find_Spring_Inputs可以获得所有的spring的输入值

8.6)右键策略就能执行扫描

并在resultes中看到匹配的结果

8.7)在Checkmarx Audit的同目录下可以看到api的pdf文件

8.8)定制策略

例如sql注入,我们通过解析层层分析SQL_Injection发现策略中包括了jsf、st2等老框架的策略

从以下源码中可以看出,先获取交互式输入并保存到inputs,之后查找输入到sql的输入点,当source流入到sink时,通过函数判断数据流中是否有净化函数

# Find_SQL_Injection源码

CxList inputs = Find_Interactive_Inputs();
CxList db = Find_SQL_DB_In();

CxList sanitized = Find_SQL_Sanitize();

result = inputs.InfluencingOnAndNotSanitized(db, sanitized);

以下为函数逐渐层层递进找到输入数据流入sql数据库的地方

又比如层层找到checkmarx怎么找到controller的地方

我们可以通过层层代码分析在CxDefaultQuery写入我们要执行的扫描逻辑

点击右键执行,验证我们的扫描策略

最终,通过代码开发框架约束和代码规约,执行快速而又精准的代码扫描

 

谢谢

标签:笔记,disabled,start,&&,sc,checkmarx,config
From: https://www.cnblogs.com/k4n5ha0/p/17021867.html

相关文章