第1話 身代金の期限
1. 侵食
【蓮実視点:10:00 AM】
暗幕で遮光された六畳一間。
浮遊する埃が、四枚の4Kモニターが放つ冷徹な光に照らされている。
僕の耳に届くのは、PCの冷却ファンが吐き出す微かな唸りと、インカム越しに聞こえる救急車のサイレン、そして、誰かの荒い呼吸音だけだ。
「蓮実君、助けてくれ……! 電子カルテが、全部、消えかかっているんだ!」
スピーカーから漏れるのは、聖マリアンナ記念病院のIT部門長・佐藤の声だ。
かつて僕がホワイトハッカーとして脆弱性診断を請け負った時のクライアント。
僕は無言で、手元のメカニカルキーボードを叩いた。
黒いコンソール画面に、緑色の文字列が猛烈な勢いで流れる。
「佐藤さん、落ち着いて。状況はパケットログで見ています。外部のC2サーバーに向けて、院内のNASから大容量のデータが送信されている。……最悪だ。暗号化だけじゃない。情報の窃取も同時に行われている」
モニターの中央に、真っ赤な警告ダイアログが居座っている。
『Your network is encrypted. Pay 50 BTC within 4 hours.』 身代金は50ビットコイン。
日本円にして数億円。期限はわずか4時間。
「支払いには応じないでください。応じたところで、彼らがデータを戻す保証はない。……結衣、聞こえるか」
「ええ、バッチリ」
インカムから、風を切るような軽やかな声が返ってきた。
2. 潜入
【結衣視点:10:05 AM】
私は病院の地下駐車場で、用意していた白いガウンを羽織った。
首には偽造したIDカード。
「医療情報管理センター」の文字が刻まれたカードは、昨日蓮実が3Dプリンターで仕上げたものだ。
「ターゲットの病院にチェックインしたわ。現在、地下1階からエレベーターで1階ロビーへ移動中。……それにしても蓮実、ここ、空気が重いわよ。看護師さんたちがパニックになってる」
「当然だ。電子カルテが見られなきゃ、点滴の量も手術のスケジュールもわからない。……結衣、急げ。感染源はメールじゃない。ネットワークの内側からワームが放たれた形跡がある。誰かが直接、院内の端末に『何か』を仕込んだはずだ」
私はエレベーターの鏡で、自分の表情をチェックする。
自信に満ちた、仕事のできる専門官の顔。
「人間ハック(ソーシャル・エンジニアリング)」の基本は、相手に疑わせる隙を与えないこと。
ロビーに出ると、阿鼻叫喚の光景が広がっていた。
受付のスタッフは紙のメモを書き殴り、高齢の患者たちは不安げにモニターを眺めている。
私はその喧騒をすり抜け、ロビーの隅にある「無料充電スポット」に目を留めた。
「蓮実、怪しい場所を見つけたわ。待合室の公共USBポート。ここ、院内Wi-Fiのアクセスポイントの真下よ」
「……ビンゴだ。ログを確認した。そのポート、裏側の配線が共有ハブに直結されている。本来は物理隔離されているべき場所だ。……結衣、ポートの裏側を覗けるか?」
私は周囲を警戒しながら、しゃがみ込んでスマホのカメラをポートの隙間に差し込んだ。
「……あったわ。超小型のシングルボードコンピュータ。『Raspberry Pi Zero』が、ガムテープで固定されてる。ここから院内LANに侵入して、特権IDを奪取したんだわ」
3. 攻防
【蓮実 視点:10:20 AM】
結衣から送られてきたMACアドレスを元に、僕は敵の攻撃ルートを逆送する。
「結衣、そのデバイスを引っこ抜くな。まだだ。今抜けば、犯人の手元に『通信途絶』のアラートが飛ぶ。そうなれば、あいつは即座にデータの全消去コマンドを実行するだろう」
僕の指先が加速する。
Nmapでネットワーク内をスキャンし、犯人が現在進行形でどのサーバーを叩いているかを特定する。
敵は狡猾だった。
踏み台を幾重にも経由し、通信をTorネットワークで難読化している。
「……見つけた。敵のメイン・プロセスだ。……待て、これは?」
画面に表示されたコードの断片を見て、心臓が跳ねた。
ランサムウェアの暗号化ロジックの中に、不自然なコメント行が挿入されている。
// Gift for the fake buzz reward.
「偽装バズの報酬……?」
その文字列を見た瞬間、数年前の記憶がフラッシュバックする。
かつてネット上を騒がせた、無差別サイバー攻撃事件。
その中心にいたとされる伝説的ハッカー『パペットマスター』。
「蓮実、どうしたの?」結衣の声で我に返る。
「……いや、なんでもない。結衣、犯人はまだ院内にいる。そのRaspberry Piに電波を送っている親機(スマホかPC)が、半径50メートル以内にあるはずだ。結衣、電波強度(RSSI)を測定して、犯人を追い詰めてくれ」
「了解。私のスマホをスペクトラムアナライザに切り替える。……蓮実、あんたはそっちで『盾』を頼むわよ」
4. 決戦
【結衣 視点:10:45 AM】
スマホの画面上で、青い波形が激しく上下している。
犯人の発するWi-Fiの信号。それは、3階の非常階段付近で最大になった。
私は足音を殺し、扉を開ける。
そこには、フードを深く被った男が、階段に腰掛けてノートPCを叩いていた。
男の横には、病院の清掃員の制服が入ったバッグ。
「……見つけた」
私が声をかけた瞬間、男の肩が跳ねた。
男は一瞬、私とスマホの画面を交互に見て、すべてを察したように立ち上がる。
「蓮実! 接触したわ! 非常階段、3階踊り場!」
「結衣、気をつけろ! そいつ、今キーボードを叩いたぞ。ワイプを開始した!」
インカム越しに蓮実の怒号が響く。
男はニヤリと笑い、ノートPCのエンターキーを強く叩いた。
「……終わりだ」男が低く呟く。
【蓮実 視点】
モニターが真っ赤に染まる。
『Deleting Root Directory... 10%... 20%...』
電子カルテ、処方箋データ、手術支援ロボットの制御OS。すべてが消えていく。
「……させるかよ!!」
僕はあらかじめ用意していた「サンドボックス」を起動する。
仮想空間に構築した偽のファイルシステム。
そこに敵の攻撃プロセスを強制的にリダイレクト(転送)させる。
物理的なキーボードの打鍵音が、銃声のように部屋に響く。
「iptables書き換え、ポート8080を遮断! 仮想ディレクトリへダミーデータを流し込め! 敵に『消去完了』の偽装パケットを送るんだ!」
残り5秒。
消去プログラムが「100%」を表示した瞬間、僕は通信を遮断し、バックアップサーバーからの復旧スクリプトを実行した。
5. 終局
病院のシステムが、ゆっくりと再起動を始める。
画面上の赤色は消え、本来の清潔なログイン画面が戻ってきた。
「……蓮実、確保したわ」
結衣の声が聞こえる。
背後では、駆けつけた警備員が男を取り押さえる音がする。
だが、僕の心は晴れなかった。
僕の手元のモニターには、犯人のPCから「逆ハック」で抜き出した、一通のテキストファイルが表示されていた。
『蓮実。君がこの病院を救うことは計算済みだ。 これは、あの時の“偽装バズ”の続きに過ぎない。 10の依頼が完了した時、君は真実の報酬を手にすることになる。 まずは一つ目。おめでとう。』
「……パペットマスター」
僕は、震える指でその文字をなぞった。
この物語は単なるウイルスの駆逐では終わらない。
これは、僕と、僕たちの過去を弄ぶ「影」との、命を懸けた戦いの序章に過ぎなかった。
インカムから、結衣の少し疲れた、でも晴れやかな声が届く。
「蓮実? 聞こえてる? 終わったわよ。……晩御飯、何にする?」
僕は深く椅子にもたれかかり、乾いた喉で答えた。
「……ああ。帰ってきたら、話したいことがあるんだ。僕たちの『報酬』について」




