【摘要】 Coverity是一款快速、准确且高度可扩展的静态分析 (SAST) 解决方案,可帮助开发和安全团队在软件开发生命周期 (SDLC) 的早期解决安全和质量缺陷,跟踪和管理整个应用组合的风险,并确保符合安全和编码标准。
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
windows系统下的Coverity 发布包,其顶层目录结构如下:
2. 集成生态
2.1 端侧IDEs
Code Sight™ IDE插件,开发人员在编写代码时可以在几秒钟内得到准确的分析。它
快速准确的增量分析
在后台运行,以尽量减少干扰,直接在 IDE 内为开发人员提供实时结果,包括缺陷描述、类别、严重性、CWE信息、缺陷位置、详细的修复建议、数据流跟踪信息,以及IDE中的问题分类和管理功能。相关插件的下载地址:
- Visual Studio插件
- Intellij IDEA|WebStorm|PyCharm|PhpStorm|RubyMine 插件
- Eclipse插件
- Visual Studio Code
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是一种特定于领域的函数式编程语言,它使开发人员能够轻松地开发自己的自定义检查器。这些定制的检查器支持符合公司安全需求和行业标准或指导方针