ITmedia NEWS > セキュリティ >
セキュリティ・ホットトピックス

元・Java専門記者がLog4j 2脆弱性に見た「複雑性と魔神のかけら」 Javaの歴史とバザールの矛盾(5/6 ページ)

» 2022年01月31日 11時00分 公開
[星暁雄ITmedia]

Javaの技術資料を読んで筆者がひっくり返ったワケ

 そのような経緯から、デビュー当時のJavaは「Webにアニメーション表現などを追加する技術」のように語られていた。ところが、公開された技術資料を読んだ筆者はひっくり返った。「Javaは汎用オブジェクト指向プログラミング言語であり、バイトコード・インタープリタによって実行される」と書かれていたのに「ウケた」からだ。

 これはSmalltalk言語にもそのまま当てはまる説明だ。当時の筆者の上司も一緒にウケてくれた。当時の上司は、かつてSmalltalkを筆頭とするオブジェクト指向言語を大特集した際の中心的な書き手だったのである。それに、C++の論文に比べるとJavaの論文はどこかしら「愛嬌」があった。これはゴスリンのキャラクターだろう。

 1995年にデビューしたJava言語の特色は、まずオブジェクト指向言語であったこと。利用頻度が高い型は「プリミティブ型」としてオブジェクトとは別扱いになっていたものの、Javaは本格的なオブジェクト指向言語であり、なおかつSDK(開発キット)と実行環境が無償だった。

 この時代のオブジェクト指向プログラミング環境といえば、SmalltalkにせよNEXTSTEPにせよ高額な商用製品ばかりだったのである。しかもJava言語の開発キットはSunのSolarisだけでなく、Microsoft Windowsでも動作した。そこで多くのソフトウェア開発者がJavaに飛びついた。

 そしてJavaは最初からネットワーク機能に対応していた。TCP/IPやWeb(httpプロトコル)を標準ライブラリで扱うことができた。

 Javaアプレットは、WebサーバからJavaの実行ファイル(classファイル)をダウンロードし、ブラウザのサンドボックス環境内で実行する機能である。このJavaアプレットの実行機能を備えた「HotJavaブラウザ」(これ自体、Javaで実装したWebブラウザだった)も、Javaのデモンストレーション版SDKとともに公開された。

「打倒ネスケ」で生まれたHotJava

HotJava 1.1.5(@ITより)

 実は、このHotJavaブラウザは、Javaの生みの親であるジェームズ・ゴスリンが「打倒Netscape」を目指して勝手に作ったものだったそうだ。この時期、Webブラウザの最先端──というよりインターネットの最前線はNetscape Navigatorだった。

 ゴスリンは「自分なら、もっといいものを作れる」と考えたのだろう。周囲の人々はゴスリンを説得し、Netscapeのブラウザに対抗するのではなく、開発元の米Netscape CommunicationsにJavaテクノロジーをライセンスする方向で話を進めた。なお、この逸話は筆者が周辺取材で聞き出した話に基づく。他の文書記録では見たことがない。

安全性の高い仕組みがかえって脆弱性に

 プログラムをネットワーク経由で動かすことは、悪意があるプログラムが悪さをすることに結び付く危険性がある。Javaアプレットの場合は、アプレットホスト(アプレットのダウンロード元のサーバ)以外とは通信できないようにし、サンドボックスによりJavaアプレットはブラウザの外側に影響を及ぼせず、クラスローダーには検証機能を持たせ、それなりに安全性が高い仕組みを提供した。

 ただし、今となってはJavaは複雑化しすぎた。アプレットは「脆弱性の発生源」という認識になりつつある。残念なことである。

 一方、Javaアプレットへの対抗技術として、当時のMicrosoftは「ActiveX」と呼ぶ機能を提供した。これはバイナリのWindowsコンポーネントをInternet Explorerブラウザにダウンロードして実行させる機能だった。明らかに危険である。Sunは一時期、ActiveXがウイルス開発者に好都合な機能であることをよく批判材料にしていたものである。

 なお、Microsoftは2000年代に入ってから「.NET」を発表し、ActiveXで落とした評判を回復した。.NETは各種オブジェクト指向プログラミング言語、仮想マシン(中間言語ILの実行環境)、クラス・ライブラリ(.NET Framework)から成るもので、Javaテクノロジーに真に対抗する技術といえる。.NETの発表後間もなく、マイクロソフト日本法人の担当者がわれわれに会いに来たことは強い印象に残っている。彼らは「Java専門の媒体が真っ先に.Netを理解してくれるはずだと考えた」と語った。マイクロソフトがおそるべき会社であることを示すエピソードである。

Copyright © ITmedia, Inc. All Rights Reserved.