ニュース

「XZ Utils」にバックドア、オープンソースエコシステム全体の信頼を揺るがす事態に

0.5秒の遅延からたまたま発覚、数年をかけた周到なやり口が明るみに

「XZ Utils」にバックドア

 Linux環境で広く利用されているツール「XZ Utils」に3月29日、バックドアが発見されたとのこと(CVE-2024-3094)。Red Hatが評価した「CVSS 3」のベーススコアは、「10.0」(Critical)。長い時間をかけてプロジェクトオーナーの信頼を勝ち取り、メンテナンスを任された開発者が意図的に混入させたという悪質性や、当該ツールが複数の主要なLinuxディストリビューションで採用されており、「OpenSSH」をはじめ影響が広範囲に及ぶ点などが話題を呼び、オープンソースソフトウェアのサプライチェーンのあり方が問われる事態となっている。

 「XZ Utils」(LZMA Utils)は、「LZMA」アルゴリズムを用いたデータ圧縮形式「xz」を扱うためのコマンドラインユーティリティ。APIインターフェイス「liblzma」も含まれる。開発はTukaani Project(tukaani.org)で行われており、プロジェクトサイト(xz.tukaani.org)は「GitHub」でホストされていた。

 ことの発端は、PostgreSQL/Microsoftの開発者であるAndres Freund氏がマイクロベンチマークの実施中に、ノイズを減らすためにシステムを停止したこと。システムを停止したにもかかわらず、「sshd」プロセスが驚くほど多くのCPUリソースを消費していることを不審に思った氏が「sshd」をプロファイリングしてみたところ、「liblzma」ライブラリを読み込んだ状態でのSSHログインに約0.5秒の遅延があることを発見したという。悪意のあるコードは「XZ Utils」v5.6.0およびv5.6.1のTARアーカイブに含まれており、テストファイルに偽装されていた。複雑なプロセスを経て生成されたバックドアファイルを「OpenSSH」が読み込んでしまうと、認証をバイパスされてしまう可能性があるようだ。

 このコードを挿入したJia Tanと名乗る開発者は、2021年頃に「GitHub」アカウントを作成し、「XZ Utils」へのコード貢献を始めた。マネージャー権限が与えられたのは2023年1月初めで、「XZ Utils」に不正なコードが仕込まれたのは2024年2月末。数年にわたり少しずつ信頼を得て、犯行に及んだことがわかる(メンテナーの地位を得てから買収された可能性も指摘されている)。Andres Freund氏がたまたま早期にバックドアに気付いたのは、僥倖といえるだろう。

 現在、プロジェクトオーナーのLasse Collin氏とJia Tanの「GitHub」アカウントは停止中。「GitHub」でホストされていた「xz.tukaani.org」もJia Tanが管理していたため、現在は閲覧できない。幸い「xz.tukaani.org」以外のコンテンツ(「git.tukaani.org」リポジトリを含む)はLasse Collin氏が管理していたとのことで、数日中に回復する見込みだ。

 Lasse Collin氏は「tukaani.org」で、4月第1週にもこの事件の詳細を知らせるとしている。