オープンソース活用研究所 | Coverity Scan オープンソース品質調査レポートの解説

Coverity Scan オープンソース品質調査レポートの解説

オープンソース活用研究所

2016年02月02日
オープンソース活用研究所 所長 寺田雄一

2015年12月2日に、オープンソース活用研究所主催による「オープンソースの脆弱性とその対策」セミナーが開催されました。本セミナーは「全体的なセキュリティの動向について」「オープンソース品質調査レポートの解説」「オープンソースの脆弱性にどう対処するべきか」の三本立てとなっており、全体像から具体的なアプローチについて紹介しました。

今回は、日本シノプシス合同会社の雨宮吉秀氏による「オープンソース品質調査レポートの解説」についてのレポートをご紹介します。

日本シノプシス合同会社は、ソフトウェア品質解析の事業を行っており、これまでに、150億行にのぼるコードの静的解析をしています。2015年には、昨今、話題となった「Heartbleed」を見つけた、ソフトウェア・セキュリティ企業のCodenomicon社を買収するなどセキュリティ・ソリューションに力を入れています。

静的解析技術、Coverityは誤検出10%未満

シノプシス社が提供するCoverityは、ソースコードを静的に解析し、様々な不具合やセキュリティ脆弱性を見つけることで、リスクを削減するソフトウェアです。

同様の静的解析ツールは様々ありますが、一般的には静的解析は誤検出が多すぎるため無駄が多く、継続した利用には繋がらないと言われています。しかし、Coverityの誤検出率は10%未満と驚くほど低く、市場から高い評価を受けているそうです。

なぜ、誤検出が低いのか?

大きな理由は、実行時でしか確認できないデータフローを分析し、実際に発生するエラーを検出することに注力しているとのこと。

一般的な静的解析ツールは、実際に発生するエラーよりも、プログラムの書き方が悪い箇所を見つるため、プログラムの書き方は良くないが動いている部分も検出してしまいます。このため、誤検出の数が非常に多くなってしまいます。

ソースコード全体で分析、推測

分析では、どこまでコールしても関数を呼び出しソースコード全体で分析を行なうそうです。特徴的なのは、例えば全体の10箇所で同じ関数を使っていて、7箇所ではリターン値チェックがあるのに3箇所には無い場合、この3箇所は間違いの可能性が有ると推測し、提示がされるといったところです。

コピーペーストミスも検出

分析結果はWebブラウザで表示され、とても見やすいです。いくつかの結果例が紹介されました。

ソースコードをコピーペーストし変数名を修正して利用する場合、必要な変数名の修正を忘れてしまうこともあると思いますが、これらも推測し提示をしてくれる機能もあります。ソースレビューでも、なかなか見つけることができないので、とても効果があるとのこと。

Coverity Scan for Open Source

Coverityの静的解析をオープンソースコミュニティ向けに無償で提供しているのが、Coverity Scanです。

これまでに、4000件を超えるプロジェクトと、6億3千万行コードを解析しており、Linux、Apache、PostgreSQLなど、名前の知っているオープンソースはほとんど利用しているそうです。

オープンソースのセキュリティ問題は社会リスク

同時多発テロ後のアメリカにおいて、社会ではオープンソースが広く使われていますが、これらのセキュリティ問題を利用したテロのリスクを回避する目的のもと、米国国土安全保障省と民間共同研究でオープンソースの品質とセキュリティを向上する研究プロジェクトとしてCoverity Scanは始まったそうです。

開始後、24万件以上の不具合を検出し、修正を実現しています。また、年間レポートを、毎年、発表し続けることで啓蒙活動を続けています。

2014年度は、約15万2千件もの不具合を修正していますが、これらは2006年から2013年の不具合の合計を単年で上回っていることが特徴的です。

スピーディな修正プロセスのマネジメントに向けて

LINUXコミュニティでは2006年から利用しているそうです。2013年からは、検出したものに直ぐに担当を割り振るマネジメントを始めたところ、スピーディに全ての修正を実現し、クオリティを上げることができたことの紹介がありました。

Coverity Scanは、多くのオープンソースプロジェクトが、スピーディな修正プロセスのマネジメントを実現し、クオリティをあげていくことに貢献していると言えそうです。

Coverity Scanオープンソースレポート2014(日本語版)
http://www.coverity.com/html_ja/

Coverity Scan

http://scan.coverity.com/


OSSNEWSに広告を掲載しませんか?

著者プロフィール

オープンソース活用研究所 所長 寺田雄一

