Windows
 Computer >> コンピューター >  >> システム >> Windows

WindowsでInternet Explorerの起動をブロックする方法〜jscript.dll脆弱性への実践的な対処法

近年、Internet Explorer(IE)のレガシースクリプティングエンジン(jscript.dll)に存在する重大な脆弱性が実際に悪用されているとの注意喚起が相次いでいます。脆弱性の発見自体は珍しいことではありませんが、問題なのはWeb上に広がる悲観論やパニックです。冷静に分析し、エレガントに対処する方法を探る動きはほとんど見られません。

実際、Microsoftは回避策として「該当ライブラリへのアクセス拒否」を挙げています。しかしこの方法には副作用があり、印刷機能やグループポリシーエディタなどに不具合が生じる可能性があります。そこで本記事では、システムに支障をきたすことなく脆弱性の影響を抑える方法を考えてみます。

問題の範囲

この脆弱性はIEのスクリプティングエンジンに存在します。つまり、このエンジンを呼び出すすべてのプログラムがメモリ破壊を引き起こし、任意のコード実行につながるおそれがあります。主な対象はInternet Explorer、場合によってはMicrosoft Office、そして一部のレガシーアプリケーションですが、後者は一般の家庭環境ではまず見かけないものです。

基本的な対策は「Internet Explorerを使わないこと」、そして他のプログラムで見知らぬファイルやリンクを開かないことです。これは常日頃から心がけるべきことですが、「うっかり」IEで危険なページを開いてしまったらどうなるのか、というのが本当の問題です。

Internet Explorerを実行できないようにする

Windowsには、特定のアプリケーションの実行を禁止する機能が以前から備わっています。レジストリまたはグループポリシーエディタ(Pro版ユーザー向け)から設定でき、指定したプログラムの起動を防げます。具体的には、gpedit.mscを起動し、「ユーザーの構成 > システム」へ移動して、「指定された Windows アプリケーションを実行しない」というポリシーを開きます。

WindowsでInternet Explorerの起動をブロックする方法〜jscript.dll脆弱性への実践的な対処法

ポリシーを「有効」にし、オプションの「表示」をクリックして、禁止アプリケーションのリストに「iexplore.exe」を追加します。

WindowsでInternet Explorerの起動をブロックする方法〜jscript.dll脆弱性への実践的な対処法

WindowsでInternet Explorerの起動をブロックする方法〜jscript.dll脆弱性への実践的な対処法

この設定は期待どおりに機能しますが、エクスプローラーやスタートメニューからプログラムを起動した場合に限られます。他の手段によるアクセスはブロックできず、アプリケーションがjscript.dllを読み込むことも止められません。ご安心ください、その対処法もこのあと説明します。

WindowsでInternet Explorerの起動をブロックする方法〜jscript.dll脆弱性への実践的な対処法

同様の設定はレジストリからも行えます。パスは以下のとおりです。

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies

Image File Execution Options(IFEO)を活用する

IFEOは非常に強力な機能で、システム上のあらゆるプログラムの動作を変更できます。ここでは「Debugger」機能を利用し、iexplore.exeの実行をデフォルトの動作から「空のコマンドシェルの起動」に置き換えます。つまり、何もせずJavascriptライブラリも呼び出さないダミーの実行にするのです。

WindowsでInternet Explorerの起動をブロックする方法〜jscript.dll脆弱性への実践的な対処法

こう設定すると、IEを「起動」しても、実際には即座に終了するコマンドプロンプトが立ち上がるだけになります。どのような方法でIEを呼び出しても実体は実行されないため、jscript.dllがメモリにロードされるリスクを大幅に減らせます。

ただし、これはIEのみに作用するものであり、Wordが不正な埋め込みオブジェクトを含む文書を開いてjscript.dllの関数を参照するようなケースまでは防げません。それでも、ネットワーク接続を持つIE経由でのライブラリ使用リスクは大きく低減できます。システム上の他のツールがこのライブラリを必要としていても、外部のネットワークリソースに接続しないのであれば、リスクは相対的に小さくなります。

IFEOの利点は、レジストリキーの設定だけで済む手軽さです。元に戻したいときは、Debuggerの文字列値を削除するだけで従来の動作に戻ります。

なお、マルウェア対策ソフトによっては、この設定を「IFEOハイジャック」とみなして警告する場合があります。その点は理解したうえで、より賢明なセキュリティの考え方として受け入れるとよいでしょう。このテーマについては、また別の機会に詳しく扱います。

jscript.dllについて

ここまでの作業は問題を根本的に修正するものではなく、IEが実行される機会を減らすことで回避しているにすぎません。本来の対策はライブラリの更新です。技術的には、パッチ適用済みの新しいバージョンを古いファイルに上書きコピーすれば済む話ですが、Windows Updateの仕組みはもう少し複雑です。

