ちょっとあぶないテスト

IEのセキュリティホール/ActiveXコントロールでどんなことが起きるのか

98/04/27 Updated (ちょっとだけね)


by 酒井 法雄


98/04/27

PCDNにご参加ください!

このページがすでにアップデートされなくなってしばらく経ちますが、このページは相変わらずコンスタントにアクセスされて いることに驚いています。
私の中ではすでに、インターネットに対応したMicrosoftの製品や技術のほとんどは、現状では使い物にならないという結論が出ていました。 そのため、いちいちセキュリティホールやバグについて追いかけることをやめたのです。
その間にも、次々とセキュリティホールやバグが報告され、修正されたものも少なくありませんが、こういったものはしょせんいたちごっこです。 サーバー関連についてはMicrosoftの製品を買うより、そもそもインターネットのベースとなったUNIXを使った方が安全に決まっています。
しかし、サーバーOSとしてのWindows NTに対する幻想はなお続いておりますし、Windows NTがちゃんと動けばとても嬉しいユーザーが 多いことも否定できません。

PCDNでは、このような二つの立場から、 pcdn.NTServerspcdn.unix の二つの WorkGroupを作り、それぞれについて現実的に運用する ためのノウハウを提供していくことになりました。詳しくは、それぞれのWorkGroupページをご覧ください。
これを機会に、PCDNにご参加ください!

click here!

click here!
Cyber Click!


はじめに

IEやWindows NTのバグあるいはバカな仕様、あるいはセキュリティホールについて、次々と報告がされています。
ここでは、その中からいくつかの事例を保証はしませんが安全に試せるサンプルとして体験できるようにしてあります。
当初、ちょっとした実験のつもりで作ったこのページですが、次々と報告される問題について、すべて検証することは、時間的制約からもさすがにできません。
内容についてはちょっと古いものも残っていますが、そのままにしておきます。
一連の問題についての情報は、中村正三郎のホットコーナーなどをご覧ください。
また、ActiveXコントロールをインターネットで使う危険性についても、デモを追加してあります。

このページをリンクすることに問題はありませんが、モノがモノだけに、ここで公開している各テストのURLに直接リンクを張るのはご遠慮ください。
また、このページをコピーしてイントラネットなどに転載することもご遠慮ください。
ほとんどのテストはこのページからのリンクでしか動かないようにしてあります。


.lnk .url 問題

3月3日、Microsoftは、Internet Explorer(IE) 3.01にセキュリティホールがあることを認め、急きょ対策を取ろうとしています。
#しかしまあ、セキュリティホールというよりはバカな仕様というのが正解でしょうね。

問題となっているのは、拡張子が.lnkおよび.urlというファイルの扱いです。 これは、Windows上のIEでは特別な扱いになっており、実行ファイルではないのに、認証システムをなんら通らずに実行されてしまいます。 .lnkファイルはリンク、つまりシンボリックリンクみたいなもので、本来は実体は別にあります。
.urlファイルはURLへのリンクです。結局は同じようなものです。
その実体が、あなたのローカルマシンにあるファイルならば、そのまま実行されてしまいます。
たとえば、.lnkファイルで 「ほにゃらら deltree /y *.*」のように書くことができるのです。これは、ディスク上のファイルをすべて消してしまいます。

厳密には、Windows NTでは .url のみ動作し確認ダイアログが出ます。Windows95では.lnkファイルのときには、セキュリティを高にしていても、いきなり動きます

このセキュリティの問題でも、ActiveXコントロールなどのようなEXEファイルは確認なしにダウンロードされることはありません。
あなたのマシンにないファイルだったら、ダウンロードして実行させることもできます。このときには、ちゃんと確認ダイアログが出ます。
ただ環境によってはバッチファイルは確認なしに実行されることがあるようです。

次のサンプルは、単純にDOSプロンプトを出すだけのものです。

テスト(.url) for Win95
テスト(.url) for NT

