★阿修羅♪ 現在地 HOME > 掲示板 > IT1 > 345.html
 ★阿修羅♪
次へ 前へ
ごめんなさい、登録してないと頁に飛ばないですね。急いでコピペしておきました。(但し、画像はなし)
http://www.asyura.com/0306/it01/msg/345.html
投稿者 クエスチョン 日時 2003 年 8 月 19 日 01:17:09:WmYnAkBebEg4M

(回答先: 「IEとスクリプトの“危険な関係”」の記事をWebでも見つけました。 投稿者 クエスチョン 日時 2003 年 8 月 18 日 23:21:57)

ごめんなさい、登録してないと頁に飛ばないですね。急いでコピペしておきました。(但し、画像はなし)

原文を読みたい方は登録してください。


IEとスクリプトの“危険な関係”(上)スクリプトの脅威

日経バイト2002年10月号,98ページより

図1[拡大表示]を見てほしい。これは,わずか10行ほどのスクリプトを含むHTMLファイル
である。ところが,これをInternet Explorer(IE)で閲覧すると,とんでもないことが
起こる。Windows 2000/XPマシンにバックドアが仕掛けられてしまうのだ。
実際にソースを見ていこう。まず,6行目で攻撃者がインターネット上に用意したサーバ
から「bkdr.exe」という実行形式のファイルをダウンロードする。これが完了すると,
「Welcome!」というメッセージをポップアップ表示する。そして,「OK」を押すと,
bkdr.exeが実行される。もし,このファイルがバックドア・プログラムなら,冒頭の悲劇
が起こる。そして結果的に,マシンはインターネットから,攻撃者に好きなように操作さ
れることになる。しかも,ほとんどのユーザはバックドアが仕掛けられたことを気づかな
いだろう。
なぜ,いとも簡単にこんなことができるか。それは,スクリプトがローカルにある
ActiveXコンポーネントを呼び出して,その機能を利用することができるからだ。ActiveX
コンポーネントとは,機能単位にまとまったプログラムの部品である。Windows 98以降の
Windowsは,ファイルやレジストリ操作,プログラムの実行,データベースへのアクセス
などが可能なActiveXコンポーネントを標準で備えている(図2[拡大表示])。

図1●スクリプトを使った不正アクセスの例。
Webサイトにアクセスしたマシンにバックドアを仕掛ける。VBScriptの例を示したが,
JScript(Microsoft版JavaScript)でも同様の攻撃が可能


図2●スクリプトとローカルのActiveXコンポーネントを使うことで可能な操作


スクリプトでアプリケーションを操作することもできる。代表的なのが米Microsoft社の
Officeだ。例えば,スクリプトでOutlookを操作し,メールを送ることもできる。
つまり,HTML中にローカルのActiveXコンポーネントやOfficeの機能を利用する不正なス
クリプトが含まれていると,Webにアクセスしただけで,攻撃者の思い通りにパソコンの
設定を変更されたり,ファイル操作やメール送信を実行される恐れがあるのだ。この場合,
インターネットから一切,怪しげなActiveXコンポーネントをダウンロードすることもな
い。このため,気づく可能性も低い。
破壊的な四つのシナリオ
では,どのような攻撃が考えられるだろうか。想像力を働かせればいくらでも考えられそ
うだが,ここでは悪質な四つの攻撃を示してみる。
一つ目は,図1に示した攻撃である。具体的に説明すると,この攻撃はスクリプトでロー
カルのActiveXコンポーネントを呼び出し,このActiveXコンポーネント経由でWindows
2000/XPが標準で備えるTFTPクライアント・プログラムを動かす。TFTPクライアントにパ
ラメータを与えて実行することで,ファイルをダウンロードする。そして,そのダウンロ
ードしたプログラムを実行する,という手口だ。冒頭ではバックドア・プログラムを例に
出したが,ウイルスなどの悪意あるプログラムを送り込んで実行することも可能である。
利用するActiveXコンポーネントは,Windowsが標準で備えるスクリプト実行環境Windows
Scripting Host(WSH)だ。WSHを使えば,アプリケーションの実行やレジストリ操作,ネ
ットワーク・ドライブのマッピングなどが可能になる。

