硝子の照合 — Strutsの春(長編フィクション)
- 山崎行政書士事務所
- 9月15日
- 読了時間: 6分
— 2017年「Equifax大規模流出:Apache Struts(CVE‑2017‑5638)未適用→OGNL注入→横展開→失効証明書で監視停止→約1.47億件流出・後年の帰属/和解」を骨格にした創作
00|金曜 14:06 硝子越しの質問
芙蓉(ふよう)クレジット情報センターの与信審査フロア。夏芽は、申し込みフォームの**「職業」欄にカーソルが戻されるのを見て、キーボードの上で指を止めた。背後のラックでは、Apache Strutsで組まれた古い申込ポータルが稼働している。WAFは緑、SIEMは穏やか、TLS復号プロキシは——「要注意:証明書期限近」**。
「あとで更新しよう。今は混んでる。」そう言って、ひとまずメモに“来週”と書いた。
静かな午後、Content‑Typeの見慣れたヘッダーに、見慣れない式が忍び込む。${...OGNL...}。画面のこちら側で忙しくタイプする人には、音も色もない。
01|14:22 “止める/伝える/回す”
静岡・山崎行政書士事務所。ホワイトボードに**律斗(りつと)**が三行を書く。
止める/伝える/回す
止める:申込ポータルを孤島化。外向きを白リスト以外遮断、Strutsアプリを一時停止。証跡は一方向で保全。TLS復号プロキシの証明書は即更新し、監視の目を戻す。
伝える:三文の一次報を役員/現場/所管に。“事実”と“可能性”を段落で分け、正午/17時に時刻を約束。「支払い先変更メールは無効」を最初に置く。
回す:申込受付は紙運用+コールセンターへ切替。遅いけど確実に回す。審査は孤島端末で最小継続。
りなが補う。「72時間の法の時計を回します。“声は鍵”(折り返し+二名承認)を全窓口で。」
奏汰(そうた)は構成図に赤を走らせる。「Strutsの古傷(CVE‑2017‑5638)、Content‑Type経由のOGNL注入。RCEで箱に入り、アプリの足でDBへ寄る筋。パッチは月初に出ている。当たってない可能性。」
悠真(ゆうま)はモニタの凡庸なログを指で弾く。「“凡庸な成功”の連続が違和感。成功が過ぎる。」
ふみかが三文を置く。
現状:申込ポータルで不審な挙動を検知。当該系を孤島化し、外向き白リスト化、証跡保全を開始。TLS復号証明書を更新。対応:申込受付は紙運用+コールセンターで継続。正午に一次報、17時に更新。お願い:支払い先変更などメールのみの依頼は無効。必ず電話で二重確認を。
受付の白い猫のマスコット(やまにゃん)が、しっぽのType‑Cを小さく光らせた。
「遅いけど確実。」
02|15:11 “見えていなかった”1か月
TLS復号プロキシの証明書が更新されると、SIEMが吠えた。今まで静かだった外向きに複数の塊。夜間に圧縮ファイルの連続送出。りなが眉を寄せる。「“見えていなかった期間”がある。失効証明書で復号が止まり、監視の目が閉じていた。」
蓮斗(れんと)が四つの数字を掲げる。
MTTD(検知):24分(アプリ異常→監視復活で実体)
一次封じ込め:53分(孤島化/白リスト/停止/証明書更新)
外向き送出:既往期間あり(要照合)
影響推定:個人識別情報(PII)格納DBに接続痕(継続調査)
律斗は短く言う。「勝ってはいない。**“間に合っている”**だけだ。」
03|16:28 硝子の倉庫の鍵
データマートの権限は太ったままだった。本番と分析の鍵束がひとりに集まり、アプリは古いトークンで倉庫へ出入りできる。奏汰が鍵束を三つに分ける図を描く。「読む鍵/書く鍵/署名する鍵を別人に。常時特権はゼロ。必要なときだけ(JIT)に渡す。」
悠真はWAFに新しい耳をつける。Content-Typeヘッダー内のOGNLパターン**、異常なUser-Agent、連番に見えないHTTP境界。紙の申込票がプリンタから連続で吐き出される。遅いけど確実が足場を作る。
04|17:00 一次報
事実:申込ポータルでの不審挙動を受け、孤島化/外向き白リスト化/アプリ停止、TLS復号証明書の更新を実施。監視復活後に外向き送出の痕を確認、証跡保全中。影響(現時点):個人情報の第三者提供の確証なし(継続調査)。申込受付は紙運用+コールで継続。約束:翌正午に更新。“メールだけ”の依頼は無効、電話二重確認を。
怒号はない。時刻が不安の終わりを作る。
05|夜 20:35 “壁の向こう”の相手
外向きの行き先は点で散り、薄い共通があった。夜と休日に静かに出て行き、朝には止む。相手は返事をしない。ただ受け取る。りなが言う。「帰属は私たちが言わない。事実と手順だけ言い切る。公的発表に歩調を合わせる。」
06|翌朝 06:50 “パッチの窓”
Strutsのセキュリティ告知は春先に出ていた。S2‑045/CVE‑2017‑5638。パッチ適用窓は一週間で見送られ、翌週は他の障害対応、翌月は繁忙で棚上げ。“来週”は来なかった。
奏汰が手順を書き換える。
「正しい更新」でも“人の10分会議”(記録と復帰線)。
「例外」には期限(48時間で自動失効)。
「監視の目」は二重化(TLS復号の証明書期限を監視)。
やまにゃんの札が光る。
「速さは、戻れるときだけ味方。」
07|正午 二次報(推計と確定)
封じ込め:孤島化/停止継続、外向き送出の期間推計と宛先特定を進行。権限の三分割とJIT特権を導入。影響:件数推計は上限・下限で提示、“確証あり”と“可能性”を段落で分離。次:夜間に新環境(空の箱)へ引っ越し、旧環境は証跡保存。72時間の線を維持。
蓮斗の数字。
MTTD:24分 → 10分(TLS証明書監視の導入)
一次封じ込め:53分 → 31分
JIT特権:常時特権ゼロ
例外期限遵守率:98%
08|二週間後 告知の昼
芙蓉センターは数字を言い切った。「最大で約1.47億件」、「氏名・生年月日・住所・社会保障番号等」、「一部で運転免許番号」。無料のモニタリング、凍結の手続き、専用回線。“誰がやったか”は公的発表を待つ。“何が起きたか”は自分の言葉で短く正確に。
コールセンターでは、みおが攻撃者役で訓練する。「緊急で口座を—」「今の番号に折り返します。上長同席の10分会議で再登録します。」
声は鍵にも刃にもなる。手続きが鍵穴を狭くする。
09|数か月後 和解と冬
規制当局の和解が公表され、補償枠と監査が決まる。のちに、公的機関は帰属を語り、起訴状が掲示される。技術の文書はStrutsの古傷と失効証明書、監視の目の欠落を機械的に記す。
講堂に三つの時計が並ぶ。
現場の時間(申込・審査・与信)
規制の時間(72時間と継続報告)
経営の時間(信頼・和解・改善)
りなは三行で締める。
言い切る(事実と可能性を混ぜない)期限を付ける(例外は48時間で自動失効)二重に確かめる(自動の間に**“人の10分”**)
夏芽は更新作業票に小さな四角を増やした。「証明書の期限」、「二系統の目」、「復帰線の確認」。硝子の照合は、割れやすい。だから遅いけど確実を正面から選ぶ。
—— 完
参考リンク(URLべた張り/事実ベース・一次情報/主要公的整理・技術資料)
※物語はフィクションですが、骨格(Apache Struts CVE‑2017‑5638(S2‑045)によるRCE、失効証明書でTLS復号監視が停止していた事実、約1.47億人規模の告知、規制当局との和解、後年の起訴・帰属)は以下に基づいています。
補足:House Oversight報告書やGAO資料は、パッチ未適用とデジタル証明書期限切れにより監視が機能していなかった経緯、組織内ガバナンスの問題点を詳述。FTCの和解発表とDOJの起訴は法的帰結を示しています。


コメント