沙織と真治のハッキング

「なによ、これっ!」

 あたしは悲鳴を上げた。そのパスワードハッシュはとんでもなかった。悪い予感的中だ。

 パスワードは普通八桁。どんなに多くても一六桁だ。

 しかし、そのハッシュの長さから判断する限り、このサーバのパスワードの長さは二〇桁だ。一六桁と二〇桁のパスワードの違いは、二倍の時間がかかるわけじゃない。指数関数的に解読に必要な時間が増大するんだ。多分一万倍以上の時間がかかると思う。

 あたしはトレードマークのでっかいかばんからたくさんのDVDを取り出した。

 そこには、たくさんのツール類と大量のレインボーハッシュが詰まってる。

 レインボーハッシュって言うのは、パスワードハッキングの効率化の方法の一つだ。

 この方法は、すべての文字の組み合わせのパスワードハッシュの計算で大変な部分をあらかじめ計算しておいて、それをテーブル化してハッキングするときに使って、計算時間を大幅に短縮する方法だ。

 だから、どんな文字列の組み合わせでも問題ない。やることといえば、その準備したレインボーハッシュと、パスワードハッシュをぶつけるだけでいいんだ。

 言ってみれば、テストで回答集を見ながら問題を解くようなもの。

 ただ、当然、レインボーハッシュはすっごく大きいサイズだ。

 DVDで一五枚。

 これが全部テーブルデータになる。

 その代わり、計算する時間がほとんどないから、力業のブルートフォース攻撃とは比べものにならない位速くパスワード解析ができる。

 ただ、このケースは桁数が多すぎて、レインボーテーブルをそのまま使えない。

 作業には、一年以上かかるかもしれない。どれだけ時間がかかるか、全然予想が付かない。

 真治もすぐにそれに気がついたようだ。

「解析用のコンピュータをかき集めて分散処理しよう。俺は、そのためのプログラムを作る」

 分散処理っていうのは、大量の計算が必要なときに、たくさんのコンピュータで作業を分担して処理を分けることを言う。二台でやれば処理時間は半分だし、一〇台でやれば一〇分の一になるよね?

 ただ、勘違いされがちだけど、CPUのスピードを一〇倍するのと、PCの台数を一〇倍にするのは根本的に違うものなんだ。

 CPUのスピードを一〇倍にするなら、どんなやり方をとっていたとしても、スピードは一〇倍になるから、特に対処は不要だ。だけど、PCの数を一〇倍にしても、プログラムの計算速度は変わらない。

 だって、もしPCを一〇台同時にプログラムを動かしても、同じ結果が一〇台で出るだけだよね? 

 一〇台のPCを使って早く処理をするためには、各PCに最も効率の良いやり方で分担する仕組みがプログラムで対応されていなければならないんだ。

 例えば、それぞれのPCが作業するデータ範囲の一〇分一にして、出来上がったら全部を取りまとめて全体の結果にするような作業だ。

 そうすれば処理時間は一〇分一にはならないけど、大幅に短くなる。

 この分散化対応っていうのがプログラムで特に難しい部分と言われている。

 そんなことをせずにCPUを一〇倍の速度にすれば早いんだけど、その為のコストは軽く一万倍を超えるだろう。

 一〇台買うなら一〇倍ですむんだから、そっちの方が経済合理性が圧倒的に高いってわけ。

 真治は、プログラミングとかがあたしよりずっと得意で、たいていのツール類はあたしの何倍も早く作っちゃう。

 だから、今回も真治にお願いすることにした。あたしはあたしのできることをすればいいんだ。

 真治の言葉に、あたしは頷いて「どれ位作成にかかる?」と聞いたんだ。

 真治はすぐに答えた。