さらにいろいろなサンプル(こんなの作ってどうする)。右クリックしてダウンロードすれば、中身がどうなっているか分かるでしょう。
テスト(.lnk) for Win95 (懐かしいものが出てきます)
テスト(.lnk) for Win95 (ちょっとビビります)
テスト(.url) (懐かしいものが出てきます)
テスト(.url) (ちょっとビビります)

ここはテスト中
テスト(.lnk) EXEファイルをダウンロードしてみるテスト (これはたぶん動きません)
テスト(.url) EXEファイルをダウンロードしてみるテスト (EXE直接と変わらない)
テスト(.url) BATファイルをダウンロードしてみるテスト (BATだと実行確認の2つめダイアログが出ずに動きます)

この問題を回避するには、リンク先が .lnk や .url というファイルでないことを必ず確かめるようにするしかありません。
しかし、HTMLの書き方によってはクライアントプルでこのようなことを自動実行することもできますから、悪質なことをしようと思えばいくらでもできてしまいます。それも、MS-DOSの知識がある程度で...


.lnk .url へのMicrosoftの修正は、本質的な問題の解決ではない

Microsoft Corporationでは、この問題を解決する英語版の対策モジュールをすでに公開しています。日本語版についても即日公開ました。
インターネットエクスプローラセキュリティ修正プログラムをご覧の上、すぐにアップデートしてください。
マイクロソフトの素早い対応には拍手を送りたいのですが、みながスグに対策モジュールをインストールできるとは思えません。

# それにしても、Internet Mail や News の、RFCに準拠しない
# おかしな文字コードの扱い方や、わけのわからない独自拡張のヘッダーの仕様

# はどうして修正してくれないのか謎です。

# このヘンな文字コードの使い方がデフォルトになっている問題は、このページの4/11更新分のところで、
# IEのセキュリティホールを利用して、インターネットから自動的に直すことができます。

もっとも、ふつうのEXEをアンカーのURLに指定してあったり、HTML中にワケのわからないActiveXコントロールの指定があったときには、確認のダイアログが出るだけです。
実は、修正されたというのは、これと同じように確認ダイアログが出るというだけの話です。
そのままボタンを押して実行してしまったら、何が起こるかなんてわからないわけです。
たとえば、こんな具合(EXEを直接指定したもの)です。ダイアログが出たら、「開く」を選んでください。
これはVB4で作った EXE ですので、実行にはVB4 32bit版のランタイムライブラリが必要です。
5分ほどしてから動きます。何をやっているかは、ソースを見てください。

ちなみに、ActiveXコントロールでは Windows APIも使い放題ですから、 このようなこともできてしまいます。 (4/1 追加)

この仕様が放置されているままなことの方が、よっぽどヤバいような気がします。
ダイアログが出たときに、キャンセルを押せばいいなんていうのは詭弁ではないでしょうか。
お金を払って、きちんとデジタル署名の手続きするホビーユーザーなんていないでしょう。
この仕組みはイントラネットで使うためのものと考えた方がいいです。


他にも指摘されている問題と情報源について

このあたりの問題の詳細については、このことを発見した米国のCybersnot.comに詳細がありますが、その後もこれに関連して、IEやらINやらIMやらに多くの問題が指摘されています。

さらにヤバい問題が次々と報告されています。NT 4.0での問題(Netscape Navigatorでも問題は出る)、そしてNT用IEの問題です。
日本のNTユーザーズグループのJWNTUG NewsLetter 3月17日号で紹介されています。
そこからさらにいろいろリンクをたどっていくと、解決策として UNIX への Upgrade というのがあって笑ってしまいました。

このほかにも、まだいろいろあるようです。http://www.security.org.il/iebugs.htmlあたりをご覧ください。
ファイルシェア時にパスワードを盗むというのがあって、これがかなりヤバいです。


4/1 追加

.reg 問題

またまた出ました。
こんどは、拡張子が .REG つまりレジストリの自動登録をするファイルです。
ただし、これはちゃんと確認が出ます。出たらやめればいいのですが、つい「開く」を選んでしまうとどんなことになるのか...
レジストリを壊される可能性もあるわけですから、どのようなひどいことにも発展する可能性があります。
特にIEのセキュリティがらみでいくと、次のようなことができてしまいます(2番煎じだけど)。

