バックナンバーはこちら

today&tomorrow

Technology Update

2018 vol.110

Coverityによるソフトウェアの静的解析

Coverityは、ソースコードに潜む重大な不具合やセキュリティ脆弱性をコーディング中に高精度で検出する正確で包括的な静的解析およびSAST(静的アプリケーション・セキュリティ・テスト)のプラットフォームです。

概要

Coverityは、品質上の重大な不具合や潜在的なセキュリティ脆弱性を開発段階で洗い出し、信頼性の高い実践的な修正ガイダンスを提示することにより、リスク軽減とプロジェクト全体のコスト削減に貢献します。数々の特許技術、10年間にわたる研究開発成果、そしてオープンソースを含む100億行以上のコード解析能力により可能となる静的解析ソリューションです。

画像

実践的な修正ガイダンスにより、潜在的なセキュリティ脆弱性への迅速な対応を支援

特長

解析の深さと精度

  • Coverityの静的解析は任意のビルド・システムとシームレスに統合され、ソースコードの正確な表現を生成します。これにより、ソースコードの挙動を深く理解します。
  • フルパス・カバレッジをサポートしており、すべてのコード行およびすべての潜在的な実行パスを確実にテストします。複数の特許技術により、深く正確な解析が可能です。
  • ソースコードおよび基盤のフレームワークを詳細に把握することで高精度な解析結果を提供します。このため、大量の誤検出で開発者の時間を無駄にすることがなく、開発ライフサイクルにセキュリティを効率よく組み込むことができます。

ソース段階でのセキュリティ対策

  • 重大な不具合のトラブル・シューティングと修正を短時間で効率よく進められるよう、開発者に必要な情報を提示します。
  • 品質とセキュリティを開発フローに組み込むことにより、開発サイクル終盤に不具合が見つかった場合に生じる手戻りのコストを軽減し、製品リリースの遅れを防ぎます。
  • 量産開始後または製品発売後にソフトウェア不具合やセキュリティ脆弱性が見つかった場合の多大なコストとブランド失墜を防ぎます。

画像

画像

現在のステータス、リスク、トレンドを分かりやすい形でユーザーに提示するCoverity Policy Manager

解析のスピードとスケール

Coverityは、どのような既存のワークフローにも統合できるようにゼロから設計されています。主な特長は以下のとおりです。

  • Coverityは最大16コアを利用した並列解析が可能で、シリアル解析に比べ最大で10倍のパフォーマンスを発揮します。
  • 高速デスクトップ解析と増分解析は、コードベース全体ではなく変更のあったコードまたは変更の影響を受けるコードのみを再解析するため、解析時間が短縮します。ファイル・システム・キャプチャは、未コンパイルのコードも解析可能なため、最初に完全なビルドを実行する必要がありません。
  • Coverityは、優れたスケーラビリティを備えており、広域分散環境における数千人規模の開発者をサポートできます。プロジェクトのコードが1億行を超えても容易に解析できます。

ソフトウェア開発ライフサイクル(SDLC)との統合

  • Coverityは、バージョン管理システム、ビルドおよび継続的インテグレーション(CI)、バグ・トラッキング、アプリケーション・ライフサイクル・マネジメント(ALM)ソリューションや統合開発環境(IDE)など、開発プロセスをサポートする重要なツールやシステムと短時間で統合できます。
  • オープンなプラットフォームであるため、サードパーティの解析結果をワークフローにインポートして、ソフトウェア不具合やリスクと同じビューで一元的に表示することで、あらゆる種類の不具合を同様に管理できます。

問題の効率的な管理と修正

  • このプラットフォームでは、共同問題管理インターフェイスのCoverity Connectから具体的な情報と的確な修正ガイダンスが開発者に提示されるため、セキュリティに関する深い知識がなくても指示されたコード行を指示された方法で修正するだけで不具合を解消できます。
  • Coverity Connectには、不具合へのパスを正確に指摘するソースコード・ナビゲーション機能があり、共有コード全体で出現するすべての不具合を自動的に洗い出します。
  • 検出された不具合は、解決に最も適した開発者に自動的にアサインされます。セキュリティ、OWASP Top 10、CWE、PCIに関する未解決の問題はすぐに確認できます。

受け入れを促進し、リスクを軽減

Coverity Policy Managerを使用することで、コード・セキュリティおよび品質、テストに関して開発チームの垣根を越えた一貫性のある基準を定義し、これら基準への適合を図ることができます。チーム単位、プロジェクト単位、コンポーネント単位でこれらの基準への適合状況が可視化され、不具合やテストに関して事前に定義した指標に基づいて定量的にステージ節目での合否を判断できます。このビューはカスタマイズ可能なため、組込み、エンタープライズ、モバイルなど各種アプリケーションの目的に応じた開発指標およびしきい値を選択できます。

カテゴリートップ