冬至の残響 — Log4Shellの夜(長編フィクション)
- 山崎行政書士事務所
- 2025年9月14日
- 読了時間: 6分

— 2021年「Apache Log4j(CVE‑2021‑44228)」の連鎖的被害と対応を骨格にした創作
0|23:58 “文字列”が扉になる
静岡駅から少し離れた倉庫街。中堅ECプラットフォーム 灯川コマース の監視室で、夏芽はカップのココアを吹き冷ました。年末商戦のピークへ向け、注文APIは夜でも明るい。
そのとき、アクセスログの端に、奇妙な形の文字列がにじむ。User-Agent の欄に、記号だらけの呪文。一瞬のCPUスパイク、JVMが短く息切れする。
「ふだんのボットに見えない。」「WAFは?」「鳴らない。でも、アプリが咳してる。」
山崎行政書士事務所のショートカットに、夏芽の指が落ちる。長い夜が始まった。
1|00:27 “止める/伝える/回す”
会議室A。ホワイトボードに、**律斗(りつと)**が三行だけ書く。
止める/伝える/回す
止める:注文フロントのJVM群を孤島化。外向きLDAP/LDAPS/HTTPの出ていく線を遮断。証跡は一方向で吸い上げる。
伝える:三文で社内・主要取引先へ。正午/17時の時刻を約束し、**“事実”と“可能性”**を段落で分ける。
回す:決済・配送は落とさない。紙の運用と代替端末で遅いけど確実に回す。
りなが付け加える。「法の時計(72時間)も同時に回します。APPI、GDPR域の取引先は並走。」
奏汰(そうた)は拓本のような構成図に赤を入れる。「Log4jのメッセージ置換、JNDIで外へ出るやつ。“文字列”が扉になる。古いバージョンが残っていたら、今夜は危ない**。」
悠真(ゆうま)はサーバに手を伸ばす。「User‑AgentやX‑Api‑Keyに奇妙な連結。${…}で始まる記号が分解され、外へ触手が伸びる形跡。WAFは半分すり抜け。可視化は遅れている。」
ふみかが三文の一次報を置く。
現状:注文フロントで不審な文字列による外部参照の試行を確認。該当系を孤島化し、代替運用へ切替。対応:決済・配送は継続。外向きのLDAP/LDAPS/HTTPは遮断、ログの保全と証跡の収集を実施。正午に一次報、17時に更新。お願い:支払い先変更などメールのみの依頼は無効。必ず電話で二重確認を。
「時刻は安心の枠。」りなが赤で丸をつける。
2|01:16 “呪文”の正体
悠真が取り出した断片は、読み返すごとに別の形に見えた。大文字・小文字、lower: や upper: を噛ませ、jndi の綴りを崩し、LDAPの宛先を遠い国へ向ける。
「遮断しているから出ていかない。けれど、扉を叩いた痕跡はある。」「座標は?」夏芽が問う。「あちこち。一晩で世界中が叩いている。」
蓮斗(れんと)が四つの数字を出す。
MTTD(検知):27分
一次封じ込め:1時間08分
外向き遮断:LDAP/LDAPS/1389/389/53(DNS転がし)
代替運用稼働率:受注70% → 正午90%
律斗は短く言った。「勝ってはいない。**“間に合っている”**だけだ。」
3|02:42 “抜く”勇気と“残す”設計
奏汰はJVMの起動パラメータに消極的防御を差し込み、該当ライブラリの問題クラス(JndiLookup)を一時的に除去する。安全版への本格更新は夜明け以降、検証と逆戻しの道を確保してから。
陽翔(はると)は現場に電話する。「“遅いけど確実”を選ぶ。注文確定は口頭復唱+二名承認。ラベルは孤島PCからUSBで落とす。ネットワークは繋げない。」
受付に白い猫のマスコットが置かれる。しっぽにはUSB Type‑C。札には、太い字で。
「遅いけど確実。」
4|07:18 朝の呼吸
WAFは学習を始め、遮断と許可の線が太る。ログには新しい芸が混ざる。dnsやrmi、http以外を流れる試み。ヘッダだけでなくフォームの値、URI、エラーメッセージに潜る。
りなはPPC向けドラフトを二段落で整える。
確認された事実:注文フロントに対する特定の文字列による外部参照試行、該当サーバの孤島化、外向き通信の遮断を実施。
未確定(継続調査):第三者提供の有無と範囲、影響期間。個人情報の確証流出は未確認。
「混ぜない。」りなは言う。「事実と可能性を同じ文に置かない。」
5|12:00 正午の報
ふみかが読み上げ、りなが段落を整える。
事実:Log4jを利用する注文フロントで不審な外部参照の試行を確認。孤島化と外向き遮断、代替運用を実施。影響(現時点):決済・配送は継続。個人情報の第三者提供の確証なし(調査継続)。受付遅延は平均13分。約束:17時に更新。“メールだけ”の依頼は無効、電話で二重確認。
怒号はない。“時刻”が不安の終わりを作る。
6|13:22 “第二波”の知らせ
セキュリティベンダのダッシュボードが赤を増やす。初回パッチの回りをすり抜ける派生、連番のCVEが列を作る。「切ったクラスだけじゃ足りない場所がある。」悠真。「だから“本筋の更新”に戻る。」奏汰。
安全版のテストが短い階段を上る。性能劣化、ログの照合、可視化の復帰。一気にやると転ぶ。段でやると戻れる。
7|15:40 “信頼”の単位を増やす
経営会議。高取COOが問う。「速さと確実、どちらをどれだけ?」律斗は短く答える。「“速くて危険”より“遅いけど確実”を今夜は選ぶ。代わりに“戻れる速さ”を上げる。ロールバックと緊急コミュニケーションの訓練を今日やる。」
ふみかは顧客FAQに一行を足す。
「当社は不当な要求には応じません。証跡の確保と関係機関との連携を優先します。」
身代金の話題はここでも出ない。これは“文字列が外へ手を伸ばす”静かな事件だ。
8|17:00 二次報
封じ込め:Log4j安全版への更新を段階適用、外向き遮断を継続、証跡保全を拡大。影響:受付遅延9分。第三者提供の確証なし(継続調査)。次:夜間に全面更新と余波CVEの追加対処、監視ルールの強化。72時間の報告線を維持。
蓮斗の四つの数字が緑に寄る。
代替運用稼働率:90% → 96%
外向き不審通信:0(直近8時間)
更新適用率:基幹100%/周辺78%
顧客通知率:100%
9|21:10 “夜の一斉換装”
JVMの再起動が順番に波を打つ。イミュータブル化したアプリを新しい箱にまるごと入れ替え、古い箱は退役。残っていた古いJARは除籍され、依存の固定は宣言で管理されるようになった。
監視パネルには二つの新しい目が増える――“外向き参照率(プロトコル別)”と“例外の期限切れ件数”。
新名が小さく息を吐く。「鳴らなかったアラートが、鳴る。」
10|2日目 08:04 声を整える
ヘルプデスクの仮想練習。みおが攻撃者役で「端末が—」と声色を変える。夏芽は脚本の最初の一行を短く返す。「今の番号に折り返します。上長同席の10分会議で再登録します。」声は鍵になる。手続きで鍵穴を狭める。
11|三日後 “72時間”の線の向こう
PPCへの報告が確定する。“確認された事実”、“未確定(継続調査)”、“封じ込め”、“再発防止”。短く、しかし厚く。海外の取引先にはGDPRラインで共同文書を出す。
りなは三行で締めくくる。
言い切る(事実と可能性を混ぜない)期限を付ける(例外は時間で管理)二重に確かめる(自動の間に“人の10分”)
受付のやまにゃんが、今日も小さく光っている。
「速さは、戻れるときだけ味方。」
冬至の冷たい空気が、サーバ室まで届いた。文字列はもう扉ではない。手続きと数字が、新しい鍵になった。
—— 完
参考リンク(URLべた張り/事実ベース・一次情報/主要報道・技術解説)
※物語はフィクションですが、骨格となる事実(CVE‑2021‑44228の性質、悪用パターン、派生CVE、推奨対処・遮断・更新の要点)は以下に基づいています。
参考:上記には Apache Loggingの公式セキュリティ情報、NVD、CISA/NCSCのガイダンス、Cloudflare/Check Point/Akamai/Rapid7/Huntress/Microsoft などによる技術解説と推奨対処が含まれます。





コメント