1993年、株式会社野村総合研究所(NRI)入社。 インフラ系エンジニア、ITアーキテクトとして、証券会社基幹系システム、証券オンライントレードシステム、損保代理店システム、大手流通業基幹系システムなど、大規模システムのアーキテクチャ設計、基盤構築に従事。 2003年、NRI社内に、オープンソースの専門組織の設立を企画、10月に日本初となるオープンソース・ソリューションセンター設立。 2006年、社内ベンチャー制度にて、オープンソース・ワンストップサービス 「OpenStandia(オープンスタンディア)」事業を開始。オープンソースを活用した、企業情報ポータル、情報分析、シングルサインオン、統合ID管理、ドキュメント管理、統合業務システム(ERP)などの事業を次々と展開。 オープンソースビジネス推進協議会(OBCI),OpenAMコンソーシアムなどの業界団体も設立。同会の理事、会長や、NPO法人日本ADempiereの理事などを歴任。 2013年、NRIを退社し、株式会社オープンソース活用研究所を設立。

関連オープンソース

Snort(スノート)

  • セキュリティソフト

Snort(スノート)とは、ネットワーク型IDS(不正侵入検知システム)です。ネットワーク上を流れるパケットをキャプチャーして、不審なパケットの検出を行います。

WSO2 Identity Server(ダブルエスオーツー アイデンティティ サーバ)

  • シングルサインオン

WSO2 Identity Server(ダブルエスオーツー アイデンティティ サーバ)とは、シングルサインオンソリューションです。アプリケーション/API/クラウド/モバイル間で統合ID管理を行います。

LibreSSL(リブレ エスエスエル)

  • ネットワーク系ツール

LibreSSL(リブレ エスエスエル)とは、SSL/TLSプロトコルのオープンソース実装(通信用ソフトウェア)で、「OpenSSL」の派生改良版です。圧倒的シェアを持つが問題が多い「OpenSSL」を代替できるものとして期待されています。

Vuls(バルス)

  • セキュリティソフト

Vuls(バルス)とは、脆弱性スキャンツールです。Linux(FreeBSD)系OS/各種ミドルウェア/各種フレームワークなどに対する脆弱性存在を検査し、詳細情報をレポーティングします。

OpenSSH(オープンエスエスエイチ)

  • ネットワーク系ツール

OpenSSH(オープンエスエスエイチ)。ネットワーク経由通信を暗号化する「SSH」のオープンソース実装です。おもにUNIX/Linuxサーバに対するネットワーク経由でのリモートログインに使用します。

FreeRADIUS(フリーラディウス)

  • 認証サーバ

FreeRADIUS(フリーラディウス)。オープンソースの高機能RADIUSサーバです。認証用プロトコル「RADIUS」機能を実現するデファクトスタンダードとして広く使われています。

OpenSSL(オープンエスエスエル)

  • ネットワーク系ツール

OpenSSL(オープンエスエスエル)。オープンソースSSL/TLS暗号化ライブラリです。世界中のWebサイトで圧倒的シェアを持っており、事実上の業界標準となっています。

Apache DS(アパッチディーエス)

  • 認証サーバ

Apache DS(アパッチディーエス)。オープンソースのLDAP(ディレクトリ)サーバです。「Apache Directory」プロジェクトで開発されています。

389 Directory Server(389ディレクトリサーバ)

  • 認証サーバ

389 Directory Server(389ディレクトリサーバ)。オープンソースディレクトリサーバです。「Fedora Directory Server」の後継で、商用製品の流れを受けており、ユーザフレンドリーなGUIツールの充実などが特徴です。

OpenIDM(オープンアイディーエム)

  • ID管理

OpenIDM(オープンアイディーエム)。高い柔軟性と拡張性を備え、エンタープライズ/クラウド/モバイル/ソーシャル/レガシーなど多様な環境において、ユーザアカウントのプロビジョニングとライフサイクルの一元管理を実現するID管理製品です。

LISM(リズム)

  • ID管理

LISM(リズム)。シンプルな使いやすさが特徴のID統合管理ソリューションです。

OpenAM(オープンエーエム)

  • シングルサインオン

OpenAM(オープンエーエム)。「OpenSSO」の後継製品として、認証、アクセス認可、フェデレーションなどの機能を備えた、Webアプリケーションやクラウドサービスに対してのシングルサインオンを実現するオープンソース高機能認証ソリューションです。

OpenLDAP(オープンエルダップ)

  • 認証サーバ

OpenLDAP(オープンエルダップ)。最も多くの導入実績があり、ディレクトリサービスを提供するオープンソースLDAPサーバです。

OpenDJ(オープンディージェー)

  • 認証サーバ

OpenDJ(オープンディージェー)。OpenAMに内蔵されており、先進的なレプリケーションアーキテクチャや「REST API」を搭載したLDAP準拠の高機能オープンソースディレクトリサーバです。

バックナンバー

関連記事

  • オープソース書籍(サイド)

OSS×Cloud ACCESS RANKING

facebook

twitter