地雷原で五人を止めた翌日、六人目が消えた。配置図から姿が消えた。南の高架下にいたはずのモデレーターが、朝の巡回で確認できなくなった。
「逃げたんじゃないの?」
リサが言った。
「逃げない。モデレーターは撤退命令なしに持ち場を離れない。契約上の義務だ」
「じゃあどこに」
「ステルスだ」
ステルス型モデレーター。通常のモデレーターとは別枠の特殊ユニット。AR上の識別情報を完全に消して活動する。ウォーターマークも表示されない。ニューロリンクのセンサーにも引っかからない。
見えない敵。
「厄介ね」
「厄介だ。ワンクリック・トラップはAR上のオブジェクトに触れたときに発動する。ステルス型はAR表示をオフにしている。トラップが見えないから、触れない。触れないから、発動しない」
「じゃあ地雷原が効かない」
「効かない」
四畳半の部屋で考えた。巻き戻せ。何が使える。
ステルス型は見えない。ARセンサーに映らない。だが物理的にはそこにいる。人間だ。体温がある。足音がある。重さがある。
問題は、物理的に見つけても意味がないことだ。相手のシステムを停止させるには、デバイスを使ったデジタルな攻撃が必要になる。物理的に殴っても、ニューロリンクの能力は止まらない。
デジタルで見つけるしかない。
ARセンサー以外の方法で。
「クロヤ。一つ聞いていい?」
「何」
「ステルス型って、AR表示を消してるのよね。でもニューロリンク自体は動いてるの?」
「動いてる。能力を使うためにはニューロリンクが稼働していないと」
止まった。
リサが言いたいことが分かった。
「ニューロリンクが稼働しているなら、通信している」
「そう。ステルスはAR表示を消せるけど、ニューロリンクとオムニバース社サーバーの間の通信は切れないはず。切ったら能力が使えなくなるから」
「通信している。つまりサーバーとの間でデータのやり取りがある」
「そしてデータのやり取りには」
「Cookie」
Cookie。ウェブの基本技術。サーバーがクライアントに発行する小さなデータ片。ユーザーの識別、セッション管理、トラッキングに使われる。
オムニバースのシステムも、内部通信にCookieに相当するセッショントークンを使っているはずだ。ステルスであろうとなかろうと、サーバーとの通信がある以上、セッショントークンは流れている。
「Cookie同意バナーを出す」
俺はデバイスのキーボードを叩き始めた。
「区画全域に、偽のCookie同意バナーを展開する。『当エリアではCookieを使用しています。同意しますか?』。見たことあるだろ。あの画面だ」
「ウェブサイトのやつ?」
「同じ原理だ。同意をクリックした瞬間、相手のセッショントークンがこっちのサーバーにダンプされる。位置情報付きで」
「ステルスでも?」
「ステルスはAR表示を消しているだけだ。Cookie同意バナーはAR表示じゃない。システムレベルの通知だ。消せない。消すには管理者権限が要る。モデレーターは管理者じゃない」
リサが目を見開いた。
「つまり」
「ステルスを解除しなくても、Cookie同意バナーは見える。見えれば、人間は押す。押せば見つかる」
二時間で仕込んだ。区画全域に、二百四十のCookie同意バナーを展開した。どこを歩いても三歩ごとにバナーが出る。
普通のフリープランユーザーには「同意する」を押してもらえばいいだけだ。害はない。だがステルス型モデレーターが押した場合、セッショントークンの発信元IPと物理位置が特定できる。
待った。
昼の十二時。蒲田の商店街。表の世界の人間が昼飯を食っている。立ち食いそば屋の湯気。中華屋の油の匂い。
デバイスが震えた。
[12:14:33] COOKIE_CONSENT: accepted [12:14:33] Session token captured: MOD_STEALTH_01 [12:14:33] Physical location: 35.5627°N, 139.7160°E [12:14:33] Accuracy: ±3m
「捕まえた」
位置はジャンク屋から百五十メートル。商店街の裏路地。こっちに向かっている。
「近い。来てる」
リサが立ち上がった。
「作戦は?」
「リサ。お前の広告、次はいつ来る」
リサが自分のAR視界の端を確認した。フリープランには広告の配信カウンターが表示される。次回配信までの残り時間。
「四分後」
「ちょうどいい。俺が近づいて、三秒ルールを仕掛ける。お前は広告の無敵時間を使って、奴の注意を引け」
「注意を引く? 見えない相手の?」
「Cookie同意のログで位置はリアルタイムで追える。方向だけ合わせてくれればいい。あとは体で覚えろ」
裏路地に出た。
昼の蒲田。人通りはある。一般市民。彼らには見えない戦場。
デバイスの位置追跡。ステルス型モデレーターは路地の角を曲がった先にいる。五十メートル。四十メートル。近づいてくる。
見えない。ARセンサーに何も映らない。だが位置データは生きている。三メートル単位で追跡できている。
三十メートル。
二十メートル。
「リサ。準備しろ」
「広告まで三十秒」
十五メートル。
ステルス型は俺たちに気づいているか。分からない。だが近づいている以上、偵察ではなく攻撃の意思がある。
十メートル。
「広告まで十秒」
俺はデバイスのケーブルを引き出した。先端にUSBコネクタ。ニューロリンクの生体ポートに物理接続するための端子。三秒間、相手の首の後ろに押し当てれば、システムを書き換えられる。
三秒。たった三秒。だが見えない相手に三秒間接触し続けるのは。
「広告——来る」
リサの目が虚ろになった。広告が始まった。五秒間のinput lock。
リサが走った。
広告中でも体は動く。脳幹レベルの運動指令はロック対象外。リサは目が見えない状態で、位置データだけを頼りに、いや位置データも見えないはずだ。広告で視界がジャックされている。
直前に見た方向に、真っ直ぐ走っている。
ステルス型モデレーターの位置が動いた。リサに反応した。見えない相手がリサに何かを撃った。
当たらない。
input lock中のリサには、攻撃が通らない。ログにREJECTEDが流れた。
モデレーターが一瞬だけ動きを止めた。攻撃が無効化されたことへの困惑。
その隙に——俺は走った。
位置データ。五メートル。三メートル。ここだ。
見えない。何もいない空間。だがデータはここだと言っている。
手を伸ばした。ケーブルの先端を、虚空に突き出した。
感触があった。布地。その下に固い金属。ニューロリンクの外付けモジュール。首の後ろ。生体ポートの蓋。
押し当てた。
一秒。
見えない力で腕を掴まれた。振り払おうとする力。強い。モデレーターの身体強化能力。
二秒。
デバイスの画面に接続ステータスが流れた。REWRITING...
腕が軋んだ。もう片方の手で手首を固定した。歯を食いしばった。
三秒。
REWRITE COMPLETE Target ability grid: CORRUPTED Target stealth module: DISABLED
腕を掴んでいた力が——消えた。
目の前に、人間が現れた。
ステルスが解除された。中年の男。黒い防塵コート。顔が蒼白だ。AR視界がグリッチしているのだろう。手が震えている。
膝をついた。
俺は一歩下がった。ケーブルを回収した。息が荒い。手が震えている。
リサの広告が終わった。五秒間。視界が戻った彼女が、膝をついたモデレーターと、立っている俺を見た。
「……成功したの?」
「した」
「三秒ルール」
「三秒ルール」
初めての実戦での成功。シミュレーションでは何度もやった。だが本物の人間に、本物のシステム書き換えをかけたのは初めてだ。
手が震えている。恐怖じゃない。いや、少しは恐怖だ。
モデレーターが顔を上げた。目が虚ろだ。能力グリッドが破壊されて、AR視界がまともに機能していない。戦闘能力はゼロ。
「撤退しろ。仲間の異議申し立てが完了する前に、ここを出たほうがいい。サポートセンターに連絡すれば、お前のグリッドもリストアできる。たぶん二日くらいかかるけど」
モデレーターが立ち上がった。ふらつきながら路地の奥に消えていった。
六人中六人。全員を無力化した。
リサが隣に立った。銀髪が昼の風に揺れている。
「クロヤ」
「何」
「手、震えてる」
「……うるさい」
「初めて人に直接触ったのね。システム書き換え」
「ああ」
「怖かった?」
「怖くない」
「嘘。——でも、やったわね」
やった。
三秒ルール。物理接触によるシステム書き換え。理論は三年前から完成していた。実行する機会がなかっただけだ。
今日、初めてできた。リサの五秒の盾があったから。
一人じゃできなかった。
「リサ」
「何?」
「……さっきの走り方。広告中に目が見えない状態で走ったろ。怖くなかったか」
「怖かったわ。でも五秒で終わるって分かってたから」
五秒で終わる恐怖。管理可能な恐怖。
フリープランの鎖が、今日は盾になった。
ジャンク屋に戻った。七人が待っていた。オヤジの薄いコーヒーの匂い。
「終わったぞ。掃討部隊は全員無力化した」
歓声は上がらなかった。静かな安堵。ため息。誰かが壁にもたれて座り込んだ。
オヤジがコーヒーを差し出した。
「坊主。——よくやった」
三年間、オヤジにそんなことを言われたのは初めてだった。
コーヒーを飲んだ。薄い。でも今日は少しだけ味がした。