素早く品質の高品質のソフトウェアを開発するために欠かせないOSS(オープンソースソフトウェア)ですが、正しく利用しないと著作権違反になってしまうことはご存知でしょうか?
OSSの急速な普及拡大に対して、OSSライセンスへの理解が追いついていないのが実情であり、著作権を侵害しないためにも、ライセンスへの理解が急務となっています。
そこでこの記事では、OSSのライセンス条件を守らなくてはいけない理由や、違反した場合どうなるのか?どう対処していけばよいのか、初心者向けにご紹介します。
目次
OSSは著作物である
GitHubに公開されているソースコードはもちろん、npmやPyPIなどで配布されているパッケージも、その多くがOSSです。
しかし、そもそもオープンソースとは何でしょうか?
オープンソースを定義しているOSI(Open Source Initiative)によると、以下の条件を満たすものをオープンソースと呼びます[1]https://opensource.org/osd。
オープンソースの条件
- 無償での再配布
- ソースコードであること
- 派生著作物
- 作者ソースコードの完全性
- 個人や団体への差別の禁止
- 特定分野で使用を制限しない
- ライセンスの配布
- ライセンスは製品に限定されない
- 他のソフトウェアを制限しない
- 技術的に中立であること
加えて、忘れてはならないのは、OSSには著作権が存在することです。そして、その著作物であるOSSの許諾と条件を記載したものがOSSライセンスとなります。
したがって、OSSに定められたライセンス条件に違反した場合、著作権違反の罪を犯すことになります。
OSSライセンス条件に違反するとどうなるのか?
ライセンスに違反した場合、主に以下のようなリスクがあります。
- 著作権や特許権などの知的財産権侵害による訴訟
- ソフトウェアの価値やイメージの低下
- ソフトウェアの利用差し止めや公開
OSSは著作物であり、著作権法の対象になりますが、Apache 2.0などの一部のライセンスは特許条項を持つ場合があるため、特許権についても注意が必要です。
訴訟などのトラブルに発展する事例はアメリカが多いものの、日本企業においても訴訟やOSSの利用差し止めや、ソースコードを公開せざるを得ない状況になった事例があります。
OSSライセンスに関する訴訟事例については、2018年にOracleがGoogleに対して行った訴訟などが有名ですが、日本企業に対する訴訟事例も発生しています。
2017年3月、Panasonic Avionicsが開発した航空機内エンターテイメント(IFE)ソフトウェアに対し、米国のCoKinetic SystemsからGPL違反で1億ドルの賠償を求める訴訟が発生しています[2]https://www.meti.go.jp/shingikai/mono_info_service/sangyo_cyber/wg_seido/wg_bunyaodan/software/pdf/002_03_00.pdf。
その他の訴訟事例については、WikipediaのOpen source license litigationを参照してください。
販売差し止めやソースコードの開示事例
2002年にエプソンコーワのリリースしたドライバーのGPL違反が指摘され、3ヶ月間公開停止に追い込まれた例[3]https://www.meti.go.jp/shingikai/mono_info_service/sangyo_cyber/wg_seido/wg_bunyaodan/software/pdf/002_03_00.pdfや、アクアプラスのゲーム『ToHeart2 XRATED』にGPLのOSSが含まれていたため、ソースコードを公開した事例[4]https://leaf.aquaplus.jp/product/xvid.htmlがあります。
しかし、すべてのライセンス違反が対処されているわけではありません。
ソニー・コンピュータエンタテインメントにより開発・発売されたゲーム『ICO』や、2018-2020年の売上トップ20のAndroidアプリ[5]https://www.brighttalk.com/resource/core/346324/oss_757493.pdfなど、※コピーレフト型ライセンスが組み込まれているにも関わらず、ソースコードの開示をせずとも大きな問題になっていないケースもあります。
とはいえ、訴訟やソースコード開示を要求されるリスクを考えると、素直にライセンスに従うのが安心でしょう。
※ソースコードの開示が必要かどうかで、OSSライセンスを以下の2種類に分類されます。
OSSライセンスにおける主な条件
2021年のWhiteSource社の統計[6]https://www.mend.io/resources/blog/open-source-licenses-trends-and-predictions/によると、採用されているOSSライセンスの98%は、上位8つのライセンスで占められており、これらのライセンスに共通する主な条件は下記のとおりです。
- 著作権、ライセンス本文、免責事項の表示
- ソースコードに加えた変更の表示
- ソースコードの一部または全部の開示
なかでも、上記①は大多数のライセンスにおける条件となっています。
ライセンス表示に関する詳細についてはこちらの記事を参照してください。
また、今回紹介したOSSに関するトラブル事例にもありますが、③のソースコードの開示が条件となっているコピーレフト型ライセンスついては、トラブルに発展するケースが多いためとくに注意です。
利用者側にしてみれば、OSSのライセンスというのはただ面倒な代物にも思えますが、川崎和哉氏の著書『オープンソースワールド』にはこんな一文があります。
オープンソース・ソフトはこうした一連の定義と、それに適合するオープンソースなライセンスによって、ユーザーの権利を守ろうとしている。
川崎和哉、『オープンソースワールド』、翔泳社、1999年12月20日、P.147
OSSライセンスは、ソフトウェアが企業などに専有されることなく、ユーザーが自由かつ平等にソフトウェアを扱えるようにするために存在しています。
つまり、私達がGitHubからソースコードをダウンロードしてきて友人に配布したり、ソフトウェアに組み入れて公開できるのはOSSライセンスのおかげなのです。
OSSでライセンス違反を避けるためにできること
著作権侵害のリスクを極力避けるためには、そもそもOSSを利用しないのが理想ですが、大手企業でもない限り、そうは行かないのが実情です。
著作権侵害をしないためには、OSSライセンスへの理解を深めるとともに、ライセンス条件に従うことを前提とした上で、以下のような対策が考えられます。
SCAの導入
SCA(Software Composition Analysis)はソースコードに含まれるOSSを管理するためのツールです。
GitHubのリポジトリなどと連携させることで、ソフトウェアに含まれるOSSを自動追跡・管理し、ライセンスや依存関係を一覧にしたSBOMの自動作成が可能です。
SCAはシノプシスやVeracodeなど、さまざまな企業が提供していますが、なかでもSnykは5人まで無料で多くの機能が利用可能なため、試しに導入して見るにはうってつけです。
CIでライセンスチェックを行う
万が一ソースコードに、組み込んではいけないライセンスのOSSを組み入れてしまっても、CIでチェックすれば混入を防げます。
ライセンスチェック用ツールは、Rubyで動作するGitHubのlicensedや、npmであればlicense-checkerなどが公開されており、環境に合わせて導入してみてください。
トラブルになりそうなライセンスの使用を避ける
ソフトウェアに組み込む前に、問題ないライセンスかどうか確認すれば、後々の手間になることもありません。
ライセンスの種類はもちろん、OpenSSL LicenseやPHP Licenseなどのように、独自のライセンス条件が含まれることも考慮して、ライセンス条文の確認もしたほうが良いでしょう。
日本語訳したライセンス条文はオープンソースライセンスの日本語参考訳 | licensesで確認できます。
OSSライセンス条件を確認する際は、許諾事項やライセンス条件などが簡潔にリストでまとめられているchoosealicense.comが便利です。
Mac専用ですが、APIドキュメントブラウザ兼スニペット管理ツールのDashを使うと、素早くライセンスを確認できます。
まとめ
この記事では、OSSライセンス条件を守らなくてはならない理由や、著作権違反を避ける方法などについてご紹介しました。
OSSライセンスは難しいという印象を抱きがちですが、OSSライセンスの条件がおおむね共通しており、OSS採用時やCIのチェックでトラブルになりそうなライセンスを避けるだけでも著作権侵害のリスクを低減できるでしょう。
OSSが著作物であり、扱い方によっては犯罪になる可能性があるという意識を持って正しくOSSを活用していきましょう。
Reference
↑1 | https://opensource.org/osd |
---|---|
↑2, ↑3 | https://www.meti.go.jp/shingikai/mono_info_service/sangyo_cyber/wg_seido/wg_bunyaodan/software/pdf/002_03_00.pdf |
↑4 | https://leaf.aquaplus.jp/product/xvid.html |
↑5 | https://www.brighttalk.com/resource/core/346324/oss_757493.pdf |
↑6 | https://www.mend.io/resources/blog/open-source-licenses-trends-and-predictions/ |