代码检查工具Coverity 第1篇: 认识Coverity

举报
SamDong 发表于 2021/09/06 20:44:50 2021/09/06
【摘要】 Coverity是一款快速、准确且高度可扩展的静态分析 (SAST) 解决方案,可帮助开发和安全团队在软件开发生命周期 (SDLC) 的早期解决安全和质量缺陷,跟踪和管理整个应用组合的风险,并确保符合安全和编码标准。

代码检查工具-Coverity

1. 概述

Coverity是一款快速准确高度可扩展的静态分析 (SAST) 解决方案,可帮助开发和安全团队在软件开发生命周期 (SDLC) 的早期解决安全和质量缺陷,跟踪和管理整个应用组合的风险,并确保符合安全和编码标准。

在编写代码时,Coverity尽早识别关键的软件质量缺陷和安全漏洞。在开发过程中,当它成本最低且最容易修复时。精确的可操作修复建议和特定于上下文的 eLearning 可以帮助开发人员了解如何快速修复他们的优先级问题,而不必成为安全专家。Coverity无缝地将自动化安全测试集成到您的CI/CD管道中,并支持您现有的开发工具和工作流。

Coverity为应用程序在不同软件开发生命周期(SDLC)阶段的风险态势的整体视图。

  • 安全团队可以查看整个应用程序组合的集中风险概要。其中通过API访问允许将结果导入到其他风险报告工具中。
  • 可以按类别过滤已识别的漏洞,查看趋势报告,基于关键度对漏洞进行优先补救,并跨团队和项目管理安全策略合规(例如OWASP Top 10, CWE Top 25,和PCI DSS)。
  • “随时间变化的问题”报告显示不同时间段的严重程度,并为您提供有关项目安全状况的即时信息。PDF报告下载允许审核员维护详细的合规记录。

1.1 目录结构

以Linux系统下的Coverity 发布包为例,其顶层目录结构如下:

.
├── bin
├── brakeman-pro
├── build.py
├── certs
├── closure-compiler
├── config
├── doc
├── dotnet
├── dtd
├── dynamic-analysis
├── eagleye.py
├── forcheck
├── HIS
├── jars
├── jdk11
├── jre
├── jshint
├── lib
├── library
├── locale
├── node
├── python3.4
├── ruby
├── spotbugs
├── spotbugs-ext
├── support-angularjs
├── template-da
├── uninstall
├── VERSION
├── VERSION.xml
├── xsl
└── yarn

2. 集成生态

2.1 端侧IDEs

Code Sight™ IDE插件,开发人员在编写代码时可以在几秒钟内得到准确的分析。它快速准确的增量分析在后台运行,以尽量减少干扰,直接在 IDE 内为开发人员提供实时结果,包括缺陷描述、类别、严重性、CWE信息、缺陷位置、详细的修复建议、数据流跟踪信息,以及IDE中的问题分类和管理功能。相关插件的下载地址:

2.2 版本控制

Accurev、ClearCase、CVS、GIT、Mercurial、Perforce、Plastic、SVN和Team Foundation Server

2.3 Ticketing系统

  • Jira
  • Bugzilla

2.4 持续集成/持续部署

  • Jenkins
  • Azure DevOps Server

2.5 构建工具

操作系统流程层次监测您的构建系统来获得每一个操作的清晰视图,展现您的软件。

Gradle/Ant/Maven/CMake/Make等

2.6 合作伙伴集成

REST api可用于支持其他构建自动化解决方案,以及将分析结果导入其他企业或自定义工具。

3. 检查能力

3.1 支持的语言

Coverity为 21 种语言提供广泛的安全和质量检查支持。

语言

3.2 支持的框架

Coverity支持Java、JavaScript、c#和其他语言的70多个不同框架。Coverity还支持与AWS服务(EC2, S3, DynamoDB, IAM)和谷歌云存储API (GCP)交互的云本地JavaScript应用程序的主要云提供商API框架的安全建模。

语言 Framework Framework Framework Framework
Java Android SDK GWT Vert.x JSP and JSP Standard Tag Library(JSTL)
Java Apache Shiro Hibernate JAX RS ReactiveX (RxJava, Reactor)
Java Axis iBatis JAX WS Enterprise Java Beans (EJBs)
Java DWR Java Frameworks JEE Java Persistence API (JPA)
Java Restlet Spring Boot JSF/Facelets Spring Framework
Java Struts Terasoluna Tiles Javax.websocket
Java WS XML-RPC
C# ASP.NET Web Forms Identity Server MassTransit ASP.NET Core MVC/ASP.NET MVC
C# ASP.NET ASMX Web Services Razor templates WCF Services ASP.NET Core MVC/ASP.NET MVC
JS/TS:Client-side Angular Apache Cordova Bootstrap HTML5 DOM APIs/Ajax
JS/TS:Client-side Angular JS Backbone Ember React/ Preact
JS/TS:Client-side jQuery Mithril Socket.IO Swig
JS/TS:Client-side Vue
JS/TS:Server-side Express Fastify Hapi Angular server-side rendering (Express and Hapi engines)
JS/TS:Server-side Koa Mean.io Node React server-side rendering (Next.js)
JS/TS:Server-side Passport Restify Socket.IO SAP XS Classic and Advanced
JS/TS:Server-side Vue server-side rendering
JS/TS:Template engines Consolidate doT.js EJS Handlebars
JS/TS:Template engines Hogan Jade koa-views Lodash (templating)
JS/TS:Template engines Marko Mustache Nunjucks Pug
JS/TS:Template engines Swig Twig Vision Underscore (templating)
JS/TS:Major libraries Axios Request Sequelize Google Cloud APIs (Storage)
JS/TS:Major libraries Underscore / Lodash Swashbuckle Sqlx Mongoose / MongoDB
GO Echo
PHP Symfony
Python Flask Django
Ruby Ruby on Rails