図3●レジストリ操作(a)とファイル操作(b)をするスクリプト例


二つ目として,ウイルス対策ソフトを起動しないようにする攻撃が考えられる。ウイルス
対策ソフトなど,OSの起動と同時に立ち上がるアプリケーションはスタートアップ・フォ
ルダにショートカットが登録されているか,レジストリに登録される。スクリプトと
ActiveXコンポーネントを使って,ウイルス対策ソフトの起動に関するファイルやレジス
トリを削除するのだ。すると,次回からウイルス対策ソフトが常駐しなくなる。レジスト
リの操作は図3(a)[拡大表示]のようにWSH経由で行う。ファイルは図3(b)[拡大表示]
のように,File System Object(FSO)と呼ばれるActiveXコンポーネントを利用して操作
する。
ウイルス対策ソフトはバックグラウンドで動き,タスクバーに小さなアイコンが表示され
るだけだ。このため,起動していなくてもユーザの多くは気づかないだろう。ウイルス対
策ソフトが起動していると思い,安心してメールを見ていると,いつの間にかウイルスに
感染していたということにもなりかねない。
三つ目の攻撃は,受信メールの削除である。FSOを使ってファイルを操作し,メールが格
納されているディレクトリを削除すればよい。同様の方法で,友人や取引先のメール・ア
ドレスを登録したアドレス帳のファイルをすべて消すこともできる。

図4●Internet Explorerのセキュリティ設定。
インターネット・ゾーンにおいてアクティブ・スクリプトを許可し,安全マークのない
ActiveXコントロールの実行を許可しておくと図1のプログラムが動く

四つ目はレジストリを改変してOSを起動不能にする攻撃である。これは,WSHを使って起
動に必要なレジストリを改ざんするだけで可能になる。
IEのデフォルト設定では禁止
ただ,少し安心してほしい。ここまで述べてきた攻撃を,すべてのユーザが受けるわけで
はない。というのも,このスクリプトがデフォルト設定のIEで動くわけではないからだ。
これらの攻撃が可能になるには,IEのセキュリティ設定が特別な状態になっている必要が
ある。
具体的には,IEのセキュリティ設定の「スクリプトを実行しても安全だとマークされてい
ないActiveXコントロールの初期化とスクリプトの実行」と「アクティブ スクリプト」が
許可されていないと,うまく働かない(図4[拡大表示])。前者はローカルにあるActiveX
コンポーネントを実行できるかを決定する設定,後者はVBScriptやJScript(JavaScript
のMicrosoft版)の実行の可否を決める設定である。
IEではこれらセキュリティの設定を「インターネット」「イントラネット」「信頼済みサ
イト」「制限付きサイト」という四つのゾーンに分けて決めている。「インターネット」
は一般のWebサーバに適用する設定である。「イントラネット」はイントラネットのサー
バ用,「信頼済みサイト」と「制限付サイト」はユーザが明示的に指定した信頼できるサ
イトと,信頼できないサイト用の設定である。デフォルトでは「信頼済みサイト」「イン
トラネット」「インターネット」「制限付サイト」の順で機能が制限されていく。

図5●危険な設定を推奨するWebページの例。
画面例まで出して示し,危険性を一切伝えていない

