第四話
「犯人は日本政府のPRIME2サーバ群への侵入に成功してから渋谷駅の大掲示板をインターネット経由で乗っ取り、その成功を大々的に宣言した上でその証拠として電力網制御システムに入り込んで渋谷区中心部、つまり概ねビットバレーと呼ばれる地域への給電を停止した。そして、制御システム全体をロックして多重のトラップを施してからそのまま逃走した。これにより復旧作業は思う様に進まず、復旧が完了するまでには27時間を要した。それによる経済的損失は直接的な物だけで100億円を越え、二次・三次的な物を含めた経済的損失の全体像は今でも確定していない。」
チャチャイは、コーヒーを片手に目まぐるしく切り替わる画面を見ていた。
その画面の背景となっている壁紙は、ビルの壁面を覆う巨大な電光掲示板一杯に映し出されたPRIMEに対する勝利宣言の画像であり、その宣言には誇らしげに『M・N』と署名されている。
それは、体制側に対するハッカーの勝利を象徴する画像である。
元々M・Nの名はあの事件の1年程前から突然に天才的ハッカーの一人として、インターネット上で取り沙汰され始めた。
勿論その正体は全く窺えず、そのあまりの成果の大きさから、ハッキング集団の共用のハンドルネームではないのかとも言われている。
いずれにしてもその名は、いずれ来るであろうハッカー側の勝利、つまりPRIMEのハッキングをもたらす最有力候補と信じられていた。
それがこのビットバレー大停電で現実となったのである。
ハッカー達の中には、M・Nとは『マスター・オブ・ネットワーク』の略だと信じている者も多い。
M・N自身は何故かその後は積極的に行動する事を控える様になり、やがてフェードアウトしていったが、今でもその功績はハッカーの金字塔となっている。
チャチャイらハッカーの目標は、これに匹敵する金字塔を打ち建てて自分のハンドルネームをその横に並べる事なのである。
やがて警告音がして、画面が静止した。
既知のバックドア型の欠陥を持たないセキュリティが出てきた様だ。
バナーチェックの結果を確認してみると、この製品は各種の標準のユーザーIDが提供されているが、そのパスワードは使用者が任意に設定可能であるだけでなく、デフォルトのパスワードは最初のログイン時のみ有効な物で、初回ログイン後に必ず変更しなければならない。
つまり、デフォルトのパスワードは使えない訳だ。
ただし、このセキュリティには大穴が空いている。
ログインするためにはまず、ユーザIDとパスワードを入力する。
ログイン要求を受けたシステムは、その入力内容を使って認証システムにに、このユーザIDとパスワードのペアが登録されているか?という質問を投げる。
そして、認証システムからの回答がYesなら正しいユーザなのでログインを許可し、Noなら不正アクセスと見なして不許可とする。
この入力時に、パスワードに何か適当な文字を入れ、それに続けて文章でいえば『。』(句点)に相当する記号を入れて、その質問を強制的に区切ってしまい、更にその後ろに「1=1か?」といった『必ず答がYesとなる』別の質問の命令を注入する。
そうするとデータベースは、第一の質問にはNoを返すが、続けて第二の質問にYesを返す。
この時、質問を投げたシステムは、IDとパスワードのペアを確認する質問のみを投げたつもりでいるため、このYesを確認OK回答と判断してそのユーザに対してログインを許可するのだ。
コマンド・インジェクションと呼ばれるテクニックである。
勿論その単純さ故に、防御もさほど難しくはない。
要するに、パスワードの入力値の中に区切り記号が入っていたら不正アクセスと判断してエラーにすれば良いだけなのだが、セキュリティ意識があまり高くなかった頃は、その程度の機能の組み込みすら煩わしいと思われており、特に対処しない例が多く見られたのだ。
標準のIDとしては、システム管理者権限を持つrootから最も低い参照権限しか持たないguestまで色々取り揃えられている。
取り合えず同じ事なら高い権限でログインしたいので、ユーザーIDは一般的には最高権限を持つユーザIDとして良く使用されるrootとして、攻撃をかけたところ、拍子抜けするほどあっさりとログインに成功した。
とはいえ、次のログイン画面が表示されただけであるが、バナーチェックの結果によれば、これも同じ欠陥を持っている様だ。
早速先程のマクロを組み換えて、コマンド・インジェクション攻撃を自動化した。
こうして、次々とマクロを実行していった。
しばらくすると、再びエラーが出て画面が停止する。
コマンド・インジェクション対策が施されているシステムが出てきた様だ。
こうなると、実際にあるユーザIDとパスワードを探り当てて入力しなければならない。
とはいえ、大概ユーザIDは標準的な物が最初から用意されているので、それを使って対応するパスワードだけを探せば良い。
ハッキング情報ライブラリによると、この製品はパスワードに関するルールがかなり弛く、最低長ぐらいしか制約がないので、恐らくユーザーは暗記しやすい有意味な単語をパスワードに設定している可能性が高い。
そこで、ディクショナリ・アタックを掛けて見る事にした。
これは、最初に決めたID(今回はrootである)とパスワードに使われそうな単語(例えばIDと同じ『root』や『password』など)の登録してある辞書からそれらしい単語を順に取り出して対にして順次入力するという攻撃方である。
ツールを起動すると目まぐるしくログインダイヤログが明滅し、攻撃が始まった。
すぐに、正しいパスワードに行き当たった様で、ログイン完了のメッセージが出た。
とは言え何か別の動作をしようとすると、次のセキュリティが出て来る。
これも当然予想出来ていたから、またバナーチェックに戻る。
今度も同じ様な製品なので、同じツールを使用する。
そうしてしばらくは同じ作業を行っていたが、やがて再びマクロを組んで自動攻撃させた。
そうしている内に、パスワードの制約が少し厳しくなり有意味な文字列を認めないシステムが出て来たので、ディクショナリ・アタックからブルートフォース・アタックにツールを切り替えた。
これは、パスワードを『AA~A』から順に一文字づつ変更しつつ総当たりでリトライを繰り返すという物で、これをやるとリトライ回数が飛躍的に増加するから、同じアドレスからリトライすると容易に攻撃と判断されて、そのアドレスからのアクセスを拒絶する等の対応を取られてしまう。
だから、数回リトライする毎にプロキシサーバを切り換えて、別人を装う必要がある。
また、マクロを組み換えて攻撃を継続させた。
中々筋が良い、と彼女はほくそ笑んだ。
この調子なら、期待するスキルを持っているかもしれない。
期待に逸る胸を抑えつつ、次々とよりレベルの高いトラップをぶつけていった。
チャチャイは、自分が試されていると感じていた。
出て来るセキュリティの難易度が、確実に上がっているのだ。
ただ単に侵入を防ぐ事が目的なら『堅い』セキュリティだけを並べておけば良いのであって、始めの方の簡単なセキュリティは必要ない。
更に、難易度の順に並べる意味もない。
つまりこの相手は、侵入を防ごうとしているのではなく、侵入者がどれだけのスキルを持っているのかを測ろうとしているという事である。
良いだろう、それなら俺様がどれほどの腕前を持っているかを見せてやろうじゃないか、と腕捲りをしてコンソールに向かった。
彼女が繰り出すトラップは、小気味良いほどのペースで次々に片付けられて行く。
やがて彼女の手元には最後の一つを除いて、もう破られた物と同等のトラップしか残らなくなった。
別に侵入を阻止したいわけではないので、既に破られた物と同じトラップをぶつけても意味はない。
彼女は期待を込めて最後のトラップを繰り出した。
チャチャイは、いきなり見馴れた画面が出てきた事に面食らった。
これは、PRIMEのログイン画面である。
少なくとも彼の事前調査によれば、この領域はPRIMEとは接続していない筈だ。
勿論、画面だけをPRIMEそっくりに作って本物と誤認させるいわゆるフィッシングというテクニックはあるが、それは通常の流れの中で出て来るから誤認を誘う事が可能なのであって、ここまで散々ハッキングを繰り返した末に出てきた画面に騙される奴は居ないだろう。
とにかく、この画面が本物にPRIMEと連動しているのかどうかを確かめて見る必要がある。
少し考えてから彼は、おもむろに準備に取り掛かった。
久し振りにここまで来る攻撃者が出た。
前回の挑戦者は、この画面がただの飾りでは無い事に気付いた時点で、撤退してしまった。
彼女は、今度こそ失望しない様な結果となる事を期待しつつ、次の手を待っていた。
チャチャイは周到に準備をした上で、目の前のログイン画面にIDとパスワードを入力した。
勿論、自分の物ではない。
PRIMEにアクセスするためにはIDとパスワードだけでは役に立たないので、さほど厳重には取り扱われていないから、IDとパスワードだけならわりと簡単に手に入るのだ。
彼はそのうちなにかに使えるかもしれないと思って、数個の実在するIDを入手してあった。
識別用素数は手に入らないので、端末にはそれらしい適当な数値がセットしてある。
すぐにログインエラーが表示された。
もし、本当に見た通りPRIMEと繋がっているなら、当然の反応である。
チャチャイは、すぐに準備しておいたトラップを開けてみた。
このシステムが外部と通信を行うとしたらそのパケットが通過するであろうと思われる複数の箇所に、包囲網の様な形でパケットのログを取得するトラップを並べておいたのだ。
目指すログはすぐに見つかった。
確かにPRIMEの認証サーバに向けた認証依頼と識別用素数不一致の応答ログが残っていた。
このシステムは、どうやって実現しているのか見当も付かないが、PRIMEの外部から認証サーバと通信する手段を持っている様だ。
チャチャイは、腕組みしてしばらく考えていたが、以前から温めていたアイデアを実行する事にした。
ただし、そのためには少々事前準備が必要となる。