1712069796
2024-04-02 14:48:13
主要な Linux ディストリビューションの一部として出荷されている XZ Utils と呼ばれるデータ圧縮ライブラリに、信頼できるメンテナの 1 人によってバックドアが挿入されました。 幸いなことに、SSH 接続を受け入れるシステム上でリモート コード実行を可能にするバックドアは、ライブラリの最新バージョンにのみ存在し、汚染されたバージョンが Linux の安定リリースに組み込まれる前に発見されました。
とはいえ、ローリング アップデート モデルを使用する Arch Linux などの一部の Linux ディストリビューションや、Debian、Fedora OpenSUSE、Alpine の開発ブランチはバックドア パッケージを配布しました。
その結果、一部の開発者やパワー ユーザーは、影響を受ける Linux ディストリビューションをコンテナ、仮想マシン、その他のプロジェクトでテスト用に使用したり、デスクトップ マシンのメイン オペレーティング システムとして使用したりしている可能性があります。これは、さまざまなソフトウェアの最新バージョンにアクセスしたいためです。 Linux アプリケーションとツール。
慎重に構築されたバックドアが現在追跡されている場合、 CVE-2024-3094がさらに数か月間発見されず、安定した Linux ディストリビューションに組み込まれていた場合、世界中の無数の実稼働サーバーが影響を受けた可能性があります。 これは、これまでで最も大きな影響を与えたソフトウェア サプライ チェーン侵害の 1 つとなる可能性がありました。 それでも、最も洗練されたものの 1 つとしての地位を確立しています。
オープンソースで信頼が悪用される例
この事件は、特にサイバーセキュリティの知識やスキルを持つボランティアはもちろん、多くのプロジェクトが人材や開発リソースの不足に苦しんでいる場合に、オープンソースのエコシステムにおいて信頼が悪用される可能性があることを浮き彫りにしています。
Linux エコシステムを構成する重要なアプリケーション、コマンドライン ユーティリティ、ライブラリは何千もあり、その多くは非常に小規模なチームによって、あるいは空いた時間に何年も続けてきた 1 人の個人によって保守されています。 XZ Utils はその 1 つにすぎません。
「これは、私たちが公に報告された中で最も巧妙に実行されたサプライチェーン攻撃かもしれません。悪夢のようなシナリオです。悪意があり、有能で、広く使用されているライブラリの上流で許可されています。」とセキュリティ研究者で暗号学者のフィリッポ・ヴァルソルダ氏は述べています。 ブルースカイで注目された。 「これは偶然捕まったようです。 そうでなければ、どれほど時間がかかっただろうか。」
XZ Utils バックドアが偶然発見
このバックドアを最初に発見したのは、PostgreSQL に取り組む Microsoft ソフトウェア エンジニアの Andres Freund 氏です。 それを発表した 金曜日に人気のオープンソース ソフトウェア セキュリティ メーリング リストで発表されました。 Freund が問題を発見したのは、意図的なコード セキュリティ レビューを行っていたときではなく、多かれ少なかれ偶然でした。
彼は、間違ったユーザー名によるログインの失敗が原因で、sshd プロセス (SSH サービス デーモン) から CPU 使用率が異常に高くなることに気づき、ノイズを減らすためにシステムでいくつかのベンチマーク テストを実行していました。
「プロファイリングされた sshd では、liblzma で多くの CPU 時間が示されていますが、perf はそれをシンボルに起因させることができません。」と彼は言いました。 マストドンに書きました。 「疑惑が生じた。 数週間前、パッケージの更新後に postgres の自動テストで奇妙な valgrind の苦情が発生したことを思い出しました。 本当に多くの偶然が必要でした。」
Liblzma は、LZMA として知られる Lempel-Ziv-Markov チェーン アルゴリズムを使用してデータの圧縮と解凍を実装する人気のあるライブラリです。 このライブラリは、XZ-Utils (以前の LZMA Utils) と呼ばれるパッケージの一部であり、データを圧縮および解凍するための xz コマンド ライン ユーティリティも含まれています。
Freund は Debian Sid インストール (Sid は Debian の不安定なブランチ) でテストを行っていたため、そのブランチのリポジトリから配布された xz-utils パッケージを調べました。 次に、インストール プロセスの構成ステップの最後に実行される難読化されたスクリプトを発見し、それを GitHub 上の XZ-Utils プロジェクトの元の tarball まで追跡しました。
「その行は、build-to-host の上流のソースには *ありません*。また、git の xz によって build-to-host が使用されることもありません」と Freund 氏はレポートの中で述べています。 「ただし、これは、GitHub がリポジトリの内容から直接生成すると思われる「ソース コード」リンクを除いて、上流でリリースされた tarball 内に存在します。」
XZ Utils バックドアは何をしますか?
難読化されたスクリプトは、悪意のあるコードを sshd プロセスに挿入することを目的としています。これは、liblzma が OpenSSH の特定のビルドに依存しているため可能です。 ペイロードは、RSA 署名の検証に使用される OpenSSH 関数である RSA_public_decrypt 関数をフックし、それを使用して、接続しているクライアントによって制御される RSA 署名からの特定の値 (RSA パブリック モジュール) をチェックします。
次に、フック コードはこのクライアント制御値を取得し、ハードコーディングされた ChaCha20 キーを使用して復号化します。 結果として得られるデータには、Ed448 非対称楕円曲線署名アルゴリズムを使用して生成されたデジタル署名と、システム上で実行されるシェル コマンドを表す文字列の 2 つの部分があります。 コマンドは、ハードコーディングされた Ed448 公開キーを使用して署名が検証に合格した場合にのみ実行されます。
ただし、有効な署名を生成するために必要な秘密キーを持っているのは攻撃者だけであるという問題があります。 これにより、それらのユーザーだけが不正な SSH リクエストをバックドアに送信でき、その結果、含まれているシェル コマンドが実行されることが保証され、基本的に、それらのユーザー以外の誰もバックドアを悪用できないことが保証されます。
「この攻撃の高度な性質と、将来性の高い暗号アルゴリズム(Ed448とより標準的なEd25519)の使用により、多くの人がこの攻撃は国家レベルのサイバー攻撃である可能性があると信じた」とセキュリティ会社JFrogの研究者は指摘している。 分析。
XZ Utils バックドアの影響を受けるのは誰ですか?
このバックドアは、xz-utils のバージョン 5.6.0 および 5.6.1 に存在し、特に次のような特定の Linux ディストリビューションの一部として配布される .deb および .rpm パッケージに存在します。 Fedora 40 および 41 生皮 (積極的な開発); デビアン テスト中、不安定 (SID)、実験的。 アルパインエッジ (積極的な開発); openSUSE タンブルウィード; 同様に カリ・リナックス そして Arch Linux これは、アプリケーションやパッケージに対するセキュリティ以外の更新が、OS のメジャー アップグレードの一環として計画的にではなく、利用可能になったときに継続的にリリースされる、ローリング リリースまたは更新モデルに従います。
ユーザーは、Linux ディストリビューションの管理者がそれぞれのアドバイザリで発行したガイダンスを参照する必要があります。 場合によっては、バックドアが積極的に悪用されたかどうか、またはその結果として悪意のあるコマンドがシステム上で実行されたかどうか、およびそれらのコマンドが何をしたかを知るのが難しいため、オペレーティング システムを完全に再インストールすることが推奨されることがあります。
バックドアはどのようにして追加されたのでしょうか?
XZ-Utils は 2009 年に遡り、GitHub では Larhzu として知られる Lasse Collin という開発者によって作成されました。 彼はまた、Jia Tan (JiaT75) という名前の別の開発者がコミット許可を受け取り、2 人目のメンテナーとして追加された 2023 年頃まで、プロジェクトの唯一のメンテナーを務めていました。 悪意のあるコードを導入し、バージョン 5.6.0 および 5.6.1 のバックドア tarball に署名したのは、Jia Tan のアカウントです。
Jia Tan のアカウントが侵害された可能性は理論的にはありますが、増え続ける証拠は、これが偽の身元であり、綿密に計画され実行された長年にわたるソフトウェア サプライ チェーン キャンペーンの一部である可能性が高いことを示唆しています。
JiaT75 アカウントは 2021 年に GitHub 上に作成され、複数のプロジェクトや提出物に貢献し始めましたが、現在精査されており、振り返ってみると非常に疑わしいものに見えます。 たとえば、彼が 2021 年に libarchive リポジトリに提出したパッチは、コード内の安全な関数safe_fprintf() を安全でないバージョンの fprintf() に置き換え、文字エスケープの脆弱性を導入する可能性がありました。 問題 現在調査中です。
2022 年 2 月、JiaT75 は XZ-Utils にパッチを提出しました。これには、これまでに見たことのないアカウントから、XZ-Utils のメンテナンスが十分に行われておらず、より多くの開発者を使用できる可能性があると不満のコメントが寄せられました。 これらは、Jia の貢献を正当化し、Collin にコミット権を与えるよう圧力をかける目的で作成されたソックパペット アカウントである可能性があります。
バックドアの基礎は 2023 年初頭に築かれた
2023 年 1 月から、Jia Tan は XZ-Utils プロジェクトにさらに関与し始め、1 年間にわたってさまざまな貢献をしました。その一部はバックドアの基礎を築き、さらなる信頼を獲得することを目的としていたようです。 最終的に、彼は直接コミット許可を受け取り、プロジェクトの一部の管理を引き継ぎました。
彼はまた、XZ Utils や他の多くのオープンソース プロジェクトでファズ テストを自動的に実行するプロジェクトである oss-fuzz にプル リクエストを作成しました。これは、XZ に追加され、裏口。 現在では、これは明らかに、OSS Fuzz が ifunc を利用する XZ 内のその後の悪意のあるコードを検出するのを防ぐことを目的としていたと考えられています。
このバックドアを構成する実際のコードは、今年 2 月に Jia によって数日間にわたって追加され、2 月 24 日のバックドア バージョン 5.6.0 のリリースで最高潮に達しました。 その後、彼はさまざまな Linux ディストリビューションに含めるために新しいバージョンを提出しました。
で 彼の個人ウェブサイトの更新 この事件の後、コリン氏は次のように書いています。「私だけが tukaani.org のメイン Web サイト、git.tukaani.org リポジトリ、および関連ファイルにアクセスできました。 Jia Tan は、xz.tukaani.org サブドメイン (およびそのサブドメインのみ) を含む、GitHub でホストされているものにしかアクセスできませんでした。」
コミュニティのこれまでの調査結果に基づくと、これは綿密に計画された攻撃であり、おそらく多くのオープンソース プロジェクトを標的としたキャンペーンであると考えられ、数年に渡り、洗練された攻撃者によって忍耐強く実行されました。
他のプロジェクトにも同様の妥協が潜んでいる可能性がある
懸念されるのは、そのような侵害が簡単に再び発生する可能性があること、または他のプロジェクトですでに発生していてまだ発見されていない可能性があることです。残念なことに、多くのオープンソース ツールやライブラリはボランティア不足に悩まされており、メンテナが 1 人であることが多いためです。 そのため、プロジェクトを支援することに興味を示す新しい人からの仕事を信頼し、受け入れやすくなります。
「このような状況は、オープンソース ソフトウェア エコシステム内で警戒を続ける必要があることを私たち全員に思い出させます」と Open Source Security Foundation (OpenSSF) は次のように述べています。 声明 そのウェブサイトで。
「オープンソースとは、善意を持つ人間が問題解決のために自分の時間と才能を寄付することですが、残念ながらこれが損なわれる可能性があります。 私たち全員がこの攻撃の構造と上流および下流の対応についてさらに詳しく学ぶことで、オープンソース ソフトウェアを保護し、メンテナーと消費者を同様に支援するために、私たち全員がさらにできることを考える時間が与えられるでしょう。」
#危険な #Utils #バックドアは長年にわたるサプライ #チェーン侵害の取り組みの結果でした