インターネット上にある数多くのWebサイトをアクセスする場合,信頼済み/制限付きサイ
トに登録していなければ,適用されるのは「インターネット」ゾーンの設定である。IEの
デフォルト設定では,「インターネット」ゾーンで「アクティブ スクリプト」は許可し
ているものの,「安全だとマークされていないActiveXの実行」は許可していない。この
ため,デフォルト設定のままだと,ローカルのActiveXコンポーネントが動かず,前述し
た不正なスクリプトが実行されることはない。
いいかげんなWeb管理者
では,このような不正なスクリプトの脅威は恐れなくてよいのか,と言えばそうではない。
インターネットを日々利用していると,セキュリティ設定が甘くなる可能性があるのだ。
いったん甘い設定をしたら,それを新たに見直すことはほとんどない。
日々の利用で設定が甘くなるのは,設定を甘くしないと使えないサイトが少なからずある
からだ。実際,「安全マークのないActiveXの実行」を許可するように求めているサイト
は山ほどある。検索サイトでこの設定を推奨しているサイトを調べると,100以上のサイ
トが容易に見つかる。Webページを作る側が,いかにこの問題に対してルーズかがわかる。
図5[拡大表示]はその典型例だ。サービス利用のための設定として,画面例まで示してい
る。「安全マークのないActiveXの実行」を許可した場合の問題点はまったく記述されて
いない。このようないいかげんなWeb管理者によって,スクリプト被害の危険性が拡大し
ているのだ。セキュリティ設定の甘いユーザが増えるほど,それを狙って攻撃を仕掛けて
くるクラッカーも増える。
(中道 理,藤田 憲冶)

IEとスクリプトの“危険な関係”(中)クロスサイトが危ない

日経バイト2002年10月号,98ページより
***** 前回(上)を読む*****
クロスサイトが危ない
このほか,クロスサイト・スクリプティングと呼ぶ手法を使い,ローカルのActiveXコン
ポーネントを強制的に実行させられるケースも考えられる。クロスサイト・スクリプティ
ングとは,Webサーバが文字列を適切に処理していない場合に可能になる攻撃である。信
頼済みのWebサーバがこの欠陥を抱えていた場合,攻撃者の用意した不正なスクリプトが
「信頼済みサイト」ゾーンの設定で動き,ローカルのActiveXコンポーネントが使われる
恐れがある。
IEのデフォルト設定では,「信頼済みサイト」は「安全マークのないActiveXコントロー
ル」の実行が「ダイアログに表示する」になっている。この場合,「安全マークのない
ActiveXコントロール」が実行される前に実行を確認するメッセージが出る。しかし,こ
のメッセージの意味はわかりにくい。このため,多くのユーザは深く考えずに「はい」を
押してしまう。結果,スクリプトとローカルのActiveXコンポーネントが動く。

図6●典型的なクロスサイト・スクリプティングの手法


図6[拡大表示]がクロスサイト・スクリプティングの典型的な手法を示したものだ。攻撃
者が信頼済みのサイト(多くのユーザが信頼済みに登録していると思われるサイト)の
URLに,不正なスクリプトをつなげたものをリンク先として登録する。ユーザが,このリ
ンクをたどり指定先のURLにあるファイルにアクセスしようとする。しかし,相手のサー
バはスクリプト部分に相当するディレクトリやファイルがないため,ページが見つからな
い旨のメッセージを返す。この際,エラーを起こすWebサーバが適切に文字列処理をして
いれば問題は発生しない。しかしそうでなければ,このエラー・メッセージの「○○とい
うファイルが見つかりません」の○○部分に問題のスクリプトが埋め込まれる。
Webブラウザはこれをメッセージとは認識せず,スクリプトとして解釈し実行する。信頼
済みサイトから送られてきたスクリプトのため,ローカルのActiveXコンポーネントも呼
び出してしまう。
また,アクティブ・スクリプトや安全マークのないActiveXを実行できないように設定し
ていても,この設定をスキップするセキュリティ・ホールが過去に多数見つかっている。
最新のパッチでこれらはふさがれているものの,今後も同様のホールが見つからないとは
言い切れない。
いつ被害に遭ってもおかしくない
スクリプトとローカルのActiveXコンポーネントを使った攻撃は,すぐ目の前にある現実
の問題である。すでに,ActiveXコンポーネントを悪用した不正なWebページやウイルスは
存在する。実際の被害も報告されている(別掲記事「スクリプトを使った有名な攻撃」を
参照)。
ローカルのActiveXを使った不正アクセスで有名なのが,2001年8月に起こった「プライス
ロト事件」である。この事件は,メディアゲートが運営するオークション・サイト「プラ
イスロト」にアクセスしたユーザのパソコンが起動不能になったというもの。原因はプラ
イスロトのページが何者かに改ざんされ,不正なスクリプトが埋め込まれていたことによ
る。このスクリプトはWSHを使用し,起動に必要なレジストリを改ざんするものだった。
しかも,IE5.5が抱えるセキュリティ・ホールを突き,「安全マークのないActiveXコント
ロールの実行」が許可されていなくても,レジストリを改ざんすることができた。

