Write Once, Run Anywhere

「一度(プログラムを)書けば、どこでも実行できる」というサン・マイクロシステムズのJavaのスローガン。
ハッカーにとっては、こんな実証コードがあれば嬉しいよね。

ところが、そんな実証コードが発見されちゃったんですよ。1つのコードで何百万というデバイスが乗っ取れるコードが!!

え?そんなの今さら珍しくないって?

そりゃ、汎用OSならそうかも知れないけど、今回の場合影響を受けるのは、なんとCisco IOS ルータ。 「IOS (Internet Operating System) は、色々なCiscoデバイスを実行可能だから、ビルドごとにそれに合った攻撃コードが必要。同じコードの使い回しはできない」というのがこれまでの考え。サポートされているIOSのビルドは1万5000以上。単純に計算すると、1万5000通りの攻撃プログラムを作成して、そのうちの1つしかヒットしないってこと? どう考えても、現実的じゃないでしょ。

それと、IOSの場合、イメージバージョンによってプログラムをロードする場所がまったく違う。このランダム化のおかげ(?)で、ペイロードの隠し場所を事前に予測できる攻撃プログラムの作成は、実質不可能だとされていた

されていた…(過去形)  そう、これまではね。

「FX」として知られるドイツのセキュリティ研究者によって、その壁はあっさりぶち破られましたよ。 FXが着目したのは、ROMモニタ(ROMmon)というソフトウェアの動作。ROMモニタを使用することで、特定のメモリ場所に攻撃コードを落として、実行させることに成功したみたい。FXは、先月開催されたセキュリティカンファレンスで、攻撃手法のデモを行い、実際に広い種類のCiscoルータを攻撃して見せた。どうやら、攻撃プログラムは、デバイスのCPUキャッシュを無効にし、その一方で悪質なコードをデバイスにロードさせるらしい。

ちなみに、この攻撃は現時点で2600シリーズや17000シリーズのルータなど、PowerPCプロセッサを使用するCiscoデバイスであれば有効とのこと。MIPSマイクロプロセッサを使用するCisco製品については、攻撃が成功するまであと一歩なんだって。

Ciscoのセキュリティチームは、現在この問題を調査中。実際のところ、どうなんだろう?

でも、もし本当にこの危険性が証明された場合、有効な対応策ってあるのかしら? パッチを適用するって、言うのは簡単だけど、やるとしたら怖いよねぇ。もし、IOSに大きな影響が出たら…?最悪、機能停止したら…? なんて思うとさ。

とりあえず、外部から直接ルータに送られているパケットは、片っ端から破棄するのが無難なようだ。

そういえば、Ciscoのルータが乗っ取られる脆弱性って、何年か前にもそれを公表するかしないかで訴訟にまで発展した問題があったよなー。Ciscoが、Black Hatカンファレンスでの講演を止めさせようとしたんだよね…。今回、この発見を取り上げているサイトも、問題の大きさの割には少ないと思う。まぁ、大袈裟に騒ぐ必要もないけどさ。