ほとんどの人は意識していないと思うが、日常的に使用しているデバイスやアプリの多くはオープンソースソフトウェア上に構築されており、1人か2人の開発者によって維持管理されている。開発者は自分の時間のためにお金を支払われておらず、コミュニティや情熱的なプロジェクトに還元するべく、バグを修正したりコードを改善したりしている。
例えば「cURL」は、APIなどの別のシステムのデータにソフトウェアが簡単にアクセスできるようにするオープンソースライブラリである。このライブラリは、iPhoneから自動車、スマート冷蔵庫、テレビに至るまで、ほぼすべての現代的なコネクテッドデバイスで使用されているが、基本的には1人の開発者、Daniel Steinberg(ダニエル・ステンバーグ)氏が30年近く無料で維持管理している。
多くのオープンソースプロジェクトが営利目的のソフトウェアやデバイスに含まれており、一般的に、純粋な謝意を別にすれば報酬がともわないにもかかわらず、このシステムはほぼ確実に機能している。一部のオープンソース開発者は、GitHub SponsorsやBuy Me A Coffeeなどのプログラム、企業とのメンテナンス契約、あるいは自分のライブラリの維持費を支払ってくれる企業で仕事をすることで、自分の仕事を首尾よくサポートすることができるが、これは標準とは程遠い。
広範なセキュリティ侵害が発生したとき、このシステムの不公平性がしばしば表面化する。2021年12月にJavaライブラリ「Log4j」に出現したLog4Shellの脆弱性は、世界中で重大なセキュリティ脆弱性の問題を引き起こしており、一部の大企業にも影響が及んでいる。
影響を受けたライブラリの開発者たちは、問題を緩和するために24時間体制で作業することを余儀なくされたが、対価は支払われず、そもそも彼らの開発品は無料で使用されていたのだということへの認識も乏しいものであった。cURLの開発者も同じような扱いを経験している。同氏のプロジェクトに依存している企業が、コードに問題が発生した際、そのサービスに対価を支払っていないにもかかわらず、同氏に支援を求めてきたのである。
したがって、当然のことながら、自らの仕事に対する報酬がない中で自分たちが過大な力を行使していることを、一部のオープンソース開発者たちは自覚し始めている。彼らのプロジェクトは、世界最大規模の収益性の高い企業に利用されているのである。
その一例として、人気のnpmパッケージ「colors」と「faker」の開発者であるMarak Squires(マラク・スクワイアーズ)氏は、2022年1月初旬、これらのコードに意図的に変更を加え、ユーザーすべてに影響する破壊的展開を誘発した。使用時に「LIBERTY LIBERTY LIBERTY」というテキストに続いて意味不明な文字や記号を出力し、無限ループが発生するというものであった。
スクワイアーズ氏はこの変更を行った理由についてコメントしていないが、同氏は以前GitHubで「私はもうFortune 500企業(およびその他の小規模企業)を無償の仕事でサポートするつもりはありません」と発言していた。
スクワイアーズ氏が加えた変更は、Amazon(アマゾン)のCloud Development Kit(クラウド開発キット)を含む他の人気プロジェクトを破壊した。同氏のライブラリは週に2000万近くnpmにインストールされており、何千ものプロジェクトが直接的に依存している。npmは数時間以内に不正なリリースをロールバックし、GitHubはそれに応じてこの開発者のアカウントを一時停止した。
npmの対応は、過去にもライブラリに悪意のあるコードが追加され、最終的にはロールバックされて被害を抑えた事例があり、予想されるものであった。一方で、GitHubはこれまでにない反応を示した。同コードホスティングプラットフォームは、スクワイアーズ氏がコードの所有者であり、意のままに変更する権利を持っていたにもかかわらず、同氏のアカウント全体を停止したのである。
開発者が抗議のために自身のコードを取り下げる形をとったのも、これが初めてではない。2016年に「left-pad」の開発者は、自身が所有する別のオープンソースプロジェクトの命名をめぐってKik Messenger(キック・メッセンジャー)と争った後、npmから自分のコードを取り下げ、依存していた何万ものウェブサイトを破壊した。
驚くべきことに、著名なライブラリが時折業界のやり方に抗議してはいるが、この種の事象はそれほど一般的なものではない。オープンソース開発者たちは、自分たちの仕事の裏で数百万ドル(数億円)のプロダクトが作られているにもかかわらず、無償で働き続け、自らのプロジェクトの維持管理に最善を尽くしている。
ホワイトハウスでさえテクノロジー業界に対するオープンソースの重要性を認めている。Log4Jの一連の出来事を受けて2022年1月に業界と会合を持ち、次のように言及している。「オープンソースソフトウェアは独自の価値をもたらすものであり、同時に独自のセキュリティ上の課題を抱えている。その背景には、利用範囲の広さと、継続的なセキュリティの維持管理に責任を負う多数のボランティアの存在がある」。
しかし、こうした声明が出ている一方で、大規模な人気を誇るオープンソースソフトウェアでも、少なくとも世間の注目を集めるまでは、厳しい資金不足に陥っている。Heartbleedの脆弱性がインターネット全体を危険にさらす前、影響を受けたオープンソースプロジェクト「OpenSSL」への寄付は年間2000ドル(約23万円)程度であったが、問題が発覚した後には9000ドル(約102万円)に増加した。
現代的なネットワーク機器のほぼすべてで使われているOpenSSLの開発チームは当時、書面で次のように述べていた。「OpenSSLのケアと供給に専念できるフルタイムのチームメンバーは、1人ではなく、少なくとも6人は必要です」。プロジェクトチームはその代わりに、プロジェクトの維持費をカバーする契約作業を継続的に確保している。
開発者が自身のオープンソースライセンスを変更したり、自分の仕事をプロダクトに変えたり、スポンサーを増やす努力をすることはできるにしても、すべてのプロジェクトに万能のソリューションはない。この無償の仕事のすべてに資金を提供するより良い方法を業界が見出すまでは(誰もそんなことは考えていないようであるが)、より多くのオープンソース開発者が、意図的に自分たちの仕事を中断する形で不服従行動を起こすことで、自らが貢献しているものに光を当てる他ないのが現状である。
これは長い目で見れば持続可能なものではない。しかし、この混乱からどうやって抜け出すのかは不透明である。今日生み出されているあらゆるソフトウェアやコネクテッドデバイスでオープンソースの採用が急増しているが、何人かのオープンソース開発者が陰鬱な日を甘受するのではなく、すべてを破壊しようと決断することに、その行方が委ねられている。
何百万ものデバイスで使用されているcURLのようなライブラリが、洗濯機から乗用車まであらゆるものに含まれているという状況であっても、作成者がそのサポートに疲れて世界にメッセージを送ることを決断したとしたら、どのようなことが起きるであろうか。過去においては被害が回復したことは幸運であったが、将来はそのような幸運にはつながらないかもしれない。
画像クレジット:aurielaki / Getty Images
[原文へ]
(文:Owen Williams、翻訳:Dragonfly)