表1●VBScriptを作って作成された主なウイルス


ウイルスも1999年以降,ローカルのActiveXコンポーネントを使った悪質なものが登場し,
被害を与えている。代表的なものをまとめたのが表1[拡大表示]だ。
例えば,2001年5月に発見されたHaptimeは,FSOとWSHを使って感染を広げる。5.01以前の
IEとOutlook Expressの組み合わせを使っていた場合,ウイルス・メールをプレビューし
ただけで感染する。これは,特定のActiveXコンポーネントを,警告なしに実行してしま
うセキュリティ・ホールを利用することで実現している。
ウイルスの実体はスクリプトを埋め込んだHTMLメールである。Outlook ExpressはHTMLメ
ールの解釈にIEのコンポーネントを使っている。このため,IEと同様にHTMLメールにスク
リプトを埋め込むことでActiveXコンポーネントの実行が可能なのである。
具体的な動作は次のようなものだ。まず,感染するとメールの署名ファイルをVBScriptで
記述したウイルス・ファイルに書き換える。このとき,ファイル操作にFSOを利用する。
そして,ユーザが作成するメールの書式がデフォルトでHTMLメールになるようにレジスト
リを書き換える。感染したマシンを使ってメールを送るごとに,ウイルス(署名部分)付
きのメールを送る。
このほか,IEではなく,WSH上で直接動くスクリプト・ウイルスもある。これらを若干改
造してHTMLに埋め込めば,Webページを見ただけで同様の動作を起こすことが可能だ。
なかでも最も有名なのがLoveletterウイルスだろう。これは「I Love You」と書かれたメ
ールに付いてくる添付ファイルを開くと感染し,Outlookのアドレス帳に入っているユー
ザ全員に向けてウイルス付きメールを送信してしまうというものだ。パソコン内のファイ
ル削除という破壊活動もする。OutlookのActiveXコンポーネントとWindowsが標準で持つ
ファイルを操作可能なActiveXコンポーネントなどが利用されている。
Loveletter同様,WSHを使って動くプログラムにNetlogと呼ばれるウイルスがある。この
ウイルスは,実行すると適当なIPアドレスを生成し,ネットワーク上でCドライブを共有
しているマシンを探す。見つかれば,Jドライブとしてマップする。加えて,スタートア
ップ・フォルダにウイルスを登録する。破壊活動はしない。

スクリプトを使った有名な攻撃
スクリプトやActiveXコンポーネントを使った攻撃は,これまでにも何度となくさまざま
な雑誌や新聞,Webページで警鐘が鳴らされてきた。
スクリプト単独での攻撃として有名なものに,ブラウザ・クラッシャと呼ばれるものがあ
る。このスクリプトが記述されたページを開くと,多数のウインドウが開く。あまりにも
多くウインドウが開くため,システムが不安定になり,再起動を余儀なくされる事態に陥
る(図A-1[拡大表示])。これはIEだけでなくNetscapeなどでも起こる。
同様の手口で,Webブラウザと関連付けられたメール・クライアントのメール送信画面を
多数開く攻撃もある。こちらも同様に再起動が必要になる可能性がある。
AcrtiveXコンポーネントを使った攻撃では,悪意あるActiveXコンポーネントをインター
ネットから巧みにダウンロードさせ,これを実行することでユーザの意図しない設定に変
えるものが有名だ。この攻撃は非常に危険である。レジストリの操作やファイルの消去,
各種設定の変更などあらゆることが可能になる。
具体的な事件としては,ISP接続のダイヤルアップ先を海外のアクセス・ポイントに書き
換える攻撃が知られている(2002年6月号特集2「目の前にあるネットの罠」を参照)。
この攻撃は,アダルト・サイトによく仕掛けられている。あるアダルト・サイトでは,ア
クセスすると「18歳以上か」というメッセージが表示される。「はい」と答えると不正な
ActiveXコンポーネントを勝手にダウンロードする。その後,ページのどこかのリンクを
押すと,このActiveXコンポーネントが動く。ActiveXコンポーネントはダイヤルアップ先
を書き換え,国際電話経由でISPにつなぐようにする。
クリックするとActiveXコンポーネントが実行されるのは,図A-2[拡大表示]のような「ク
リックするとActiveXを実行する」という意味のスクリプトが,ページのさまざまな個所
に記述されているからである。筆者が調べたサイトでは,Webページに記載された50以上
のリンクすべてに,この仕掛けが施されていた。

