分析先週、Log4j の重大なセキュリティホールが公開されたことで、オープンソース ソフトウェアの開発、支払い、保守の方法を再考する声が再燃しているが、長い間くすぶっていた問題が完全に消えたわけではない。
Log4j のバグは、Apache のオープンソースの Java ベースのログ ライブラリ Log4j に存在する、認証されていないリモート コード実行の脆弱性 (CVE-2021-44228) であり、悪用が難しくなく、ソフトウェアが広く使用されていて多くのプログラムの奥深くに埋め込まれているため、特に深刻で広範囲にわたります。
バグに気付かなかった少数のプロジェクトメンテナーに対する苛立ちから、開発者の Volkan Yazici 氏は、金銭的な支援やコード修正の寄付もせず、無給のボランティア労働をしているメンテナーを非難する人々すべてに対して憤慨した。
Log4j RCE 最新情報: 気づいていないかもしれませんが、これは非常に深刻で、実際に悪用されており、緊急のパッチ適用が必要です。
続きを読む
オープンソース ソフトウェアをコミュニティに還元せずに自由に利用できる作品を使用する企業によるオープンソース ソフトウェアの悪用は、長年、オープンソース プロジェクトの管理者にとって悩みの種となってきました。
これはオープンソースの持続可能性問題と呼ばれることもあり、コストを最小限に抑え、利益を最大化しようとする企業の決意を軽視する特徴づけとなっています。
利益を生む企業になること、そしてより確立したライバル企業に無償の労働力を奪われることを避けたいと願うオープンソース プロジェクトの間では、この問題は、責任追及を避ける環境保護的な婉曲表現ではなく、略奪的なテクノロジー大手がオープンソースをむさぼり食うという敵対的な言葉で表現されてきた。
現状について意見を述べたグーグルの暗号技術者であり、インターネット界の巨人であるGoプログラミング言語のセキュリティリーダーでもあるフィリッポ・バルソルダ氏は土曜日、オープンソースのメンテナーに対し、報酬を得てオープンソースをより持続可能なものにするために、ソフトウェアを使用している企業とより専門的なレベルで関わるよう求めた。
「メンテナーは、請求書を承認・処理する大企業の部門に分かりやすく説明する必要があります」と彼は個人ブログに書いた。「考えてみてください。パトレオンで法律事務所に支払いをする企業はないはずです」
考えてみてください。Patreonで法律事務所に報酬を支払う企業はないのです。
約9年間勤務したGoogleを10月に退社し、セキュリティ関連の新興企業Chainguardを設立したダン・ロレンス氏は、Googleとオープンソース・プロジェクトの関わりにおいては、問題は資金ではなく配布にあると語った。
「企業には予算があり、支出する意思はあるが、時間がかかりすぎる」と彼はTwitterで述べた。「支援を必要としているプロジェクトと、お金と引き換えに協力してくれるメンテナーを見つけるのは難しい」
しかし、ギグエコノミーのツールではなく、企業特有の言葉遣いで丁寧に頼めば企業が報酬を支払うという考えは、必ずしもすべての人にとって受け入れがたいものだ。まず、個人ユーザーだけでなく大手IT企業も、大規模な製品、プロジェクト、そしてサービスの中核を成すオープンソースソフトウェアにお金を払うことにあまり熱心ではない。
「以前にもこのような話をしたことがあるのですが、文字通り会社を運営している少数のボランティアが家賃を支払えるようにする、という見通しに対して、驚くほどの抵抗を感じました」と、Xeという名の開発者はブログ記事で述べています。「オープンソースから何も返さずに奪い取る文化があります。まるで、依存関係を作っている人たちの問題は無関係であるかのようです。」
議論に参加している他の人々は、資金は問題ではないと主張している。TailscaleのCTOであるDavid Crawshaw氏はブログ記事で、Yazici氏のLog4jのサポート不足に関する投稿が注目を集めているのは「高収益企業が自社で費用を負担していないインフラを使用しているため」だとしながらも、「資金提供は明らかにこのバグの防止に貢献しなかっただろう」と述べた。
Curlの開発者でありWolfSSLの開発者であるDaniel Stenberg氏も、Appleの暗号化コードにおけるgoto failバグを例に挙げ、この意見に賛同しているようだ。「Log4jのケースは、オープンソースソフトウェアへの資金提供のまずさを露呈するものではありません。これは、素朴でケチなユーザーが、コンポーネントを使用する前に、適切な調査、コードレビュー、テストを行わないという実態を露呈しているのです。goto failを覚えていますか?たとえ多額の資金提供があっても、些細なバグは存在するものです。」
開発者の Gabriella Gonzalez 氏はこの点について詳しく説明し、Log4j の脆弱性は、下位互換性を懸念する企業を満足させるために維持されている機能 (LDAP/JNDI URL) からバグが発生したため、大企業への対応の問題を浮き彫りにしていると主張しました。
「log4jプロジェクトのメンテナーは、あまり知られていない機能の1つが潜在的な問題を引き起こす可能性があることを認識していました(ただし、その影響を過小評価していた可能性もあります)」とゴンザレス氏はブログ記事に記している。「しかし、後方互換性が損なわれることを懸念して、その機能を削除しませんでした。」
ゴンザレス氏は、Log4j はより大きな問題の兆候であると主張している。つまり、上場企業がオープンソース プロジェクトに対して搾取的かつ虐待的であるという問題だ。
しかし、大企業の利己的な行動はソフトウェアだけにとどまりません。金銭や権力が絡むと、企業は自社に有利になるようにルールを改変しようとします。
UberとLyftは、運転手を従業員とみなすことを義務付ける法律(判事は違憲と判断した)の例外措置をカリフォルニア州民に認めさせることに成功し、福利厚生費の負担を回避してコスト削減を図った。AmazonやGoogleをはじめとする多くの巨大企業は、労働組合が従業員の賃金や福利厚生の引き上げを交渉し、結果としてコスト増加につながることを懸念し、労働組合と対立している。OracleやIBMといった企業は、自社の営業担当者に支払うべき販売手数料に上限を設けたり、支払を差し控えたりしたとして非難されている。雇用契約には、雇用主に有利で労働者に不利な、煩わしい条件が課されることが常態化している。
- オープンソースJavaScriptプロジェクトBabel、有償メンテナーを雇用しスポンサーが撤退した後「資金不足」に陥る
- オープンソース企業が集結し、不満を漏らす。クラウド大手はコードをサービスとして販売しているが、私たちには何も得られない。
- ソフトウェアが、ネブラスカ州の無名の人物によって感謝もされずに維持されているプロジェクトに依存している場合、オープンソースは持続可能でしょうか?
企業はフェアディール(公正な取引)を実践していません。自社の利益を優先する企業は、法律やソフトウェアライセンスで認められている範囲で行動しているだけです。問題は支払いではなく、許諾です。多くの一般的なオープンソースライセンスは、コピーレフトライセンスのような相互主義の要件を満たしていないにもかかわらず、非常に寛容です。ApacheライセンスやMITライセンスのようなライセンスは、多くのものを提供しながら、要求するものはごくわずかです。
「オープンソースのメンテナーは莫大な価値を生み出しているにもかかわらず、そのほとんどを実際に手に取っていない」と、Socketを運営するオープンソース開発者のフェロス・アブカディジェ氏はThe Registerへのメールで述べた。「フォーチュン500企業を支える最も重要なオープンソースプロジェクトの多くは、勤務時間後の余暇にボランティアによって維持されている。」
ソフトウェア業界は、メンテナーが生み出した価値の少なくとも一部を獲得し、新機能の開発、バグの修正、ドキュメントの改善、そして最も重要なこととして、重要なセキュリティ問題のタイムリーな修正を継続できるようにするための方法を見つける必要がある。
「ソフトウェア業界は、メンテナーが生み出した価値の少なくとも一部を獲得し始め、新機能の開発、バグの修正、ドキュメントの改善、そして最も重要なこととして、重大なセキュリティ問題のタイムリーな修正を継続できるようにするための方法を見つける必要があります。」
「より多くのメンテナーが代替ライセンスオプションを検討し、ソフトウェアを使用できる組織の種類や方法を制限する、あるいはプロジェクトを停滞させることを決めるようになると予想しています。そうなると、私たちが直面し続けるセキュリティインシデントの数は増加するだけです。」
アブカディジェ氏は、Log4j の事件は、アプリケーションでオープンソース コードを使用している企業がほとんどそのコードをレビューしていないことも示していると付け加えた。
「結局のところ、企業は、本番環境に出荷するコードが安全で、セキュリティが確保され、信頼できるものであることを保証する責任がある」と同氏は述べた。
遅かれ早かれ、善意からでなくとも、損害を抑えるために誰かがオープンソース ソフトウェアにお金を払うことになるでしょう。®