朗子2015年12月17日TweetOSS(オープンソースソフトウェア)の利用により開発コスト削減や最新技術適用というメリットを享受できる一方、ライセンスの理解不足からくる様々なコンプライアンス上のリスクに、企業は未ださらされています。本稿では、「OSSライセンス違反」のリスクに関し、その問題と有効な対策を説明します。OSSライセンスみなさんは、OSSライセンス違反のニュースを目にしたことがあるでしょうか。OSSライセンス違反を起こすと、製品の販売停止や損害賠償、企業の社会的評価の低下(他者の知的財産権を尊重しない)など、その企業にとって無視できないダメージをもたらす可能性があります。そこでまず、OSSライセンスとはどういうものなのかということから見ていきたいと思います。OSSはソースコードが公開されており簡単に入手できますが、利用に際しては守るべき条件があることをまだ十分に認識していない人も多いのが現状です。利用条件があることを知らずに自社製品に組み込んで販売し、製品のエンドユーザーから利用条件を守っていないと指摘されるケースがしばしばあります。そこで、この利用条件とはどういうものなのかを知るために、少し著作権について触れます。OSSを含むプログラムは著作権法で保護される著作物です。著作権者は著作物に関する権利を専有しますが、他社に対してその利用を許諾することもできます。許諾を得た者は許諾された利用方法及び条件の範囲内でその著作物を利用できます。OSSライセンスとはこの「利用許諾」にあたり、「許諾された利用方法及び条件」が書かれたものがOSSライセンスの条文になります。ここで、多くのOSSに使われているMITライセンスの条文をみてみましょう。)これを要約すると、次のようになります。できることを無償で許可します。上記の著作権表示とこのライセンス文を、あなたの著作物に表示してください。このソフトウェアは無保証です。一切の損害に対して何の責任も負いません。このようにOSSライセンスの条文には、他者の著作物を利用するために許諾された利用方法や条件が書かれています。OSSはこれらの要件を守ることで利用が許諾されているものなので、要件を満たさずにOSSを利用した場合は「OSSライセンス違反」となります。License)の条件を守っていないケースが「GPL違反」と呼ばれるものです。kernelに採用されていることで有名で、OSSプロジェクトでも人気のあるライセンスです。GPLでライセンスされたOSSを複製、改変した著作物にもGPLを適用しなければならず、ソースコードの開示が義務付けられているのが特徴です。GPLは英語で書かれおり契約書で使用されるような特別な用語も多く、長文で難解です。あいまいな記述があるため誤って認識されることも多く、それがGPL違反を引き起こす一因になっているとも言えます。ここで、GPL違反の事例を紹介します。Welte氏(ドイツのプログラマ。当該訴訟の対象となったOSSの著作権者の一人。GPLが遵守されているかを監視するプロジェクトgpl-violations.orgを立ち上げ積極的に活動)[被告]FANTEC(ドイツのメディアプレーヤーメーカー)2013年6月、FANTECが配布したメディアプレーヤーにGPLv2のOSSが含まれているファームウェアを利用していたが、開示されたソースコードにはそのOSSのコードが含まれておらず、また製品とソースコードのバージョンが異なっていると指摘。Europe;FSFE)主催のコンプライアンスハッキングワークショップで発覚。FANTECの主張:開示したソースコードは、ファームウェアを提供した中国のサプライヤーから受け取ったものであり、サプライヤーによってソースコードの内容は保証されている、と主張。参考:http://opensource.com/law/13/7/fantec-german-foss-compliancehttps://fsfe.org/news/2013/news-20130626-01.en.htmlこの事例は訴訟に発展したケースですが、Welte氏とFANTECの間には2010年にも同様の争いがあり、話し合いにより平和的に解決したという事実がありました。その際FANTECは、GPLの条件を遵守すること、違反した際は罰金を支払うことに合意しました。その合意にもかかわらずまたもやGPL違反が発覚したため、訴訟に至る結果となりました。この事例を見てわかるように、GPL違反が発覚したとしてもいきなり提訴されるわけではなく、事前に警告が届きます。この警告の段階で違反の指摘を真摯に受け止め、OSSコミュニティ側とコミュニケーションを密に取り、迅速に適切な対応を行えば訴訟を回避することも可能だったでしょう。このケースでは、GPLの条件を遵守する責任があるのはサプライヤーだけではなく、最終的には製品の配布者であることが明示されました。OSSライセンス違反の対策これまで説明してきたように、いったんOSSライセンス違反を引き起こしてしまうと、企業は大きなダメージを受ける可能性があります。ならないために、最も重要と思われる5つの対策を初めに挙げ、続いて、さらにリスクを低減するために有効な対策を説明します。1.OSS利用ポリシーの策定OSSライセンス違反のリスクを低減するために、初めにやるべきことはOSS利用についてのポリシーの策定です。当社のコンサルティングでもポリシー策定の支援業務が増えています。ポリシーの策定では自社のビジネス戦略にあわせて、OSS利用の可否と、必要であれば特定のOSSやOSSライセンスの利用の可否を決めます。主要なOSSライセンスについては利用条件を記載し、ソースコード公開義務の有無などで分類し、ガイドラインとしてまとめておくとよいでしょう。GPLのソースコードの公開範囲など、さまざまな解釈が存在するケースは有識者を交えて十分に検討し自社の見解を統一しておく必要があります。2.教育の実施OSSライセンス違反の多くは、ライセンスに対する理解不足に起因します。従業員に対して教育を実施しOSSの知識を深め、企業のポリシーを周知することはとても重要です。OSSの利用には条件があるのを知ることで、インターネットで見つけたソースコードを安易に使うことを減らすことができます。開発部門への教育はもちろんのこと、開発の委託・受託のケースでは、営業部門についてもOSSライセンスの知識が欠かせません。開発を委託される場合、委託元から利用しているOSSとその利用条件の提示を求められるケースが増えています。開発を委託する場合は、委託先との契約時にOSSの利用についての自社のポリシーに合意してもらわなければなりません。開発を委託する場合は、契約時に委託先とOSSの利用について合意する必要があります。OSSライセンスの遵守の義務は最終的には製品を配布する企業にあるため、ソフトウェアに含まれるOSSを把握する必要があり、それは委託先が開発したソフトウェアでも同様です。委託先からのソフトウェアの納品時に、ソフトウェアの中に含まれるOSSと、そのOSSをどのような手段で検出したのかを確認する必要があるでしょう。委託先が開発したソースコードが納品されない場合は注意が必要です。委託先が開発したソフトウェアに関して外部からOSSの利用について問い合わせがあった場合は、ソースコードを調査することがあります。このような場合に委託先に協力を仰げるよう、契約に盛り込むことも一案です。4.ソフトウェアの検査ポリシーや教育、開発委託時の契約でOSSの適正利用に配慮したとしても、意図せぬOSSが混入するリスクは残存しています。リスクをさらに低減するためには、ソフトウェアを検査することが効果的ですが、目視で膨大なソースコードを検査するのは事実上不可能です。そこで、ソフトウェアに含まれるOSSを検出するツールを利用する手段があります。このようなツールはOSSの部分的な流用も検知し、常に最新のOSSの情報を取り込んでいます。検出ツールを利用するには、自社に導入し社内で検査する方法もあれば、当社が提供するような検査・診断サービスを利用する方法もあります。いずれにせよツールを利用してソフトウェアを検査することは、意図せぬOSS利用を検出するのに最も有効な手段といえます。ソフトウェアの検査は、少なくとも一度は開発工程の早い段階で実施することを推奨します。ポリシーに沿わないOSSや意図せぬOSSが検出された場合は、ソースコードを修正する必要があり開発の手戻りが発生するためです。開発中の実施に加え、出荷前までに何度か実施することにより、よりリスクを低減することができます。5.体制の構築と運用OSS利用ポリシーを確実なものにするためには、体制と仕組みを構築し、継続して実施していかなければなりません。なる部門横断的なものが望ましいでしょう。ここまで、OSSライセンス違反のリスク低減のために、最も重要と思われる対策を説明しました。その他にも次のような対策が有効だと考えられます。特定のOSSの利用可否やOSSライセンスの解釈など、社内からの問い合わせの窓口を設け対応します。必要によって、OSS利用ポリシーやガイドラインの更新、FAQなどを作成します。開発プロジェクトから利用する予定のOSSを申請し、それを審査・承認する仕組みを構築するのも効果的です。設計段階からOSSライセンスを意識することにより、開発の手戻りを最小限に抑えることができます。ソフトウェアの検査とともに、この仕組みを開発フローに取り込んでもよいでしょう。ライセンス遵守状況の出荷前チェック製品の出荷前にOSSライセンスを遵守できているかチェックをします。利用しているOSSの著作権や免責条項の表示、ソースコードの入手方法の通知、出荷する製品のバージョンに対応したソースコードの開示など、個々のOSSライセンスの条件を満たしているかチェックします。製品で利用しているOSSを把握しておくことが肝心です。開発部門からの問い合わせに対して、利用実績のあるOSSかどうか判断できます。外部からの問い合わせにも迅速に対応できます。製品を利用しているユーザーや、OSSの適正利用を推進する団体からの問い合わせの窓口を設置します。問い合わせに対しては、迅速に調査を行い、誠意を持って対応することが大切です。まとめ本稿では、「OSSライセンス違反」のリスク、および、そのリスクを低減するための対策を説明しました。OSSの開発者やコミュニティに敬意を払い、ライセンスを遵守しながら、OSS利用のメリットを十分に引き出すための参考になれば幸いです。3つの観点からツールとコンサルテーションを組み合わせたソリューションを提供しています。