オープンソースライセンスのリスクマップ:MIT から AGPL まで、恐れるべきものと恐れなくてよいもの
オープンソースライセンスは 2,000 種類以上あるが、法務とエンジニアリングチームが本当に必要とするのは、「伝染性」で階層化された一枚の地図である。恐れる対象を間違えると、効率を誤って殺すか(GPL の全面禁止)、リスクを見逃すか(AGPL コンポーネントを SaaS に組み込む)のどちらかになる。
第 1 層:寛容型——安心して使える、ただし帰属表示を忘れずに
MIT、BSD、Apache-2.0 は寛容型(Permissive)に属する。商用利用・改変・クローズドソース配布が許され、義務は基本的に著作権表示とライセンス文の保持だけだ。Apache-2.0 は特許許諾条項を伴い、企業にとってはむしろ保護になる。この層の本当のリスクはライセンスそのものではなく実行の細部にある——NOTICE ファイルひとつない「帰属表示ゼロ」の納品は、顧客のデューデリジェンスで同様にコンプライアンス欠陥として記録される。監査で最も頻繁に見つかる問題は、まさに寛容型コードの著作権ヘッダーまで剥がして自社開発として扱うケースであり、これはスニペットレベル検出の前では隠しようがない。詳しくは SCA ツールの選び方を参照。
第 2 層:弱いコピーレフト——触れなければ伝染しない
LGPL、MPL-2.0、EPL は弱いコピーレフトで、「ファイル」または「ライブラリ」が境界になる。そのファイルを改変すれば当該部分の開示義務が生じるが、境界を明確に保つ限り自社コードは影響を受けない。エンジニアリング上の要点はリンクと隔離の方式——LGPL コンポーネントの動的リンクは通常安全だが、静的リンクは製品全体をオープンソース義務に引きずり込みかねない。静的リンクが常態である組込みと C/C++ プロジェクトが重灾区だ。
第 3 層:強いコピーレフト——配布した瞬間に発動
GPL-2.0/3.0 のルールはシンプルかつ厳格だ。GPL コードを含むソフトウェアを配布した時点で、派生物全体を GPL で公開しなければならない。対外納品する商用ソフトウェア、プリインストールされたデバイスファームウェア、クライアントアプリはいずれも配布に当たる。ただし誤解されがちな境界が二つある。第一に、純粋な内部利用は配布ではない——自社サーバーで GPL ソフトウェアを使うだけなら開示義務はない。第二に、GPL の「派生物」の境界は法的にグレーゾーンが残る——独立プロセス間の通信は通常伝染せず、深いリンクはリスクが高い。
第 4 層:ネットワーク伝染と商用制限——SaaS 時代の新たな地雷原
AGPL-3.0 は発動条件を「配布」から「ネットワーク経由のサービス提供」に拡張した——ユーザーがネットワーク越しにあなたの SaaS を使えば、ソース開示義務が生じる。大手クラウド事業者が AGPL を禁止リストに入れているのはまさにこのためだ。さらに新しい「ソースアベイラブル」系ライセンスは一歩踏み込む。SSPL(MongoDB)、BSL(かつて HashiCorp が採用)、Elastic License は「競合するホスティングサービスの提供」を直接制限する。これらはもはや OSI 認定のオープンソースライセンスではないが、多くのチームがいまだに普通のオープンソースとして導入している。近年の著名プロジェクトの相次ぐライセンス変更が証明するのは、ライセンスは静的な属性ではないということだ。バージョンアップがすべてを変えうる以上、バージョン固定はライセンスバージョンの固定とセットでなければならない。
3 ステップで実装するガバナンス
第 1 ステップ:資産の棚卸し。CleanSource SCA でコードベースを全量スキャンする。重要なのは依存マニフェストに宣言されたものではなく、コピー&ペーストや改名流用で入り込んだもの——ライセンスリスクが最も高いコードは、往々にしてマニフェストに見えないその部分だ。軽く始めるなら無料のコミュニティ版がある。
第 2 ステップ:配布形態別にポリシーを定める。同じコンポーネントでも、社内ツール・対外納品・SaaS の三形態でリスクはまったく異なる。ポリシーはマトリクス(ライセンス種別 × 配布形態 × 許可/審査/禁止)として文書化し、法務の Word ファイルに眠らせるのではなく、スキャンツールの導入ゲートとして設定する。
第 3 ステップ:義務履行のエンジニアリング化。リリースごとに更新される帰属表示ファイル(NOTICE/attribution)を自動生成し、ライセンス情報を SBOM に載せて一緒に納品する。顧客の検収や輸出認証の場面で、このファイルの有無がコンプライアンス確認を 10 分で終えるか 10 日かけるかを直接決める。
ライセンスコンプライアンスの目的は「GPL の撲滅」だったことは一度もない。すべての導入を情報に基づく意思決定にすることだ。地図さえ明確なら、どの道を行くかはビジネスの自由である。