セキュリティをなしにする reg
セキュリティを中にする reg
セキュリティを高にする reg


4/11 追加

Microsoft Internet Mail/Newsをお使いの方へ

.reg問題を利用した素晴らしい応用例

IEでの問題が紛糾していますが、MicrosoftのInternet News や Internet Mailも、 デフォルトではヘッダーに8bitのコードが入ってしまい、Mailing Listなんかではあちこちでエラーが起きまくります。
PCDNでも、このせいで毎日のようにエラーメイルが数百通も出て、大変迷惑しています。
はっきり言って迷惑なので、こんなソフトをばらまくのはやめていただきたいものです。 こういうとんでもないソフトをタダで配り、結局は使った人が罵倒されたりするのですからたまりません。 まあ、安物買いのゼニ失いという言葉もありますから...しかしこれは安物買いの信用失いですね。
パソコンやインターネットは、もはや専門知識のない一般ピープルも多いのですから、そういう人たちにも使えるような設定になっているべきです。
これは、「一家に一台パソコンがあって、そこではMicrosoftのソフトが動いている」という理想を掲げているMicrosoftの責務のハズです。

とはいえ、「オプションダイアログでどうやったらいいのかさっぱり分からないぞ」という方に、 とっておきの「こんないいもの」をご提供いたしましょう。
次のアンカーを選び、「開く」で実行してください。

Microsoft Internet MailとNewsの文字コード関係の設定を正しくしてくれるとっても便利な reg

これで、あなたのInternet Mail/Newsも正しく文字コードの設定ができました。
Microsoftのセキュリティホールのおかげで、自社プロダクトも正しく使えるようにできるのです。素晴らしいことですね。
もう、ほとんどブラックジョークといか言いようがありません。

しかし、ちゃんと設定しても、ヘッダー情報が一部おかしいので、何かと問題が起きますが...


4/29 追加

ActiveXコントロールからEXEを転送して実行できる

VB5でも作れる怖くて便利なプログラム

ActiveXコントロールをダウンロードするときには、一応ダイアログが開き、確認がされます。しかし、ActiveXコントロールさえ無害ならば大丈夫なのでしょうか?
この例はそうでないという実例です。 Visual Basic 5.0で作れるActiveXコントロールには、非同期にピクチャーやファイルを転送する機能があります。
したがって、EXEファイルを密かに転送、さらに実行することができます。
もちろん、そのコントロール自体が悪意があると言えなくはありませんが、そこから起動されるEXEに悪意があるものであれば、危険です。
次のページではこれを実現しています。ページ表示と同時に、上の例でも出てきた wh1.exe が転送され、密かに実行されます。ただし、ダウンロード中に別のURLに飛べば、実行されることはありません。

非同期でピクチャー/ファイル転送をするActiveX コントロール

転送され実行されるのは、Visual Basic 4.0で作られたEXEですので、実行にはランタイムライブラリが必要です。
ActiveXコントロールのこのような怖い側面は、イントラネットでは逆に柔軟性ということになります。ここまでできるのですから、ActiveXコントロールを社内業務で安全な範囲で使えば、非常に効果的なことは確かです。


5/4 追加

ActiveXコントロールで勝手に電子メールを送る

これはもうクラッカー寸前のテストです

もう一つ、これはかなり危ないActiveXコントロールです。
このActiveXコントロールを実行すると、次のような動作をします。

※98/04/27
Windows NTでもSPをあてるとこのプログラムは動かなくなるようです。また動くように直そうとも思いましたが、 すでにActiveXコントロールをインターネットに使うということ自体が忘れ去られた技術になりつつある現在、 その必要もなさそうかなと考え、そのままにしてあります。でも、時間ができたら直すかもしれません。

※このプログラムの動作にはWinSock 2.0(WS2_32.DLL)が必要です。Windows 95ではエラーが発生しますが、パスワードの表示だけはします。Windows NT 4.0以降でお試しください。
なお、E-Mailはレジストリに登録されている本人だけに送られます。他には送りませんので安心してください。
しかし、ためしてみたい方は、あらかじめ Internet Mailに、使わないパスワードを入れておいた方が良いでしょう。