図A-1●ブラウザ・クラッシャの画面例。
このほか,デフォルトのメーラのメール送信画面を多数表示する攻撃もある


図A-2●不正なダイヤルアップを実行するActiveXコントロールとそれを制御するVBScript

IEとスクリプトの“危険な関係”(下)IEがActiveXを利用する仕組み

日経バイト2002年10月号,104ページより
***** 前回(中)を読む*****
本文中で述べた脅威は,そもそもInternet Explorer(IE)がローカルのActiveXコンポー
ネントを呼び出し,その機能を利用できることが原因となっている。
ActiveXはインターネットに関連する技術の総称だったが,現在ではCOM(Common Object
Model)を使って構築された技術をActiveXと呼び,ほぼCOMと同義のように使われている。
ActiveXコンポーネントとは機能単位にまとまったプログラムの部品である。プログラマ
はこれらコンポーネントを呼び出すことで,OSの機能を簡単に利用できる。レジストリを
書き換える場合を例にすると,「レジストリのこの部分のこのキーの値を『A』という値
にする」ということをActiveXコンポーネントに依頼するだけである。
WindowsはActiveXコンポーネントの塊である。例えば,本文中で述べたスクリプト実行環
境WSH(Windows Scripting Host)やファイル操作用のFile System Object(FSO)以外に,
データベース・アクセス用のADO(ActiveX Data Objects),ディレクトリ・アクセス用
のADSI(Active Directory Service Interfaces)などのActiveXコンポーネントも標準で
備えている。また,Officeや一太郎などのアプリケーションもActiveXコンポーネントを
備える(図B-1[拡大表示] )。
これらのActiveXコンポーネントは,IEからスクリプト言語で記述された内容に沿って呼
び出される。IEは標準でVBScript,JScript(JavaScriptのMicrosoft版)の二つのスクリ
プト・インタプリタを持っている。どちらの言語で解釈するかはタグの中にある「<
SCRIPT LANGUAGE="○○">」の○○部分で決まる。スクリプト内でActiveXコンポーネン
トを使うように宣言した場合には,IEがそのコンポーネントを呼び出して処理を依頼する。
また,IEはダウンロードしてきたActiveXコンポーネントを呼び出して処理を依頼するこ
ともできる。具体的には「C:\Windows\Downloaded Program Files」(Windows 95/98/Me
の場合)または「C:\Winnt\Downloaded Program Files」(Windows NT/2000/XPの場合)
フォルダにダウンロードしたコンポーネントを呼び出せる(図B-2[拡大表示])。

図B-1●Internet Explorer(IE)とActiveXコンポーネントの関係。
IEからローカルに備えるActiveXコンポーネントとインターネット上からダウンロードし
たActiveXコンポーネントの両方を利用できる


図B-2●ダウンロードされたActiveXコンポーネントの例。
「C:\Windows\Downloaded Program Files」(Windows 95/98/Meの場合)または
「C:\Winnt\Downloaded Program Files」(Windows NT/2000/XPの場合)フォルダにダウ
ンロードされる


