春待ちの低速 — 圧縮の奥で鳴った警鐘(長編フィクション)
- 山崎行政書士事務所
- 9月16日
- 読了時間: 6分
— 2024年「XZ Utils / liblzma のバックドア(CVE‑2024‑3094)」を骨格にした物語
00|金曜 00:41 “ログインが遅い”という違和感
藍田(あいだ)フィンテック研究所の深夜の機械室。夏芽は、検証用のDebian系テスト群にSSHで入ろうとして、わずかな粘りを感じた。パスワードや鍵のやり取りではなく、ログイン直前の空白が呼吸のように重い。topの画面でsshdだけが高いCPU使用率を一瞬跳ねさせる。
「こんな“粘り”は初めてだ。」
straceを当てると、libsystemdが引き込まれ、そこからliblzmaがぶら下がる。「lzma?」データ圧縮のライブラリが、なぜ認証の場面で。夏芽は、所内メモの一番上に指を落とす——山崎行政書士事務所。
01|01:03 “止める/伝える/回す”
静岡・山崎行政書士事務所。ホワイトボードに**律斗(りつと)**が三行を書く。
止める/伝える/回す
止める:sshdが“重い”検証群を孤島化。外向きは白リスト以外遮断。xz / liblzmaは5.6系を即座にピン外し→5.4系へロールバック。自動更新は止めない(セキュリティフィードは活かす)が、xz関連はホールド。電源は落とさず、証跡は一方向で確保。
伝える:三文の一次報を経営/研究部門/共同研究機関へ。“確認された事実”(sshdの遅延/liblzmaの関与)と**“可能性(仮説)”(xzリリース由来の不正改変の線)を段落で分け、正午/17時の更新時刻を約束。「支払い先変更メールは無効」**を最初に。
回す:夜間ジョブはIPMI経由と紙の承認票に一時迂回。遅いけど確実に回す。
りなが頷く。「72時間の法の時計も回します。“声は鍵”(折り返し+二名承認)を窓口で発動。」
奏汰(そうた)は配線図に赤を走らせる。「xz 5.6.0/5.6.1のリリース・タールに違和感があるという話が上流で出始めている。ビルド時に余計なものを混ぜ、liblzmaを置き換える筋だ。」悠真(ゆうま)が短く足す。「条件が揃うと、OpenSSH前認証の手前に“余地”を作る。鍵を持つ“誰か”のための扉だ。」
ふみかが一次報の三文を置く。
現状:sshd遅延とliblzma読み込みの関連を確認。該当群を孤島化し、xzを5.6系→5.4系へロールバック。証跡保全を開始。対応:夜間ジョブはIPMI/紙承認票へ一時切替。正午に一次報、17時に更新。お願い:“支払い先変更”などメールのみの依頼は無効。必ず電話の二重確認を。
受付の白い猫のマスコット(やまにゃん)が、しっぽのType‑Cで小さく光る。札には太い字。
「遅いけど確実。」
02|01:51 “圧縮の奥”にある仕掛け
検証群のライブラリを洗う。/usr/lib/x86_64-linux-gnu/liblzma.so.5.6.1。指紋は正規に見えるが、由来が曖昧だ。xzの公式Gitには見当たらないのに、リリースのタールにだけ変なm4スクリプトが入っている——そんな噂が夜の掲示板で走る。ビルド過程でテスト用の圧縮アーカイブから不審オブジェクトを取り出し、liblzmaの特定関数を差し替える。その結果、sshdが間接的にliblzmaを読み込む構成(systemdのパッチ経由など)だと、前認証の**“ごく手前”で細工**が効く——。
「署名が“正しく見える”のが最悪だな。」夏芽。“正しい更新”の顔をした別人。オープンソースの鎖の細いところに体重をかけてくる。
03|02:33 四つの数字
蓮斗(れんと)が白板に数字を書く。
MTTD(検知):29分(sshdの高負荷→liblzmaの関与)
一次封じ込め:54分(孤島化/外向き白リスト/xzロールバック)
影響域推定:テスト群8台/CIビルド2台(本番は無影響)
外向き不審通信:ゼロ(現時点)
律斗は短く言う。「勝ってはいない。**“間に合っている”**だけだ。」
04|04:05 “戻す”のではなく“引っ越す”
xzに限らない。依存の網は広く、速く触るほど足場を壊す。奏汰は新しい箱を立てる。「空のOSイメージに既知良品のxz(5.4系)、自動更新は切らずに**“xz関連のみホールド”。外向きは白リストで短く**。」ビルドは再現性(reproducible builds)を優先し、“署名+再現”を合格にする。署名だけでは通さない。
りなは広報台本を整える。「“帰属”は私たちが言わない。公的通達に歩調を合わせる。私たちは**“何が起き、何を止め、何を変えたか”を時刻入り**で言う。」
05|正午 一次報
ふみかが読み上げ、りなが段落を整える。
事実:sshd遅延の調査でliblzmaの関与を確認。該当群を孤島化し、xz 5.6系→5.4系へロールバック、新環境(空の箱)に段階引っ越し。影響(現時点):本番系に侵入兆候なし。個人情報の第三者提供の確証なし(継続調査)。約束:17時に更新。“メールだけ”の依頼は無効、電話二重確認を。
怒号はない。時刻が不安の終わりを作る。
06|午後 “誰が、どうやって”の輪郭
上流から勧告が降りてくる。CVE‑2024‑3094。xz 5.6.0/5.6.1のリリース・タールに悪意。Git保存庫ではなく、配布物にだけ混ぜていた。鍵を持つ**“特定の相手”にだけ扉が開く設計**。liblzmaがsshdに届く構成でなければ眠る。Debianのアドバイザリ、Red Hatの緊急告知、CISAの注意喚起。名のある技術誌は、“新参の共同メンテが長期間にわたり信頼を得てから実行した”可能性を探る。誰がやったのかは私は言わない。けれど、どうやってはもう見えた。
やまにゃんの札が光る。
「速さは、戻れるときだけ味方。」
07|17:00 二次報
封じ込め:孤島化/白リスト/xzロールバックの維持。新環境へ段階移行。再現ビルドと**“署名+再現”の二重検査を導入。影響:本番無影響、テスト群限定。外向き不審通信なし。次:夜間にCI/CD全系を空の箱へ移し、xz関連のホールドと監査を週次へ。72時間の報告線**を維持。
蓮斗の数字。
MTTD:29分 → 12分(**“sshd遅延アラート”**を常設)
一次封じ込め:54分 → 33分
再現ビルド合格率:100%
例外期限遵守率:98%
08|数日後 春のひと息
新聞は**“世界的な未遂”と書いた。偶然に見えた“遅さ”が、世界を止めないで済ませた。りなは講堂で三つの時計**を並べる。
現場の時間(運用・CI・ビルド)
規制の時間(72時間と継続報告)
経営の時間(信頼・費用・再発防止)
教訓は四つで十分だった。
“監視する者”を別の目で監視する(DNSアノマリ/sshd遅延/ライブラリ読込を独立系統で)。
署名だけで運ばない(署名+再現を合格条件に)。
鍵束を分ける(見る鍵/変える鍵/署名する鍵を別人に、常時特権はゼロ、必要時だけ付与(JIT))。
“正しい更新”にも“人の10分”(自動の前後に記録と復帰線)。
夏芽は端末の前でEnterを押す。sshdは軽く、静かに返事をした。圧縮の奥に置かれていた刃は、こちら側の手順で鈍くなった。
—— 完
参考リンク(URLべた張り/事実ベース・一次情報/主要公的通達・技術解説)
※本作はフィクションですが、骨格(xz 5.6.0/5.6.1 リリース・タールへの悪意ある改変、ビルド時挿入→liblzma差し替え→条件次第でOpenSSH前認証直前に影響、Debian/Red Hat/CISAの通達、NVDの記述、**発見の端緒が“sshdの遅さ”**だったこと、Gitではなく配布タールに仕掛け)は以下を参照しています。
https://www.openwall.com/lists/oss-security/2024/03/30/5https://www.debian.org/security/dsa-5649-1https://nvd.nist.gov/vuln/detail/CVE-2024-3094https://www.cisa.gov/news-events/alerts/2024/03/29/reported-supply-chain-compromise-affecting-xz-utils-data-compression-library-cve-2024-3094https://www.redhat.com/en/blog/urgent-security-alert-fedora-40-and-rawhide-usershttps://tukaani.org/xz-backdoor/https://lwn.net/Articles/967247/https://www.rapid7.com/blog/post/2024/04/01/etr-backdoored-xz-utils-cve-2024-3094/https://www.qualys.com/blog/2024/03/29/xz-utils-sshd-backdoor/https://www.wired.com/story/jia-tan-xz-backdoor/
主な出典:oss‑securityでの発見報告、Debianのセキュリティアドバイザリ、NVD(CVE‑2024‑3094)解説、CISA/Red Hatの緊急通達、tukaani.org(XZ公式)の告知、LWNの技術まとめ、主要各社の技術ブログやWIREDの背景記事。


コメント