第52話 プロトコル・オーバーライド
警告が、オーバーレイに広がった。
DEFENSE PROTOCOL : ACTIVE
TARGET : UNREGISTERED ACCESS
RESPONSE : NEUTRALIZE
春山はオーバーレイを全展開した。
通常の解析モードではない。コンテナでの作業で積み上げた辞書登録3000件以上を全部引き出す。
メニュー画面を多重展開する。処理の層を重ねる。防衛プログラムがどこで動いているか、どの優先度で実行されているか、それを読み取るための解析環境を構築する。
データの流れが見えてきた。
防衛プログラムは、システムの深い層で動いている。春山たちが操作しているメインコンソールの層より、1つ下だ。直接触れることができない位置にある。
しかし流れは見える。流れが見えれば、構造がわかる。構造がわかれば、どこに手を入れるかが見えてくる。
問題は時間だ。
「春山さん」
ライカの声が、右斜め後ろから聞こえた。
「来ます」
春山は顔を上げた。
柱の周囲、床の端子が光り始めていた。1つ、また1つ。光が連鎖して、床を這うように広がっていく。光の走った端子から、何かが立ち上がり始めていた。
形状が、ない。
強いて言えば、光の塊だ。輪郭が定まっていない。しかし動いている。目的を持って、こちらへ向かっている。
「あれが防衛プログラムですか」
「そうだと思います」
「触れたらどうなりますか」
「分かりません」
「分かりません、ですか」
「推測はできます。排除しようとするはずです」
ライカが春山の前に出た。
「私が止めます」
「無理はしないでください。魔力残量が」
「分かってます」
ライカが問いかける。
「時間、どのくらい必要ですか」
春山はオーバーレイを確認した。防衛プログラムの構造を読み取りながら、どこに手を入れるかを探している。
プログラムの実行優先度を書き換える。破壊するのではなく、後回しにさせる。システムが自分自身を守ろうとする機能を、消すのではなく、順番を下げる。
どこに入力すれば、優先度が変わるか。
流れを追う。分岐を確認する。
「5分、もらえれば」
「なんとかします」
ライカが両手を前に出した。魔力が集まり始めた。
防衛プログラムが、距離を詰めてきた。
3体いる。
光の塊が、それぞれ別の角度から近づいてくる。輪郭が定まらないまま、しかし速度は一定だ。迷いがない。プログラムとして、ただ実行されている。
ライカが最初の1体に魔力をぶつけた。
光が衝突した。防衛プログラムが弾かれた。後退した。
しかしすぐに向きを変えて、また近づいてくる。
「弾けました。でも止まらないですね」
「止まりません。プログラムが動いている限り、繰り返します」
「どうするんですか」
「優先度を下げます」
ライカが2体目に向き直った。魔力を集める。ぶつける。弾く。振り返る。
3体目が横から来ていた。間に合わなかった。
光の塊がライカの腕をかすめた。
ライカが小さく声を上げた。声というより、息が漏れた音だ。
「大丈夫ですか」
「大丈夫です。続けてください」
春山はライカの声のトーンを確認した。痛みで上擦っているわけではない。判断したうえで、そう言っている声だ。
春山はオーバーレイに向き直った。
防衛プログラムの構造が、少しずつ見えてきていた。
実行優先度は階層になっている。最上位に、システムの保全がある。
次に、外部入力の処理がある。その下に、通常の演算処理が続く。防衛プログラムは最上位に近い層で動いている。だから春山たちの操作より先に実行される。
書き換える対象は、最上位の層ではない。
その1つ下、防衛プログラムが参照している判断基準だ。
「外部からの攻撃」と判断している根拠がどこにあるか。その根拠を書き換えれば、判断が変わる。判断が変われば、防衛プログラムは動く理由を失う。
それを探す。
あった。
判断基準は単純だった。「登録されていないアクセス」を攻撃と見なす。春山たちのアクセスは、当然ながら登録されていない。
では、登録すればいい。
「ライカさん」
「はい」
答えながら、ライカは光の塊を弾いていた。
「もう2分待ってください」
「了解です」
春山はオーバーレイで入力を始めた。
登録の手順は複雑だった。
システムが要求している登録形式がある。
識別子、アクセス権限のクラス、認証コード。識別子はATRAのメタデータから流用できる。アクセス権限のクラスは、先人たちが使っていた保守用のクラスが残っている。
問題は認証コードだ。
先人たちが使っていた保守用の認証コードは、作業台の金属板に刻まれていた記録の断片から、いくつか読み取れていた。しかし正確なコードは分からない。
使えるものを組み合わせる。完全である必要はない。
防衛プログラムの判断基準を変えるだけでいい。完璧な認証ではなく、「攻撃ではない」と判断させるだけの形式が整えばいい。
春山は辞書登録から、関連するデータを引き出した。ATRAの識別子、保守クラスの断片、先人たちのログから読み取ったパターン。それを組み合わせて、入力した。
オーバーレイに応答が返ってきた。
ACCESS CLASS : MAINTENANCE
AUTHENTICATION : PARTIAL
PROCESSING...
PARTIALだ。完全ではない。しかし処理は始まっている。
「春山さん」
ライカの声が、少し変わっていた。
「3体同時に来てます!」
「あと少しです」
ライカが魔力を大きく展開した。3体を同時に押し返そうとしている。
魔力の消費が、一気に上がるはずだ。
春山は入力を続けた。
PARTIALの認証で、防衛プログラムの判断基準がどこまで変わるか。完全には変わらないかもしれない。
しかし優先度が下がれば、動きが鈍くなる。鈍くなれば、ライカへの負荷が減る。
応答が返ってきた。
AUTHENTICATION : PARTIAL
PRIORITY ADJUSTMENT : PROCESSING
DEFENSE PROTOCOL : REVIEWING
REVIEWINGに変わった。
実行から、見直しに変わっている。防衛プログラムが、自分の判断を確認し始めている。
「ライカさん、防衛プログラムの動きを確認してください」
「あ」
ライカが変化に気づく。
「遅くなってます」
「そうですか」
「止まりそうですか」
「もう少しです」
春山はさらに入力を続けた。REVIEWINGのプロセスが走っている間に、優先度の数値を直接書き換える。
防衛プログラムの実行優先度を、最上位から、通常演算処理と同じ層まで下げる。
数値を入力した。
応答が来た。
PRIORITY ADJUSTMENT : COMPLETE
DEFENSE PROTOCOL : SUSPENDED
REASON : MAINTENANCE ACCESS DETECTED
SUPENDEDになった。
停止ではない。中断だ。条件が変われば、また動く。しかし今は止まっている。
「止まりました」
ライカが構えたまま様子を見ている。
「確認できました」
春山はオーバーレイを確認した。防衛端末の動きが止まっている。
光の塊が、その場に静止している。判断する根拠を失って、実行を保留している状態だ。
「終わりましたか」
「暫定的に、そうです」
ライカが息を吐いた。長い息だった。
春山はライカの方を向いた。
腕を確認した。かすめられた右腕だ。袖が焦げていた。皮膚が赤くなっている。火傷に近い状態だ。
「腕を見せてください」
「大丈夫です、これくらい」
「見せてください」
ライカが袖をめくった。赤みが出ている。水ぶくれにはなっていない。深くはない。しかし痛みはあるはずだ。
「今すぐ対処できるものがありません。申し訳ありません」
「謝らなくていいです」
ライカは続ける。
「止めましたよね、ちゃんと」
「止めました」
「なら、いいです」
ライカが袖を戻した。
痛みを表情に出さなかった。出さないように、しているのかもしれない。
どちらにしても、止まらない人間だということは、もう分かっていた。
春山はオーバーレイを確認した。
防衛プログラムは中断している。
しかし完全に無効化したわけではない。再起動のプロセスが進めば、また動く可能性がある。その前に、次の手順に進む必要がある。
温度を確認した。
64度。
上がっている。暫定処置の効果が切れてきている。
時間が、また削られていた。
空気が変わっていた。湿っている。天井の低い部分に、細かい水滴が浮かんでいた。
結露だ。柱の熱で温められた空気が上昇し、冷えた天井付近で冷やされて水滴になっている。
気温差が大きいほど、結露は増える。水滴が大きくなって、床に落ちた。
落ちた先で、じゅっという音がした。床の熱で、蒸発している。視界の端が、白く霞み始めていた。
このまま湿気が増せば、端子に水がかかる。端子がショートすれば、制御できない連鎖が起きる。物理的な破壊は、論理での対処ができない。
時間が、思っていたより少ない。
「次は何ですか」
ライカが尋ねる。
「温度の問題です。このまま再起動を進めると、熱が限界を超える可能性があります」
「対処できますか」
「方法があります。ただ」
「ただ」
「また、魔力を使ってもらう必要があります」
ライカが右腕を見た。赤くなった皮膚を、袖の上からそっと押さえた。
「分かりました」
迷わなかった。
春山は次の手順を頭の中で整理した。温度を下げる。熱の原因であるデータの圧迫を、一時的に緩和する。その上で再起動を進める。
やることが、また増えた。
しかし順番は変えない。1つずつだ。
春山が声をかける。
「行きましょう」
ライカが頷いた。
防衛プログラムが、静止したまま2人を見ていた。
光の輪郭が、揺れている。判断を保留したまま、ただそこにあった。




