お問い合わせ・資料請求はこちら
Coverityとは
Coverity(コベリティ)は、グローバル企業であるシノプシス社(Synopsys,Inc.)を開発元とする、開発プロセス早期のコーディング時にソースコードに潜む重大な不具合やセキュリティ脆弱性を特定し、修正ガイダンスを提示することにより、修正の手間とコストを最小に抑える事が可能な静的解析ツールです。
スピード、使いやすさ、精度、業界標準規格への適合、スケーラビリティを兼ね備え、高品質でセキュアなアプリケーションの開発を支援し、ビジネスに直結するソフトウェア開発リスクを軽減します。
問題の修正方法を理解する上で必要なコンテキスト、詳細情報、アドバイスが全て提示される為、開発者はソフトウェアの不具合を簡単かつ適切に修正できます。
また、自動セキュリティテストをCI環境にシームレスに統合し、既存の開発ツール及びワークフローをサポートします。
主な特徴
- 実行時エラーにつながる不具合を検出
- 高度な解析技術(プロシージャ間解析・フルパス解析)
- セキュリティ、信頼性に関する標準規格対応
- インラインでのわかりやすい修正ガイダンス
- 業界トップレベルの誤検知の少なさで短時間の修正が可能
- 開発プロセスへの組み込み・自動化が容易
- 広い対応言語とフレームワーク
■ 実行時エラーにつながる不具合を検出
静的解析技術は、「ランタイムエラー検出系」と「パターンマッチング系」の2つに分類されます。
Coverityは、パターンマッチングで検出するコーディング規約チェックと、メモリリーク、データ破壊、データ競合などのランタイムエラーとなる不具合(バグ)も検出可能なツールです。 Coverityを利用する事により、「開発者が対応する価値のある不具合」を検出する事が可能です。
検出可能な不具合(例)
並列処理の問題
パフォーマンスの低下
クラッシュの原因
- Null ポインタの間接参照
- ポインタの解放後のメモリ使用
- 二重解放
|
セキュリティ上の脆弱性
- バッファ・オーバーフロー
- 外部入力値の不適切な利用
API などの不適切な使用
プログラムの不正な動作
- デッドコード
- 未初期化変数
- コピー&ペーストのミス
|
■高度な解析技術
Coverityは単純なパターンマッチングではなく、State Machineを用いたフロー解析を行います。
関数間の解析、統計的な解析(プログラムの目的を推測し、予期しない動作を報告)などの手法を駆使して、関数間、ファイル間に跨った複雑なパターンの不具合を検出します。
プロシージャ間の解析
クラス、関数、ファイルの境界を超えて解析
フルパス解析
全ファイル、関数、パスを解析して問題を特定
■セキュリティ、信頼性に関する標準規格対応
Coverityでは、結果を既存のリスク報告ソリューションに取り込むことができる組み込みレポートやAPIにより、アプリケーション・ポートフォリオ全体の総合的なリスク・プロファイルを取得できます。検出された脆弱性をカテゴリ別に容易にフィルタできるほか、トレンド・レポートの表示、重大度に基づいた脆弱性修正の優先順位付け、チームおよびプロジェクト間でのセキュリティ・ポリシー・コンプライアンスの管理などの機能があります。Coverityの「構築不要の解析」機能により、ソフトウェアの構築なしにソフトウェアの問題を検出することもできます。プロジェクトの特定箇所を指定するだけで、Coverityが必要な依存関係のすべてを自動的に検出、ダウンロード、および解析します。
■インラインでのわかりやすい修正ガイダンス
一つ一つの検出された不具合ごとに
- それが、どこで、どの制御パス上発見されたか
- どの変数に注目すればよいのか
これらの情報とともにレポートされます。
緑色:条件分岐のどちらのルートをシミュレーションしたかを示している。
赤色:注目すべき変数や、問題の発生する箇所を示している。
ソース上の分岐条件を表示してくれるので、どのパスで不具合が発生しているか簡単に理解できます。
■業界トップレベルの誤検知の少なさ
誤検出率が業界トップレベルで非常に低く、大量の「ムダな指摘」で開発者の時間を浪費することがありません。
またコード修正に伴い再解析を実施する場合は、コードベース全体ではなく、コードのうち変更の影響を受ける部分のみを解析するため、ツールの処理時間や指摘確認の時間を大幅に短縮できます。
■開発プロセスへの組み込み・自動化が容易
Coverityは、バージョン管理システム、ビルド及び継続的インテグレーション(CI)、バグ・トラッキング、アプリケーション・ライフサイクル・マネジネント(ALM)ソリューションや統合開発環境(IDE)など、開発プロセスをサポートする重要なツールやシステムと短時間で統合できます。
IDE
- IBM Engineering Workflow Management (旧 IBM Rational Team Concert)
- QNX Momentics
- Wind River Workbench
- Visual Studio(VB.NET, C#, C/C++, JavaScript, PHP, Python, Ruby, TypeScript)
- Eclipse™(Java, JavaScript, C/C++, PHP,Python, Ruby, TypeScript)
- IntelliJ(Java, JavaScript, C/C++, PHP, Python, Ruby, TypeScript)
- WebStorm(JavaScript, TypeScript)
- PyCharm(Python)
- PhpStorm(PHP)
- RubyMine™(Ruby)
|
開発環境
- AccuRev
- Apache Subversion(SVN)
- CVS
- Git
- Mercurial(Hg)
- Perforce Helix
- Team Foundation Server SCM
|
CI ビルドサーバー
- Jenkins
- Azure DevOps Server
|
バグ・トラッキング
|
SDLCの早期に課題を発見
■幅広い対応言語・フレームワーク
Coverityは組込み/ITを問わず、様々なソフトウェア開発で使用される主要な言語に幅広く対応しています。
- C/C++
- C#
- Java
- JavaScript
- PHP
- Python
|
- .NET Core
- ASP.NET
- Objective-C
- Go
- JSP
- Ruby
|
- Swift
- Fortran
- Scala
- VB.NET
- TypeScript
- Kotlin
|
また、これらの言語による開発で標準的に使用される70種類以上のフレームワーク(例:JSP, Spring, Struts,
JEE, ASP.NET, Ajax, ASP.NET Web API, jQuery, Angular, Node.js, Tedious.js, Symphony, Ruby on Rails, Flask など)に対応しています。
導入メリット
- テスト工程で発見される問題を最小化
- 開発コストの低減
- 脆弱性を含んだ製品を出荷するリスクの低減
- テストへのリソース集中を防止
- 予期せぬ不具合によるリリース遅延リスクの回避
- 市場で不具合が発生する事による顧客満足度・ブランドイメージの低下を阻止
- 不具合の指摘により開発者の問題意識と対応スキルが向上
- 具体的な情報と修正ガイダンスにより、指示されたコード行を指示された方法で修正するだけで不具合の解消が可能
サービス
豊富な知見や知識、ノウハウをもとに製品の初期導入における環境構築から、お客様の開発環境へのインテグレーション等を弊社の技術者がご支援いたします。
- 初期導入支援(インストール及び設定等の環境構築)
- インテグレーション
- 構成管理システムと連携した不具合通知の設定
- テストの自動化(Jenkins)
- バグトラッキングシステムとの連携
- バージョンアップ支援(新環境へのデータ移行等含む)
- 弊社技術者による保守サポート(e-mail利用)
- デスクトップ解析
無償トライアル版
無償トライアル版では、自社のアプリケーションをCoverityで解析した結果を元に、導入の必要性をご検討いただくことが可能です。
ライセンス/価格等のお問い合わせ・資料請求・無償トライアルのお申し込みはこちらから
ページトップへ