オープンソース活用研究所 | 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を退社し、株式会社オープンソース活用研究所を設立。

最新TOPICS

【講演資料を公開】11/11 今、知っておくべきサイバー攻撃の実態 ~一番危険なセキュリティリスクは何なのか?~(2022年12月11日 09:15)

2022年11月11日(金)16:00~17:00 『今、知っておくべきサイバー攻撃の実態 ~一番危険なセキュリティリスクは何なのか?~』 と題したウェビナーが開催されました。 皆様のご参加、誠にありがとうございました。 当日の資料とサマリー動画を以下から無料でご覧いただけます。 ご興味のある企業さま、ぜひご覧ください。

関連オープンソース

OSV-Scanner(OSVスキャナー)

  • その他

「OSV-Scanner」(OSVスキャナー)とは、Google製「脆弱性スキャナー」です。「プロジェクト依存関係リスト」と「既知脆弱性」を照合するための「OSVデータベースへのフロントエンド」を提供します。パッケージリストに対して詳細チェックを実施することで、パッチ適用の必要性情報を得られます。

FreeRADIUS(フリーラディウス)

  • 認証サーバ

FreeRADIUS(フリーラディウス)とは、オープンソースの高機能RADIUSサーバです。「RADIUS」はネットワーク上で「利用者認証」「権限付与」「利用状況記録」などを実施するための認証プロトコルであり、デファクトスタンダードとして広く使用されています。

Google Authenticator(グーグルオーセンティケーター)

  • 認証サーバ

Google Authenticator(グーグルオーセンティケーター)とは、Googleが開発している2段階認証(2要素認証)用トークンソフトウェアです。「SMSテキストメッセージ」「音声通話」「モバイルアプリ」などを使用して認証コードを送信/生成します。Googleサービスのみではなく、他社サービスの認証にも利用できます。

Vuls(バルス)

  • セキュリティソフト

Vuls(バルス)とは脆弱性スキャンツールです。脆弱性データベースから脆弱性情報を取得して、「Linux(FreeBSD)系OS」「各種ミドルウェア」「各種フレームワーク」などに対する脆弱性存在を検査し、詳細情報をレポーティングします。サーバにインストールされているソフトウェアに対する脆弱性存在チェックに利用できます。

WireGuard(ワイヤーガード)

  • ネットワーク系ツール

WireGuard(ワイヤーガード)とは、VPN(Virtual Private Network)ソリューションです。「Linuxカーネルツリーにマージ」「シンプル」「使いやすい」「数行のコードで簡単に実装」「ハイパフォーマンス」「学術研究をベースとして実装されている高いセキュリティ」などを特徴としています。

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

  • 認証サーバ

OpenLDAP(オープンエルダップ)とは、ディレクトリサービスを提供するオープンソースLDAPサーバです。サーバ間やシステム間で認証連携を行い、ユーザー情報データベースを統合管理することで、シングルサインオンを実現するための共通基盤となります。ディレクトリ情報の一元管理により、運用管理の作業負荷を大幅に削減し、セキュリティを強化できます。

OpenVAS(オープンバス)

  • セキュリティソフト

OpenVAS(オープンバス)とは、セキュリティチェック用脆弱性スキャンツールです。包括的で強力な脆弱性スキャンを行うことで脆弱性管理をサポートします。対象ホストのOSやソフトウェアに既知の脆弱性が含まれているかどうかについて自動でチェックを行い、詳細レポートを作成します。

Metasploit Framework(メタスプロイトフレームワーク)

  • ネットワーク系ツール

Metasploit Framework(メタスプロイトフレームワーク)とは、セキュリティ脆弱性テストフレームワークです。コンピュータセキュリティに関するオープンソースプロジェクトで、「情報収集」「脆弱性検出」「ペネトレーションテスト」などを主な守備範囲としています。

ClamAV(クラムエーブイ)

  • セキュリティソフト

ClamAV(クラムエーブイ)とはアンチウイルスエンジンです。さまざまな「ウイルス」「マルウェア」「悪意のある脅威」などを検出します。「ファイルスキャン」「電子メールスキャン」「Webスキャン」などエンドポイントセキュリティを含むさまざまな状況で利用できます。

Snort(スノート)

  • セキュリティソフト

Snort(スノート)はネットワーク型IDS(不正侵入検知システム)です。ネットワーク上を流れるパケットを解析して、不正パターンに合致するパケットを検知したら警告を発します。「パケットスニファ」や「パケットロガー」としても利用でき、豊富なアウトプットプラグインによる機能拡張が可能です。

OpenAM(オープンエーエム)

  • シングルサインオン

OpenAM(オープンエーエム)とは、オープンソースの認証ソリューションです。「認証」「アクセス認可」「フェデレーション」などの高機能を備え、シングルサインオン機能を提供します。商用製品と同等の機能が実装されており、「アクセス制御の統合/強化」「セキュリティ対策」「個人情報漏洩防止強化」などのメリットがあります。

Keycloak(キークローク)

  • シングルサインオン

Keycloak(キークローク)とは、WebアプリケーションおよびRESTfulWebサービス用のシングルサインオン機能を提供するアクセス管理ソリューションです。「シングルサインオン認証フレームワーク」+「管理コンソール」でシングルサインオン環境を構築するための一通りの機能を提供します。

Shibboleth(シボレス)

  • シングルサインオン

Shibboleth(シボレス)とは、シングルサインオン機能を提供するソリューションです。連合アイデンティティソリューションとして世界で広く展開されており、ユーザーを組織内外の両方のアプリケーションに接続します。

Nmap(エヌマップ)

  • ネットワーク系ツール

Nmap(エヌマップ)とは、ネットワークポートスキャナ(セキュリティスキャナ)であり、ネットワークの検出とセキュリティ監査を行います。

OpenVPN(オープンブイピーエヌ)

  • ネットワーク系ツール

OpenVPN(オープンブイピーエヌ)とは、オープンソースのVPN(Virtual Private Network)構築ソフトウェアです。「堅牢なセキュリティと安定性」が特徴です。

Gluu(グルー)

  • シングルサインオン

Gluu(グルー)とは、オープンソースの認証ソリューションです。アイデンティティおよびアクセス管理を行います。多くの認証プロトコルに対応しています。

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

  • シングルサインオン

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

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

  • ネットワーク系ツール

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

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

  • ネットワーク系ツール

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

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統合管理ソリューションです。

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

  • 認証サーバ

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

バックナンバー

関連記事

無料資料プレゼント

2021/03/04 セキュリティDAYS Keyspider資料

講演資料を見るには、 プライバシーポリシーに同意して、送付先メールアドレスをご入力しご請求ください。

またご入力いただきました情報は、当該資料の作成・提供企業とも共有させていただき、当社及び各社のサービス、製品、セミナー、イベントなどのご案内に使用させていただきます。

本資料を見るには次の画面でアンケートに回答していただく必要があります。



セミナー講演資料公開中

ランサムウェアやBCP、中小企業のデータ保護対策はなぜ難しいのか? ~リスクの現状理解から始める、より簡単に実現できるサイバー攻撃対応策~

世界最高峰のリアルハッカー集団を活用した脆弱性対策 ~米国政府も採用、脆弱性診断・ペネトレーションテストを大胆に変革する方法~

ランサムウェア対策中でも攻撃対象になるバックアップデータを確実に守る方法とは? ~感染を100%は防げない。「最後の砦」におけるデータバックアップの考え方~

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

facebook

twitter