XZ Utils for Linux に仕込まれた悪意のコード:RCE を引き起こすという調査結果

Malicious Code in XZ Utils for Linux Systems Enables Remote Code Execution

2024/04/02 TheHackerNews — 主要 Linux ディストリビューションで広範に使用されている、OSS ライブラリ XZ Utils に挿入された悪意のコードは、リモートからのコード実行も可能であることが、新たな分析により明らかになった。脆弱性 CVE-2024-3094 (CVSS:10.0) を悪用する大胆なサプライチェーン侵害は、Microsoft のエンジニアであり、PostgreSQL の開発者でもある Andres Freund が、先週に警告したものである。このデータ圧縮ユーティリティにバックドアが存在するため、リモートの攻撃者がセキュア・シェル認証を回避し、影響を受けたシステムへの完全なアクセスを提供することが明らかになっている。


XZ Utils は、Linux を含む Unix ライクなオペレーティング・システム上で、データを圧縮/解凍するためのコマンドライン・ツールである。

そして、今回の悪質なコードは、Jia Tan (別名 Jia Cheong Tan/JiaT75) というプロジェクト・メンテナの一人が、複数年にわたる綿密な攻撃の中で、意図的に導入したものだと言われている。この攻撃者の GitHub のユーザ・アカウントは、2021年に作成されているが、その身元は現在でも不明である。

Akamai は報告書の中で、「この脅威アクターは、2年前ほどから XZ プロジェクトにコントリビュートし、徐々に信頼性を高めていき、ついにはメンテナを任されるようになった」と述べている。

さらに、巧妙なソーシャルエンジニアリングが行なわれ、Jigar Kumar や Dennis Ens といった Sockpuppet アカウントが、機能リクエストの送信や、ソフトウェアにおける各種の問題の報告に使用され、オリジナルのメンテナ (Tukaani Project の Lasse Collin) を騙して、新たな共同メンテナ・リポジトリに追加させたと考えられている。

2023年に Jia Tan は、XZ Utils に対して一連の変更を加え、最終的には 2024年2月に、バージョン 5.6.0 をリリースした。その時に、彼らは、巧妙なバックドアを隠し持つことになった。

Source: Thomas Roccia

Collin は、「以前のメールでほのめかしたように、Jia Tan は将来のプロジェクトで、より大きな役割を担うかもしれない。彼は、リスト外で多くのことを助けてくれていて、事実上、すでに共同メンテナである」と、2022年6月の Kumar とのやりとりの中で述べている。

現時点の git リポジトリでは、何も起こっていないと認識されているが、物事は小さなステップで起こり得る。いずれにせよ、少なくとも XZ Utils については、メンテナシップの変更が、すでに進行中であるという。

このバックドアは、XZ Utils 5.6.0/5.6.1 のリリース tarball に影響を及ぼすが、後者には同じインプラントの改良版が取り込まれている。その後に Collins は、プロジェクトにおける違反を認めている。双方の tarball は、Jia Tan により作成/署名されており、現在では無効化されている GitHub リポジトリにのみアクセスできたとされる。

ファームウェア・セキュリティ会社である Binarly は、「今回のインシデントは、きわめて複雑かつ洗練されたものであり、国家に支援されるオペレーションとして、数年にわたって計画されてきた。このような複雑で高度に設計された、包括的な移植フレームワークは、思いつきで作成されたものではない」と指摘している。

XZ Utils for Linux


オープンソースの暗号技術者である Filippo Valsorda による、バックドアに関する詳細な調査の結果も明らかになった。影響を受けたバージョンでは、特定のリモート攻撃者が、SSH 証明書を介して任意のペイロードを送信し、認証プロトコルを回避する方式が実施され、被害者のマシンを効果的に制御できるという。

彼は、「脆弱なマシン上の SSH デーモンにバックドアが追加され、リモートの攻撃者が任意のコードを実行できるようになるようだ。つまり、SSH をインターネットに公開し、脆弱なパッケージを搭載している全てのマシンは、潜在的に脆弱であるということだ」と述べている。

言い換えるなら、このバックドアにより、所定の秘密鍵を持つリモートの攻撃者が、悪意のコマンドを実行するために、SSH デーモンを乗っ取ることが可能になる。

言うまでもなく、Andres Freund による偶然の発見は、これまでに発見されたサプライチェーン攻撃の中で最も重大なものに相当する。このパッケージが、Linux ディストリビューションの安定リリースに統合されてしまうと、深刻なセキュリティ上の災難となってしまう可能性があるはずだ。

JFrog は、「このサプライチェーン攻撃において、最も注目すべき点は、攻撃者が2年以上かけて正当なメンテナとしての地位を確立したことにある。つまり、各種の OSS プロジェクトにおける作業を申し出るという、きわめて献身的なレベルで活動し、複数のプロジェクトにまたがってコードをコミットして、検出を避けていた」とは述べている。

Apache Log4j のケースと同様に、このインシデントが浮き彫りにするのは、ボランティアが運営する OSS プロジェクトへの依存と、そこで発生する深刻な脆弱性や侵害が生じたときに起こり得る結果である。

ReversingLabs は、「実施すべき大規模な “修正” とは、ユーザー組織の開発パイプラインで使用されるオープンソースと商用コードの双方において、改ざんの兆候や悪意の機能を特定するための、ツールとプロセスの採用である」と述べている。