「サンプルはある。あとは手直しだけだから、二時間もあればできるだろう。できるだけたくさんの解析機を集めて作業しよう」

 あたしは頷いて、C4中から、すぐに解析に使うコンピュータを一杯集めてきた。

 全部で一六台。加奈子と協力して、解析室に運んだけれど、結構重かった。あたしの細くて綺麗な腕が棒みたいになった。

 真治がプログラムを作り終えるまで、まだ時間がある。

 あたしは気になることを調べてみることにした。

 それは、国際決済用サーバがDoS攻撃されていたことだ。

 あたしが調べたかったのは、その国際決済用サーバに毎分何億も渡されているデータがどんなものか、そして、それがどういう意図によるものかって言うことだ。

 あたしは、さっきドメインネームサーバに侵入できている。

 つまり、国際決済用サーバがあるネットワークの内側に入れるということだ。

 そこからネットワークの外側、つまりインターネットに向かって通信をしてみて、外部とのやりとりに関するネットワーク構成を調べてみた。

 それはそんなに複雑じゃなかった。

 ただ、その中にはやたらと反応が遅い機器がいくつかあった。

 たぶんそいつらが国際決済用サーバに関するネットワーク機器だ。毎分億単位の通信がされているのだから処理が遅くもなるだろう。

 だいたいの機器構成を調べた後、あたしはその通信のパケットを横取りして入手する方法を思いついた。

 ちょっと力業だけど、たぶん大丈夫だ。

 パケットというのは通信をするときの最小単位のデータの固まりだ。インターネット上でデータはパケットという単位に分割されて通信される。

 あたしは資料を積み重ねた席で真剣にプログラムを作ってる真治に話しかけた。

「真治、あたし、国際決済用サーバに行われているDoS攻撃がどんなものか調べたいんだけど、やっていい?」

「できる範囲で自由にやってかまわない」と真治は忙しそうに言ったが、ふと顔を上げて聞いてきた。

「どうするつもりだ?」

 あたしは真治にゆっくりと説明する。

「内部のスイッチングハブのルーティングテーブルを溢れさせて、フェイルオープンモードで動作させるの。そんで、さっきハッキングしたサーバをプロミスキャストモードで動かして国際決済用サーバのデータを入手しようって言うわけ」

 まず、大量のおかしなパケットを投げつけるツールを実行し、ネットワーク機器スイツチングハブを混乱させる。そうすると、フェイルオープンモードという状態になって、全部のパケットをオウム返しに全部の機器に送り返すようになる。

 言ってみれば、変なパケットでメモリルーティングテーブルが一杯になったら、どこに送れば良いのかわからなくなるから、全部の機器に送ってなんとか届けると言うのがスイッチングハブの挙動なんだ。

 その混乱に乗じて、国際決済用サーバに渡そうとしているパケットを、特別なプロミスキヤストモードで動かした別のサーバで読み取ることができる。一般的に自分に向けられていない通信は、受け取った直後に破棄される。それを破棄せず全部受け取る設定がプロミスキャストモードなんだ。

 他のサーバ宛に送られたパケットをのぞき見するために、別のサーバを乗っ取って読み取る。

 面倒だが、国際決済用サーバのパスワードが分からない以上、侵入できたサーバで他のサーバに送られた情報を読み取るためにはそうするしかない。

 真治は、この短い説明で全部分かったらしい。

「やってくれ」と言った後、真治は付け加えた。

「沙織、頼りにしてるよ」

 突然の真治の言葉に、あたしはちょっとどきどきして、顔が赤くなっちゃった。

「な、何いっちゃってんのよっ」

 あたしはぷいっと、自分の席に戻ると、作業を続けることにした。

 でも、どきどきした気持ちはなかなか止まらなかった。


 作業そのものは簡単だった。準備を含めて一五分くらい。

 そしてあたしは、そのデータを見た。

 それは暗号化されていない平文だったから何をやっているか、すぐに分かった。

 そして、それを見たあたしは唖然とするしかなかった。

 大量のパケットはDoS攻撃じゃなかったからだ。

 それはログイン試行だった。

 何度も何度も管理者権限のログインを試みているんだ。パスワードを変えて、何度も試行している。

 一体誰がやっているんだろうか?

 送信元IPアドレスをちょっとだけ見た。バラバラだったけど、一〇〇くらいのIPアドレスを書き留めて、加奈子に命じて調べさせた。

 三〇分くらいしたら、加奈子が調べた結果をあたしに報告してくれた。

 それは世界中から。そして不特定、そして不規則なIPアドレス。

