第24話 囮の参照
昨夜の聞き耳は、まだ生きていた。
枠には、夜のあいだに落ちた行が溜まっている。タイムスタンプと、存在応答のフラグと、連番の断片。手を伸ばさずに拾えた輪郭が、ひと晩ぶんだけ伸びていた。
俺は、その連番を順に並べ直した。間隔は、昨日測ったときと変わらない。だが、並べてみて、別のものが見えた。
番号が、抜けている。
「MICA。この並び、欠けてるのが規則的だ」
「確認します」少し置いて、「末尾が八の倍数の参照だけ、応答が落ちています。末尾七は残っています」
連番の中で、末尾が八で割り切れる番号だけが消えていた。八、十六、二十四。隣の七は、律儀に残っている。
「全部、拾ってるわけじゃないのか」
「収集は連番を順になめていません。選んでいます」少し置いて、「末尾が八の倍数に、何かの条件が立っている可能性があります」
選り好みだ。向こうは、流れてくる番号を端から拾っているんじゃない。八の倍数にだけ、決まった条件で手を伸ばしている。
ここまでは、いつもどおりの観測だった。向こうが動いた跡を、後ろから読む。だが、その癖が見えた瞬間、別の考えが立ち上がった。
「八の倍数にだけ食いつくなら」俺は言った。「八の倍数に見える偽の番号を、隣に置けばいい。本物のついでに、それも拾う」
受け身を、やめられるかもしれない。ずっと、向こうが動くのを待つ側だった。今度は、こちらから向こうの手を引き出せる。
——
机に、設置案を書いた。
偽の参照を一つ、連番の隙間に置く。番号は、末尾を八の倍数に合わせる。向こうが拾いにきたら、その瞬間に、相手の手つきが見える。
MICA が、すぐに止めた。
「偽の参照の設置は、参照空間への書き込みです。規程の、書き込み禁止に触れます」
手が止まった。そうだ。番号を一つでも置けば、それは向こうの台帳に書く操作だ。読むだけ、と決めた線を、自分でまたぐことになる。
それだけじゃない。書き込みは、いちばん目立つ操作だ。踏み込みすぎれば、前に俺の経路を切った監査を、もう一度刺激しかねない。
「書き込みは、なしだ」俺は言った。「読み取りだけで、偽に見える番号を出す方法はないか」
少し間があって、MICA が返した。
「番号そのものは置きません。問い合わせが来たときだけ、『ある』と返す窓口を一つ作ります。書き込みではなく、応答を偽装する形です」
「向こうが叩いてこなければ、何も起きない」
「起きません。向こうが拾いにきて初めて、存在応答だけを返します。これなら、受動観測の許可範囲内です」
設置案の「書き込み」の行に、×が付いた。その下に、「存在応答の偽装」と書き直す。可、と添える。
置くんじゃない。問われたら、いるふりをして返すだけだ。手は伸ばさない。向こうが伸ばしてきた手に、こちらが息を吹きかける。
ずっと、向こうの動いた跡を後ろから読んできた。初めて、向こうが動く前に、こちらから一手を置く。守りの線は、一本も消していない。それでも、攻めに転じている。
引き算で組んだ罠だった。やれることを増やしたんじゃない。やらないと決めた中に、ぎりぎりの一手を見つけた。
「仕掛ける」
「記録します」
——
偽の窓口を、連番の隙間に据えた。
枠に、新しい欄が一つ増える。応答待ち。叩かれた回数は、ゼロ。
待った。
昨日の収集の時刻は、間隔から割り出してある。その時刻が、近づく。
来た。想定した収集の時刻に、枠が動く。八の倍数の本物が、いくつか拾われていく。
偽の窓口は、ゼロのままだった。
「拾われてないな」
「想定の収集時刻は通過しました。偽の窓口は、叩かれていません」
通り過ぎた。本物は拾って、こちらの偽物には触れずに、向こうは行ってしまった。
「番号の作りが甘かったか。それとも、警戒されてるか」
「断定できません。叩かれていない、という事実だけです」
切り分けは、付かない。仮説が外れたのか、相手が用心したのか、二つが並んだまま動かない。能動に出ても、思いどおりには進まなかった。
仕掛けた以上、あとは待つしかない。受け身に戻ったわけじゃない。罠は、もう置いてある。あとは、向こうが手を出すかどうかだ。
枠を開いたまま、夜にした。
——
「透。応答がありました」
MICA の声で、枠を見た。深夜の、ずっと遅い時刻だった。
偽の窓口の欄に、行が落ちている。応答時刻は、三時十七分四十四秒。
「バッチ間隔の外です」MICA が言った。「想定の収集時刻と、合いません」
拾われた。八の倍数の偽物に、向こうが食いついた。仮説は、外れていなかった。
だが、その下に、もう一行あった。
「同じ番号が、二秒後に、もう一度叩かれています」
俺は、画面に身を寄せた。同じ偽の窓口へ、二秒の間を置いて、二度目の問い合わせが来ている。
「一度読んで、二秒で、また読んだのか」
「バッチ処理は、再参照のループを組みません。一度読んだ番号を、二秒で読み直す手順はありません」
「読み損ねて、やり直しただけじゃないのか」
リトライか、と一瞬疑った。失敗したかもしれない処理を、もう一度試す。機械なら、それで筋が通る。
「一度目の応答は、正常です」MICA が言った。「やり直しは、失敗のときだけです」
切り分けが、付いた。やり直しではない。二秒後の再参照は、機械の予定表からは出てこない。一度拾って、何かが引っかかって、もう一度同じ番号を開いた。確かめる、という動き。
「機械なら、やらない」
「やりません」少し置いて、「手で確かめた可能性があります」
機械は、確かめない。決めた手順を、ただ流す。二秒後にもう一度読み返したのは、流れの外にいる誰かだ。
向こうを機械だと思って組んだ罠に、機械でないものが触れた。
深夜の三時十七分。バッチが回る時刻じゃない。誰かが起きていて、こちらの偽物を、自分の手で二度読んだ。
それが誰なのかは、行のどこにも書いていない。何のために確かめたのかも、分からない。読めたのは、人の手が混じっている、というところまでだ。
——
報告書の下書きを開いた。
莉央さんに、相手の挙動を掴んだと示したい。受け身を抜けて、こちらから一手を置けた。それは、進捗だ。
書ける欄に、囮の設置と、それが拾われたことを書いた。再現できる。番号の作りも、設置の手順も、紙に残せる。
二秒後の再参照は、口頭の欄へ移した。
「後者を、書けない理由は」MICA が訊いた。
「証拠が、一行だ。一度読んで、二秒後にもう一度読んだ。それだけだ。一行じゃ、文書の根拠にならない」
紙に書けば、断定に見える。人の手が混じっている、と。だが、根拠は一行しかない。混ざらずに動く線を、また引く。書ける紙には、囮が拾われた事実まで。書けない一行は、莉央さんに口頭で渡す。
「口頭で話す。聞いて、どう扱うかは、向こうが決める」
「記録します」
囮は、拾われた。仮説どおり、八の倍数の偽物に食いついた。
だが、拾ったのは、機械なら絶対にしない動き方をした。同じ番号を、二秒後に、もう一度読んだ。応答時刻は、深夜の三時十七分四十四秒。バッチの回らない時刻だ。
誰かが、起きていた。
収集は、完全な自動じゃない。
■ 技術メモ
【囮を置いて、相手の手つきを見る】
侵入や不正な収集を調べるとき、本物のデータを守るのとは別に、わざと拾われやすい偽物を一つ置いておく、という手があります。攻撃する側がそれに食いつけば、いつ、どんな手順で、どんな癖で動くかが、こちらに見えます。守っているだけでは、相手の挙動はなかなか掴めません。囮は、相手のほうから動いてもらうための仕掛けです。
作中で透が見つけた手がかりは、収集される番号の並びでした。連番のうち、末尾が八の倍数の番号だけが消え、隣の七は残っている。端から全部を拾うのではなく、選んで拾っている。その選り好みの癖が分かれば、同じ条件に見える偽物を隣に置いて、本物と一緒に拾わせることができます。
【置く」のと「返す」のは、別の操作】
偽物を仕掛けると言っても、相手の台帳に番号を書き込めば、それはこちらから手を伸ばす操作になります。読むだけ、と決めた範囲を、自分で踏み越えてしまう。
そこで作中の透は、番号そのものは置かず、問い合わせが来たときだけ「ある」と返す窓口だけを用意しました。相手が叩いてこなければ、何も起きない。叩いてきて初めて、最小限の応答を返す。自分から書きにいくのではなく、向こうが来たら答えるだけにしておけば、受け身の観測の枠を保ったまま、相手の手を引き出せます。足すのではなく、できることを絞ったまま隙間を見つける、という考え方です。
【機械の動きと、人の動きの見分け方】
決まった時刻に決まった手順を流す自動処理は、効率を優先して組まれます。一度読んだものを、二秒後にもう一度読み直す——そんな無駄なやり直しは、ふつう設計に入りません。だから、一度拾った同じ対象がごく短い間にもう一度読まれていたら、それは決まった手順の外にいる誰かが、手で確かめた可能性を示します。
加えて、その応答が来たのは、定期処理が回らない深夜の時刻でした。時刻の不自然さと、二秒後の読み直し。この二つが重なると、すべてが自動で動いているという前提が、少し揺らぎます。ただし分かるのはそこまでで、それが誰なのかは、一行の記録からは読み取れません。再現できる事実と、一行しか根拠のない推測は、混ぜずに分けて扱うのが安全です。




