ringoさん
VIEW
Linux系コマンド圧縮ツール「XZ Utils」中国人が3年がかりでバックドアを仕込むも偶然発覚「もし出回っていたらすべてのサーバが乗っ取られている」
XZ Utils(以前のLZMA Utils)はフリーなコマンドライン可逆圧縮ソフトウェアのセットであり、LZMAとxzを含んでいる。Unix系オペレーティングシステムおよび、バージョン5.0以降のMicrosoft Windowsに対応している。
xzはgzipとbzip2のような代替ソフトウェアよりもより高い圧縮率になる。 伸長速度はbzip2より速いが、gzipよりも遅い。圧縮はgzipよりもだいぶ遅くなることがあり、高圧縮ではbzip2よりも遅い。圧縮されたファイルが多くの回数使われるときに最も有用となる。[3][4]
XZ Utilsは大まかに2つの構成要素からなる。
xz。コマンドラインの圧縮・伸長ソフトウェア(gzipに類似している)
liblzma。zlibに似たAPIを持つライブラリ
様々なコマンドラインのショートカットがある。例えばlzma(xz --format=lzma)、unxz(xz --decompress。gunzipに類似している)、そしてxzcat(unxz --stdout。zcatに類似している)。
XZ Utilsはxzとlzmaファイル形式の両方を圧縮・伸長できるが、LZMA形式は今やレガシー[5]であるため、 XZ Utilsはxz形式をデフォルトとして圧縮する。
xz-utils パッケージに関する2つのサプライチェーン攻撃についての説明を読みました。攻撃者が3年間潜伏し、多くのLinuxディストリビューションのsshdにバックドアを注入する寸前であったことがわかります。これは信じられないほどの事態です。
要約すると:
攻撃者JiaT75(Jia Tan)は2021年にGitHubアカウントを登録し、その後、xzプロジェクトのメンテナンスに積極的に参加し、徐々に信頼を得て、コードを直接コミットする権限を取得しました。
JiaT75は最近の1つのコミットで、bad-3-corrupt_lzma2.xzとgood-large_compressed.lzmaという2つの無害に見えるテスト用バイナリデータを静かに追加しました。しかし、これらのファイルから特定の条件で内容を読み取り、ビルド結果を変更するためのコンパイルスクリプトが含まれていました。これにより、ビルド結果が公開されたソースコードと一致しなくなります。
現在の初期の研究では、注入されたコードがglibcのIFUNCを使用してOpenSSHのRSA_public_decrypt関数をフックし、攻撃者が特定の検証データを構築してRSA署名検証を回避できるようにしていることが示されています。(具体的な詳細はまだ分析中です)
liblzmaとOpenSSHの両方を使用しているプログラムに影響を与えます。最も直接のターゲットはsshdであり、攻撃者は特定のリクエストを構築して、キー検証をバイパスし、リモートアクセスを可能にします。
影響を受けるxz-utilsパッケージはDebian testingに統合され、攻撃者はFedoraとUbuntuにも統合しようとしています。
幸いなことに、注入されたコードには特定の状況でsshdのCPU使用率が急上昇するバグがあるようです。これを気づいたセキュリティ研究者がいて、調査を進めてこの陰謀を発見し、oss-securityに報告したため、事態が露呈しました。
もしバグがなかったら、このバックドアは安定したバージョンに統合され、前例のない大規模なセキュリティイベントになる可能性が高かったでしょう。
また、いくつかの詳細から攻撃者が非常に注意深いことがわかります:
攻撃者は、ubuntu beta freezeの数日前に新しいバージョンを統合しようとしました。これにより、テスト中に発見される可能性が減少することを期待しています。
xz-utilsプロジェクトの元のメンテナーであるLasse Collin(Larhzu)は、定期的にインターネットを休憩する習慣があり、最近もそうしており、これらの変更をレビューする機会がなかったとされています。現在も連絡が取れない状態です。これは攻撃者がxz-utilsプロジェクトを選んだ理由の1つかもしれません。
さらなる詳細は分析中ですが、現在、GitHubはxzプロジェクト全体を停止しています。