はじめに
「あなたはそこにいますか?」
SFアニメ『蒼穹のファフナー』を観たことがある方なら、この恐ろしい問いかけを知っているはずです。この問いに答えてしまうと、敵(フェストゥム)に精神を読まれ、最終的には「同化(乗っ取り)」されてしまいます。
今回は、この「問いかけ(プローブ)による同化」という絶望的な攻撃からネットワークを守るにはどうすればいいか?という着想から、ブラウザ上で動く次世代ネットワーク防衛シミュレータ「NextGen Security Shield (AAIMA-Core)」を開発しました!
フレームワークは一切使わず、HTMLとVanilla JS(Canvas API)だけでサクサク動くように実装しています。
シミュレーションのコンセプト(絶望と希望)
このシミュレータでは、画面上の青い点が「正常なデバイス」、赤い点が「同化されたデバイス」を表します。
脅威:同化プローブ(Are you there?)
赤いデバイスは、周囲の正常なデバイスに対して「Are you there?」というプローブ(探査パケット)を放ちます。
従来型のファイアウォール(FW)では、この未知の問いかけを防ぎきれず、限界を超えるとデバイスが「同化」され、新たな攻撃拠点となって被害が爆発的に拡大してしまいます。
希望:次世代防衛プロトコル「AAIMA」と自律隔離
そこで実装したのが、次世代防衛モード「AAIMA」です。このモードには以下の2つの強力な機能が備わっています。
- ZKP(ゼロ知識証明)による防御: 自分の内部情報を一切渡さずに「私はここにいる(正常である)」ことだけを証明し、問いかけを弾き返します。
- 自律的フェイルセーフ(トカゲの尻尾切り): 防御を突破され、自己同一性(統合情報量Φ)が危険域まで低下した場合、完全に同化されて周囲を攻撃し始める前に、自ら通信を物理・論理的に切断し、データを暗号的消去して沈黙します。
一つのデバイスを犠牲にしてでも、ネットワーク全体の「カスケード故障(感染爆発)」を食い止めるという、胸熱なシステムになっています。
技術スタックと実装の工夫点
「ただのパーティクルアニメーション」で終わらせないため、JavaScriptのコアな部分でパフォーマンスとロジックの堅牢性にこだわりました。
① ビット演算(フラグ)による高速な状態管理
ノード(デバイス)の稼働状況や同化状態を、複数の真偽値変数ではなく、32bitのビット列を想定したフラグで管理しています。
メモリ効率の向上だけでなく、C#などの低レイヤー言語での開発経験を活かした、ハードウェアに近い設計思想を取り入れています。
// UCD-F_ABC: 32bitビットパッキングを想定した状態フラグ
const AGENT_STATE = {
FLAG_ACTIVE: 1 << 0, // 正常稼働
FLAG_COMPROMISED: 1 << 1, // 完全同化(フェストゥム化)
FLAG_ISOLATED: 1 << 2, // 自律的ネットワーク切断(無害化)
};
// 状態の判定もビット論理積で高速に行う
get isActive() { return (this.stateRaw & AGENT_STATE.FLAG_ACTIVE) !== 0; }
get isCompromised() { return (this.stateRaw & AGENT_STATE.FLAG_COMPROMISED) !== 0; }
get isIsolated() { return (this.stateRaw & AGENT_STATE.FLAG_ISOLATED) !== 0; }
② 統合情報量(Φ)による自律切断ロジック
「Are you there?」の問いかけに晒され続けると、デバイスの「自己同一性」が崩壊していく過程を phi (統合情報量Φ)というパラメータで表現しています。
ダメージが閾値(PHI_FAILSAFE_THRESHOLD)を下回ると、即座に triggerFailsafe() が発動します。
receiveProbe(intensity) {
// ... 前略(ZKPによる防御判定など)...
// 【防御失敗】 ダメージ蓄積
this.ruinScore += 30;
// AAIMA フェーズ4:カスケード故障の防止(自己検知と自律切断)
if (this.phi <= AAIMA_CONFIG.PHI_FAILSAFE_THRESHOLD) {
// 完全な同化を防ぐため、自らネットワークから切断しデータ消去
this.triggerFailsafe();
return { defended: false, failsafeTriggered: true };
}
}
triggerFailsafe() {
this.stateRaw = AGENT_STATE.FLAG_ISOLATED;
// UI上で線(エッジ)が消え、灰色(地形化)になる
}
③ 動的トポロジの描画(Canvas API)
毎フレームの描画処理において、DOM要素(divなど)を大量に生成・操作するとブラウザが悲鳴を上げます。
そこで、すべてのノード、接続線(エッジ)、飛び交うプローブの描画は HTML5 Canvas と requestAnimationFrame を用いて1枚のキャンバス上にレンダリングしています。これにより、100個以上のノードが複雑に通信・攻撃し合うシチュエーションでも、60FPSで滑らかに動作します。
おわりに
アニメのSF的な恐怖「同化」を、ネットワークセキュリティの「ラテラルムーブメント(横展開)の阻止」という現実的な課題に落とし込んでシミュレータ化してみました。
右側のパネルから「疑似攻撃テスト実行」ボタンを押すと、赤い脅威が迫り、緑の波紋(ZKP防御)と黄色の光(自律隔離)がネットワークを守る美しい様子が観察できます。
ぜひ、以下のリンクから「従来型FW」と「AAIMA」の違いを自分の目で確かめてみてください!


