コベリティ日本支社は10月3日、ソフトウェアの品質やセキュリティ上の不具合を検出し、修正方法を提示するソフトウェアテスト製品「Coverity Develpoment Testing Platform」を発表した。
Coverity Develpoment Testing Platformは、同社独自の静的解析検証エンジン「Coverity SAVE」をベースとしたソースコード解析ツールだ。CやC++、Javaなどで書かれたソフトウェアおよびWebアプリケーションのバグや脆弱性を指摘してくれる。
メモリクラッシュなどにつながるバグを洗い出す「Quality Advisor」に加え、新たにセキュリティ脆弱性を指摘する「Security Advisor」、リスクに応じて重要な部分のユニットテストを確実に行えるよう支援する「Test Advisor」というコンポーネントを追加した。
米コベリティのCTO、アンディ・チョウ氏は、「ソフトウェアのセキュリティ監査はできあがった後に行われることが多いが、そうすると手戻りが発生し、修正や再テストなどに時間が掛かる。場合によってはリリースの遅れにもつながる」と指摘し、開発段階でセキュリティを検査し、修正していくことが重要だと述べた。
Security Advisorはそのプロセスを支援するツールだ。ソースコードに含まれるバッファオーバーフローやDoS、WebアプリケーションならばSQLインジェクションやクロスサイトスクリプティングといった脆弱性を検出し、修正方法とともに表示する。
同社 ビジネスデベロップメントマネジャの安竹由起夫氏は、SpringやHibernateといったフレームワークを用いて開発を行っていると、脆弱性を見つけるのが難しいことがあると指摘した。これに対しSecurity Advisorを利用すれば、「悪意あるコードが挿入される可能性のあるエントリポイントがどこにあり、コードのどこで使われているかを、アーキテクチャをまたいで横断的に追跡できる」と述べた。また、脆弱性のありかを指摘して終わるのではなく、「『どの関数を用いて、どのように記述すべきか』と具体的に修正方法を提示し、開発者にとって本当に必要な情報を提供する」(安竹氏)という。
もちろん、ソースコード解析だけでセキュリティが保証されるわけではなく、外部からのペネトレーションテストなどを適宜組み合わせる必要はあるとチョウ氏。それでも、「脆弱性を早期に見つけ出し、リスクを減らしていくプロセスを効率化できる」(同氏)という意味でソフトウェア開発を支援できると述べた。
一方、Test Advisorは、テストプロセスを効率化するためのツールだ。チョウ氏は、テストに費やされる開発者の時間は全体の50%に上る一方で、開発中に発見できる不具合は30%に過ぎないと指摘。そこでリスクに基づいて、枯れたレガシーなコードやデバッグ用コードと、変更が加えられたリスクが高いコードとを分け、後者に焦点を絞ることで、「非効率で、しかもバグを洗い出せないテストプロセス」を変えていくとした。
Test Advisorは、バグが潜むリスクの高いコード、具体的には変更が加えられた部分や複雑なコードに焦点を絞り、漏れなくテストされているかをチェックする。「単にカバレッジを高めるためのツールではない。テストカバレッジ100%を目標とするのではなく、重要なところ、不具合が起こりやすそうなところがカバーできているかを指摘する」(安竹氏)。ひんぱんに修正が加えられるアジャイル開発手法にも適しているという。
Coverity Develpoment Testing Platformはコネクタを介してEclipseやVisual Studioのインターフェイスと連携できるほか、API経由で情報を抜き出し、GitやRedmineといったツールと連携することも可能という。対象コード数に基づいたライセンスを採用しており、Security Advisorは年間50万行の場合で450万円から、Test Advisorは同じく300万円から。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- コベリティとウインドリバーが協業、組み込みソフト開発にセキュリティ向けデベロップメントテストを導入(@IT MONOist)
- コベリティ、「Coverity 6.0」と開発者コミュニティー「CoverityConnect」を発表(@IT MONOist)
- コベリティ、ビルド時の根本的欠陥を修正できる解析モジュール(@IT News)
- コード探知機「Sonar」でプロジェクトの深海を探れ!(@IT Java Agile)
- Review Boardならコードレビューを効率良くできる!(@IT Java Agile)
- JUnitとEclipseを使って学ぶ、“テスト”の常識(@IT Java Agile)
- Eclipseテストツール活用の基礎知識(@IT Java Agile)