3.3 支持的平台

主机操作系统 主机操作系统和/或内核版本
AIX v6.1 适用于 PowerPC 处理器
AIX v7.1 适用于 PowerPC 处理器
FreeBSD v8.4(32 位)on i386 (x86) 或 v8.4(64 位)on amd64 (x86_64)
FreeBSD v11.1(32 位)on i386 (x86) 或 v11.1(64 位)on amd64 (x86_64)
FreeBSD v11.2(32 位)on i386 (x86) 或 v11.2(64 位)on amd64 (x86_64)
FreeBSD v12.0(32 位)on i386 (x86) 或 v12.0(64 位)on amd64 (x86_64)
Linux Linux Kernel v2.6.32+(32 位)on x86 和 glibc 2.12-2.27(32 位)on x86
Linux Linux Kernel v2.6.32+(64 位)on x86_64 和 glibc 2.12-2.27(64 位)on x86_64
macOS v10.12
macOS v10.13
macOS v10.14
NetBSD v6.0(32 位)on x86 或 v6.0(64 位)on x86_64
NetBSD v6.1(32 位)on x86 或 v6.1(64 位)on x86_64
NetBSD v7.0(32 位)on x86 或 v7.0(64 位)on x86_64
NetBSD v7.1(32 位)on x86 或 v7.1(64 位)on x86_64
NetBSD v7.2(32 位)on x86 或 v7.2(64 位)on x86_64
NetBSD v8.0(32 位)on x86 或 v8.0(64 位)on x86_64
Solaris v10和 v11 适用于(64 位)x86_64 处理器
Solaris v10 和 v11 适用于(64 位)SPARC 处理器
Windows Windows 32 位工作站发行版、Windows 7 及更高版本(Windows 8.0 除外)
Windows Windows 32 位服务器发行版、Windows Server 2008 及以上版本
Windows Windows 64 位工作站发行版、Windows 7 及更高版本(Windows 8.0 除外)
Windows Windows 64 位服务器发行版、Windows Server 2008 及以上版本

3.4 支持的编译器

优点:支持编译兼容性

Compiler Compiler Compiler Compiler Compiler
Analog Devices Blackfin ARM C/C++ Clang Freescale CodeWarrior HI-TECH PICC
Synopsys MetaWare C and C++ Borland C++ Cosmic C Analog Devices SHARC IAR C/C++
Analog Devices TigerSHARC CEVA-XC4500 IBM AIX Green Hills C/C++/EC++ IBM XLC
Tasking for ARM Cortex and TriCore JDK for Mac OS X Keil compilers Marvell MSA MPLAB XC8
Nvidia CUDA Compiler (NVCC) OpenJDK QNX C/C++ Renesas C/C++ SNC C/C++
STMicroelectronics GNU C/C++ SNC GNU C/C++ Intel C++ SONY PS4 SDK Sun/Oracle JDK
STMicroelectronics ST Micro C/C++ Sun (Oracle) CC GNU GCC/G++ TI Code Composer Visual Studio
Wind River C/C++

3.5 支持的业界标准

通过广泛的安全、质量、数据保护和安全标准全面跟踪和管理合规性,轻松按类别筛选已识别的问题,查看趋势报告,根据严重程度确定漏洞修复优先级,管理团队和项目的政策符合性。

  • OWASP Top 10:了解 Coverity 如何支持 OWASP Top 10 实现 Web 应用安全。
  • OWASP Mobile Top 10:了解 Coverity 如何支持 OWASP Mobile Top 10。
  • CWE Top 25:了解 Coverity 如何覆盖 25 个最关键的软件漏洞。
  • PCI DSS合规性:遵守必要的信息安全标准以保持合规性。
  • CERT C/C++/Java:遵循开发安全、可靠和稳妥系统的规则。
  • MISRA C/C++:解决编码标准问题并强制执行 MISRA C 和 MISRA C++ 规则。
  • AUTOSAR:确保采用 C++14 编写软件的安全性、可靠性和稳妥性。
  • DISA STIG安全指南符合性:确保美国国防部信息系统的安全性、可靠性和稳妥性。
  • ISO/IEC TS 17961:了解构建以 C 语言编写的安全应用程序的最佳实践。
  • ISO 26262:符合 ISO 26262 软件测试和应用程序安全要求。

3.6 可扩展检测能力

Coverity Extend是一个易于使用的软件开发工具包(SDK),它允许开发人员检测独特的缺陷类型。SDK是一个用于编写程序分析器或检查器的框架,用于识别自定义的或特定于领域的缺陷。CodeXM是一种特定于领域的函数式编程语言,它使开发人员能够轻松地开发自己的自定义检查器。这些定制的检查器支持符合公司安全需求和行业标准或指导方针。

4. 参考

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。