「ということは?」

 この国際決済用サーバは、世界中から侵入のためのパスワード攻撃を受けている。

「誰が? そして何のために?」

 ひょっとして、この間死んだ坂上が、アンダーグラウンドのコミュニティで情報提供を求めた時、クラックに必要な情報の一部を開示してしまったからだろうか。

 クラッカーたちが大挙して攻撃しているのは、確かにあり得る。

 だが、そうだとしても、こんなに力任せで単純なパスワード解析攻撃なんて手段を使うとは思えない。

「それに、なぜこのシンジケートは攻撃を放置しているんだろう?」


「全世界からクラッキングか」

 真治はため息をついて続けた。

「まあ、このシンジケートが攻撃されることは珍しいこととは言えないが、対策を講じないのは不自然だな。特に、このサーバはこのシンジケートにとってきわめて重大なものだからな」

 真治は分散処理のプログラムを作り終わって、今一六台の解析コンピュータで解析作業をしている。その進捗状況を見る限り、どんなに早くても一年以上かかりそうだ。

 真治は、いろいろ対応を考えているらしいけど、とりあえず今は休憩時間だ。単なる作業者なら別だけど、あたしたちのような仕事をする人は、休憩時間とか十分な睡眠時間がなければ、満足な仕事はできない。疲れたときにできる仕事は、それなりのものでしかないんだ。あたしはそれを実体験でよく知っている。

 だからあたしは実は着替えと寝間着を持ってきていた。

 この話が終わったら、シャワーを浴びてから休憩室で寝るつもりだった。

 ちなみに真治は解析室に折りたたみ式のベッドを広げて寝る予定らしい。

「あたしは思うんだけど」とあたしは自分の考えを言ってみる。

「このパスワード解析は、このシンジケート自身がやっている気がするんだよね」

 真治はびっくりしたようだった。

「なんで?」

「もしこのシンジケートのサーバ管理者がとんでもない馬鹿だったら話は別。だけどそうじゃないなら、IPアドレスも変えずにそのまま運用する理由がないもの」

 あたしはそう言って説明を続ける。

「パケットを見る限り、IPアドレス指定でクラッキングしてる。名前解決なんてしてないよ。もしそんなことをしてたら、あたしが侵入したドメインネームサーバなんて、負荷がめちゃかかってたはずでしょ?」

 あたしの説明に真治は頷いた。

「そりゃそうだな」

「だから、あたしの予想は、このシンジケートは、その場でやるローカルハッキングより、ネットワーク越しのリモート解析の方が早いと判断する何かの理由があって、自分でも分からなくなった管理者のパスワードを探し出そうとしてる。そう思うんだけど」

「あり得ない」と真治は即座に否定した。

「リモートからのハッキングを選ぶ理由なんて聞いたことないぞ」

 あたしも真治の意見に反駁できなかった。

 正論だ。

 その場のコンピュータで行うローカルハッキングのほうが、ネットワーク越しに行うリモートハッキングの何十倍も簡単で速いのは常識なんだ。

 もし両方が選べるなら、わざわざリモートから解析をしようとするバカなんていない。でも、そう考えるしかなかったんだ。あたしは真治に言った。

「あたしもそう思う。だけど、それ以外に合理的な説明がないんだから、その調査もすべきだよ。あたしはプロフェッショナルだよ。あたしを信じてくれない?」

 真治はあたしを見つめた。考えているみたいだった。

 あたしは真治に重ねて言った。

「真治。あたし、失敗するかもしれないけど、でも、真治に信じてもらいたいんだ」

 あたしは真治に訴えた。

 真治はあたしを正面から見つめた後に言った。

「俺はいつも沙織を信じてるよ」

 真治はにっこりと笑った。

「だから信じろというなら信じるさ。やってみろ。俺はいつだって沙織をパートナーだと思っているからな」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る