官庁はJavaの脆弱性にどう対処すればいいのか(高木浩光@自宅の日記)

まさに名言(笑)さすが尊敬する高木さんだ.

そういう、開発者のお遊びを続けているままのようなソフトウェアを、国家の電子申請システムのために一般市民に使わせること自体が、そもそもの誤りではないか。

ここで注意しなければいけないのは,彼は「開発者のお遊びで続けているままのようなソフトウェア」がすべて悪いと言っているわけではない.Javaが面白いのは,「開発者のお遊び」や「開発者の哲学」があるからであり,そんなものが何もない実用一辺倒で何でも入っているごった煮プログラミング言語なんか,個人的には触る気にもならない.

ただし,未成熟なところは,直していかねばならないだけなのだ.高木さんは,その直後に,

Sunがしっかりしていないなら、ちゃんとやれと圧力をかける機会がSunの大口顧客にはある(私にはない)わけだが、政府やITゼネコン会社たちはそういう要求をちゃんとやっているのか?

と書いているが,まさにこれが正解だと思う(ただ,高木さんにその力がないとは思わない(笑)).

たとえば,Sun Microsystemsだろうが,Apple Computerだろうが,Microsoftだろうが,実際に問題点を指摘したり,要求を挙げると,それを真摯に議論して,早い時にはこちらの驚くぐらいの速度で対処してくれることがある.彼らは常に顧客の意見を求めているのだ.そして,困難な変更だったとしても,多くの顧客,または大口顧客が要求すれば,技術者レベルを超えて,正式な予算がつき,人員を集められるのだ.

私が感じているのは,これに関して日本企業の対応がお粗末なことだ.私が彼らから良く聞かされるのは,以下のようなことだ.

  • 日本人は,問題点を正式ルートで言ってくれない.
  • 日本人は,個別に文句を言ってくる.
  • 日本人は,アドホックな(問題が多い)解決法をとりがち

心あたりがある人が多いのではないだろうか?やはり,とてもプロとは言えない対応をしているのは日本人のような気がする.もちろん,H社のSさん(いつもお世話になってます)とか日本人でもがんばっている人はいるが,個人的にがんばっているという感が強く,会社としての取り組みという点では外資系企業にまったくかなわないだろう.

おまけに少々技術的な議論を.たとえば,SolarisではWindowsと同様にセキュリティパッチが独自に提供されている.なぜ,これができないか?というと,OSはモジュールごとに更新できるが,Java処理系はそのモジュールの一つで基本的にはモノリシックな構造だからだろう.

この問題を解決するために関係がありそうなのは,Mustangに向けてJavaOSGiプラットフォームを参考にモジュール化する"Java Module System"というJSRだ.

http://www.jcp.org/en/jsr/detail?id=277

JARファイルのバージョニングが可能になるだけでなく,Harmony MLでDoug Leaが指摘したように次のようにも書かれているので,このJSRが実現すれば,もしかすると部分的にセキュリティパッチを適用するようなこともやりやすくなるかもしれない.

We also expect the Java Module System to expose the public J2SE APIs as a virtual module in order to prevent unwanted usage of the private APIs in the implementation.

まあ,現時点では,このJSRが可決されるかどうかすら不明だし,可決されたところで,そうなるとは限らない.もし必要だと思うのならば,自ら声を上げていくことが必要だろう.