代码检查工具Coverity 第1篇: 认识Coverity
代码检查工具-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. 参考
- 点赞
- 收藏
- 关注作者
评论(0)