The way to a zero-day」より
February 2,2008 posted by Moti Joseph

 攻撃に使えるセキュリティ・ホールはどうやって見つけるのだろうか。

 攻撃対象アプリケーションのリバース・エンジニアリングから始める者がいる一方で,もっと安易な方法を選ぶ者もいる。安易な方法の一つが,Webサーフィンだ。

 「ゼロディ攻撃のためにWebサーフィンするとは,どういう意味だ?」と不思議に思うだろう。

 攻撃者たちは「問題にぶつかったアプリケーション開発者が,疑問をオンライン・フォーラムに投稿して助けを求める」と知っているのだ。

 開発者の投稿には,「こんなことやあんなことをしたら,Webブラウザがクラッシュする」といった内容のものがある。何らかのアプリケーションなどを「クラッシュ」させるコードを投稿する者も現れる。自分の投稿がセキュリティに悪影響を及ぼしかねないことなど,こうした開発者は理解していない。

 ところが攻撃者たちはそのことをよく知っている。セキュリティ・ホールを探す際に使うお気に入りのやり方だ。

 フォーラム投稿記事記事を見た攻撃者が,実際に機能するエクスプロイトを作る手順を紹介しよう。

 あるゲーム関連フォーラムで,「Caveman」というハンドルのメンバーが上記コードを投稿した。Cavemanによると,このスクリプトで他人のパソコンを「クラッシュ」させることに成功したという。

 なお,米ウェブセンスのセキュリティ・ラボでは,悪質なコードを見付けるためにさまざまなWebサイトを監視/分析している。こうした活動を通じ,ある悪質なWebサイトのWebページで,このフォーラムに投稿された上記JavaScriptコードが使われているのを見付けた。

 このコードの意味は分かるだろうか。

 この攻撃者は,Webブラウザのヒープ・メモリーにシェルコードを書き込み,ゲーム関連フォーラムで見付けた可能性のある「width="9999999" height="9999999"」というセキュリティ・ホールを突き,Webブラウザに対してヒープ破壊(コラプション)攻撃を仕掛ける。こうしてシェルコード実行に導き,そのマシンを自分のものにしようとする。

 この攻撃は,パソコンを「クラッシュ」させるだけでは済まない。

 我々は,このシェルコードの動作に疑問を持った。そこで,同シェルコードを簡単にC言語化し,ペイロードを実行してみた。

 このペイロードを実行すると,パソコンはEthernetの28876番ポートを監視するようになった。

 何を監視しているのか調べようとこのポートにtelnet接続したところ,答えが判明した。パソコンのシェル(コマンド・プロンプト)画面が現れたのだ。

 つまり,パソコンが乗っ取られて一巻の終わりだ。


Copyrights (C) 2009 Websense, Inc. All rights reserved.
本記事の内容は執筆時点のものであり,含まれている情報やリンクの正確性,完全性,妥当性について保証するものではありません。
◆この記事は,ウェブセンスの許可を得て,米国のセキュリティ・ラボの研究員が執筆するブログWebsense Security Labs Blogの記事を抜粋して日本語化したものです。オリジナルの記事は,「The way to a zero-day」でお読みいただけます。