そこで現実的な緩和策として、ライブラリから実行権限を取り除きます。注意喚起にあるとおりコマンドラインでも可能ですし、エクスプローラーから操作することもできます。コマンドラインを使う理由は、セキュリティ設定を変更できるようシステムライブラリの所有権を取得するためです。あるいは、最高権限でプログラムを実行できるユーティリティ「ExecTI」経由でcmd(またはエクスプローラー)を開き、権限を操作する方法もあります。

WindowsでInternet Explorerの起動をブロックする方法〜jscript.dll脆弱性への実践的な対処法

やりたいのは、一覧にあるすべてのグループ・ユーザーから「読み取りと実行」のチェックを外すことです。しかし、ここで副作用が現れます。たとえばAdministratorsの実行を拒否すると、前述のグループポリシーエディタが正しく起動しなくなります。逆に言えば、標準ユーザーとして日常操作を行っていれば、UsersグループからJScriptの実行権限を奪っても、IEは引き続き利用でき、システム機能への影響もありません。標準ユーザー運用の重要性がここでも浮き彫りになります。

WindowsでInternet Explorerの起動をブロックする方法〜jscript.dll脆弱性への実践的な対処法

JScript.dllの実行が許可されていない状態のグループポリシーエディタ。レイアウトが崩れています。

手順自体は単純なので、「読み取りと実行」を無効化しておき、公式パッチを適用できるまでの間、必要なときだけ一時的に有効化するという運用も可能です。企業環境では事情が異なるかもしれませんが、家庭環境であればこれで十分でしょう。同じ要領で、Internet Explorer本体から実行権限を削除することもできます。

その他の対策 - ローカルスクリプトの扱い

どうしてもIEを使う必要がある場合は、インターネットオプションで「アクティブ スクリプト」を無効にしましょう。これは今さらという定番の話なので、ここでは深く掘り下げません。より実用的なのは、ローカルディスク上のJavascriptファイルをMicrosoft Based Script Host経由で誤って実行してしまうのを防ぐことです。これはWindows 10でもデフォルトの動作になっています。しかし実際には、ブラウザ以外の文脈でJavascriptファイルをローカル実行する必要性はほとんどありません。

WindowsでInternet Explorerの起動をブロックする方法〜jscript.dll脆弱性への実践的な対処法

対策としては、file.jsのようなダミーのJavascriptファイルを作成し、右クリック > 「プログラムから開く」でテキストエディタを選択します(「別のアプリを選ぶ」の一覧にあります)。こうすれば、ローカルに保存されたJavascriptファイルをダブルクリックしても、テキストファイルとして開かれるようになります。

まとめ

パニックを羅針盤にしてはいけません。深刻な検討が必要なセキュリティ問題もある一方で、ネット上の噂ほど恐ろしくない問題もあります。今回の脆弱性は確かに好ましいものではありませんが、IEを使わなければほぼ解決します。さらに、見知らぬファイルを安易に実行しないという基本を守れば、十分安全に過ごせるはずです。

本記事では、落ち着いた視点で状況と選択肢を整理しました。何よりも、IFEOの魔法のような機能を使えば、問答無用でIEの起動を防げます。iexplore.exeをハードコードして通知を表示しようとする古いゲームランチャーであろうと、うっかりクリックしてしまう自分の指であろうと、無駄なリスクを減らせます。ライブラリの実行権限を無効化すれば、標準ユーザー環境であれば機能低下をほとんど気にせず済むかもしれません。それでは、快適なWebライフをお楽しみください。

  1. Windows 11でInternet Explorerを使う方法|Microsoft EdgeのIEモード設定ガイド

    MicrosoftのレガシーブラウザであるInternet Explorer(IE)は、最新のWindows 11では単体アプリとして利用できません。技術に詳しい方であれば、IEのインストールファイルを入手してWindows 11にインストールを試みることも可能ですが、残念ながら正常に動作しません。仮にインストール処理が完了しても、IEアプリはWindows 11上のどこにも見つかりません。Windows 11でInternet Explorerを使用する唯一の方法は、Microsoft Edgeに搭載されている「IEモード」を利用することです。 Windows 11でInternet Exp

  2. Windows 11のエクスプローラーが遅い・重いときの対処法|応答速度を改善する2つの解決策

    2022年にもなって、主力デスクトップOSのファイルマネージャーの動作が遅い問題を解説する記事を書かなければならないというのは、笑えると同時に悲しい話です。しかし現実には、Windows 11を搭載した筆者のテスト環境では、エクスプローラーのウィンドウが開くまでに時間がかかり、さらに各ドライブやフォルダーの内容を表示するのにも余計な時間を要します。しかも、NVMe SSDを搭載した最新マシンでの話です。この問題は、アップグレード前のWindows 10では一切発生しておらず、筆者が使用している他のWindows 10マシンや、同じIdeaPad 3ノートPCに並行してインストールされているLi