ActiveXコントロールで勝手に電子メールを送る 危険です

これは、ActiveXコントロールをむやみにダウンロードすると危険であるというデモンストレーションです。
たまたま Internet Mailのパスワードが比較的カンタンなアルゴリズムだったので例に取りましたが、もちろん他のメイルソフトでも同様の危険性はあります。
メイルのパスワードを盗まれるというこのデモは、言い方は悪いですが、シロートにも分かりやすいので作りました。しかし、本当に危ないのは、そんなことではありません。ハードディスクの中身を消されたりすることでもありません。仕事に使っている機密のファイルすら、知らぬ間に転送されてしまう可能性があることです。しかもスグに分かるような証拠もなくです。
TCP/IPで勝手に通信できてしまうのですから、いくらでもそのような危険性はあるのです。
我ながら趣味の悪いデモプログラムになったと思っていますが、ActiveXコントロールにはこのような危険性があるということをおわかりいただきたいと思います。

ActiveXコントロールは、イントラネットなどある程度安全性が保証されている環境で使う分には大変便利なものです。
しかし、残念ながらどこに悪意があるか分からないインターネットで使うには危険です。クラッカーにとってもActiveXコントロールは便利なものなのです。
出所がはっきりしないActiveXコントロールはダウンロードしないようにしましょう。


おしまいに

ところで、3/21以降、中村正三郎さんのページからものすごい数の方がこのページに飛んできているようです。 中村さんのページ自体も普段よりずいぶんと参照されているとのことですから、みなさんがセキュリティについて敏感になっているんだなと思いました。

セキュリティについての技術検証は難しい側面もありますし、その内容をどこまで公開すべきかも問題です。私自身、暇をみて入ってきた情報を元にして 主にUSのサイトにアクセスしてみたり、その内容を見ながら独自に実験してみたりしています。 すると、イントラで再現するが、インターネット経由だと大丈夫とか、 その逆とか、いろいろなパターンがあります。なかなか再現が難しいのです。
しかし、やればやるほど、危なそうなことが頭に浮かんできます。このままだと、クラッカーになってしまいそうです(苦笑)。

いずれにしても、Windows NT 4.0まわりでのファイルシェアの問題は、どう考えてもアクセスリストのようなもので対処していくしかないでしょう。
IE 4.0 がディレクトリサービスと言いながら、単なるプロトコルのひとつに過ぎないHTTPをローカルドライブと同格に扱うのはヘンだと思ってきましたが、 今回の一連の問題の発覚で、このデザインこそMicrosoftの技術的姿勢を反映しているんだなと思いました。
そして、その結果として今の段階では、Windowsの脆さをそのままインターネットにダイレクトに繋げた危うさを、まさに象徴したものだと思います。

別にMicrosoftだけを批判するつもりはありませんが、現実的にほぼ独占状態にあるPCのOS市場、そしてそれを武器にロクでもないものをタダで配るのは やめないといけません。Microsoftの目指していたのは、「一家に一台パソコンがあり、そこではMicrosoftのOSとアプリケーションが動いていること」のハズです。 現実に、今はこのとんでもない目標に近づきつつあります。そう、これは大変な勝利です。でも、逆にそれに対応するだけの責任が発生していることにも 気づかなくてはならないハズです。
難しいことではありません。ちゃんと動くようになってから配布するなり、売るなりすればよいのです。


おまけ

で、せっかくきていただいたのですから、次のページものぞいて行ってください。Visual Basic 以外でも面白いことは書いていますから(^_^)。

開発者のためのエンターテインメント
不定期オンラインマガジン「酒井法雄の電脳な日々」

Visual Basicやソフトウェア開発にご興味があれば、PCDN ホームページからご覧ください。

PCDN ホームページ




Copyright (c) 1997 int21 Corporation All Rights Reserved.
For questions or comments, please send mail to: pcdn@int21.co.jp