查看原文
其他

第39篇:Coverity代码审计/代码扫描工具的使用教程

abc123info ABC123安全研究实验室 2023-02-12

 Part1 前言 

前面几期介绍了Fortify及Checkmarx的使用,本期介绍另一款代码审计工具Coverity的使用,Coverity可以审计c、c++、Java等代码,使用起来非常麻烦,相比于Fortify和Checkmarx,Coverity对于代码审计工作最大的遗憾就是,Coverity要求代码完美编译(不知道有没有网友可以解决这个缺憾),而我们在日常的工作中,不太可能拿到可以完美编译的源代码,因此我不常用这个工具,这大概也是Coverity在国内使用量不如Fortify和Checkmarx的原因吧。

求助:哪位朋友有Codesecure、Klockwork、IBM Security AppScan Source的破解版或者是试用版,方便的话发我试用一下,保证不外传,保证不用于商业目的,Thanks♪(・ω・)ノ


 Part2 审计Java代码过程 

  • 客户端使用过程

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漏洞对应的扫描结果。


接下来点击“中间目录详情”,可以看到代码审计结果的概况。


  • 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 @)

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存