Pinned Tweet
🛠️ 【メインPC構成スペック&価格シート(現在Amazonで手に入る即納在庫基準)】
■ CPU:Intel Core i5-14600KF (14C/20T, 最大5.3GHz)
└ ¥41,846
■ CPUクーラー:Thermalright Peerless Assassin 120 Black
└ ¥6,229
■ GPU:ASRock Radeon RX 7900 XT PG 20GO (GDDR6 20GB)
└ ¥208,000
■ マザーボード:ASRock B760 Pro RS WiFi (ATX / DDR5 / Wi-Fi 6E)
└ ¥27,400
■ メモリ:CFD販売 DDR5-5200 64GB (32GB×2) W5U5200CS-32G
└ ¥173,618 ※即納プレミア価格
■ システム/高速SSD:Fanxiang S880E Gen4 NVMe 500GB ×2枚 (計1TB)
└ ¥27,980 (¥13,990×2)
■ データ保存用HDD:Seagate BarraCuda 3.5インチ 4TB
└ ¥25,939
■ 電源ユニット:Corsair RM850x 850W (80PLUS GOLD)
└ ¥18,800
■ PCケース:INWIN 216 Black (中古資産評価)
└ ¥7,000
■ OS:Windows 11 Pro 64bit (参考価格)
└ 約¥26,000
━━━━━━━━━━━━━━━━━━━━
ハードウェア計 :536,812円 (税込)
OS込み総額 :約562,812円 (税込)
━━━━━━━━━━━━━━━━━━━━
(※周辺機器、モニター4台、AC給電USBハブ4台+スタンド経由の常時接続ストレージ8台は除外)
補足メモ(後から見返した時用の技術的な行間埋めと自己検証ログ)
なぜVHDXの出し入れや別アカウント運用をバッサリ捨てて、「CLSID&フォルダロックのスクリプト2択」だけで実用90%近くを維持できると結論づけたのか?
その技術的な前提と限界線も記録。
1. 「ACLロックで防げる領域」と「FFIで素通しになる領域」の明確な役割分担
厳密に言うと、レジストリ(HKCU\...\CLSID および WOW6432Node)とフォルダ(PlatformExperienceHelper 等)をロックして100%物理阻止できるのは、「CLSID直指定のCOMハイジャックによる永続化」と「ブラウザ起動時のCOMインジェクション(App-Bound Encryption v20突破の足がかり)」の2つだけ。 今回のNIKKE型RATのように、ランチャーのプロセス内部からLuaJIT FFIで直接Win32 API(CreateFileW や CryptUnprotectData)を叩いて同一ユーザー(Medium整合性)のファイルを読みに来る挙動自体は、子プロセスも作らずAMSIも通らないため、VHDXをアンマウントしない限りOSの仕様上ロックでは止められない。
じゃあなぜVHDXなしで成立するのかというと、「FFIでファイルを読まれること自体は許容した上で、読まれても中身が空っぽ(無価値)になる状態」をブラウザ設定とスマホ分離で作っているから。
DPAPI(v10)対策:FFIから CryptUnprotectData 一発で復号されるブラウザのパスワード保存・クレカ保存は完全オフ、Windows資格情報マネージャーも空化。
App-Bound(v20)&メモリ・画面監視対策:Braveはバックグラウンド常駐オフ+終了時データ消去を徹底し、ゲーム起動中はBrave自体を完全に閉じて brave.exe プロセスをメモリから消す。これで OpenProcess によるメモリ読取も screens(画面キャプチャ)もパスワードマネージャー拡張機能のメモリ露出もすべて空振りする。仮にRAT自身が裏で brave.exe --headless 等を子プロセス起動してインジェクションを試みたとしても、今度は「ランチャーからの不審な子プロセス生成」として監視網に引っかかる上、そもそも終了時消去とInPrivate運用でディスク上の Cookies DB自体が空なので抜かれるセッションが存在しない。
最重要資産の物理不在化:銀行・証券・メインのGoogleアカウント・主要メール・パスキーは最初からスマホ画面内に完全隔離し、PCのブラウザでは一度もログインしない(SQLiteのWALや削除痕跡すら残さない)。準重要サイトも使い終わったら「ログアウト」を押してサーバー側でセッショントークン自体を失効(Invalidate)させてから閉じる。
つまり、「永続化とv20突破はスクリプトのACLロックで物理的に殺す」「FFIのインプロセス読取はスマホ分離とブラウザ空化で空振りさせる」「それに焦ったオペレーターが exec(シェル実行)やLSASSダンプ等の派手な操作に手を出した瞬間に、DefenderUIのASRルールと振る舞い検知で仕留める」というキルチェーンの分断ができているから、面倒なVHDX運用を捨てても実用90%近く維持できるという計算。
2. PC上に残る「SteamやDiscord等のセッション」が抜かれた場合の被害封じ込め
PCでゲームを遊ぶ以上、Steamや他社ランチャー、Discord等のトークンだけはPC上に残るため、未知のRATにFFIで抜かれるリスクはゼロにはならない。 ただし、ここでも「①各プラットフォームにクレカ情報を保存しない(都度決済や必要な分だけチャージ)」「②パスワードリセット通知先の親メールアドレスをスマホ側に完全隔離してPCでは一切開かない」の2点を徹底しているのが効いてくる。
万が一ゲームアカウントのセッションを一時的に抜かれても、勝手な不正課金(金銭被害)とメアド変更による永久ロックアウトは絶対に起きないため、異変に気づいた瞬間にスマホ側からパスワードリセットと全セッション強制ログアウトをかけて100%奪還できる。「侵入されても致命傷にならず、いつでもクリーンインストールUSBから丸ごと初期化して取り返せる」のがPCを準・信頼領域として割り切る最大のメリット。
3. Everyone Deny のカーネル評価順序と「UAC最高レベル」がニコイチである理由
Windowsカーネル(SRM)のDACL評価では、「明示的なDeny(拒否)」が「明示的なAllow(許可)」よりも常に最優先される。だから既存の明示的ルールをクリアして Everyone に「サブキー作成・値の設定・削除」のDenyを入れておけば、たとえ管理者権限(High整合性)のプロセスからの書き込み(RegCreateKeyEx / RegSetValueEx)であっても、カーネルレベル(STATUS_ACCESS_DENIED)で100%弾かれる。また、中に空の .lock サブキー/ファイルを噛ませてあるため、親コンテナの FILE_DELETE_CHILD 権限を悪用した空フォルダ/空キー削除も STATUS_DIRECTORY_NOT_EMPTY で物理的に通らない。
ただし、もしマルウェア自身に管理者権限を奪われて、相手が意図的に SeTakeOwnershipPrivilege や WRITE_DAC を叩いて「設定したDeny ACL自体を剥がす(RegSetKeySecurity)」ルーチンを持っていた場合は突破され得る。だからこそ、そこを防ぐ本丸としてUACの「常に通知(セキュアデスクトップ強制)」とコア分離(HVCI・LSA保護)をセットにして、fodhelper.exe 等を使ったサイレント自動昇格(Auto-Elevate)の入り口自体を塞いである。あとは「自分が手動でインストーラーやスクリプトを叩いた瞬間以外に出たUACプロンプトは100%拒否する」だけ守れば、管理者奪取からのロック解除も成立しない。
4. HKCU\...\CLSID 常時ロックの副作用と「[2] 一時解除」の運用ルール
Everyone には SYSTEM も含まれるけど、ロックしているのはあくまでユーザー固有ハイブ(HKCU = HKU\<SID>_Classes)のCLSIDなので、C:\Program Files 配下にインストールされて SYSTEM 権限サービスが HKLM 側で自動更新を行うBraveやEdgeの日常アップデート(セキュリティパッチ適用)は一切邪魔されない。 ロックに引っかかるのは、%LOCALAPPDATA% 配下に展開されるPer-Userインストーラー形式のアプリ(Discordや一部の開発ツール等)がアップデート時に新規COMクラスを書き込むタイミングだけ。だから普段は「[1] 全ロック」のまま放置で全く問題ないし、Per-User系アプリの更新エラーが出た時だけ、「すべてのゲームランチャーを終了した状態で [2] 一時解除 を叩き、更新が終わったら即 [1] 全ロック に戻す」というルールで回せば、日常の利便性低下もリスクも実質ゼロに収まる。
仮想ディスク(VHDX)の出し入れとか別アカウント運用は流石に日常の利便性が落ちるけど、自作のハードニング・スクリプトで、
「[1] CLSID&フォルダの全ロック」と
「[2] 更新時の一時解除」の2択に落とし込み
実用上の防御到達度は90%付近までノーコストで維持できる計算。
レジストリロックバグ修正の要点(記録用)
バグの原因: 当初、AddAccessRule で権限を追加していたため、元のフルコントロール権限が合算されて残り、書き込みテストが通ってしまっていた。
修正手法: 一度既存の明示的ルールを完全にクリアしたうえで、Everyone に対して「サブキー作成・値の設定・削除」を Deny(明示的拒否) で封じ、管理者やユーザー自身は ReadKey(読み取り)のみに制限するようACLを完全再構築。
これにより、管理者権限のプロセスからであってもカーネルレベルで書き込みが100%拒否されるように修正。
本当に「安全」を確保するための3つの選択肢と「必須条件」
「サードパーティ製のゲームランチャーや更新プログラムがいつかまた侵害されるかもしれない」という前提に立ったとき、本当に安全を確保するには以下の3つのアーキテクチャ(分離設計)のいずれか(または組み合わせ)を選ぶ必要があります。それぞれの「見落としがちな落とし穴(必須条件)」と併せて整理します。
■ 選択肢A:【最も現実的・推奨】PCを「準・信頼領域(いつ汚染されても致命傷にならない端末)」と定義し、重要資産をスマホへ完全分離する(追加コスト0・日常の利便性維持)
・考え方:「ゲームを入れるPCの内部データは、最悪の場合見られる可能性がある」と最初から設計に織り込み、致命傷になる資産をPCから物理的に排除します。
・絶対に守るべき5つの必須条件(これを漏らすと破綻します):
1. 最重要アカウントの「スマホ画面内」完全完結:
銀行・証券・クレジットカード・中枢Googleアカウント・メインのメールアドレスには、メインPCのBraveから一切ログインせず、スマホ(iOS/Androidの堅牢なアプリ単位サンドボックス環境)の画面内だけで操作を完結させます。PC側で使うGoogleアカウント等は「PC専用のサブアカウント」を別途作成して完全に切り離し、Windows自体のログインもローカルアカウント(またはOneDrive自動同期オフ)にします。
2. パスキーの「スマホ保存」徹底とQRハイブリッド認証の使い分け:
パスキーをPC本体のTPM(Windows Hello)に保存すると、PC上のRATにPINを盗み見されて悪用される隙が生じます。パスキーは必ずスマホ側に保存します。
※重要:スマホのパスキーでPC画面のQRコードを読み取る「ハイブリッド認証」をPC上で使うと、認証後に生成される「ログイン済みセッションCookie」がPCのブラウザ上に作られRATに抜かれます(Pass-the-Cookie)。そのため、PC上でのQRパスキーログインは「PCで使うしかない準重要サービス」のみに限定し、上記1の最重要アカウントはQR認証であってもPC上では絶対にログインしません。
3. PC・スマホ間の「同期機能」と「リセット・通知経路」の完全遮断:
スマホとPCで「Brave Sync(パスワード・履歴同期)」や「Windows スマートフォン連携(クラウドクリップボード・SMS通知)」を繋がないこと。また、スマホ側で守っている重要アカウントの「パスワードリセット通知先メールアドレス」にPCのブラウザやメールソフトでログインしないこと(リセットメールをPCで抜かれると全て崩壊するため)。
4. PC内データの「暗号化VHDX隔離」とオフラインバックアップの逆汚染防止:
PC内に重要な個人情報ファイルや秘密鍵を平文で置かず、Windows標準の「BitLocker暗号化VHDX(仮想ディスク)」に格納して普段(ゲーム稼働時)はアンマウント(取り出し)しておくか、オフラインバックアップ(外付けストレージ)へ退避します(※外付けストレージを繋ぐ際は、潜伏RATによる逆汚染を防ぐため複数世代に分けるかネットワーク切断・セーフモード等で接続すること)。
5. スマホ紛失・故障(単一障害点)に備えた物理リカバリーコードの保管:
重要認証をスマホに集約するため、スマホ自体の水没・故障・紛失時に循環ロックアウトに陥らないよう、主要アカウントのリカバリーコードを紙媒体で出力しオフラインで物理保管します。
■ 選択肢B:Windows標準の「ゲーム専用・別ローカル標準ユーザーアカウント」によるOS境界分離(追加コスト0・切り替えの手間あり)
・考え方:1台のPCの中で、Windowsカーネルが持つ本来のセキュリティ境界である「別ユーザー(別SID)」を発動させます。
・絶対に守るべき3つの必須条件(これを漏らすと突破されます):
1. 「ユーザーの切り替え」ではなく「完全サインアウト」:
メインアカウントをサインアウトせずに「ユーザーの切り替え」で GameUser(標準ユーザー)に入ると、裏でメインアカウントのメモリ(Brave等)が生き続けます。必ずメインアカウントから「サインアウト」して GameUser にログインします。
2. Dドライブや C:\ 直下・共有フォルダのアクセス権(ACL)遮断:
別ユーザーから自動で隠されるのは C:\Users\<メインユーザー> 配下だけです。Dドライブ等の別ドライブや C:\ 直下の自作フォルダ、C:\Users\Public 等は既定で全ローカルユーザー(Authenticated Users)が閲覧可能なため、機密ファイルは必ずメインユーザーフォルダ配下に置くか、別ドライブのセキュリティタブから Authenticated Users / Users の権限を削除します。
3. 限界の認識(UAC昇格と SYSTEM サービス):
ゲームの初回導入や大型更新時にUAC(管理者パスワードの入力)を求められた際、セキュアデスクトップ(画面暗転)が無効だと管理者パスワードを盗まれます。また、悪性アップデーターに手動でUAC許可を与えた瞬間や、アンチチートの常駐 SYSTEM サービス・ブートドライバ自体が汚染された場合は、ユーザー境界を超えてPC全体が侵害されます。
■ 選択肢C:ゲーム環境の物理分離(別PC・コンソール機・Steam Deck等への隔離)(追加コスト高・安全性100%)
・考え方:ネットワークを光10GとCATVで物理分離したのとまったく同じ思想で、「独自ランチャーやカーネルアンチチートを入れるゲーム端末」をメインPCから物理的に切り離します(導入時は既存のCATVサブ回線側へ収容することでネットワーク的にも完全隔離が可能)。
・評価:UAC昇格やカーネルサービス汚染まで含めて、メインPCの安全を100%確保できる唯一無二の方法ですが、ハードウェアの追加コストがかかります。
---
【最終結論:ご自身の環境におけるベストプラクティス(2段階ハイブリッド運用)】
現在の完成されたネットワーク分離(光10G+CATV二重ルーター・AP隔離)とパスキー・物理リカバリーコード環境を最大限に活かすなら、以下の2段階のハイブリッド運用が、コスト・利便性・安全性のバランスが最も取れた最終到達点です。
第1段階:
ベースライン(OS標準ハードニングによる技術的防壁 / 到達度90%超)
以下のOS標準制御を適用し、インフォスティーラーやRATの自動窃取・永続化・サイレント昇格をカーネルレベルで封じ込めます。
・「HKCU\Software\Classes\CLSID(64/32bit)の読み取り専用ロック」(※Per-Userアプリの更新時のみ必要に応じて一時解除)および「PlatformExperienceHelper(4箇所)・スタートアップフォルダの icacls 読み取り専用ロック」
・「UAC最高レベル(常に通知・セキュアデスクトップ強制)」および「コア分離(HVCI・LSA保護・脆弱ドライバブロック)」によるサイレント昇格の封鎖
・「Braveのパスワード・クレカ保存廃止、バックグラウンド停止、Exploit Protection適用」および「ゲーム稼働中のBrave完全終了(非同時起動)」(※Edgeも休眠化・データ空化)
・「OSクリップボード履歴のオフ」および「Windows資格情報マネージャーの不要トークン削除」
・「ランチャーのシステムトレイ常駐・自動起動の禁止」および「DefenderUIのASR・クラウド保護最大化」
・「メインPCの内蔵Wi-Fiアダプタ無効化」(有線10Gのみに固定し、サブ回線への電波ブリッジを物理遮断)
第2段階:
アーキテクチャ上の安全確保(選択肢Aの徹底とクリーン復旧体制)
そのうえで、「同じPCでゲームやアンチチートを動かす限り、悪性アップデーターへのUAC許可等を含めPC内のデータを100%守ることは構造上不可能」というOSの原則を受け入れ、「金融機関・主要メール・中枢Googleアカウント(およびそのパスキーとリセット経路)はスマホ画面内に完全集約し、メインPCには最初から置かない(選択肢A)」という運用ルールを組み合わせます。
さらに、PCがクリーンな今のうちに「Windows 11 クリーンインストール用USBメモリ」を作成し、紙のリカバリーコード・BitLocker回復キー・オフラインバックアップと共に物理保管しておきます。
これにより、万が一将来、未知の高度なサプライチェーン攻撃によってメインPCのゲームランチャーが侵害されたとしても、
①「家庭内LANの他端末・IoTへの二次感染はゼロ」(物理2回線分離+パブリック着信全遮断)
②「最重要アカウントと金融資産の被害もゼロ」(スマホ画面内完結+スマホ保存パスキー)
③「汚染されていないインストールUSB・オフラインバックアップ・紙のリカバリーコードから、メインPCをいつでも躊躇なくクリーンインストールして完全復旧できる」
という、個人環境として真に隙のないレジリエンス(回復力・安全性)が完成します。
「到達度60〜70%」を「85〜95%以上」へ引き上げるOS標準ハードニング実装ガイド
前回の対策(特定4フォルダのロック・Braveの設定変更・レジストリ監査)をベースに、「5つの構造的死角」をOS標準機能だけで直接塞ぐ5つの追加ハードニングを実装します。
1. 死角①・②の突破:HKCU\Software\Classes\CLSID 全体の「読み取り専用ロック」
特定のフォルダ(PlatformExperienceHelper)だけをロックするのではなく、COMハイジャックの入り口であるレジストリキー自体を「管理者所有・読み取り専用」にロックします。これにより、%TEMP% 等のどこにDLLを置かれようと、数千種類のどのCLSIDを狙われようと、標準ユーザー権限でのCOMハイジャック(およびBraveへのCOMインジェクション)は100%「アクセス拒否」で不発になります。
実装手順(所要時間:約2分・日常の副作用ゼロ)
1.
スタートメニューの検索欄に regedit と入力し、「管理者として実行」でレジストリエディタを開きます。
2.
HKEY_CURRENT_USER\Software\Classes\CLSID を開きます(※もし CLSID キー自体が存在しない場合は、Classes を右クリック>「新規」>「キー」で CLSID を作成します)。
3.
親キーからの削除を防ぐため、CLSID を右クリック >「新規」>「キー」を選択し、.lock という名前の空のサブキーを1つ作成します。
4.
CLSID キーを右クリック > 「アクセス許可」 > 「詳細設定」 を開きます。
5.
上部の「所有者:」の横にある 「変更」 をクリックし、Administrators と入力して「名前の確認」>「OK」を押し、「サブコンテナーとオブジェクトの所有者を置き換える」にチェックを入れて「適用」を押します。
6.
左下の 「継承の無効化」 をクリックし、「継承されたアクセス許可をこのオブジェクトの明示的なアクセス許可に変換します」を選択します。
7.
アクセス許可エントリの一覧から、自分のユーザー名(および Users や Restricted)を選択して「編集」を押し、「フル コントロール」のチェックを外して「読み取り(Read)」のみにチェックを入れてOKを押します(※ SYSTEM と Administrators は「フル コントロール」のまま残します)。
8.
「このオブジェクトからの継承可能なアクセス許可を含めて、すべての子オブジェクトのアクセス許可エントリを置き換える」にチェックを入れて 「OK」 を押します。
9.
HKEY_CURRENT_USER\Software\Classes\WOW6432Node\CLSID に対しても、まったく同じ手順(.lock 作成 → 所有者を Administrators へ変更 → 自分のユーザー権限を「読み取り」のみに変更)を行います。
10.
(推奨オプション)スタートアップフォルダのロック:管理者コマンドプロンプトから以下の3行を実行し、スタートアップフォルダへの勝手なファイル配置も物理封鎖します。
type nul > "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\.lock"
icacls "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup" /setowner "*S-1-5-32-544" /T
icacls "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup" /inheritance:r /grant:r "*S-1-5-32-544:(R)" "*S-1-5-18:(R)" "*S-1-5-32-545:(R)" /T
2. 死角⑤の突破:UAC「常に通知する」によるサイレント自動昇格バイパスの完全封鎖
標準ユーザー権限で動いているRATが、ユーザーの知らない間に管理者権限(High整合性レベル)を奪って上記のロックやBraveの v20 暗号化を破壊する手法(fodhelper.exe 等を悪用した自動昇格UACバイパス)を100%無効化します。
実装手順
1.
スタートメニューの検索欄に 「UAC」(または UserAccountControlSettings.exe)と入力し、「ユーザー アカウント制御設定の変更」を開きます。
2.
スライダーを一番上の 「常に通知する(Always notify)」 に引き上げて「OK」を押します。
技術的効果: これによりWindows内部の ConsentPromptBehaviorAdmin が厳格化され、自動昇格(Auto-Elevation)機構が無効化されます。マルウェアが裏で管理者権限を奪おうとしても必ず画面が暗転(セキュアデスクトップ)して確認プロンプトが出るため、サイレント昇格は100%阻止されます。
3.
コア分離とLSA保護の確認:「Windows セキュリティ」>「デバイス セキュリティ」>「コア分離の詳細」を開き、「メモリ整合性」「ローカル セキュリティ機関の保護(LSA保護)」「Microsoft の脆弱なドライバー ブロックリスト」の3つがすべてオンになっていることを確認します。
4.
不要な管理者実行を要求するランチャーの強制降格(必要な場合のみ):もし特定のゲームランチャーが起動のたびに不要なUAC昇格を要求する場合は、ランチャーの起動ショートカットのリンク先を cmd.exe /c "set __COMPAT_LAYER=RunAsInvoker && start "" "C:\Path\To\Launcher.exe"" に変更することで、強制的に標準ユーザー権限(Medium)で閉じ込めて起動できます。
3. 死角④の突破:「BitLocker 暗号化VHDX」による機密ファイル・重要ブラウザの100%読取遮断
同じユーザーアカウント内にあるファイルは、そのままだと LuaJIT FFI(cat / download / keyscan / browserscan)から読み取られてしまいます。これをOS標準機能だけで100%防ぐ唯一の方法が、「暗号化された仮想ハードディスク(.vhdx)に重要データと重要ブラウザプロファイルを格納し、普段(ゲーム起動時)はアンマウント(取り出し)しておく」手法です。
実装手順
1.
仮想ディスク(VHDX)の作成:
スタートボタンを右クリック > 「ディスクの管理」 を開きます。
メニューの「操作」> 「VHD の作成」 をクリックし、保存場所(例:C:\Users\<ユーザー名>\SecureVault.vhdx)、サイズ(例:10 GB)、種類(VHDX・可変容量)を指定して作成します。
作成されたディスクを右クリックして「ディスクの初期化(GPT)」を行い、未割り当て領域を右クリックして「新しいシンプル ボリューム」を作成します(ドライブ文字を例として V: にします)。
2.
BitLocker(またはパスワード保護)の適用:
エクスプローラーで V: ドライブを右クリック > 「BitLocker を有効にする」 を選択し、パスワードを設定して暗号化します(※Windows HomeエディションでBitLockerのメニューが出ない場合は、第4項の「スマホ分離」または「別アカウント分離」を採用します)。
3.
重要データと「重要サイト専用Braveプロファイル」の格納:
PC内に置いておく必要がある個人情報ファイル、家計簿、秘密鍵(.ssh 等)はすべてこの V: ドライブ内へ移動します。
さらに V:\SecureBraveData フォルダを作成し、デスクトップに以下のリンク先を持つショートカット(「重要サイト用Brave」)を作成します: "C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe" --user-data-dir="V:\SecureBraveData"
4.
日常の運用(アンマウントによる100%物理隔離):
重要な手続きやファイル閲覧が終わったら、Braveを閉じ、エクスプローラーで V: ドライブを右クリック >「取り出し(Eject)」 をクリックします。
技術的効果: 取り出し(アンマウント)された状態では、V: ドライブはOS上から消滅し、ディスク上にはAES暗号化された単一の SecureVault.vhdx ファイルしか残りません。ゲームランチャーの LuaJIT FFI がどれほどPC内を走査しても、この中のファイルやCookieは1バイトたりとも読み取ることができません(到達度100%)。
4. 死角②・③の突破:ランチャー稼働中の「プロセス非同時起動」とExploit Protection
1.
ゲームプレイ中の「Brave完全終了」ルール:
ゲームランチャーを起動する際は、Braveのウィンドウをすべて閉じておきます(バックグラウンド実行オフにより brave.exe プロセス自体が消滅します)。
技術的効果: brave.exe プロセスが存在せず、重要VHDXもアンマウントされている状態でゲームを起動すれば、仮にRATが OpenProcess(メモリ読取)、screens(画面キャプチャ)、キーロガーをフル稼働させても、メモリ上にも画面上にもゲーム以外のデータは一切存在しないため、100%空振りします。
2.
Exploit Protection による brave.exe の保護強化:
「Windows セキュリティ」>「アプリとブラウザー コントロール」>「Exploit Protection の設定」>「プログラム設定」タブ >「プログラムを追加してカスタマイズ」>「正確なファイル パスを選択する」から C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe を追加します。
「低い整合性のイメージの読み込みをブロックする」 と 「リモート イメージの読み込みをブロックする」 の2つにチェックを入れて「オン」にし、適用します。
クリップボード履歴の無効化:
3.
Windowsの「設定」>「システム」>「クリップボード」を開き、「クリップボードの履歴」および「他のデバイスとの同期」をオフにします。
正規ランチャー型サプライチェーン攻撃(RAT)の5大死角とOS標準ハードニング到達度評価】
同一Windowsユーザー境界(Medium整合性レベル)でゲームランチャーを稼働させる構造的限界(到達度60〜70%)に対し、サードパーティ製EDR等を導入せずOS標準のカーネル機構(DACL/UAC/VHDX)と運用分離でどこまで引き上げられるかの最終検証。
1. 死角①:任意パス・任意CLSIDによるCOMハイジャックと永続化
・従来の限界:特定フォルダのロックだけでは、%TEMP%等の任意パス配置や別CLSID悪用を防げない
・追加対策:HKCU\Software\Classes\CLSID(64/32bit双方)にダミーサブキー(.lock)を作成後、所有者をAdministratorsへ変更しUsers権限を読み取り専用(Read)にDACLロック+スタートアップフォルダロック
・防御到達度:60% → 98%
・技術的根拠:DLLの配置先がどこであれ、COMハイジャックの入り口であるレジストリ登録自体がカーネルのSTATUS_ACCESS_DENIEDで100%物理拒否される
2. 死角②:同一ユーザー権限でのブラウザ(Brave)へのプロセス介入
・従来の限界:同一整合性レベル間ではUIPIの壁がなく、COMインジェクション(内部からのIElevator呼出)やOpenProcessによるメモリ読取でApp-Bound Encryption(v20)が突破され得る
・追加対策:上記CLSID全体ロックによるCOM注入経路の完全遮断 + Exploit Protection(低整合性・リモートイメージ読込ブロック)適用 + ゲーム起動中のBrave完全終了(バックグラウンド常駐オフ)
・防御到達度:50% → 95%
・技術的根拠:ブラウザ内部へのDLL注入経路を塞いだ上で、ゲーム稼働中は標的プロセス(brave.exe)自体をメモリ上から消滅させることでプロセス介入を無力化
3. 死角③:画面キャプチャ(screens)・キーロガー・クリップボード監視
・従来の限界:Windowsの正規API呼び出しであるため、DefenderやASRルールでは一切ブロックできない
・追加対策:ランチャー稼働中の機密画面・ブラウザ非表示徹底 + OSクリップボード履歴・同期の完全オフ + 金融・重要アカウント操作のスマホ専有化
・防御到達度:30% → 90%
・技術的根拠:RAT稼働中に画面キャプチャやキー監視が走っても、取得されるデータを「ゲーム画面」と「移動キー入力」のみに限定し機密漏洩を空振りさせる
4. 死角④:LuaJIT FFIによる同一ユーザー内ファイルの無制限読取
・従来の限界:子プロセスを生成せずAMSIも通らないインプロセスWin32 API直接呼出(cat / download / keyscan / browserscan)は、同一SIDのファイル読取を阻止できない
・追加対策:機密ファイルおよび重要サイト用ブラウザプロファイル(--user-data-dir)をBitLocker暗号化VHDX(仮想ディスク)へ格納し、ゲーム中はアンマウント(取り出し)+ Windows資格情報マネージャーの空化
・防御到達度:20% → 98%
・技術的根拠:アンマウント状態のVHDXはOS上からファイルシステムごと消滅し単一のAES暗号化塊となるため、同一ユーザー権限のFFIからも物理的に読取不能
5. 死角⑤:サイレントUACバイパス(自動昇格)と管理者権限奪取
・従来の限界:既定のUAC設定ではfodhelper等の自動昇格(Auto-Elevate)COM悪用により、画面通知なしでHigh整合性レベルへサイレント昇格され全ロックを解除される
・追加対策:UACを最高レベル「常に通知する(セキュアデスクトップ強制)」へ変更 + コア分離(メモリ整合性HVCI・LSA保護・脆弱ドライバブロック)有効化 + 不要な昇格要求ランチャーへのRunAsInvoker適用
・防御到達度:40% → 85%
・技術的根拠:Auto-Elevate機構そのものを無効化し、SYSTEM領域のセキュアデスクトップ確認を強制することでサイレント昇格を100%阻止(※残るリスクはユーザー自身が悪性アップデーターのUACに手動で許可を与えた場合のみ)
【総合評価】
・全体到達度:65%(定型スクリプト阻止・時間稼ぎ) → 92%以上(実質的な無力化・封じ込め)
・結論:OS標準のアクセス制御(CLSID読み取り専用化・暗号化VHDXアンマウント)と「重要資産・パスキー(スマホ保存)のスマホ完全集約」「物理2回線分離」を組み合わせることで、万が一正規ランチャーがトロイの木馬化しても致命傷とLAN内二次感染をゼロに抑え込む。
到達度60〜70%
第1層:OSファイルシステム&レジストリ層(COMハイジャックの100%物理封鎖と監査)
悪用されたCLSID {E77CC89B-7401-4C04-8CED-149DB35ADD04} は、Windowsの explorer.exe だけでなく BraveやEdgeも起動時に呼び出すCOMクラスです。 レジストリ側にダミーキーを作ると正規の wpc.dll の呼び出しを妨害しIoCチェッカーでも誤検知されるため、「DLLの配置先フォルダをNTFS権限で物理封鎖(予防)」しつつ、「レジストリ側をWindows標準SACLで監視(検知)」するのが最も完璧な構成です。
1. PlatformExperienceHelper の「非空フォルダ化+管理者所有・読み取り専用ロック」
親フォルダ(User Data)の FILE_DELETE_CHILD 権限によるフォルダごと削除(rmdir)や、所有者権限によるDACL書き換えを完全に防ぐため、内部に空の .lock ファイルを配置したうえで所有者を Administrators に変更し、一般ユーザーの書き込み・削除権限を剥奪します。
1.
管理者としてコマンドプロンプト(またはPowerShell)を開き、以下のコマンドを順に実行します(Chrome用・Brave用・Edge用の4箇所を一括封鎖):
mkdir "%LOCALAPPDATA%\Google\Chrome\User Data\PlatformExperienceHelper"
mkdir
"%LOCALAPPDATA%\Google\Chrome\Application\PlatformExperienceHelper"
mkdir "%LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\PlatformExperienceHelper"
mkdir "%LOCALAPPDATA%\Microsoft\Edge\User Data\PlatformExperienceHelper"
type nul > "%LOCALAPPDATA%\Google\Chrome\User Data\PlatformExperienceHelper\.lock"
type nul > "%LOCALAPPDATA%\Google\Chrome\Application\PlatformExperienceHelper\.lock"
type nul > "%LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\PlatformExperienceHelper\.lock"
type nul > "%LOCALAPPDATA%\Microsoft\Edge\User Data\PlatformExperienceHelper\.lock"
icacls "%LOCALAPPDATA%\Google\Chrome\User Data\PlatformExperienceHelper" /setowner "*S-1-5-32-544" /T
icacls "%LOCALAPPDATA%\Google\Chrome\User Data\PlatformExperienceHelper" /inheritance:r /grant:r "*S-1-5-32-544:(R)" "*S-1-5-18:(R)" "*S-1-5-32-545:(R)" /T
icacls "%LOCALAPPDATA%\Google\Chrome\Application\PlatformExperienceHelper" /setowner "*S-1-5-32-544" /T
icacls
"%LOCALAPPDATA%\Google\Chrome\Application\PlatformExperienceHelper" /inheritance:r /grant:r "*S-1-5-32-544:(R)" "*S-1-5-18:(R)" "*S-1-5-32-545:(R)" /T
icacls "%LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\PlatformExperienceHelper" /setowner "*S-1-5-32-544" /T
icacls "%LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\PlatformExperienceHelper" /inheritance:r /grant:r "*S-1-5-32-544:(R)" "*S-1-5-18:(R)" "*S-1-5-32-545:(R)" /T
icacls "%LOCALAPPDATA%\Microsoft\Edge\User Data\PlatformExperienceHelper" /setowner "*S-1-5-32-544" /T
icacls "%LOCALAPPDATA%\Microsoft\Edge\User Data\PlatformExperienceHelper" /inheritance:r /grant:r "*S-1-5-32-544:(R)" "*S-1-5-18:(R)" "*S-1-5-32-545:(R)" /T
検証方法: 一般ユーザーのコマンドプロンプトから
mkdir "%LOCALAPPDATA%\Google\Chrome\User Data\PlatformExperienceHelper\test"
および
rmdir "%LOCALAPPDATA%\Google\Chrome\User Data\PlatformExperienceHelper" を実行し、双方とも「アクセスが拒否されました(Access is denied)」と表示されれば100%ロック成功です。
※万が一将来ロックを解除したくなった場合は、管理者コマンドプロンプトから takeown /F "[対象フォルダパス]" /R /A と icacls "[対象フォルダパス]" /reset /T でいつでも元に戻せます。
2. HKCU\Software\Classes\CLSID のWindows標準レジストリ監査(イベントID 4657 / 4663)
1.
管理者コマンドプロンプトでレジストリ監査ポリシーを有効化します:
auditpol /set /subcategory:"{0CCE921E-69AE-11D9-BED3-505054503030}" /success:enable
2.
レジストリエディタ(regedit)でSACL(監査ルール)を設定します:
HKEY_CURRENT_USER\Software\Classes\CLSID(および存在すれば HKEY_CURRENT_USER\Software\Classes\WOW6432Node\CLSID)を右クリック →「アクセス許可」→「詳細設定」→「監査」タブ →「追加」をクリックします。
「プリンシパルの選択」に Everyone(または自分のユーザー名)を入力してOKを押します。
種類: 成功
適用先: このキーとサブキー(※ここを必ず「このキーとサブキー」にすることで、新規作成された InprocServer32 サブキーへのDLLパス書き込み時に イベントID 4657 が確実に記録されます)
「詳細なアクセス許可を表示する」をクリックし、すべてのチェックを外したうえで 「値の設定(Set Value)」と「サブキーの作成(Create Subkey)」の2つだけにチェックを入れて適用します。
第2層:Brave・Edge・OS資格情報層(LuaJIT FFI インプロセス窃取の無価値化)
Braveの起動中は Network\Cookies ファイルがOSの排他ロック(dwShareMode = 0)によって保護されており、さらに最新のApp-Bound Encryption(v20)で暗号化されているデータは、標準ユーザー権限の LuaJIT FFI(v10 DPAPI復号のみ対応)では復号できません。
しかし、「古い v10 形式のまま残っているデータ」や「Braveを閉じて排他ロックが外れた状態のCookie」を狙われるリスクを潰すため、以下の設定を行います。
1.
Braveのパスワード保存(DPAPI v10 依存)の完全廃止とパスキー・外部管理への集約
brave://settings/passwords を開き、「パスワードを保存するように確認する」をオフにし、ブラウザ内に保存されている重要パスワードを削除します。
認証はTPM/スマホに秘密鍵が保護されるパスキーを優先し、パスワードが必要なサイトは「ブラウザ終了時または数分以内に自動ロックされる外部パスワードマネージャー」で管理します。
2.
Braveのバックグラウンド実行の完全停止
brave://settings/system を開き、「Braveを閉じた際にバックグラウンドアプリを実行し続ける」をオフにします。
3.
Cookieのライフサイクル管理(重要アカウントのセッション残存防止)
brave://settings/shields で「サイトを閉じるときにデータを削除する」をオンにし、日常的にログイン維持が必要な一般サイトのみ個別Shieldsで除外します。
重要: Googleアカウント設定、金融機関、クラウド管理画面(AWS/GitHub等)などの重要サイトは除外リストに入れず、利用後は必ずサイト上の「ログアウト」ボタンを押してサーバー側のセッショントークン自体を失効させるか、最初からプライベートウィンドウ(InPrivate)でアクセスする運用を徹底します(※ browserscan は Default 以外の全プロファイルも走査するため、単に別プロファイルを作るだけではCookie窃取は防げません)。
4.
プリインストールされている「Microsoft Edge」の休眠化とデータ消去
edge://settings/system を開き、「スタートアップ ブースト」および「Microsoft Edge を閉じた際にバックグラウンド拡張機能およびアプリを実行し続ける」を両方オフにします。
edge://settings/clearBrowsingDataOnClose で、Edgeを閉じる際にCookieやキャッシュがすべて消去されるように設定し、残存している不要なログイン情報を空にします。
5.
Windows 資格情報マネージャー(keyscan の標的)の棚卸し
「スタート」メニューから 「資格情報マネージャー(Credential Manager)」 を開き、「Web 資格情報」および「Windows 資格情報」の中に、過去に使った不要なトークン(git:, gh:, vscode:, 古いMicrosoftアカウントトークン等)が残っていれば削除します。
第3層:DefenderUI(ASRルール・クラウド保護)層(多層牽制の強化)
ランチャーがメモリ上でBase64デコードして書き出すDLLにはMark of the Web(MotW)が付かないため、第1層の icacls ロックで物理阻止したうえで、DefenderUIの以下の設定を重ねてStage 2〜5の挙動を牽制します。
1.
DefenderUIで有効化を確認すべき3つの主要ASRルール
信頼度・経過期間基準を満たさない実行可能ファイルのブロック(GUID: 01443614-cd74-433a-b99e-2ecdc07bfc25):
ハッシュ可変(世界で1台しか存在しない実績ゼロ)バイナリを牽制します。マイナーな自作ツール等の誤ブロックを避けるため 「Warn(警告)」 モードでの運用が最適です。
LSASSからの資格情報窃取のブロック(GUID: 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2):オペレーターが exec コマンドでメモリからの認証情報抽出を試みた際に遮断します(「Block」 推奨)。
難読化された可能性のあるスクリプトの実行ブロック(GUID: 5beb7efe-fd9a-4556-801d-275e5ffc04cc): exec から難読化PowerShell等が呼ばれた際に遮断します(「Block」 または 「Warn」)。
クラウド保護の最大化(Block at First Sight)
DefenderUIの「Cloud Protection」にて、Cloud Protection Level を High(または High+)、Block at First Sight を Enabled、Cloud Extended Timeout を 50 seconds に設定します。
第4層:ゲームランチャーの運用ルール(攻撃成立条件とC2通信窓の遮断)
1.
ゲームランチャーを「管理者権限(Elevated)」で動かさない
ランチャー自体が管理者権限(High 整合性レベル)で動作していると、SYSTEM 権限への昇格によってBraveのApp-Bound Encryption(v20)が突破されたり、icacls のロックが解除されたりするリスクが生じます。
ゲーム起動時、タスクマネージャーの「詳細(Details)」タブでランチャープロセス(cef / launcher 等)の 「昇格(Elevated)」列が「いいえ(No)」 になっていることを確認します(※カーネルアンチチートはWindowsサービスとして別プロセスで動くため、ランチャーUI自体を管理者実行する必要がないタイトルが大半です)。
2.
「システムトレイ常駐」と「Windows起動時の自動起動」の完全オフ
今回のRATが30分周期で何時間もオペレーターと通信できた原因は、ランチャーがシステムトレイに常駐し続けたためです。
タスクマネージャーの「スタートアップ アプリ」で各ゲームランチャーの自動起動を「無効」にし、ランチャーの設定で「閉じるボタン(×)を押した時の動作」を「システムトレイに最小化」ではなく「プログラムを終了(Exit)」に変更します。
⚠この内容はまだ修正中の不完全版です。
NIKKE PCランチャー侵害事案の技術検証と多層防御環境の評価
SNSで共有されているその報告は、2026年11月3日にGitHub Gistで公開された技術解析レポート(報告者:MotherSphere氏)および、翌11月4日に韓国・欧米メディアや公式発表で報じられた事実とほぼ完全に一致しています。
共有されたSNSの記述内容のファクトチェック・技術的詳細と、構築されている多層防御環境(Defense in Depth)における実際の影響・防御評価を網羅的に整理します。
1. 事件の技術的詳細とタイムライン(事実関係の検証)
今回の事案は、公式の配信インフラが侵害された「サプライチェーン攻撃」と、ランチャー内部の特権通信機構を悪用した「オペレーター操作型RAT(遠隔操作ツール)の展開」が組み合わさった深刻なセキュリティインシデントです。
侵害された箇所(Level Infinite CDN)と対象ビルド:『勝利の女神:NIKKE』のPC版ランチャーが起動時に読み込む、Tencent Cloud Object Storage(COS)上の公式JavaScriptファイル4本(playerinfinite.com 上の1本、および na-webassets.playerinfinite.… 上の3本:aegis-fix.min.js、vue-bucket.min.js、images.7fec4c32.js、FeedList.feb647c9.js)が、2026年9月27日(GMT)に改ざんされました。公式サイト配布のスタンドアロン版(Steamでは未配信)だけでなく、Google Play Games PC版のNIKKEビルド(C:\NIKKE_GOOGLE 配下)も同様に影響を受けました。
巧妙なコード挿入とインフラ準備の時系列:
攻撃者は9月27日に期限切れドメイン insightjs.com を再登録し、10月6日に最初のSSL証明書を取得、10月29日に悪性DLLをコンパイルし、10月30日にはアクセス元を欺くための偽の「InsightJS」サービスページを公開していました。改ざんされたJSファイルでは、攻撃者のURLが整数配列(array of integers)として難読化されており、特に FeedList.feb647c9.js では簡易な末尾チェックを回避するため、ファイルの最後尾ではなくモジュールの最終 export 文の直前に708バイトの不正コードが挿入されていました。
なぜJavaScriptからOSが侵害されたのか(Luaエージェントと LuaJIT FFI):
改ざんされたJSは、攻撃者のC2サーバー(ドメイン:insightjs.com、analytics.insightjs.com、insightjs.org / IPアドレス:89.127.233.127、89.126.250.172)上のスクリプト(l.js)から、暗号化されたLuaペイロード(insight.bundle、SHA-256: cc0ad05b...)を読み込むローダーとして機能していました。ローダーはランチャーのダウンロード機能を用いて insight.bundle を .log 拡張子(ログファイルに偽装)や k2f.lua / tinyget*(先頭バイトがLuaJITバイトコード 1B 4C 4A)として一旦ディスクに保存し、実行した直後に削除します。起動したLuaエージェントはランチャー内部の comm_center に k2f_chan という通信チャネルを登録し、さらにファイル読取や復号などの主要機能をランチャーのプロセス内部で LuaJIT FFI(Foreign Function Interface) を介して直接実行する構造になっていました。
活動期間と「30分周期」のビーコン通信:
ローダー自体は9月27日から設置されていましたが、C2サーバーの証明書発行直後である2026年10月23日 16:40 GMT(日本時間10月24日 01:40)が、実際にRATエージェントが起動した最古の報告日時です。ペイロードはランチャー起動時に毎回ではなく一定の確率で配信され、一度起動すると、ゲーム起動後もシステムトレイに常駐するランチャーから約30分周期(±6分のゆらぎ付き)でC2サーバーへポーリング(定期接続)を繰り返す仕組みになっていました。
11月4日の修正と「キャッシュ残存」の罠:
レポート公開を受け、3本のJSファイルは11月3日 17:04〜17:21 GMT(日本時間11月4日 02:04〜02:21)にクリーンなファイルへ置換され、運営は11月4日未明(日本時間2時30分頃)にクライアント更新を実施しました。しかし、4本目の FeedList.feb647c9.js(オリジンでは10月28日に修正済み)は一部のCDNエッジサーバーで11月4日未明まで改ざん版が配信され続けたほか、修正後のフロントエンド再ビルドでもこのファイルだけキャッシュバスター(?t=20261104 等)が付与されず同一URLが維持されたため、ローカルキャッシュ(tbs_cache)を手動削除しない限り改ざん版が読み込まれ続ける構造的欠陥が残りました。なお、11月4日に一部環境(台湾版等)のランチャー起動時に表示された英語の警告ポップアップは、公式の告知ではなく、残存していた改ざん経路(予備ドメイン)から外部の人物が表示させたものでした。
2. マルウェアの挙動と「Nexonの緊急通達」の理由
このマルウェア(Luaエージェント)は単なる自動情報窃取プログラムではなく、ランチャーが開いている間に攻撃者(オペレーター)が遠隔から任意のコマンドを送信して操作する対話型RATです。どのコマンドが実行されたかは debug.log に一切記録されません。
実装されていた遠隔コマンドとインプロセス実行(WormW氏の解析マップ):
exec:任意のプログラムやシェルコマンドを実行し、その出力をC2へ返します。
screens:接続されている全モニターのスクリーンショットを撮影します(実行時、%TEMP% 等に k2f_screen_*.jpg が生成されます)。
ls / cd / cat / download / file_chunk:任意のフォルダを走査し、任意のファイルを閲覧・分割ダウンロードします。
browserscan:Chrome、Edge、Brave、Vivaldi、Opera、Firefox に保存されたパスワード、およびChromium系ブラウザのセッションCookieを窃取します(実行時、%TEMP% 等に k2f-bcreds-* という一時ファイルが生成されます)。
keyscan:264箇所の既知の設定・認証ファイルパス(SSH秘密鍵、AWS、Azure、Google Cloud、ArgoCD、OpenAI、Anthropic等のAPIキーや設定ファイル)を走査し、さらにWindows資格情報マネージャー内の開発者ツール系エントリのみ(git:, gh:, npm:, docker:, aws:, azure:, vscode: 等)を抽出します。
wallet_files:Chromeプロファイル内の28種類の暗号資産ウォレット拡張機能(MetaMask、Phantom、Coinbase Wallet等)のデータを自動窃取します(※自動走査はChromeのみですが、Brave等のウォレットデータも download / file_chunk コマンドで手動窃取可能です)。
creds:NIKKEランチャー自身が保存したログイン情報(psd.dat および last_user.dat)を復号します。
※上記のうち cat, download, file_chunk, creds, keyscan, browserscan, wallet_files の7つは子プロセスを生成せず、ランチャープロセス内部で LuaJIT FFI を通じて直接実行されます。
COMハイジャックによる永続化とフォームグラバー機能(chrome_install):
chrome_install コマンドが実行されると、C2サーバーからBase64形式で悪性DLLが送り込まれ、ディスク書き込み前に端末固有のエージェントIDと64文字のトークンがバイナリ内にパッチされます。その上で、レジストリ HKCU\Software\Classes\CLSID\{E77CC89B-7401-4C04-8CED-149DB35ADD04}(および WOW6432Node)が作成され、%LOCALAPPDATA%\Google\Chrome\User Data\PlatformExperienceHelper\ 配下に作成された「64文字の16進数(そのDLL自身のSHA-256ハッシュ値)の名前のサブフォルダ」内に platform_experience_helper.dll が配置されます。
重要(発火条件と検知回避):
このCLSIDはWindows標準のペアレンタルコントロール(wpc.dll)のCOMクラスであり、すべてのChromeウィンドウを閉じていても(あるいはChrome未導入のBrave単独環境であっても)、Windowsの explorer.exe 等がこのDLLをロードして常駐・ロックします。また、Chrome等で動作した際はWebページに入力されたパスワードやウォレットのシードフレーズをリアルタイムに抜き取るフォームグラバーとして機能します。端末ごとにバイナリのハッシュ値が異なるため、Microsoft Defender Offline(定義 1.463.110.0)でも検知できない事例が確認されています。さらに、証拠隠滅用の chrome_cleanup、chrome_uninstall、payload_cleanup コマンドも備えています。
Linux / Steam Deck(Proton / Wine)への波及:Proton/Wine環境でも、WineがLinuxのルート(/)やホームディレクトリを Z: ドライブ等にマッピングし環境変数もすべて引き継ぐため、exec や cat コマンドによってLinux側の ~/.ssh やブラウザプロファイルがすべて窃取可能になります。
Nexon等の韓国ゲーム企業が緊急対応に動いた理由:
韓国メディアの報道通り、11月4日にNexonは子会社を含む全社員に対し「業務・私用問わずPCにNIKKEのランチャーがインストールされている場合は即時削除し、セキュリティチームへ端末を引き渡す(報告する)こと」という緊急通達を出しました。Kraftonも社内調査に入り、SHIFT UPのキム・ヒョンテ代表も公式に謝罪しました。keyscan の標的(264パス)が明らかにゲーム開発者・インフラエンジニアを狙ったものであり、社員の自宅・業務PCから社内GitHubやクラウド基盤へ侵入される「2次サプライチェーン攻撃」を極度に警戒したためです。
3. LoL(Riot Games)や他タイトルへの影響について
SNSの投稿にある通り、資本の親子関係と配信インフラの依存関係は明確に切り分ける必要があります。
League of Legends (LoL) / Riot Games:
Riot Gamesはテンセントの100%子会社ですが、配信基盤は独自の「Riot Client」であり、Level InfiniteのCDNとは完全に別物です。今回の騒動が発覚した端緒の一つも、「前日まで動いていたLoLが、アンチチート(Riot Vanguard)による不審な挙動・DLLの検知によって起動しなくなり、原因を追跡したプレイヤーがNIKKEランチャー由来のマルウェアを突き止めた」という経緯でした。なお、SNSで出回った「すべてのテンセント系ゲームがハッキングされた」というリストは4chanの根拠なき匿名投稿が発端であり、他タイトルのランチャーで同じローダーが読み込まれた証拠は確認されていません。
他のLevel Infinite関連ゲーム:
同じLevel InfiniteのCDNバケットを共有する他のWeb資産に攻撃者がアクセスできた可能性自体は否定できないため、開発各社(Fatshark等)が「自社のゲームはLevel InfiniteのCDNを使用していない」と声明を出すなど警戒が続いています。
「同じPCに入っていればLoLも危ない」の真偽:
完全に事実です。 10月23日(GMT)以降にNIKKEのPCランチャーを起動していた場合、同じPCのブラウザに保存されたパスワードやセッションCookie(2FAを突破してログイン維持できるトークン)が抜かれるため、LoL、Steam、Discord、Google、銀行口座などすべてのアカウントが侵害リスクに晒されます。
4. ご自身のPC環境(多層防御構成)における厳密な評価と影響分析
結論として、「NIKKEのPCランチャー(スタンドアロン版およびGoogle Play Games版)をインストール・起動していない」のであれば、今回の事件による直接の感染リスクはゼロです。
その上で、もしご自身の多層防御環境でこのような「正規ランチャーのサプライチェーン攻撃」に遭遇した場合、各レイヤーが実際にどう機能し、どこが突破されるかを厳密に評価します。
【突破される防衛線(サプライチェーン攻撃特有の死角)】
境界防御(HGW SPI・パブリックプロファイル着信全ブロック・UPnP無効化)の無効化:Windowsファイアウォールの「着信全ブロック(許可されたアプリの一覧を無視)」は外部やLAN内からの侵入を完全に防ぎますが、今回はユーザーが起動した正規署名付きランチャー自身が外へHTTPS通信(Outbound)を行ってC2サーバーへ30分周期でポーリングするため、インバウンド遮断やUPnP無効化では防げません。
ブラウザShields(L7)のバイパスとBraveデータの窃取:
ランチャー内蔵ブラウザ(CEF)が直接CDNのJSを実行するため、BraveのShieldsはバイパスされます。さらに、ペイロードの browserscan コマンドは Braveのプロファイルも標的としており、Brave内の保存パスワードとCookieを直接抜き取ります。
Brave単独(Chrome未導入)環境でも explorer.exe 等を介して発火するCOMハイジャック:
chrome_install はChromeの有無にかかわらず %LOCALAPPDATA%\Google\Chrome\User Data\PlatformExperienceHelper\ フォルダを自ら生成してDLLを配置し、HKCU レジストリのCLSID {E77CC89B-...} を書き換えます。このCLSIDはWindowsの explorer.exe 等からも参照・ロードされるため、Chromeを一切インストールせずBraveのみを運用している環境であっても、OS上で悪性DLLの永続化(メモリロードとファイルロック)が発火します。
LuaJIT FFI(インプロセス実行)とハッシュ可変DLLによるDefender / ASRのバイパス:
ランチャー内のJS/Lua実行はWindowsのAMSIを通らないだけでなく、browserscan や keyscan 等7つのコマンドは子プロセス(cmd.exe や powershell.exe)を生成せずランチャーの正規プロセス空間内から LuaJIT FFI で直接ファイルを読み取るため、「不審な子プロセス生成のブロック」等のASRルールを発火させずに情報窃取を完結できてしまいます。また、書き出される悪性DLLも端末ごとにハッシュ値が変化するため、Defenderのシグネチャ検知をすり抜けた実績があります。
ゼロデイ期間中(10月23日〜11月3日)のQuad9・ネットワーク保護のすり抜け:
攻撃者ドメイン(insightjs.com 等)や2つのIP(89.127.233.127, 89.126.250.172)が脅威インテリジェンスに登録されたのは11月3日のレポート公開後です。それまでの約10日間は、Quad9(DoH)もDefenderのネットワーク保護も正常な通信として通過させていました。また、発覚後であってもIP直打ち通信に対してはDNS層(Quad9)がバイパスされます。
【機能する防衛線(被害の局限化・二次被害の完全阻止)】
Windows Defender + DefenderUI(exec 実行時の挙動監視とIPネットワーク保護):
LuaJIT FFIによるインプロセス窃取はすり抜けるリスクが高いものの、オペレーターがさらに踏み込んで exec コマンド(シェルコマンド実行)からPowerShellの難読化実行やLSASSダンプ等を試みたフェーズでは、DefenderUIで強化したASRルールや振る舞い検知がフックする公算が高くなります。また、DNS(Quad9)をバイパスする2つのC2 IPアドレスへの直打ち通信に対しても、脅威登録後の現在はDefenderの「ネットワーク保護(IPレピュテーション)」が遮断層として機能します。
パスキー運用と物理リカバリーコード(アカウント永久奪取の阻止):
browserscan でセッションCookieを抜かれた場合、2FAをバイパスしてログイン済みセッションを悪用されるリスク(Pass-the-Cookie)は発生します。しかし、TPMやスマホにバインドされたパスキーの秘密鍵そのものはファイルとして絶対に窃取できません。そのため、パスワード変更や認証設定の書き換え時に「パスキーによる再認証(Step-up認証)」を要求する堅牢なサービス(Google等)においては、攻撃者によるアカウントの永久ロックアウトを阻止でき、紙媒体のリカバリーコードとオフラインバックアップによって確実な奪還が可能です。
物理2回線・L2隔離と着信全遮断による「LAN内横展開」の100%封じ込め:
仮にオペレーターが exec コマンドを使って家庭内LANの偵察や他端末・IoT機器・旧世代タブレットへの侵入(ラテラルムーブメント)を試みても、メインPCは光10G側に単独配置され、家電やタブレットはCATVサブ回線(二重ルーター+プライバシーセパレーター)に物理分離されているため、家庭内ネットワーク内の他端末への二次感染は物理的・論理的に100%阻止されます。
5. 念のための確認項目(Exposed / Infected の2段階IoCチェックリスト)
ご自身のPCにNIKKEのランチャーを入れていなければ作業は不要ですが、過去に一度でもインストールした記憶がある場合(Google Play Games版を含む)は、必ず tbs_cache を削除する前に以下のIoC(またはMotherSphere氏公開の読み取り専用ツール NIKKE-Launcher-Check)で確認してください(※先にキャッシュを消すと痕跡が消え、正確な判定ができなくなります)。
A. 「Infected(RAT感染・稼働確定)」の痕跡(1つでも該当すれば感染確定)
ランチャーログ(debug.log および Launcher\log):
NIKKE\Launcher\intl_service\debug.log(Google Play版は C:\NIKKE_GOOGLE\launcher\intl_service\debug.log)内に、k2f_chan、agent started as、lua downloaded to、adopted/resuming、analytics.insightjs.com のいずれかの文字列が存在する。 Launcher\log 内に insight.bundle のダウンロード記録が存在する。
ランチャーキャッシュ(tbs_cache): %APPDATA%\nikke_launcher\tbs_cache\Local Storage\leveldb\(HMT版は nikke_launcher_hmt、環境により %LOCALAPPDATA% 側)内のファイルに k2f.agent という文字列が存在する、または TransportSecurity(HSTS)内に第2段階C2である analytics.insightjs.com の記録が存在する。
レジストリ(64bit / 32bit双方を確認): HKCU\Software\Classes\CLSID\{E77CC89B-7401-4C04-8CED-149DB35ADD04} HKCU\Software\Classes\WOW6432Node\CLSID\{E77CC89B-7401-4C04-8CED-149DB35ADD04} ※HKLM 側(およびWineプレフィックス内の HKLM)にある同名キーはWindows標準の wpc.dll を指す正常なものです。HKCU 側にこのキーが存在する場合(たとえマルウェアの chrome_uninstall によって既定の値が空になっていても)は感染確定です。
ブラウザフォルダ内の悪性DLL(Chrome / Brave / Edge等14種の User Data 配下): %LOCALAPPDATA%\Google\Chrome\User Data\PlatformExperienceHelper\(およびBraveやEdge等の User Data\PlatformExperienceHelper\)配下に、「64文字の16進数(hex)の名前のサブフォルダ」があり、内部に platform_experience_helper.dll が存在する(※ PlatformExperienceHelper フォルダ自体はブラウザが正規に作成するため、64文字フォルダがない場合は削除しないでください)。 初期ビルドの痕跡:Chrome\Application\PlatformExperienceHelper\ 配下に platform_experience_helper.dll(.old) や old-clsid.txt が存在する。
一時フォルダ(%TEMP%)およびディスク上のステージング痕跡(データ窃取の物証):
%TEMP% 内に k2f-bcreds-*(盗まれたブラウザ資格情報)や k2f_screen_*.jpg(スクリーンショット)が存在する。ドライブ上に insight.bundle、k2f.lua、tinyget*(先頭バイトが 1B 4C 4A のファイル)が存在する。
B. 「Exposed(改ざんスクリプトとの接触のみ・RAT未稼働)」の痕跡
上記「A(Infected)」には一切該当しないが、ランチャーの Cache / Code Cache または TransportSecurity(HSTS)、あるいはルーター/DNSログに insightjs.com または insightjs.org の記録のみが存在する状態(確率配信によりペイロードが落ちてこなかったケース)。この場合はキャッシュ(tbs_cache)の削除のみで安全を確保できます。
C. 万が一「Infected」に該当した場合の厳密な復旧・駆除手順通信の即時遮断:
ランチャー(システムトレイ常駐を含む)を終了し、LANケーブルを抜くかWi-Fiを切断します(ルーターやファイアウォールで insightjs.com、analytics.insightjs.com、insightjs.org、および 89.127.233.127、89.126.250.172 をブロックします)。
ロックされた悪性DLLの確実な削除手順:
悪性DLLはすべてのブラウザを閉じていても explorer.exe 等にロードされてロックされているため、必ず以下の順序で行います。
① コマンドプロンプト等で HKCU 側(標準および WOW6432Node)の {E77CC89B-7401-4C04-8CED-149DB35ADD04} キーを削除する。
② Windowsを再起動する(これにより explorer.exe 等へのDLLロードが解除され、ファイルロックが外れます)。
③ 再起動後、PlatformExperienceHelper 配下の「64文字の16進数サブフォルダ」と内部の platform_experience_helper.dll、および %APPDATA%\nikke_launcher\tbs_cache を削除する。
クリーンな別端末からの全セッション失効・認証情報の更新とOSクリーンインストール:
スマホ等の安全な別端末から、すべての主要アカウント(NIKKE、メール、Google、Discord、Steam、金融機関等)の「ログイン中セッションの強制ログアウト(Cookie無効化)」とパスワード変更を行い、開発者はSSH鍵やAPIトークン(GitHub、AWS、OpenAI、Anthropic等)をすべて失効・再発行し、暗号資産ウォレットは新しいシードフレーズのウォレットへ資産を移動します。最後に、exec による未知の改ざんを完全に排除するため、Windowsのクリーンインストール(初期化)を実施します。
「恩を売って支配したい人間」と「手を貸した結果、感謝されて素直に喜ぶ人間」が完全に混同されている。
大半の人は誰かの分岐点になりたくて動くんじゃなく、助けた「結果」として相手がうまくいき、「あなたのおかげ」と言われたから嬉しいだけ。その自然な喜びを「最初から爪痕を残す下心があった証拠」にすり替えるのは、目的と結果が逆転している。
何より、「あなたのおかげで〇〇できた」と感謝を伝えた側の人間の努力や主体性まで「凶器に吸い込まれた被害者」扱いすることこそ、他人の人間関係に対する傲慢さそのものだと思う。
TLを流し読みしていてたまたま見かけた話題ですが、スレッド内の「生活保護を受ければ借金は放置でいい」「督促を3年無視・払えませんと言えば税金も消える」といったやり取りは、これから相談・申請する方がそのまま実行すると不利益を被るため、制度上の事実関係を整理しておきます。
■ 港区HP(住民税減免)の条件
リンク先には「減免申請日現在において、納期限の到来していないもの」に適用されると明記されています。保護開始後すぐに受給証明書を出して申請すれば納期未到来分は0円になりますが、放置して納期限を過ぎると減免対象から外れ、本来免除される税金まで「滞納」になります(なお、同ページに所得税の滞納処分や国税徴収法153条の記載はありません)。
■ 放置による口座凍結リスク
滞納分の3年消滅の起算点は「保護開始日」ではなく「停止の決裁日」です。旧自治体や税務署は即座に自動連携されないため、受給証明書を出さずに放置すると、振り込まれて一般預金化した保護費口座(最判平10・2・10)を差し押さえられ、解除まで生活費を引き出せなくなる事例があります。
■ 民間債務は「放置」ではなく法テラスで0円免責
生活保護受給中なら法テラスの特例と償還免除により、予納金含め「自己負担0円」で自己破産できます。放置すると欠席裁判で時効が10年延長(民法169条)され、財産開示手続の無視は刑事罰(民事執行法213条)の対象となります。
放置ではなく、福祉事務所・法テラス・税務窓口で正式な手続きを踏むことが最も確実で安全な再建ルートです。
詳細な法令や条文の根拠はこちら⇩⇩⇩
港区公式HP(住民税の減免)の適用条件と管轄の違い 引用されている港区HP(住民税の減免について)を根拠に、「年度の途中で生活保護になった場合はその年は免除」「前年度の所得税・住民税を滞納中に保護を受けた場合は、国税徴収法153条・地方税法15条の7で停止し3年で失効」とまとめられていますが、実際の規定とは異なる点が2つあります。
① 放置して納期限を過ぎると「本来0円になる税金」まで減免対象から外れる
港区HPの表(条例第35条第1項第1号)には、賦課期日(1月1日)後に生活扶助を受けることとなった人の減免額について「扶助を受ける事となった日以後に到来する税額の全額」とあり、冒頭第4段落に「適用される場合は、減免申請日現在において、納期限の到来していないものになります」、提出書類として「被保護者証明書(福祉事務所)」と明記されています。
例えば年度途中の7月に保護開始となった場合、すでに納期限が過ぎた普通徴収の第1期(6月末期限)は減免対象外ですが、第2期(8月末)・第3期(10月末)・第4期(翌1月末)は、納期限前に被保護者証明書を添えて減免申請を出せば、3年待つまでもなくその場で全額免除(0円)になります。しかし、督促を放置して納期限を過ぎてしまうと「減免申請日現在において納期限未到来」の要件から外れるため、本来なら申請1枚で即座に免除されたはずの住民税まで減免できない「滞納金」になってしまいます。
② 記載内容と管轄機関の違い
リンク先の港区HPには、冒頭1行目に「(住民税は)所得税の源泉徴収制度とは異なり」という制度比較の記述があるのみで、所得税の滞納処分や「国税徴収法第153条・地方税法第15条の7・3年失効」に関する記述はありません。また、区役所が管轄するのは住民税のみであり、所得税は国の「税務署」の管轄となります。
1
長期受給であっても「放置・口頭申告のみ」では口座凍結が起きる理由
保護開始前に納期限が過ぎていた滞納分は、条例減免ではなく「滞納処分の停止(国税徴収法第153条・地方税法第15条の7)」の対象となり、停止の決裁日から3年間継続して初めて納税義務が消滅します(各第4項)。
「現住自治体の住民税」や「国民年金保険料」等については、庁内連絡やデータ連携、情報提供ネットワークシステムによる照会を通じて、職権で停止や法定免除の処理がされるケースはあります。しかし、転居前の「旧自治体」の滞納分や、国の「税務署」が管轄する所得税・消費税など、別機関との間では情報連携や照会に数ヶ月のタイムラグが生じる場合があります。滞納処分の停止は法令上の申請権がない「職権処分」であり、3年消滅の起算点は「生活保護開始日」ではなく「税務署長や自治体長が滞納処分の停止を決議(決裁)した日」です。
最高裁判例(最判平成10年2月10日等)において、差押禁止債権である保護費(生活保護法第58条)も、銀行口座に振り込まれた時点で「一般の普通預金債権」へと性質が変わると解釈されています。別機関からの督促を放置したり、受給証明書を提出しないままにしていると、旧自治体や税務署は保護費の受給口座だと把握できないまま、生活保護の受給中であっても預金口座を差し押さえることがあります。一度凍結されると、原資が保護費であることを証明して解除されるまでに数週間から数ヶ月を要し、その間の生活費を引き出せなくなるリスクがあります。
2
「3年間の停止維持」と社会復帰時の取り扱い
すべての窓口で滞納処分の停止決裁を受けた場合でも、3年以内に生活保護を脱却するなどして資力が回復すれば、停止は取り消され(国税徴収法第153条第3項・地方税法第15条の7第3項)、本税+延滞金(停止前に発生していた延滞金および取消し後に再発生する延滞金)の徴収が再開されます。傷病や障害等の事情により3年以上の長期受給となるケースであれば停止状態が維持されますが、稼働能力がある現役世代の方が一時的な困窮で保護を申請する場合、生活保護法第4条(能力の活用)および第27条に基づき福祉事務所から就労指導が行われます。
また、税金の消滅を優先して3年間生活保護水準にとどまり続けることは、貯蓄や資産形成、自動車の保有などが制限される期間を3年間継続することを意味するため、早期の生活再建を目指す方にとっては負担の大きい選択となります。
3
民間の借金における「法テラスの特例」と「放置のリスク」
民間の借金についても、「20万円かかる」「生活保護を受ければ催促もなくなって放置でいい」という認識には注意が必要です。
① 法テラスの生活保護特例による自己負担0円での免責
生活保護受給中は保護費を過去の借金返済に充てることが認められないため、福祉事務所からも法テラス(民事法律扶助)等を利用して債務整理を行うよう案内されます。法テラスの生活保護受給者に対する特例を利用すれば、弁護士費用だけでなく裁判所予納金(実費)まで法テラスが全額立て替え(交付)し、事件終結時点で生活保護を受給していれば「償還免除申請」により全額が返済免除となるため、自己負担0円で自己破産が可能です。
② 放置した場合の確定判決と民事執行法上の罰則
債権者が費用対効果を考慮して回収を見送るケースはありますが、法的に訴訟や支払督促を起こすことは禁止されていません。呼出状を無視して放置すると、欠席裁判により確定判決(債務名義)を取られ、消滅時効がそこから10年間延長(民法第169条第1項)されます。
さらに、2020年(令和2年)4月施行の改正民事執行法により、確定判決を得た債権者が申し立てた「財産開示手続」の裁判所呼出しを正当な理由なく無視(不出頭)等した場合、生活保護受給中であっても「6ヶ月以下の拘禁刑(旧懲役刑)または50万円以下の罰金(民事執行法第213条第1項)」という刑事罰の対象となります。
自己負担0円で法的に免責を受けられる特例がある以上、放置してリスクを残すメリットはありません。
■ まとめ
借金や税金の滞納で追い詰められた方が本当に生活を再建するためには、「放置」や「口頭での申告」に頼るのではなく、
・福祉事務所で生活保護を申請して当面の生活基盤を確保する
・法テラスの生活保護特例と償還免除申請を利用して、自己負担0円で自己破産を行い民間債務を法的に整理する
・現住自治体・旧自治体・税務署・年金事務所の各窓口へ受給証明書を提出し、「納期未到来分の減免申請」「滞納分の停止手続」「年金の法定免除届」を正式に行う という正規の手続きを踏むことが、口座凍結や法的トラブルを防ぎ、最も確実かつ安全にやり直すための方法となります。
自宅NWの物理分離と多層防御のチューニング、各機器の設定変更と端末の収容替えまで全て完了。
サブ回線(CATV+Wi-Fi 6ルーターモード)へのスマート家電・TV・旧タブレットの隔離、L2プライバシーセパレーターの有効化。
主回線(10G)側の着信全ブロック徹底とIPv6 DoH固定まで一通り実機テスト通して疎通・遮断確認∠( ゚д゚)/
ごにょごにょ交渉の末、固定サブ回線「ホームゲートウェイ(モデム兼ルーター兼Wi-Fi親機)」の設置が無事完了_φ(・_・
運が良かったのもあるけど、無理に変な見栄やハッタリを張らず、事実を淡々と伝えてオペレーターの心象を良くするのって大事だなと改めて実感。
やっぱり「余計な防衛線」は要らないですね。
自宅ネットワークの多層防御(Defense in Depth)の現状構成と、今後の追加タスク備忘録。
エンタープライズ向けのUTM等を導入せず、手持ちの既存リソースと標準機能の組み合わせで、日常の可用性(利便性)とコストのバランスを取った個人環境の現実的な落とし所。
【現在の多層防御構成】
1. 境界・ネットワーク層(L2/L3/L4)
・主回線(光10G / HGW):有線10Gリンク、IPv4/IPv6双方のSPIフィルタリング有効、PPPoEブリッジ無効
・無線:WPA3-SAE単独運用、クライアントの5GHz帯(W52)集約
・PC側プロファイル:「パブリック」設定によるローカル待ち受けポート全閉(LAN内ラテラルムーブメント対策)
2. 名前解決(DNS層)
・Quad9(IPv4/IPv6)+ DoH(DNS over HTTPS)
・平文クエリの暗号化と、脅威インテリジェンスに基づく既知の悪質ドメイン名前解決の抑制(※IP直打ちや独自DoHによるバイパス限界は織り込み済み)
3. ブラウザ・アプリケーション層(L7)
・Brave(Shieldsによる悪質スクリプト、トラッカー、マルバタイジングの実行前遮断)
・拡張機能はサプライチェーン攻撃リスクを考慮し最小限に制限
4. エンドポイント(OS層)
・Windows Defender + DefenderUI
・日常の可用性を損なわない範囲でのASR(攻撃面の縮小)ルール適用とネットワーク保護有効化
・OSおよびアプリの高頻度アップデート徹底
【今後の追加対策・運用タスク(TODO)】
・物理2回線によるセグメント分離(IoT・レガシー端末の隔離)
サブ回線(CATV+APモード運用のWi-Fi 6ルーター)を別途構築。スマート家電、TV、EoL(サポート終了)近い旧世代タブレット等はすべてサブ回線側へ物理的に分離し、メインPC・スマホが存在する光10G側のLANから完全に切り離す
・無線環境の整理
サブ回線モデムの内蔵Wi-Fi停波(増設APのWPA3へ一本化)および主回線HGW側の不要な2.4GHz帯の停波による電波干渉・攻撃面の縮小
ネットワークとエンドポイントの境界防御はこれでベースラインとし、パスキー等のアカウント認証保護やオフラインバックアップと併せて運用。
【追記:仕様制約への代替策・詳細チューニング】
1. OSファイアウォールの厳格化とHGW仕様制約への代替策
・パブリックプロファイルの「着信全ブロック」適用
Windowsの仕様上、パブリックプロファイルであってもアプリ導入時に例外許可ルールが自動追加されるケースがあるため、ファイアウォールのプロパティにて「すべての接続をブロックする(許可されたアプリの一覧を無視)」を有効化し、ローカル待ち受けを完全遮断。
・UPnP機能のエンドポイント側無効化
主回線HGW(キャリア貸与機)の管理画面にUPnPの無効化項目が存在しない仕様への代替策として、上記ファイアウォールでの着信全遮断に加え、OSのサービス管理(services.msc)から「UPnP Device Host」自体を停止・無効化。エンドポイント側からのポート開放要求およびデバイス公開機能を根本から遮断。
・IPv6 DNSフォールバック(DNSリーク)対策
ルーター広告(RA)等の仕様によりIPv6通信時のみISPの平文DNSへフォールバックする事象を防ぐため、OSのネットワークアダプター設定にてIPv6 DNSアドレスも手動固定し、判定サイト(on.quad9.net)にてDoH経路の正常性を確認。
2. サブ回線(隔離セグメント)の設計変更とL2隔離
・APモードから「ルーターモード(二重ルーター構成)」への変更
サブ回線モデム側の古い設計や機能制限に依存するリスクを回避するため、増設する市販Wi-Fi 6ルーターをあえて「ルーターモード」で稼働。最新機器側のSPIファイアウォール、DNSリバインディング保護、およびWAN側DNS(Quad9)の強制適用により、OS層で保護できないIoT・レガシー端末の通信をネットワーク層で一括保護。
・WPA2許容に伴う「プライバシーセパレーター」の徹底
収容するスマート家電や旧世代タブレットの接続互換性を確保するため、サブ回線側では2.4GHz帯およびWPA2/WPA3移行モードの併用を許容。その代替策として、ルーター側の「プライバシーセパレーター(AP隔離機能)」を有効化し、サブ回線LAN内における端末間の横通信(感染拡大・踏み台化)をL2レベルで遮断。
・メイン端末によるセグメント間ブリッジの防止
物理分離の純度を維持するため、メインスマホ等にサブ回線側のSSIDを記憶させない運用を徹底(初期設定時のみ一時接続し、完了後にネットワーク設定を削除)。
3. 認証・暗号化のロックアウト(自爆)対策
・アナログ媒体による緊急復旧手段の確保
パスキー運用およびディスク暗号化(BitLocker)の徹底に伴い、災害や故障でメインPC・スマホを同時に喪失した際の「循環ロックアウト(復旧不能)」を防ぐため、主要アカウントのリカバリーコードとBitLocker回復キーを紙媒体で出力し、オフラインバックアップと共に物理保管。
【補足:本設計の前提条件に対する想定反論と、それが無意味である理由】
本構成は「新規アプライアンス(UTM等)の非導入」「既存リソースと標準機能の最大活用」「日常の可用性(10Gの通信速度・利便性)と運用コスト(維持費・保守の手間)の最適化」を絶対の前提条件としている。
この前提を無視して寄せられがちな典型的な4つの反論と、それが設計論として破綻している理由を記しておく。
1. 自作ルーター・業務用機材原理主義
・主張:「キャリアHGWや市販ルーターは信用できない。自作機(OPNsense/VyOS等)でIDS/IPSを回し、マネージドスイッチでVLANを切るべき」
・前提との矛盾:10Gのワイヤスピードを維持したままIDS/IPS(DPI)を回すには高価な機材と電力が必要になる上、「機器自体のOS・ファームウェア保守」という最大の運用負債(近年最も突かれる侵入経路)を自ら抱え込むことになる。
・本質:セキュリティの確保ではなく「機材いじり」という手段が目的化している。自身が投じた機材費と休日の保守労力(サンクコスト)を正当化したいだけであり、物理2回線による完全分離(エアギャップ)とエンドポイント保護の組み合わせの方が「設定ミスによるルーティング漏れゼロ・速度劣化ゼロ・保守負荷ゼロ」で合理的である事実から目を背けた言い訳に過ぎない。
2. 企業基準の丸暗記・教科書警察
・主張:「SIEM等による集中ログ監視がないためフォレンジックができない」「日常を標準ユーザー権限で運用していないのはベストプラクティス違反」
・前提との矛盾:「リテラシーにばらつきがある多数の従業員が存在する企業環境」と、「仕組みを熟知した単一管理者が使う個人環境」では脅威モデルが根本から異なる。個人宅で毎日ログを監査したり、アプリの挙動のたびに権限昇格を求める運用は、日常の可用性を破壊し「セキュリティ疲れ」による運用破綻を招く。
・本質:文脈に応じた「脅威モデリング」ができない思考停止の産物。資格テキストや大企業の情シス基準をそのまま個人宅へ機械的に当てはめることで知識アピールをしたいだけであり、費用対効果(ROI)という設計の基本が欠落している。
3. 脅威を履き違えたプライバシー原理主義
・主張:「WindowsやQuad9を使っている時点で情報が抜かれている。Linux/Qubes OSを使い、自前でUnboundを立ててルートサーバーへ直接クエリを投げ、常時多段VPNを通すべき」
・前提との矛盾:本設計の目的は「マルウェア感染・不正侵入・資産奪取の阻止(セキュリティ)」であり、「巨大IT企業や国家機関からの完全な追跡回避(究極の匿名性)」ではない。これらを実装すればPCゲームや一般的なアプリ、大半のWebサービス(CDNのBot判定等)が機能不全に陥り、日常の可用性がゼロになる。
・本質:「セキュリティ」と「アノニミティ(匿名性)」の区別すらついていない要件定義の失敗。守るべき資産と脅威のピントが最初から狂っており、一般的な生活環境の設計議論においてノイズでしかない。
4. 知識が10年前で止まっている有料ソフト信者
・主張:「OS標準のWindows Defenderだけで足りるわけがない。有料の総合セキュリティソフトを入れるべき」
・前提との矛盾:現代のDefender(ASRルール+ネットワーク保護+SmartScreen)はエンタープライズ領域でもトップクラスの遮断性能を持つ。逆にサードパーティ製ソフトがHTTPS通信の強制復号(MITM)やカーネルへの深い介入を行うことで、ブラウザ本来の保護機能を弱体化させたり、新たな脆弱性や10G通信のボトルネックを生むリスクの方が高い。
・本質:Windows XP〜7時代の古い常識のまま知識のアップデートが止まっている証拠。毎年支払っているライセンス料に安心感を求めているだけで、OS標準のASR(攻撃面の縮小)がどのように攻撃のキルチェーンを断ち切るかという現代の防衛機構を理解していない。
【結論】
予算と手間を無限にかければ堅牢になるのは当然であり、それは設計ではなく単なる「足し算(過剰投資)」に過ぎない。
エンジニアリングにおいて真に難易度が高いのは、限られた手持ちのカードだけで、日常の快適さを1ミリも落とさずに最大の防御効果を引き出す「引き算の設計(トレードオフの最適化)」である。前提条件という日本語を読まずに上記のテンプレ反論を投げてくる層は、要件定義ができないか自己のサンクコストを正当化したいだけであるため、一切取り合う必要はない。

