ハッカーの好奇心
時枝 山葵は誤解を恐れず有り体に言えばハッカーとよばれる人物である。
日課としているハッキング成果を漁っていたときの出来事だった。
ハッキングというと大げさであるが、本人がその場で手を動かして侵入したりするわけではない。彼がプログラミングしたスパイダーボットが代わりにあちらこちらに巡回して集めてきた成果を「なにかないかな?」と、しげしげと観察しする程度である。
ロボットを犬のようにしつけ、何かめぼしいものがあったら拾ってくるよう命じてネットという荒野に解き放つ。あとは、ときどき犬がなにか拾ってきていないか、犬小屋を確認する。それだけだ。ただ、犬に他人の家の鍵をあけさせたり、少しだけ特別なところに入り込んで痕跡ものこさず帰ってくるように「ちょっとだけ特別な」しつけをしているだけである。
彼の趣味は純粋に、ありあまる(少し迷惑な)知的探究心を満足させるためだけのものであり、データを壊したり、奪ったりするわけではない。いや、むしろクラッカーとよばれるおイタがすぎる連中がよからぬことをしでかそうとしていれば、からかい半分に邪魔することもある程度には人物は善良なのである。誰にも気が付かれずに世間の平和を守っている。どちら側かといえば正義の味方だとさえ本人はおもっているぐらいだ。
そういうわけで、今日も何か変わったことはないかな?という、おはようがわりのハッキング成果を確認していたわけだ。
その日、ある名門私立大学に「遊びにいった」ロボットくんS83号が帰ってきていなかった。
「ありゃ、蜜壺にでもハマったのかな?俺のボットを捕まえるなんて、とうとうあそこの大学にも腕たつ担当でも着任したか?」
山葵はセキュリティ担当者と「遊ぶ覚悟」をきめ、音信不通になっているロボットを遠隔操作から手動にきりかえて通信を始めた。
どうも巨大なデータにぶつかってしまい、目次をつくろうとしたが、それすらもままならない終わりのみえない大量のデータにボットが絡まってしまっていたようだ。
ファイル構造でもなく、データベースのような構造でもない。しかしそれでいて、すべての箇所がめまぐるしく更新されている。
侵入先のネットワークにぶらさっがっているマシンの演算スペックをすべて使い潰しているのに全容すらみえない、ばかでかいサイズだ。このような全容すらつかめない規模のデータは大学の研究室程度の物理記録容量では経済的に保持できないはずで、侵入したネットワーク内のさらに何か別の仮想ネットワークに接続してしまったのかもしれない。
通信帯域を限界まで広げ、データを眺めてみたが開始位置も終了位置もわからない。データが流れているだけだ。流れるデータを見ても読めはしない。それでも生のデータを見るのはデータの内容を読むというよりは鳥瞰し出現するパターン系統からなんのデータなのか、どのような暗号アルゴリズムをつかっているのかなどを判別するためである。画像なのか、音声なのか、数値データなのか、またそれをどのように圧縮しているのかは、豊富な経験をもつハッカーがデータを追えばある程度は想像がつく。
今回も生データを眺めつづけたことで、ある程度のパターンが頻出していることがわかった。
「これは、もしかしたら暗号化どころか圧縮すらもしてないんじゃね・・・??」
分析に必要な初期化説がたつと今度は簡単なプログラムを書く。出現するパターンがどこで切れるのかを判読させるため、粒度を変えながら再帰自己学習するちょっとしたスクリプトだ。このような繰り返し処理なら人間がやるよりもプログラムのほうが何億倍も早く処理することができるのだ。
プログラムを適用した結果、バイナリデータの奔流はノード構成に姿をかえた。人間がみてわかりやすいように樹形型の構成に切り替えたのだ。
あいかわらず文字化けしたデータが表示されているので意味はわからないが、意味のある繰り返しパターンの粒度をさがしだした。そこから俯瞰でみることが大切なのだ。ひとつごとのノードにはカウントできないほどの下位構造をもつものや数百しかもたないもの、さまざまな規模のものがあった。
やたらと複雑な下位構造もち、リアルタイム更新が多い、おおよそ約71億程度の下位構造をもつデータ群が目にとまる。そこに注目したのはたんなる予感的なものであるが、人間がAIより優れているのは直感力なのであるからして非合理かもしれないが、ある特定の条件下では直感に従うのは合理的なのである。
さらにプログラムを追加で書いて、類似度が高い群を検索する。条件を追加して対象を1億程度にまで絞り込むと、さらに条件を追加した。結果が3400万件ぐらいだとわかるとニヤリと笑った。さらに条件を足して絞りこみ100万件ぐらいにすると、そこからさらに条件をたして10万件ぐらいにする。一覧でならべ、さらに条件をついかして絞り込む。
そしてしばらくすると、画面に表示されているのはとうとう1つのノードのデータだけになった。
文字化けに混じって数字が緩やかに動いている。
山葵は部屋の中を移動したり、物を手にもったり、足をあげたりおろしたり、着ているものを脱いだりと奇行を繰り返えしながらデータを眺め、やがて一つの結論にたどり着こうとしていた。
それが信じられず、ぼーーっとモニタを眺めている。
部屋に午後3時を告げる時計のアラームが響き我にかえった。
・・・このデータは俺か??
なんだ、一挙手一投足まで監視されてるなんてことがありえるのか???
この一秒単位で変化しているのは経過時間だろうか?
年齢か?
年、月、日、秒?
書き換えは可能なようだな。
・・・。
ためしに10秒分だけ引いてみよう・・・。
何度かふわりと浮いた感覚がしたあと、部屋に再び午後3時を知らせる時計のアラームが鳴った。
山葵の、そこからの行動は早かった。
ここ1年分の宝くじや競馬の結果、念のため10年分の株価情報や金融商品情報を外部メモリにまとめて突っ込むだけでなく、めぼしいもについては紙でプリントアウトもし、デスクの下にあった非常用の持ち出し袋につめこむ。鞄を背負った状態でデータの状態を確認する。部屋を走るようにでていったかと思うと、外出用の上着を羽織り、そして土足のまま部屋に戻ってきた。
そして、興奮した様子で年を表しているとおぼしき箇所の数字を1減らしたのだった。




