Coverity 对源代码进行静态分析,识别可能存在的缺陷和漏洞,并在Polaris 平台上的 Coverity中存储和管理 。
Coverity 是什么?
Coverity 是一种静态分析解决方案,它通过分析源代码来识别以下类型的问题,从而可以在开发生命周期的早期解决软件问题:
软件质量和安全问题
违反通用编码标准
静态分析解决方案
静态分析在不执行源代码的情况下对其进行测试,并发现安全漏洞。作为一种测试方法,静态分析具有以下优点:
只要有一个函数可以解析,您就可以测试代码,而无需可构建或可运行的系统来进行分析。静态分析可让您在问题嵌入到代码中并需要昂贵的修复或解决方法之前纠正问题。
您需要测试代码中尽可能多的路径。随着应用程序变得越来越大,使用动态测试方法实现测试覆盖率的成本越来越高,计算量也越来越大。Coverity 可以测试代码中的所有路径,尤其是那些极难手动测试的路径,例如仅在硬件故障时才会触发的错误条件。
它是确定性的:分析相同的代码库会产生相同的结果。
它能够非常快速地分析大型代码库。Coverity 使用专为大型应用程序而设计的算法。
检查器:Coverity 如何工作
代码分析由一组称为检查器的程序完成,它们是静态分析的步兵。每个检查器都会查找特定类型的问题,这些问题可能简单也可能复杂。简单的检查器可能会标记缺少的 break 语句或发现错误的比较。更复杂的检查器可能会发现易受跨站点脚本攻击的代码或未受授权检查保护的方法调用。可能存在许多类别的问题,其中包括:
内存损坏
资源泄漏
NULL 对象或指针取消引用
线程并发
Web 应用程序安全漏洞
未充分测试的行、文件和函数
Coverity 使用数百个检查器来扫描多种语言。(有关详细的语言支持信息,请参阅与您的 Coverity 版本相关的 Coverity on Polaris 支持页面。它包括每种语言支持的捕获方法和编译器。)
Coverity 还包括检查器,可以分析您的代码是否遵守各种编码标准(包括 OWASP 等)。
用户界面的区域如下:
- 主菜单始终显示在用户界面的左侧。
- 根据当前的选择,用户界面顶部可能会显示导航提示和选项选项卡。图中显示
bitcoin/bitcoin
当前已选择项目,并且 设置可见。 - 还可能显示子菜单。在这种情况下,项目设置分为常规、成员、分析和删除 选项。
- 最具体的信息显示在剩余空间中,占据了用户界面右侧的大部分空间。