JREをインストールさせている官庁(中央省庁および地方自治体)には、JREに脆弱性が見つかるたびに、日本語で、わかりやすい対応策を告知する義務がある。
Javaとはサン・マイクロシステムズ社が開発したプログラミング言語で、Javaを用いて開発されたソフトウェアは、どんなOS (Windows等)からも独立した形式で配布されます。
これを実行するにはそのプラットフォーム(コンピュータ)が解釈できる形式に変換する必要があり、JREは、この変換と実行を行なうJava仮想マシンとその周辺のソフトウェアのセットです。
オンライン申請システムは、Microsoft Internet Explorer上Javaアプレットを(他のアプリケーションの中に組み込まれて実行される小さなプログラム)実行させています。
Java は、Internet Explorer で、ホームページを閲覧すれば自動的に実行されます。
そこで、インターネットから閲覧者のコンピュータのファイルにアクセスするようなことがあってはならないので、そうした処理を禁止しています。禁止されているからこそ、安心して閲覧できる。そこが登場当初のJavaの最大の特徴でした。
Javaには本来、インターネットからダウンロードしてきたような信頼できないプログラムを「箱から出さない」ようにするシステム「サンドボックス」が備わっていますが、Javaにセキュリティホールがあるとこのサンドボックスの制限を迂回し、悪意あるプログラムを実行させるような簡易プログラム(スクリプトコード)をインターネット上で書くことができることになり、JRE(Java実行環境)がインストールされていれば、それがWindowsだろうがMacだろうがLinuxだろうが、同じように攻撃を受けてしまうのです。
「サンドボックス」とは、(子供が安全に遊べる)砂場から名づけられたようです。
保護された領域内でプログラムを動作させることで、その外へ悪影響が及ぶのを防止するシステムで、外部(インターネット)から受け取ったプログラムを保護された領域、「箱」の中に閉じ込めてから動作させます。
「箱」はパソコンの他のファイルからは隔離され、箱の内部からパソコン内のファイルを操作することは禁じられ、外部(インターネット)から侵入した悪質なウイルスであっても、「箱」の外にある(パソコンの)データなどに影響を与えることはできません。
署名なしのアプレットでは何ら確認なしに、即座に実行が開始されます。
署名付きの場合には確認ステップがあり、署名付きアプレットの実行を「承諾」した場合、そのアプレットは、ファイルを読むとか、ファイルに書き出すとかいった処理を許されるのに対し、署名なしのアプレットでは、そうした処理の実行が許されていません。
オンライン申請システムは、署名付きアプレットを使っています。オンライン申請システムのアプレットは、作成途中の届出書類を利用者のコンピュータ上にファイルとして保存し、保存してあるファイルを読み出して送信することができます。
署名付きアプレットはどんな処理でも実行することができますから、利用者の確認なしに実行がされることがないように、その署名が誰によってなされているかを、オンライン申請システムによって確認したうえ、その署名者を信頼して実行を許可します。
そして、JREに脆弱性が見つかったというのは、たいていの場合、サンドボックスを突破できる欠陥が見つかったことを意味しています。つまり、署名なしのアプレットがファイルを読んだり書いたりできてしまうということです。
インターネットに接続しただけで、ファイルを盗まれたり、ファイルを破壊されたり、スパイウェアを埋め込まれたりするといった被害に遭う可能性があるということです。
JREの脆弱性について、開発者であるSun Microsystemsは(日本語で)セキュリティに関わるアップデート提供すべきであり、Sun Microsystems が日本向けに適切な情報を提供していないのであれば、JREの利用を要求しているオンライン申請システムの管理者(法務省だけでなく政府全体)は、利用者に対して、Sun Microsystemsの英語のページを紹介するだけでなく、わかりやすい日本語での情報と対策方法を提供すべきです。
法務省オンライン申請システムの事前準備の説明では、J2SE1.4.2_11以外では利用できませんと説明しています。(平成19年7月6日、J2SE1.4.2_15に変更された。)
私のパソコンは、1.6.0_1がインストールされており、オンライン申請システムを支障なく利用できている。法務省の説明は、「作動確認ができていません。」ということのようです。
推測であるが、法務省は、発注時に、「JRE 1.4.2_11 での作動を保証すること」といった要件を出しているのではないか?
そのために、JREがアップデートされても、「動作を保証できない」という答えしかできず、正常に動くかもしれない可能性と脆弱性回避についての試行をしていないではないか?
JREのバージョンアップに対し、動作検証に長期間要するのは予算を確保するところから始めているのではないか?
脆弱性が発覚するたびに追加事業を発注している場合、アップデートで動かなくなるようなことは実際にはないにもかかわらず、検証作業をするだけで定期的に費用を負担しているのではないか?
JREをインストールさせている官庁(中央省庁および地方自治体)には、JREに脆弱性が見つかるたびに、日本語で、わかりやすい対応策を告知する義務がある。