
xzバックドアの脆弱性(CVE-2024-3094)を調査しているいくつかのラボ
xz-utils サプライチェーン・バックドアを理解するための安全なハンズオンラボ — 防御者、学生、ブルーチーム担当者向けに作られています。
[!WARNING] このプロジェクトは、実際に出回っているマルウェア(xz 5.6.0 / 5.6.1 バックドア)を扱います。これは防御教育と許可された研究のためだけに提供されます。 すべては、インターネットへの経路がない使い捨ての隔離ゲスト内で実行されます。 実行しないでください: あなたが大切にするマシン、管理していないネットワーク、または テストを許可されていないシステムに対して、これらの成果物を実行しないでください。 SECURITY.md を参照してください。
| ラボ | 内容 | ペイロードを実行するか? |
|---|---|---|
| Lab 1 — Inspect | 使い捨てサンドボックスを起動し、オフラインで悪意のある tarball を入手して、その偽装を確認します: git と tarball の build-to-host.m4 diff、テストフィクスチャのペイロード、マジックマーカー。 | いいえ — 静的検査のみ |
| Lab 2 — Detonate | 分離された 3 VM ネットワーク(analyst / compromised / normal、Docker なし)を構築します。アナリストのジャンプボックスから両ホストに SSH 接続してレイテンシと pcaps を比較し、自分の Ed448 キー(xzbot 経由)で compromised 上のバックドア入り sshd をトリガーして、認証前ルート RCE を実行します — 一方 normal は影響を受けません。 | はい — 分離された VM、オフライン、自分のキー |
2年間にわたるソーシャルエンジニアリングキャンペーンにより、悪意のあるメンテナに xz-utils のリリース権限が与えられました。
ペイロードはリリース tarball にのみ(git ではなく)含まれ、
テストフィクスチャに隠され、x86-64 glibc システム上でビルド時に有効化されました。実行時には、
glibc の IFUNC フックを RSA_public_decrypt に使用し(sshd → libsystemd →
liblzma 経由で到達可能)、鍵の保持者に認証前 RCE を与えました — SSH 証明書の
RSA モジュラスに隠されたコマンドで、ChaCha20 で暗号化され、Ed448 署名済みです。これは C2 でも
マジックログインでもありません。2024年3月29日に Andres Freund によって、約500ms の SSH 遅延を介して発見され、
安定版ディストリビューションに届く前に捕捉されました。
make setup # install/preflight checks (Multipass or Docker, tcpdump, etc.)
make lab1 # inspection sandbox
make lab2 # build the isolated 3-VM detonation network, then: multipass shell analyst
make clean # tear everything down, purge VMs / pcaps / generated keys
前提条件と各ラボのウォークスルーは docs/ にあります。
sshd はループバック / 内部ブリッジのみにバインドされ、ラボは
実行を拒否します(ゲストがインターネットに到達できる場合)。MIT.