Javaランタイムには、しばしば重大な脆弱性が発覚することがある。脆弱性が解消されるまでは、Javaを無効化することで攻撃を防ぎたいところ。その方法は?
対象ソフトウェア:Oracle Javaランタイム(JRE)
以前はSun Microsystems、現在はOracleが無償で配布しているJavaランタイム(JRE)は、Javaプログラムの実行環境としてさまざまな場面で利用されている。PCにプレインストールされていたり、Webアプリケーションを利用する際にインストールされたりするので、多くのWindows PCにJavaランタイムが存在しているはずだ。
しかし、それゆえにJavaランタイムは悪意のある攻撃者に狙われやすく、しばしば重大な脆弱性が見つかることがある。執筆時点の2013年1月に見つかった脆弱性の場合は、それを解消するセキュリティ・パッチのリリース前に、悪用するためのプログラム・コードが流布していて危険な状態だった。
数日後にセキュリティ・パッチ(更新版)はリリースされたが、今後もこうした事態が発生する可能性は否定できない。
Javaをまったく利用しない環境であれば、Javaランタイムをアンインストールすればよい(一般的なアプリケーションと同様にコントロール・パネルから簡単に削除できる)。しかし、Javaを利用する機会があるなら、そのたびにインストールとアンインストールを繰り返すのは面倒だ。例えば、Javaランタイムをインストールしたまま、普段は呼び出せないように無効化しておき、必要になったら有効化する、あるいは攻撃の危険性が高まっている時期は無効化する、といった運用ができれば、少なくとも普段から有効にしたままよりはずっと安全だろう。
Javaランタイムの脆弱性を突く攻撃は、そのためのプログラム・コードを仕込んだJavaアプレットをどこかのWebサイトに仕込んでおき、ユーザーにWebブラウザでアクセスさせることで実行する、というパターンが多い。そこで本稿では、WebブラウザでのJavaアプレット実行を禁止する(無効化する)方法を紹介する。
ただし、攻撃を防ぐには脆弱性の解消、すなわち最新版のJavaランタイムに更新することが最も重要である(更新による互換性問題が生じる危険性があるとしても)。そのうえで、本稿のJava無効化設定を実施していただきたい。
インストール済みのJavaランタイムが最新版かどうかは、以下のページで確認できる。
最新版のJavaランタイムは次のWebサイトからダウンロード/インストールできる。
Javaを無効化するには、すべてのWebブラウザでJavaを無効にする方が簡単かつ確実だ。それができない場合は、WebブラウザごとにJavaを無効化する設定をする必要がある。本稿では次の3種類のWebブラウザについて、設定方法を説明する。
なお、Internet Explorer(IE)については、個別かつ完全に無効化することはできない。
すべてのWebブラウザでJavaを無効化するには、Javaランタイムと同時にインストールされる「Javaコントロール・パネル」を使って設定を変更する。ただし、この機能はJava 7 Update 10で搭載されたので、Javaランタイムをこれ以降のバージョンに更新しておく必要がある。これより前のバージョンでは、WebブラウザごとにJavaプラグインを無効化する必要がある(その手順はこの後に説明する)。
Javaコントロール・パネルを起動するには、管理者権限を持つユーザー・アカウントでWindowsにログオンしてから、コントロール・パネルにある「Java」アイコンをクリックする(コントロール・パネル右上にある検索ボックスで「Java」を検索すれば見つかるはずだ)。Javaコントロール・パネルのダイアログが表示されたら[セキュリティ]タブを選び、[ブラウザで Java コンテンツを有効にする]チェックボックスをオフにして、[OK]ボタンをクリックする。ユーザー・アカウント制御のダイアログが表示されたら、指示に従って[はい]ボタンをクリックすること。
「Java Plug-in settings changed」というメッセージが表示されたら無効化は完了だ。ここで起動済みのWebブラウザがあれば、いったん終了すること。
これでJavaが無効化されたはずなので、WebブラウザでOracle提供のJavaバージョン表示アプレットを開いて動作を確認しよう。このページでは、Javaアプレットによってインストール済みのJavaのバージョンが検出・表示される。正しく無効化できていれば、Javaのバージョン情報は表示されず、「システムから動作する Java は検出されませんでした」「プラグインをインストールする必要があります」「不明なプラグイン」といったメッセージが表示されるはずだ。
Java 7 Update 10以降をインストールしたにもかかわらず、Javaコントロール・パネルの[セキュリティ]タブに[ブラウザでJavaコンテンツを有効にする]チェックボックスが表示されないことがある。その場合は、エクスプローラでJava 7をインストールしたフォルダを開き、binフォルダにあるjavacpl.exeを起動してみよう(これがJavaコントロール・パネルのプログラムの実体)。デフォルトのパスは次の通りである。
C:\Program Files\Java\jre7\bin\javacpl.exe
なお、上記の設定はすべてのユーザー・アカウントに反映されるため、ユーザー・アカウントごとに作業する必要はない。
Oracleが提供している次のヘルプ・ページによれば、Internet Explorer(IE)でJavaを完全に無効化するには、前述のJavaコントロール・パネルでの設定変更しか方法がないとのことだ(つまりIE単独で完全無効化はできない)。
一方、マイクロソフトは次のサポート技術情報で、IEでJavaプラグインを無効化する方法を紹介している。
しかし、筆者が試した限りでは、(最新のJava 7ではなく)Java 6以前のランタイムがインストールされている環境では、たとえ上記ページに従って設定をしてもIEでJavaアプレットが起動されてしまうことがあった*1。そのため、IEの場合は、単体でJavaを無効化することはあきらめて、前述のJavaコントロール・パネルによる無効化を行う方がよいだろう。
*1 上記のサポート技術情報では、レジストリを書き換えてJavaプラグインのActiveXコントロール呼び出しを禁止する、という手法を採っている。しかし、それにはJavaの各バージョンが持っている固有のID(CLSID)をサブ・キー名にしたレジストリ・エントリを作成する必要がある。上記のサポート技術情報ではJava 7系のCLSIDしか指定していないため、Java 6での実行を明示的に指定したJavaアプレットは呼び出せてしまう。Java 6以前も含めて網羅的に禁止するには、過去の全バージョンのCLSIDを漏れなくレジストリに設定する必要があるため、手間もかかるし設定漏れが生じる恐れもある。あまりお勧めはできない。
ところでIEでは、アドオン管理画面から各種アドオン(拡張機能)の無効化ができる。しかし、実際にJava関連のアドオン(拡張機能)をすべて無効化してみたところ、Javaアプレットによっては起動されてしまった。この方法では攻撃を防止できない危険性があるので注意しよう。
Google ChromeでJavaが実行されないようにするには、Javaプラグインを無効化する。それにはまずGoogle Chromeを起動し、アドレス・バーに「chrome://plugins」と入力して[Enter]キーを押す。するとプラグイン一覧が表示されるので、「Java」から始まる名称のプラグインの[無効にする]リンクをクリックする。[有効にする]リンクが表示されている場合は、すでに無効化されているのでそのままにしておく。
これでJavaを無効化できたので、Oracle提供のJavaバージョン表示アプレットを開いてみよう。Javaのバージョン情報は表示されず、「Java(TM)は無効になりました。再度有効にするには、chrome://plugins にアクセスしてください。」といったメッセージが表示されるはずだ。
なお、この設定はユーザーごとに行う必要がある(あるユーザー・アカウントでログオンして設定したとき、別のユーザー・アカウントには反映されない)。
Mozilla FirefoxでJavaが実行されないようにするには、Javaプラグインを無効化する。それにはまずMozilla Firefoxを起動し、左上の[Firefox]ボタンをクリックして[アドオン]を選ぶ(あるいはメニューバーの[ツール]−[アドオン]をクリックする)。アドオン・タブが表示されたら、左側メニューにある[プラグイン]をクリックし、右側に表示されたプラグイン一覧で「Java」から始まる名称のプラグインの[無効化]ボタンをクリックする。[有効化]ボタンが表示されている場合は、すでに無効化されているのでそのままにしておく。
これでJavaを無効化できたので、Oracle提供のJavaバージョン表示アプレットを開いてみよう。Javaのバージョン情報は表示されず、「このプラグインは無効化されています」といったメッセージが表示されるはずだ。
なお、この設定はユーザーごとに行う必要がある(あるユーザー・アカウントでログオンして設定したとき、別のユーザー・アカウントには反映されない)。
OperaでJavaが実行されないようにするには、Javaプラグインを無効化する。それにはまずOperaを起動したら、アドレス・バーに「opera:plugins」と入力して[Enter]キーを押す。するとプラグイン一覧が表示されるので、「Java」から始まる名称のプラグインの[無効にする]リンクをクリックする。[有効にする]リンクが表示されている場合は、すでに無効化されているのでそのままにしておく。
これでJavaを無効化できたので、Oracle提供のJavaバージョン表示アプレットを利用して動作を確認しよう。Javaのバージョン情報は表示されず、「無効化されたプラグイン」といったメッセージが表示されるはずだ。
なお、この設定はユーザーごとに行う必要がある(あるユーザー・アカウントでログオンして設定したとき、別のユーザー・アカウントには反映されない)。
■更新履歴
【2013/01/20】「Mozilla FirefoxでJavaを無効化する」において、アドオン・タブを開くための操作手順として、「メニューバーの[ツール]−[オプション]をクリックする」と記していましが、正しくは「メニューバーの[ツール]−[アドオン]をクリックする」でした。お詫びして訂正させていただきます。
【2013/01/18】初版公開。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.