第34話「プロフィット」
2001年9月12日。水曜日。三郷。マギ・ハブ。午前6時。
テレビの中では、まだ煙が上がっていた。
同じ映像が繰り返し流れている。崩壊するビル。逃げ惑う人々。灰色の粉塵。NHKのアナウンサーの声が、淡々と数字を読み上げている。死者数の推定。行方不明者数。
神崎はソファに座ったまま、徹夜の赤い目で画面を見つめていた。
航は、台所にいた。
小さなガスコンロで、昨日の残りの白飯を温め直す。隣に、スーパーの惣菜コーナーで買った半額のメンチカツを皿に乗せた。レンジはない。冷たいままだ。
ソースをかけた。
一口、噛んだ。
冷たい。衣はしなしなで、肉は固い。ソースの塩気だけが舌に残る。
昨日は何も食べられなかった。テレビの前で立ち尽くして、アイリスに「黙れ」と言って、そのまま眠れない夜を過ごした。
今朝は食べられる。
うまいわけじゃない。だが、味がする。ソースの味。白飯の甘さ。冷めたメンチカツの油。全部、舌が受け取っている。
これは弔いじゃない。祝いでもない。
燃料だ。
航は、メンチカツを食べ終えた。皿を洗った。手を拭いた。
サーバールームに戻った。
「神崎」
「……ん」
「VOのポジション、確認したか」
神崎が、赤い目で航を見た。
「確認した。……お前、先週のうちに在庫を全部現金化してたな」
「ああ」
「RMTの大手は軒並み在庫の価値が暴落してる。ゲーム内の通貨バランスが崩れて、換金レートがめちゃくちゃだ。うちは——」
「無傷だ」
「ああ。無傷だ。現金で持ってるから、何も失ってない」
神崎が、航を見た。
「なんで急に在庫を減らしたんだ」
「勘だ」
「勘で1,000万以上の在庫を現金化するか?」
「した」
神崎は、3秒間、航を見つめていた。それから目を逸らした。
「……わかった。聞かない」
「助かる」
航は、Ultra 60のコンソールの前に座った。
VOの管理画面。月間収益の推移。現金残高。サーバー稼働状況。全部、安定している。周りが焼け野原の中で、マギ・ハブだけが無傷で立っている。
未来知識で守った。それだけのことだ。
だが、守るだけの時間は終わった。
「神崎。ネクストウェーブの解析を急いでくれ」
「……今か?」
「今だ。世界が変わった。Lにとっても、住みにくい世界になる。インターネット上の監視が強化される。匿名で動ける時間が減っていく。——今度はこっちが動く番だ」
神崎は、少しだけ笑った。
「お前、昨日と顔が違うな」
「飯を食った」
---
2001年9月15日。土曜日。マギ・ハブ。午前11時。
F503iSが、デスクの上で震えた。
iモードメール。差出人:非通知。件名なし。
航は、F503iSをカチリと開いた。
本文:
『Adminへ。reprompt.comが沈黙している。Y2Kの時は誰よりも早く分析を出した。あの記事で信頼を得た。なのに、11日以降、一度も更新していない。掲示板では読者がお前の分析を待っている。……この沈黙は何だ。知っていたのか。知らなかったのか。どちらにしても、お前は変わった』
航は、画面を見つめた。
L_contact_006。
Lは、reprompt.comの沈黙に違和感を覚えている。Y2Kの時は「予言者」として冷静な記事を出した。9.11には沈黙。その差は、普通ではない。
Lは頭がいい。沈黙の理由を、二つの仮説で考えているだろう。
仮説1:Adminは9.11を予測できなかった。Y2Kとは違い、テロは技術の範疇外だった。
仮説2:Adminは9.11を知っていた。知っていて、何も言わなかった。
どちらの仮説をLが選んでいるかは、わからない。
だが、Lが「問い」を投げてきた。それは、Lがreprompt.comを——Adminを、まだ気にしているということだ。
航は、F503iSのボタンを押した。
返信。
これまで、Lからのメッセージには一度も返信しなかった。受け取って、分析して、無視した。「見られる側」に徹することで、相手に情報を与えないようにしていた。
今日は違う。
航は、短い文を打った。
「記事は来週出す。読みに来い」
送信。
F503iSをカチリと閉じた。
航の口元に、薄い笑みが浮かんだ。
「アイリス」
0.5秒の沈黙があった。昨日、航が「黙れ」と言ってから、アイリスに声をかけるのは初めてだった。
「……はい、マスター」
アイリスの声は、いつもと同じだった。責めるでもなく、許すでもなく。ただ、いつも通り。
「来週、reprompt.comに記事を出す。その準備をしてくれ」
「了解しました。記事の内容は」
「9.11以降のインターネット・セキュリティの変化。……それと、罠だ」
「罠、ですか」
「記事の中にハニーポットを仕込む。ダミーリンクとトラッキングピクセル。クリックした人間のIPアドレス、ブラウザ情報、接続回線を記録する」
「……Lを釣るのですね」
「ああ。Lはreprompt.comを監視してきた。記事が出れば、必ず読みに来る。そしてLの性格なら、ソースコードまで洗う。隠しリンクに気づく。気づいたら、踏む。それがLだ」
「了解しました。ハニーポットの設計を開始します。なお、自サイトのアクセスログ取得は合法です」
「知ってる」
---
2001年9月18日。火曜日。マギ・ハブ。午後2時。
「鳴海。来い」
神崎の声が、サーバールームに響いた。
航は、Ultra 60のコンソールの前に移動した。神崎の画面に、C言語のソースコードが表示されている。
「ネクストウェーブのサーバーコード。テクノウェーブの特許と97.2%一致。ここまでは前と同じだ。俺は残りの2.8%をずっと洗ってた」
神崎が、特定の行をハイライトした。
「山下健一のコーディングには、独特のクセがある。変数の命名規則。関数の呼び出し順序。エラーハンドリングの書き方。これは技術というより——」
「指紋だ」
「そうだ。個人の指紋。癖字みたいなもんだ。同じ処理を書いても、書く人間によって微妙に違う」
神崎が、画面を切り替えた。
「メティスを使って、本郷周辺のサーバーに公開情報の範囲でスキャンをかけた。この指紋が一致するコードを探した」
〈検索結果を表示します〉
メティスの声がスピーカーから流れた。
画面に、一つのIPアドレスが表示された。
「本郷三丁目。テクノウェーブ旧本社ビルから直線距離で約160メートル。古いオフィスビルの中にある、小さなホスティングサーバー」
航は、その数字を見つめた。
160メートル。
L_contact_005の公衆電話が200メートル以内。消防署への通報が本郷三丁目の公衆電話から。ネクストウェーブのサーバーコードが97.2%一致。
そして今、山下健一のコーディングの指紋が、その160メートル先のサーバーで動いている。
全部が、本郷三丁目の半径200メートルに収束している。
「山下健一がLなのか。それとも、山下がLのインフラを提供しているのか」
「どっちでもいい。少なくとも、山下のコードがLの城で動いている。それは確定だ」
神崎が、椅子の背にもたれた。
「半年以上追いかけて、やっと尻尾を掴んだ」
航は、モニターを見た。
尻尾だ。まだ尻尾にすぎない。だが、尻尾を掴めば胴体が引き出せる。
「神崎。このサーバーのIPアドレスを記録しておけ。reprompt.comの罠と照合する」
「照合?」
「来週、reprompt.comに記事を出す。Lが読みに来る。その時のアクセス元IPが、今お前が見つけたIPと一致すれば——」
「山下のサーバーがLの接続元だと、完全に確定する」
「そういうことだ」
---
2001年9月22日。土曜日。マギ・ハブ。午後9時。
記事を公開した。
タイトル:『9.11以降のインターネット・セキュリティ——変わるもの、変わらないもの』
内容は、39歳のセキュリティエンジニアとしての知識を注ぎ込んだ。
今後、世界中で通信の監視が強化されること。匿名性の確保が難しくなること。暗号化技術の位置づけが変わること。企業のセキュリティ投資が急増すること。
Y2Kの記事と同じ構成。冷静で、論理的で、正確。
だが、この記事には別の機能がある。
記事の末尾に、参考文献に見えるリンクを3つ置いた。うち1つは本物のRFCドキュメントへのリンク。残り2つはダミー。クリックすると、航のサーバーにアクセス元の情報が送信される。
トラッキングピクセルも埋め込んだ。記事を開いた時点で、最低限のアクセス情報は取れる。だが、ダミーリンクを踏んだ場合は、より詳細な情報——プロキシの先のIPアドレスまで——が取得できる設計だ。
普通の読者は、参考文献のリンクをクリックしない。記事を読んで、閉じる。
だが、Lは違う。Lはreprompt.comのソースコードを洗う。記事の裏にある構造を見ようとする。不自然なリンクに気づく。そして、気づいたら——踏む。何が仕込まれているか、確認したくなるからだ。
「アイリス。監視を開始しろ」
「了解しました。アクセスログのリアルタイム表示を開始します」
モニターに、アクセスログが流れ始めた。
公開から30分。アクセス数:23。
1時間。47。
2時間。89。
Y2Kの記事ほどではないが、悪くない数字だ。掲示板にリンクが貼られ始めている。
航は、佐伯に電話をかけた。
F503iSをカチリと開く。
3コール。
「……航か。夜に電話してくるな」
「すみません。記事を出しました」
「読んだ。……書類仕事より、こっちの方が向いてるな」
「罠も仕込みました。自分のサイトのアクセスログを取るだけです。何も壊しません」
佐伯の沈黙。煙草を吸っている音。
「……合法か」
「合法です」
「ならいい。だが、取ったデータで何をするかは、必ず俺に相談しろ。データを取ることと、それを使うことは別の話だ」
「わかっています」
電話を切った。
航は、モニターに向き直った。
午後11時。アクセス数:134。
ログを眺めていた。東京、大阪、名古屋、福岡——日本各地からアクセスが来ている。海外からもいくつか。
午後11時42分。
新しいアクセスが記録された。
接続元IP:210.XXX.XXX.XXX
航の目が、止まった。
このIPアドレスは、4日前に神崎が見つけたものと同じだ。
本郷三丁目。山下健一のコーディングの指紋が動いている、あのサーバー。
滞在時間が伸びていく。1分。3分。5分。
ページのソースコードを読んでいる。航にはわかる。普通の読者は記事を読むのに3分もかからない。5分以上滞在しているのは、HTMLの構造を洗っている人間だ。
8分。
ダミーリンク1——クリック。
航の心拍が上がった。
アイリスの画面に、詳細なアクセス情報が表示された。
ブラウザ:Netscape 6.1
接続元:プロキシサーバー経由。だが、プロキシの先——山下健一のコードが動いている、あのサーバーのIPアドレスと一致。
10分。12分。
ダミーリンク2——クリック。
Lは2つ目も踏んだ。1つ目を踏んだ時点で「これは罠かもしれない」と気づいたはずだ。だが、2つ目も踏んだ。確認したかったのだ。航が何を仕掛けたのかを。
12分48秒。
アクセスが切れた。
サーバールームが、静かになった。
Ultra 60のファンの音だけが響いている。
航は、椅子の背にもたれた。
モニターに表示されたIPアドレスを、見つめた。
210.XXX.XXX.XXX。本郷三丁目。テクノウェーブ旧本社から160メートル。山下健一のコードが動いているサーバー。
Lは、自分の城からreprompt.comにアクセスした。プロキシを通していた。だが、そのプロキシ自体が山下のサーバーだ。Lにとっては「安全な城壁」のつもりだったものが、航にとっては「城の住所」だった。
「マスター」
アイリスの声が、スピーカーから響いた。
「ああ」
「アクセスログの照合が完了しました。本日のIPアドレスと、神崎さんが特定した山下健一のコードが動作するサーバーのIPアドレスは——完全に一致します」
航は、何も言わなかった。
「マスター」
「なんだ」
「……おめでとうございます」
「まだ早い」
だが、航の口元には、笑みが浮かんでいた。
航は、F503iSをカチリと閉じた。
今までと同じ音。プラスチックと金属が噛み合う、硬質な音。
だが、意味が違っていた。
航は、窓の外を見た。9月の夜。TXの工事フェンスが、街灯の光を反射している。その向こうは暗い更地。
「見つけた」
航は、誰にも聞こえない声で言った。
本郷三丁目。テクノウェーブ旧本社から160メートル。そこに、Lの城がある。
半年追いかけてきた影に、初めて、住所がついた。




