主要なLinuxディストリビューションなどで広く使用されている「XZ Utils」に、悪意あるコードが挿入された問題(CVE-2024-3094)が確認された。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
2024年3月29日(米国時間)、主要なLinuxディストリビューションなどで広く使用されているファイル可逆圧縮ツール「XZ Utils」に、悪意あるコードが挿入された問題(CVE-2024-3094)が確認されたとして、同ツールの開発元Tukaani Projectの開発者やディストリビューター、セキュリティ企業などが情報を公開した。
JPCERTコーディネーションセンター(JPCERT/CC)によると、この悪意あるコードは、XZ Utilsの開発に関わる共同開発者によって2024年2月24日ごろに挿入された。このコードが挿入されたバージョンのXZ Utilsがインストールされたシステムは、特定条件下で、SSHポート経由で外部から攻撃者が接続できるような改ざんが行われる可能性がある。
CVE-2024-3094の影響を受けるXZ Utilsのバージョンは、「XZ Utils 5.6.0」と「XZ Utils 5.6.1」だ。使用中のXZ Utilsのバージョンを確認する際は、影響を受けるバージョンを使用している可能性を考慮し、xzコマンドによる確認は避け、各種パッケージ管理ソフトウェアのバージョン確認コマンドを使うよう推奨している。
JPCERT/CCは、これらを使用している可能性があるLinuxディストリビューションを利用している場合、同ツールの開発者や各ディストリビューターが公開する最新情報を参照し、影響の有無の調査や必要な対処の実施を検討することも推奨している。
Tukaani Projectをリードするラス・コリン氏は、CVE-2024-3094の問題に関するWebページ「XZ Utils backdoor」で、「Jia Tan」と名乗る開発者が作成、署名したXZ Utils 5.6.0および5.6.1のリリース版tarballにバックドアが含まれていると述べ、自身とJia TanのGitHubアカウントが現在停止中であること、GitHubでホストされていたXZ UtilsのWebページ(xz.tukaani.org)も停止していることを明らかにした。
コリン氏は、XZ UtilsのWebページは数日以内に再開される予定であり、CVE-2024-3094の問題の追加情報が入り次第、XZ Utils backdoorページを更新するとしている。2024年4月第1週に更新される見通しだ。なお、Jia Tanは、xz.tukaani.orgサブドメインにのみアクセスできたという。
DevOps、セキュリティ、MLOpsのためのソフトウェアサプライチェーンプラットフォームを提供するJFrogは3月31日、CVE-2024-3094の問題に関する解説記事を公式ブログで公開した。
この記事は、「CVE-2024-3094の影響を受けたディストリビューション」「影響を受けないディストリビューション」「CVE-2024-3094の検出方法」「CVE-2024-3094の修復方法」「CVE-2024-3094を検出するJFrogのOSS(オープンソースソフトウェア)ツール」「CVE-2024-3094の技術的分析」などの内容で構成されている。
JFrogは公開情報を基に、影響を受けたディストリビューション、ブランチ、パッケージ、対処法などを一覧表にまとめている。
悪意あるコードが主要ディストリビューションの安定版でリリースされる前にOSSコミュニティーで発見されたため、ほとんどのLinuxディストリビューションの安定版は影響を受けなかったと、JFrogは述べている。
影響を受けたディストリビューションとしては「Fedora(40, 41, Rawhide〈active development〉)」「Debian(testing, unstable〈sid〉, experimental)」「Alpine(Edge〈active development〉)」「Kali」「OpenSUSE(Tumbleweed)」「Arch Linux」が挙げられている。
影響を受けなかったディストリビューションとしては「Red Hat Enterprise Linux(RHEL)」「Ubuntu」「Amazon Linux」「Wolfi」「Gentoo」が挙げられている。
使用しているXZ Utilsが影響を受けるバージョン(5.6.0または5.6.1)かどうかを確認するには、以下のコマンドを実行する。
strings `which xz` | grep '5\.6\.[01]'
影響を受けるバージョンがインストールされている場合、以下のように出力される。
$ strings `which xz` | grep '5\.6\.[01]' xz (XZ Utils) 5.6.1
直ちにXZ Utilsを以前のバージョンにダウングレードする(ほとんどのディストリビューションでは5.4.6が、影響を受けない最も新しいバージョンだ)。
XZ Utilsをダウングレードしたら、マシンを再起動するか、OpenSSHサーバを再起動して、修正されたコードをメモリから削除する。
sudo systemctl restart ssh
アップグレードができない場合、バックドアの“キルスイッチ”を利用する手もある。以下の文字列を/etc/environmentに追加すると、悪意あるバックドア機能が無効になる(SSHとSystemdの再起動後)。
yolAbejyiejuvnup=Evjtgvsh5okmkAvj
JFrog Researchチームは、CVE-2024-3094を検出するオープンソースツールをGitHubで公開した。
このツールは、ローカルマシンがCVE-2024-3094に対して脆弱(ぜいじゃく)(SSHペイロードが実行可能)であり、かつCVE-2024-3094の影響を受けている(悪意あるバージョンのXZ Utilsがインストールされている)かどうかをチェックする。
Jia Tanと名乗る開発者は、不正なリモートSSHアクセスを可能にするコードをXZ Utilsに挿入した。この巧妙な悪意あるペイロードは、OpenSSHサーバ(SSHD)と同じプロセスで実行され、OpenSSHサーバの復号ルーティンを変更することで、特定のリモート攻撃者(特定の秘密鍵を所有している)が、認証ステップの前に実行される任意のペイロードをSSH経由で送信できるようにし、被害者のマシン全体を乗っ取る。
「XZ Utilsは、信頼され、精査されたプロジェクトと考えられていたため、このサプライチェーン攻撃はOSSコミュニティーに衝撃を与えた」と、JFrogは指摘している。
Jia Tanは2021年にGitHubアカウントを作成し、幾つかのプロジェクトに貢献し始めた。同年のコミット件数は546件。2022年にXZ Utilsリポジトリに最初の正当なコミットをしていた。Jia Tanによるサプライチェーン攻撃で最も注目すべき点は「極めて献身的な行動を取っていたことだ。2年以上かけて正当なメンテナーとしての地位を確立し、さまざまなOSSプロジェクトで作業を買って出て、コードをコミットしていた」と、JFrogは述べている。
Jia Tanはコードレビューによる検出を逃れるために、高度に難読化されたコードを使用していたという。
Copyright © ITmedia, Inc. All Rights Reserved.