ActiveXコンポーネントはEXEファイルなどと同様にマシン上で直接実行されるバイナリで
ある。EXEファイルと同様の操作がOSに対して可能である。つまり,ダウンロードしてき
たActiveXが悪意あるプログラムだった場合,バックドアを開けることも,OSの各種設定
を変更することも簡単に行える。これが不用意にダウンロードしたActiveXコンポーネン
トが危ないと言われる理由である。
認証はローカルとダウンロードで異なる
ActiveXコンポーネントは使われ方次第で危険なものだ。ただ,IEは無条件にActiveXを呼
び出し,その機能を利用しているわけではない。適切なセキュリティ設定がされていれば,
不正なActiveXを呼び出さないような仕組みを用意している。この仕組みはローカルにイ
ンストールされているActiveXコンポーネントとダウンロードしてきたActiveXコンポーネ
ントで異なる(図B-3[拡大表示])。
ローカルにインストールされている場合は,ActiveXコンポーネントを起動する前にレジ
ストリ値を参照して,ActiveXコンポーネントを起動してよいかを決定する。IEでは,こ
のレジストリ値のことを「安全マーク」と呼んでいる。
図B-4[拡大表示]がその具体例だ。この画面はレジストリ・エディタで「Tabular Data
Control」と呼ばれるデータ整形用のActiveXコンポーネントのパラメータが書かれた部分
を表示させたものである。「HKEY_CLASSES_ROOT\CLSID」に並んだActiveXコンポーネント
ごとのレジストリの中にある「Implemented Categories」に
「7DD95801-9882-11CF-9FA9-00AA006C42C4」(Safe For Scripting)と
「7DD95802-9882-11CF-9FA9-00AA006C42C4」(Safe For Initializing)というキーがあ
れば,IEは「安全マーク付き」と判断する。もし,このキーがなければ,安全ではないと
判断する。

図B-3●ローカルにあるActiveXコンポーネントとインターネットからダウンロードした
ActiveXコンポーネントの認証方式の違い


図B-4●「安全マーク」の付いたActiveXコンポーネントのレジストリ設定例


ただし,本特集の後半で説明するIEのセキュリティ設定で「スクリプトを実行しても安全
だとマークされていないActiveXコントロールの初期化とスクリプトの実行」が許可され
ている場合はこの認証機構はスキップしてしまう。
一方,ダウンロードしたActiveXコンポーネントの場合は,ActiveXコンポーネントがディ
ジタル証明書を持っているかどうかで認証する。ディジタル証明書を持っている場合は,
ActiveXコンポーネントが改ざんされていないかを検証し,問題がなければ実行する。
証明書の発行は,米Verisign社などの証明書発行機関に依頼する。この際,会社の登記情
報など身元を提出/証明する必要がある。犯罪者は一般に自分の身元を知られたくない。
このため,悪意ある証明書付きのActiveXコンポーネントは作りにくい。ただし,認証機
関はプログラムの善悪は判断しないため,危険なプログラムでないという保証はない。
IEのセキュリティ設定で「未署名のActiveXのダウンロード」を許可していると,証明書
なしのActiveXコンポーネントをチェックせずに実行してしまう。
(中道 理,藤田 憲冶)

 次へ  前へ

IT1掲示板へ



フォローアップ:


 

 

 

 

  拍手はせず、拍手一覧を見る


★登録無しでコメント可能。今すぐ反映 通常 |動画・ツイッター等 |htmltag可(熟練者向)
タグCheck |タグに'だけを使っている場合のcheck |checkしない)(各説明

←ペンネーム新規登録ならチェック)
↓ペンネーム(2023/11/26から必須)

↓パスワード(ペンネームに必須)

(ペンネームとパスワードは初回使用で記録、次回以降にチェック。パスワードはメモすべし。)
↓画像認証
( 上画像文字を入力)
ルール確認&失敗対策
画像の URL (任意):
投稿コメント全ログ  コメント即時配信  スレ建て依頼  削除コメント確認方法
★阿修羅♪ http://www.asyura2.com/  since 1995
 題名には必ず「阿修羅さんへ」と記述してください。
掲示板,MLを含むこのサイトすべての
一切の引用、転載、リンクを許可いたします。確認メールは不要です。
引用元リンクを表示してください。