2016年10月25日
オープンソース活用研究所 所長 寺田雄一
2016年07月21日オージス総研東京本社会議室にて、「組込みシステムの品質を改めて考える(設計フェーズと実装フェーズでの対策)」セミナーが開催されました。
セミナー第二部では、株式会社オージス総研サービス事業本部プロダクトサービス部 Coverity Certified Professionalの高橋 作典氏が「静的解析ツールCoverity(コベリティ)、その人気の秘密」というテーマで講演されました。
高い完成度と優れた投資対効果のある、静的解析ツールCoverityは、外部品質のバグ検知と修正に多くの時間とコストを費やしている企業にとってはメリットが大きいツールです。
本稿では、同講演のハイライトをオープンソース活用研究所所長 寺田雄一がレポートします。
Coverity(コベリティ)は、実用的なバグを早期に検知し、短時間に大量のソースの品質を確保できるソースコード静的解析ツールです。
Coverityは、2012年アメリカの組込み静的解析ツール市場において35.8%と市場一位のシェアを誇っていました。2016年現在でもCoverityのシェア一位は変わらず、世界的にも、また日本市場においても同様で、2016現在、日本で最も活用されている静的解析ツールと言えます。
Coverityを使っているユーザー企業には、名だたるグローバルメーカーが名前を連ねています。また、インターネット、金融、証券と、業種を問わず活用されているのも特徴的です。Coverityの人気の理由としては「ツールの完成度」とともに「投資対効果(ROI)」も挙げられています。
静的解析ツールにはランタイムエラー検出系とパターンマッチング系に大別できます。Coverityは、ランタイムエラー検出系の代表製品であり、過去の類似製品の課題を踏まえた進化をしています。
静的解析技術の第一世代は、1970年から1990年にかけて開発されたLintに代表される製品群でした。Lintはノイズが多く性能上の限界がありました。1990年代に、第二世代であるパターンマッチング系解析技術が登場しました。パターンマッチングは可能になりましたが、引き続きノイズが多い状態は続いていました。
そんななか、2000年初頭、パターンマッチングではなく実行時のエラーを検出する技術をもったのが、第三世代のCoverityです。Coverityは業界トップクラスの高精度の解析エンジンにより、低い誤検知率を実現しています。
Coverityの完成度の高さの具体例として突出しているのが誤検知率の低さです。Coverityの誤検知率は15%以下で、他のパターンマッチング系ツールの誤検知率50%を大きく下回ります。
Coverityが公式に発表している誤検知率は15%以下としていますが、実際のユーザー企業のなかには誤検知率は一ケタ、中には数パーセントという企業も存在しています。結果、Coverityのポリシーから出力されるのはほぼ確実にバグである、ということになっています。
またCoverityは、疑似コード実行による全パス解析を行うため、関数コールの先にあるバグまで検出することができます。
さらに、高速な解析もCoverity の特徴で、ビルド時間の3倍から4倍の時間で解析が完了します。
例えば130万行規模の大規模コードのビルドが30分掛かるとすると、Coverityの解析はわずか1時間半程度で完了します。
Coverityの完成度の高さは、開発者のバグ修正時間と手間を大きく削減します。
結果的に開発者に時間的・気持ち的な余裕が生まれ、内部品質の改善に踏み込むことができ、品質改善のスパイラルを作ることも可能です。
Coverityが検知する不具合は、「並列処理の問題」、「パフォーマンスの低下」、「クラッシュの原因」、「プログラムの不正な動作」、「セキュリティ」など、きめ細かく多岐に渡ります。
ここで高橋氏はCoverityが実際に不具合を検知する様子をデモで見せてくださいました。
Coverityは、解析用と解析結果の参照用、ふたつのコンポーネントで構成されています。開発者は、Webブラウザでコンポーネントがあるサーバへアクセスして解析結果を確認し、ソースコードにCoverityがメッセージを添える形で不具合を指摘します。そのほか統計情報から不具合を検出したり、検出条件をあらかじめ設定したりすることもできます。もちろん、日本語にも対応しています。
Coverityが実際に不具合を検知するデモでは、C言語のメモリリークの不具合検出の様子、NULL戻り値の間接参照の不具合検出、コピーペーストエラー検出の様子が紹介されました。
Coverityが投資対効果に優れていることは、Coverityのユーザー企業12社を対象にした調査結果からも窺うことができます。
Coverity導入前の不具合修正時間を16人時間/バグ、導入後を2人時間/バグとした上で、導入前開発コスト3,000万円を導入後には375万円まで削減しました。またCoverityの導入コストを加えても1,000万円以下にまでコストの削減を実現させました。
なかでも、不具合を早期発見することによるメリットは大きいものがあります。リリース前後でのバグの発生は致命的になり、開発コストの増減に直結するからです。
Coverityを導入し開発初期の段階でバグを検出することが可能になったことで、そういったリリース前後の不測の事態が圧倒的に軽減されました。
Coverityを導入することでリリース後の修正コストの発生を防止できるだけでなく、社会的側面を見れば信用失墜や損害賠償コストの発生も未然に防ぐことが可能となります。
トータルで見るとCoverity導入による投資対効果は極めて大きなものになります。
高橋氏は最後にCoverityの人気の秘密の二つのポイント、ツールの完成度と投資対効果をおさらいし、講演の幕を閉じました。
本セミナーの講演資料はマジセミから入手していただけます。
1993年、株式会社野村総合研究所(NRI)入社。 インフラ系エンジニア、ITアーキテクトとして、証券会社基幹系システム、証券オンライントレードシステム、損保代理店システム、大手流通業基幹系システムなど、大規模システムのアーキテクチャ設計、基盤構築に従事。 2003年、NRI社内に、オープンソースの専門組織の設立を企画、10月に日本初となるオープンソース・ソリューションセンター設立。 2006年、社内ベンチャー制度にて、オープンソース・ワンストップサービス「OpenStandia(オープンスタンディア)」事業を開始。オープンソースを活用した、企業情報ポータル、情報分析、シングルサインオン、統合ID管理、ドキュメント管理、統合業務システム(ERP)などの事業を次々と展開。 オープンソースビジネス推進協議会(OBCI),OpenAMコンソーシアムなどの業界団体も設立。同会の理事、会長や、NPO法人日本ADempiereの理事などを歴任。 2013年、NRIを退社し、株式会社オープンソース活用研究所を設立。
2022年11月11日(金)16:00~17:00 『今、知っておくべきサイバー攻撃の実態 ~一番危険なセキュリティリスクは何なのか?~』 と題したウェビナーが開催されました。 皆様のご参加、誠にありがとうございました。 当日の資料とサマリー動画を以下から無料でご覧いただけます。 ご興味のある企業さま、ぜひご覧ください。
「OSV-Scanner」(OSVスキャナー)とは、Google製「脆弱性スキャナー」です。「プロジェクト依存関係リスト」と「既知脆弱性」を照合するための「OSVデータベースへのフロントエンド」を提供します。パッケージリストに対して詳細チェックを実施することで、パッチ適用の必要性情報を得られます。
FreeRADIUS(フリーラディウス)とは、オープンソースの高機能RADIUSサーバです。「RADIUS」はネットワーク上で「利用者認証」「権限付与」「利用状況記録」などを実施するための認証プロトコルであり、デファクトスタンダードとして広く使用されています。
Google Authenticator(グーグルオーセンティケーター)とは、Googleが開発している2段階認証(2要素認証)用トークンソフトウェアです。「SMSテキストメッセージ」「音声通話」「モバイルアプリ」などを使用して認証コードを送信/生成します。Googleサービスのみではなく、他社サービスの認証にも利用できます。
Vuls(バルス)とは脆弱性スキャンツールです。脆弱性データベースから脆弱性情報を取得して、「Linux(FreeBSD)系OS」「各種ミドルウェア」「各種フレームワーク」などに対する脆弱性存在を検査し、詳細情報をレポーティングします。サーバにインストールされているソフトウェアに対する脆弱性存在チェックに利用できます。
WireGuard(ワイヤーガード)とは、VPN(Virtual Private Network)ソリューションです。「Linuxカーネルツリーにマージ」「シンプル」「使いやすい」「数行のコードで簡単に実装」「ハイパフォーマンス」「学術研究をベースとして実装されている高いセキュリティ」などを特徴としています。
OpenLDAP(オープンエルダップ)とは、ディレクトリサービスを提供するオープンソースLDAPサーバです。サーバ間やシステム間で認証連携を行い、ユーザー情報データベースを統合管理することで、シングルサインオンを実現するための共通基盤となります。ディレクトリ情報の一元管理により、運用管理の作業負荷を大幅に削減し、セキュリティを強化できます。
OpenVAS(オープンバス)とは、セキュリティチェック用脆弱性スキャンツールです。包括的で強力な脆弱性スキャンを行うことで脆弱性管理をサポートします。対象ホストのOSやソフトウェアに既知の脆弱性が含まれているかどうかについて自動でチェックを行い、詳細レポートを作成します。
Metasploit Framework(メタスプロイトフレームワーク)とは、セキュリティ脆弱性テストフレームワークです。コンピュータセキュリティに関するオープンソースプロジェクトで、「情報収集」「脆弱性検出」「ペネトレーションテスト」などを主な守備範囲としています。
ClamAV(クラムエーブイ)とはアンチウイルスエンジンです。さまざまな「ウイルス」「マルウェア」「悪意のある脅威」などを検出します。「ファイルスキャン」「電子メールスキャン」「Webスキャン」などエンドポイントセキュリティを含むさまざまな状況で利用できます。
Snort(スノート)はネットワーク型IDS(不正侵入検知システム)です。ネットワーク上を流れるパケットを解析して、不正パターンに合致するパケットを検知したら警告を発します。「パケットスニファ」や「パケットロガー」としても利用でき、豊富なアウトプットプラグインによる機能拡張が可能です。
OpenAM(オープンエーエム)とは、オープンソースの認証ソリューションです。「認証」「アクセス認可」「フェデレーション」などの高機能を備え、シングルサインオン機能を提供します。商用製品と同等の機能が実装されており、「アクセス制御の統合/強化」「セキュリティ対策」「個人情報漏洩防止強化」などのメリットがあります。
Keycloak(キークローク)とは、WebアプリケーションおよびRESTfulWebサービス用のシングルサインオン機能を提供するアクセス管理ソリューションです。「シングルサインオン認証フレームワーク」+「管理コンソール」でシングルサインオン環境を構築するための一通りの機能を提供します。
Shibboleth(シボレス)とは、シングルサインオン機能を提供するソリューションです。連合アイデンティティソリューションとして世界で広く展開されており、ユーザーを組織内外の両方のアプリケーションに接続します。
OpenVPN(オープンブイピーエヌ)とは、オープンソースのVPN(Virtual Private Network)構築ソフトウェアです。「堅牢なセキュリティと安定性」が特徴です。
WSO2 Identity Server(ダブルエスオーツー アイデンティティ サーバ)とは、シングルサインオンソリューションです。アプリケーション/API/クラウド/モバイル間で統合ID管理を行います。
LibreSSL(リブレ エスエスエル)とは、SSL/TLSプロトコルのオープンソース実装(通信用ソフトウェア)で、「OpenSSL」の派生改良版です。圧倒的シェアを持つが問題が多い「OpenSSL」を代替できるものとして期待されています。
OpenSSH(オープンエスエスエイチ)。ネットワーク経由通信を暗号化する「SSH」のオープンソース実装です。おもにUNIX/Linuxサーバに対するネットワーク経由でのリモートログインに使用します。
OpenSSL(オープンエスエスエル)。オープンソースSSL/TLS暗号化ライブラリです。世界中のWebサイトで圧倒的シェアを持っており、事実上の業界標準となっています。
Apache DS(アパッチディーエス)。オープンソースのLDAP(ディレクトリ)サーバです。「Apache Directory」プロジェクトで開発されています。
389 Directory Server(389ディレクトリサーバ)。オープンソースディレクトリサーバです。「Fedora Directory Server」の後継で、商用製品の流れを受けており、ユーザフレンドリーなGUIツールの充実などが特徴です。
OpenIDM(オープンアイディーエム)。高い柔軟性と拡張性を備え、エンタープライズ/クラウド/モバイル/ソーシャル/レガシーなど多様な環境において、ユーザアカウントのプロビジョニングとライフサイクルの一元管理を実現するID管理製品です。
OpenDJ(オープンディージェー)。OpenAMに内蔵されており、先進的なレプリケーションアーキテクチャや「REST API」を搭載したLDAP準拠の高機能オープンソースディレクトリサーバです。
OSS×Cloud ACCESS RANKING