夜の依存(ディペンデンシー)— 供給網の影で(実在の「XZ Utils」バックドア未遂
- 山崎行政書士事務所
- 2025年9月14日
- 読了時間: 8分

[CVE‑2024‑3094]を下敷きにした長編フィクション)
信頼は参照ではなく、手続きである。— りな
00:57 — “sshdが息切れしてる”
土曜の深夜、静岡県焼津市。金属加工ロボットのサーボが止まった工場隣のオフィスで、十河精密のSRE・早瀬ゆうはモニタを二度、こすった。ステージング群の一台へSSHした途端、CPUが跳ね上がる。いつもは一瞬で消えるsshdの息が、ぜいぜい続いている。
「負荷試験なんて仕込んだ覚え、ないよね?」夜勤の運用担当・野間がコーヒーを差し出す。ゆうはtopを開き、その先を覗いた。プロセスの奥に、見慣れぬ呼び出しがある。liblzma。「圧縮ライブラリがSSHに絡むのは不自然……」ゆうは呟く。「いや、systemdまわりで読まれていてもおかしくはない。けど、この粘り方はおかしい。」
ゆうはウォールームのショートカットを叩いた。「律斗(りつと)さん、起きてます? 例の“山崎行政書士事務所”、お願いできますか。」
01:26 — ウォールーム、夜の入室
ガラス越しに雨の粒。会議室のホワイトボードには、黒い三行。
止める/伝える/回す
先頭に立つ律斗が短く言う。「今は“止める”。ビルドと更新を凍結。外側からの管理系を切る。」
法務のりなは次の線を引く。「“事実”と“可能性”を混ぜない。説明は三文で、時刻を入れる。」可視化担当の蓮斗は、異常の波形を映す。「SSHログインの直後だけCPUスパイク。liblzmaが噛んでる。」
運用の奏汰は端末に走らせた。「アップデートの直近履歴、xz-utils 5.6.1が金曜の午後に入ってる。ステージングはDebian testing相当のため移りが早い。」ゆうは喉がひゅっと鳴るのを感じた。「圧縮の中で、何かが待ち構えてる……?」
02:03 — 事実の輪郭
悠真がログを整える。「liblzmaの関数が改変されてる気配。テスト用に見えるアーカイブからビルド時に別のオブジェクトを取り出して差し込む……そんな“作法”の痕跡。」りなは眉を上げる。「供給網(サプライチェーン)の線ね。手元での侵入じゃなく、依存物の入口で誰かが扉を作った。」
この時点の“事実”は二つだけ——
十河精密の一部サーバで**xz-utils 5.6.1**が入った。
SSH直後にliblzmaが不自然に挙動。
“可能性”は、バックドアの混入。それ以上は断言しない。りなが白板に時刻を入れる。「03:00に一次連絡、正午に更新。」
03:12 — 「戻る」ための線
止めるは電源を落とすことじゃない。戻れるように線を引くことだ。奏汰はAnsibleのローリングで**xz-utilsを5.4系へピン**。更新禁止の一時ポリシーを配る。蓮斗は可視化の窓を5分→2分、評価頻度を1分へ詰める。「遅延を敵にしないために。」ふみか(広報)は三文を敷く。
現状:ステージング環境の一部でSSH直後の異常負荷を確認。更新を停止し、安全な版へ巻き戻します。 対応:本番は無影響。出荷と顧客対応は継続。正午に続報。 お願い:支払い先変更などメールだけの依頼は無効。必ず電話で二重確認を。
りなは頷く。「“言い切る”は暴力じゃない。不安に終わりを与える線。」
04:58 — 名前のある事件
正面のモニタが一斉に点滅した。CVE‑2024‑3094。XZ Utilsの上流配布物(tarball)に悪意あるコードが5.6.0/5.6.1で紛れ込んでいた疑い。ビルド時に偽装したテストファイルから事前に仕込まれたオブジェクトを取り出し、liblzmaの特定関数を改変する手口。OpenSSH経由で条件が合うと不正実行を許す可能性——そう、世界中の掲示板が騒いでいる。NVD+2Debian+2
「……これか。」ゆうの指が震えた。りなは事実と言える範囲を赤で囲む。「5.6.0/5.6.1の上流配布物に悪意の混入。ビルドでコードが差し替わる。SSH経由の乗っ取りの可能性。発表は3月29日。」(一次情報はDebianのDSA・NVD記述・ベンダー解析に基づく)Debian+1
悠真が補う。「発見者は開発者のAndres Freund。SSHのパフォーマンス異常を追って突き当たったらしい。“sid/testingでCPUが上がる”——まさに同じ違和感から。」Rapid7+1
蓮斗は影響の地図を出した。「採用は限定的。安定版は巻き込まれず、ローリング系やテスト系で先に当たっている。クラウド実環境で見つかったのは数%規模という集計も。」wiz.io
ゆうは深く息を吐いた。「運が良かったんじゃない。手続きが早かった。」
06:30 — “止める/伝える/回す”の配分
止める:xz-utilsを安全な既知版に固定、検証済みコンテナで再デプロイ。外向け管理経路に一時多要素を強制。伝える:社内に三文、顧客に二文+時刻。“本番影響なし”を冒頭で言い切る。回す:CIの依存解決をオフラインキャッシュへ切替、“再現できるビルド”の範囲を受注処理系→在庫系→請求系の順で拡張。営業稼働は通常、出荷は午前のみ時間差を認める。
「完全じゃなくていい。」律斗が言う。「“回る遅さ”で今日を渡す。」
09:15 — 供給網の影を辿る
昼前の風。りなは二枚の紙を机の中央に置いた。一枚目は社外向けのFAQ。
なぜ起きたか:第三者が上流配布物に細工し、ビルド時に別物が混ざる手口が発見されました。当社は影響版を即時撤去しました。NVD
何が起きていないか:本番環境への侵入や漏えいの事実は確認されていません(継続調査)。
どうするか:依存を固定し、再現ビルドと署名検証を強化。正午/17時に更新します。
二枚目は内部の原則。
“信頼”を“値”で表す:ハッシュと署名が第一の言語。
“例外”に“期限”:テスト系のローリングは48時間だけ。自動失効で戻す。
“言い切る文”:事実と可能性を段落で分ける。数字(時刻・版・CVEs)を添える。
ゆうは頷いた。「戻し方の文学だね。」
12:00 — 正午の報
ふみかが社外に三文を放つ。
事実:XZ Utilsの一部版に対する供給網上の改ざんが公表されました。当社は該当版を撤去し、安全版へ置換済みです。影響:本番は無影響。ステージングでの一時負荷を確認しましたが、侵入の事実は未確認(調査継続)。約束:17時に更新。依存の署名検証と再現ビルドの手順を週内に公開します。
「時間で不安を切る。」りなが付け加える。「“正午/17時”が社内外の呼吸になる。」
15:40 — 依存の“音”
午後、サーバ室のファンがかすれた音を立てる。ゆうは隣室のレシートプリンタに目をやる。「署名検証、全部通った?」奏汰は親指を立てた。「上流のGitと配布物のハッシュ、一致。問題版だけ外側に**“余計な設計図(.m4)”が混ざっていて、ビルド時に変態していたって解析にある。差替えの種はテストファイルに偽装**。」NVD+1
蓮斗は四つの数字を掲げる。
影響サーバ:3/47(全てステージング)
巻戻し所要:41分
MTTD(検知):33分(初期波)、18分(二波)
顧客通知率:100%(正午まで)
律斗は白板に丸をつけた。「一次封じ込め完了。**次は“どう残すか”**だ。」
17:00 — 言葉を残す
二度目の報。りなは**“事実”に枠をつけ、“未確定”を別段**へ落とす。
ふみかは読み上げの最後に、十河精密としての一文を置く。
「速さより、戻れる手続き。」
その夜、会社の空調は同じ速さで回り続け、不安だけがゆっくり減速していった。
3日後 — ポストモーテム:信頼を“手続き”に
木曜の午後、会議室に三つの枠が現れる。
技術:依存固定/再現ビルド/オフライン検証
運用:ローリング適用をテスト系に限定/例外は自動失効
広報・法務:“言い切る三文”/“時刻の約束”/“事実と可能性の段落分離”
蓮斗が数字を示す。
依存の署名検証率:38% → 100%(本番)
例外期限遵守:62% → 97%
MTTD:33分 → 12分(検知ルール改修後)
りなは最後に注記を配った。
本件の下敷き:2024年3月末に公表されたXZ Utils(liblzma)の供給網改ざん(CVE‑2024‑3094)。上流tarballでのビルド時改変により、SSH経由のRCEにつながる恐れがあった。Debian等が緊急通報、数時間で巻戻しが進み、広範な実害拡大前に抑止された。(詳細は末尾の参考文献)Debian+2NVD+2
ゆうは白板の余白に、黒い字で書き加える。
“信頼は、ポインタではなくプロセス。”“速さは、戻れるときだけ味方。”
彼らはペンを置いた。供給網という見えない川に、浅瀬とロープを描いたのだ。
参考(事実に基づく注記)
CVE‑2024‑3094(XZ Utils / liblzma):5.6.0/5.6.1の上流配布物に悪意のコードが混入。偽装したテストファイルからビルド時に事前生成のオブジェクトを取り出して特定関数を改変し、OpenSSH経由で不正実行の可能性が生じたと解析。NVD・Debian DSA・Red Hat等が詳細と緊急対応を周知。Red Hat+3NVD+3Debian+3
発見の経緯:Andres FreundがSSHのパフォーマンス異常を手がかりに発見し、3月29日に広く共有。Rapid7+1
影響分布:採用は限定的で、安定版ディストリは多くが未採用段階。クラウド実環境でも影響版の存在は数%規模との報告。wiz.io
※本作は上記事実を骨格に据えつつ、登場人物・企業・手順は創作です。攻撃手法の具体的な再現に踏み込まぬよう配慮しています。
付録:壁に貼られた“依存の手順書”(十河精密)
1. 依存の固定:本番はLTS/長期サポートへピン。テスト系のローリングは48時間の自動失効。
2. 署名検証:上流Gitタグと配布物のハッシュを両方確認。再現ビルドの差分が出たら停止。
3. 可視化の窓:5→2分、評価1分。“SSH直後にliblzma”は即アラート。
4. 言葉の設計:三文+時刻。事実と可能性は段落で分ける。
5. 例外の練度:“テストで当たる/本番に当てない”を人ではなく設定で担保。
そして、受付のカウンターには白い猫のマスコットが座っている。しっぽの先、USB Type‑Cが灯りを拾い、札にはこうある。
「速さより、戻れる手続き。」





コメント