2012年9月22日土曜日

Internet Explorerのゼロデイ脆弱性

このところ話題になっている脆弱性について、ちょっと調べて見ました。


Internet Explorer の脆弱性により、リモートでコードが実行される


CVEの情報は以下にあります。



この問題は、Internet Explorer がHTML内のスクリプトを実行する際の処理に問題があるため、不正なWebページに利用者を誘導することで、任意のプログラムを利用者のPC上で実行できてしまうというものです。

少し、専門的な話になりますが、ブラウザは読み込んだHTMLやスクリプトを処理するため、内部に様々なファンクションを持っています。最近のWebページは動的に作成され、利用者の操作に反応して様々な動きをするように作られるため、これに対応できるような形で、様々な機能(コマンド)を動的に割り当てて、場合によっては並列に実行していくような仕組みとなっているわけです。

ここで、ある操作Aを実行するようなスクリプトを含むHTMLを読み込ませたとします。通常は、このHTMLが読み込まれた後、そこに書かれた操作が実行されるよう、読み込み時にスクリプトが解釈され、実行準備が行われます。具体的には、ヒープと呼ばれるメモリー領域が、その操作のために割り当てられて、そこに実行すべきコマンドのための処理が準備されます。そして、コマンドを実行する段階で、このコードを実行するための内部処理が呼び出されます。通常は、このHTMLが書き換えられると、ヒープは解放され、次に読み込まれたHTMLのために使われることになります。

HTML内に書かれるスクリプトでは、様々なイベントを検出して、処理を割り込ませることができます。たとえば、マウス操作などで、画面が都度変化するような処理はこれにより実装されます。たとえば、HTMLを読み込んで、準備が完了した際に特定の処理を呼び出すこともできます。こうしたイベントに対応するハンドラのためのコードもHTMLが読み込まれた時にヒープに展開されます。

では、ちょっと意地悪して、読み込まれた直後に実行されるコードから、あるウインドウ操作コマンドを起動し、そのイベントハンドラ内で、HTMLそのものを書き換えてしまったらどうなるでしょうか。通常は、書き換えに伴って、登録されていたハンドラも解除され、そのために割り当てられていたコード領域は開放されます。本来であれば、このハンドラから戻った際に、元のコードは存在しなくなっているので、処理を終了してしまわなければいけないのですが、実は今のIEではそうなってはいませんでした。イベントハンドラが先に実行され、そのあとでコマンドが実行されるような動きになってしまうことが原因で、既に解放されてしまっているヒープにある処理を実行しようとしてしまうのです。

これだけならば、異常なコードの実行として単にIEが落ちるだけで終わります。しかし、このHTMLが上位にあるHTMLのIFRAMEの中で実行されていて、イベントハンドラ内で、親フレームで定義された配列変数を書き換えるような操作をすると、解放されたヒープ領域は再利用され、うまくいけば、そこに好きなデータを書き込むことが出来ます。さらに、親フレームでは、スクリプトのデータとしてエンコードされたシェルコード(PC上の特定の操作を指示するようなコード)があらかじめ展開してあれば、子フレームから書き込んだデータによって、そこに制御を渡すような操作が可能になってしまいます。

つまり、このことが、任意のコードを外部から送り込んで実行させられる、ということなのです。

この脆弱性の修正はまもなくマイクロソフトから配信されるとのことですが、当面はIE以外のブラウザを使用しておきたいところです。IEを使う場合は、インターネットゾーンでのスクリプトの実行を禁止するなどの措置を当面はとっておく必要があります。また、IEをPC管理権限を持ったユーザが使用している際に、この脆弱性を攻撃されると、PCの制御を完全に奪われる可能性もあるので、注意が必要です。通常のネットサーフィンに使用する場合は、権限を制限したユーザの資格で実行すべきでしょうね。

(追記)

9月22日付けで、マイクロソフトから修正プログラムが緊急配信されています。

2012年9月18日火曜日

COMPUTER WORLD Web連載最終回です

COMPUTER WORLDのWebで連載してきた特集の最終回が公開されました。

クラウド時代のアウトソーシングのあり方を考える
――大規模障害に見る思わぬ落とし穴【第3回】

今回は、最終回として、クラウド時代のアウトソーシングで特に注意が必要になるポイントや、ユーザ、事業者双方での考え方のありかたなどを考えてみました。

2012年9月10日月曜日

COMPUTER WORLD サイト連載第二回目掲載です

COMPUTER WORLD Webに連載中の第2回目記事が公開されました。今回はファーストサーバ事故に関する考察を書いています。


2012年9月9日日曜日

(ISC)2のコングレスに行ってきます

本日から、フィラデルフィアで開催されるISC2のコングレスに行ってきます。1週間日本を離れますので、連絡などはメールにてお願いします。むこうの様子は、またレポートします。

2012年9月3日月曜日

COMPUTER WORLD 執筆記事のご紹介

COMPUTER WORLD (IDG)のWeb に記事を執筆しました。6月にあいついで発生した大規模障害事故から、現在のITアウトソーシングの問題を考える特集です。是非、ご覧いただき、感想をお寄せください。

COMPUTER WORLD 記事へのリンク