ソースコード上の問題を早期に発見しソフトウエア品質の大幅な向上を支援 日本シノプシス

ソフトウエア開発の品質向上とスケジュールの順守は開発者に課せられた至上命題である。納期直前やリリース後に発覚するバグや脆弱性は手戻りが大きいだけでなく、ビジネスにも大きな影響を及ぼす。これを防ぐためのソリューションとして注目されているのが、シノプシスの「Coverity(コベリティ)」だ。開発の早い段階での問題検出と対処を可能にし、スピード開発と品質向上の両立を支援する。

誤検知率15%以下の静的ソースコード解析を実現

日本シノプシス合同会社 ソフトウェア・インテグリティ・グループ シニアセールスエンジニア 佐藤 大樹氏
日本シノプシス合同会社 ソフトウェア・インテグリティ・グループ シニアセールスエンジニア 佐藤 大樹氏

社会におけるソフトウエアの重要性が高まる中、その開発手法も進化を続けている。クラウドやオープンソースの活用が進み、アジャイル、DevOpsといった開発体制を採用する企業も増えている。半年、1年単位が当たり前だったサービスのリリースサイクルは月/週/日単位へとスピードアップした。

だが、この状況のもと、開発サイドは深刻な課題に直面している。それがソフトウエアの品質をどう担保するかという問題だ。セキュリティリスクの大部分は、ソフトウエアの脆弱性によるものといわれる。脆弱性が発覚すれば、そこを攻撃者に狙われる。

こうしたリスクを回避するには、開発の早い段階でバグや脆弱性をつぶす必要がある。これを実現するのが、シノプシスの静的ソースコード解析ツール「Coverity」である。

静的ソースコード解析とは、ソースコードに潜む不具合やセキュリティ脆弱性を、コーディング中に検出する技術。技術自体は以前からあるが「誤検知が多い」「文法チェックが中心で実行時のエラーを発見できない」などの課題があった。「当社は、長年にわたる静的ソースコード解析の研究を通じて、数々の特許技術を取得。従来の課題を解消したソリューションとしてCoverityを提供しています」と日本シノプシスの佐藤 大樹氏は話す。

プロシージャ間解析、関数内の全パス解析により、プロジェクト全体の処理フローを解析することが可能。エラーの誤検知率が15%以下と低く、高精度な解析が行える点も特長だ。「検出結果の問題点はソースコード内に分かりやすく表示されるため、原因特定と対処が容易になります」と佐藤氏は付け加える(図)。

静的ソースコード解析ツール「Coverity」の強み

静的ソースコード解析ツール「Coverity」の強み

プログラムの実行ルートに沿った解析により、人による解析で見落としがちな不具合も検出できる。また検出結果に問題があれば、ソースコード内に見やすく表示し、注意を促す

多様な言語をサポートしているのも強み。C/C++、Objective-C、C#、Java、JavaScript、PHP、Python、Ruby、Node.js、Fortranなどに対応する。さらに文法チェックや実行時のエラー検出に加え、アプリケーションの脆弱性の悪用につながるコードベース内の領域を検索するセキュリティ解析機能も備える。

「例えば、Webアプリケーションに対しては、SQLインジェクションやクロスサイトスクリプティング、OSコマンドインジェクションなどを検出可能です。バッファオーバーフローや整数オーバーフロー、フォーマット文字列のエラーといったソースコードにおける重大なセキュリティ問題も高精度に検出します」と佐藤氏は紹介する。


ソフトウエア開発における品質向上サイクルを支援

また、一般にソースコードの解析は、サーバー上でコードを結合してから実行することが多い。各担当者のソースコードが、互いのファイル内の関数を参照している場合などは、個々人のPC環境では正確なふるまいを再現できないからだ。

「この方式では、個々のソースコードに含まれたエラーの事前チェックができず、問題の発見が遅れます。万一、納品直前やリリース後にバグが見つかれば、対処に多くの手間と時間がかかるほか、ビジネスリスクにもつながるでしょう。その点Coverityは、各関数がどういうふるまいをするかを『モデリング情報』として作成・一元管理します。これを各担当者のPCにダウンロードすることで、各人が書いたコードを手元で解析したい場合も、正しく解析することが可能です」(佐藤氏)

この「デスクトップ解析」機能があることで、個々人レベルのエラーチェック、サーバー上での結合レベルの品質・脆弱性チェック、その後、修正反映を確認する個々人レベルのチェック、といった品質高度化のサイクルを高速に回していくことができるようになる。

いつの時代も、ソフトウエアの品質向上とスケジュール順守は、開発担当者に課せられた至上命題である。Coverityはそのための強力な武器になるだろう。


▲TOPへもどる


お問い合わせ

日本シノプシス合同会社 ソフトウェア インテグリティ グループ
〒158-0094 東京都世田谷区玉川2-21-1 二子玉川ライズオフィス
TEL:03-6746-3600
URL:https://www.synopsys.com/jp/software
Email: sig-japan@synopsys.com