前面几期介绍了Fortify及Checkmarx的使用,本期介绍另一款代码审计工具Coverity的使用,Coverity可以审计c、c++、Java等代码,使用起来非常麻烦,相比于Fortify和Checkmarx,Coverity对于代码审计工作最大的遗憾就是,Coverity要求代码完美编译(不知道有没有网友可以解决这个缺憾),而我们在日常的工作中,不太可能拿到可以完美编译的源代码,因此我不常用这个工具,这大概也是Coverity在国内使用量不如Fortify和Checkmarx的原因吧。
求助:哪位朋友有Codesecure、Klockwork、IBM Security AppScan Source的破解版或者是试用版,方便的话发我试用一下,保证不外传,保证不用于商业目的,Thanks♪(・ω・)ノ
客户端使用过程
Coverity安装完成之后,双击桌面的快捷方式cov-wizard.exe可以打开一个gui界面,建议初学者可以先通过gui界面入手,熟悉之后,再从非常复杂的命令行使用入手。
首先新建一个项目名“project111”:
接下来开始配置Coverity代码审计的各项参数:
1 “工作目录”,指定你想要进行代码审计的Java代码文件夹。
2 “中间目录”,指定输出扫描结果的文件夹,为以后生成代码审计报告做准备。
3 “构建设置”,指定Java代码的编译方法。
命令行构建对于java可以用多种方法,我列举两种亲测可用的编译方法:
1. 清除:mvn clean , 构建:mvn package
2. 清除:ant clean , 构建:ant
接下来点击“下一步”,勾选相应的扫描规则,也可以按照默认勾选。
点击“高级分析选项”,可以设置“最大工作内存(MB)”,同时可以手工设置“攻击性级别”。
接下来点击“运行分析”,即可开始代码审计工作了。
点击“控制台”按钮,可以看到代码扫描的整个过程。
如下图所示,是“mvn clean”过程。
如下图所示,Coverity开始为代码分析做准备。
如下图所示,展示了各种Web漏洞对应的扫描结果。
接下来点击“中间目录详情”,可以看到代码审计结果的概况。
客户端的完成代码扫描之后,可以将扫描结果上传到Coverity的Web端,Coverity默认的http端口是8080,https端口是8443,我们可以输入在安装过程中设置的用户名及密码进行登录。
登录成功之后会显示以下Web界面。
在“配置-项目和数据流”界面下,新建一个“数据流”,名字起为“111111”,后续可以将代码审计结果放在此“数据流”下展示。
访问如下网址,点击“创建并下载”可以生成一个auth-key.txt文件,这个文件是需要提供给客户端程序cov-analysis.exe来使用的。
https://win-iccdc05mgj6:8443/authentication-keys
在客户端程序“Coverity Wizard”界面下,在“验证秘钥文件”处导入auth-key.txt文件,点击“测试连接”,提示“已成功连接”,说明我们的配置没问题。
接下来选择“提交到数据流”的“111111”名称,然后点击“提交缺陷”,即可将扫描结果上传到Web界面进行展示。
非常遗憾的是,之前我测试时,Web界面的使用都是可以成功的,但是现在始终显示“[ERROR] The server's certificate is not yet valid. It will become valid on 2022-12-23 06:58:26 UTC.”这个错误,如果您有解决办法,请后台留言告诉我,Thanks。正常不出错的话,代码审计结果会这样展示:
为了查看扫描报告,最后通过导出html报告的方法,在本地浏览器中,查看最终的代码审计结果报告。
1 如下图所示,这是SQL注入漏洞的结果展示。
2 如下图所示,这是Xpath注入漏洞的结果展示。
3 如下图所示,这是XSS代码漏洞的结果展示。
Part3 总结
1. 国内很多研究者,更喜欢使用Coverity进行C及C++的代码审计,它的功能很强大,就是使用起来非常麻烦,需要大家仔细研读使用说明书。
2. 大家有新版的Coverity程序,方便的话可以发我一个研究下。
3. Help: Which friend has a cracked or trial version of Codesecure, Klockwork, and IBM Security AppScan Source? If it's convenient, send it to me for trial, and I guarantee that it will not be used for commercial purposes。Thanks♪(・ω・)ノ。Contact me by e-mail : 0day123abc#gmail.com(replace # with @)。
专注于网络安全技术分享,包括红队攻防、蓝队分析、渗透测试、代码审计等
每周一篇,99%原创,敬请关注
Contact me by e-mail : 0day123abc#gmail.com(replace # with @)