web-dev-qa-db-ja.com

Javaを無効にする必要がありますか?

最初はアップルでしたが、今はアメリカ政府です...

この「不特定の脆弱性」はどのくらい深刻ですか?パッチが適用されたことがわかるまで、すべてのユーザーがJavaを無効にする必要がありますか?

編集:-一部の人々は、次の区別がなされるように求めています:JavaはJavaScriptと完全に異なるため、以下の推奨事項は、Javaにのみ関係します。

23

Appleは明らかにユーザーのコンピュータで「Javaを無効にした」ので、これを真剣に受け止めています。これはかなり劇的な動きです。これは実際には、より広範な戦略の一部として、テクノロジーを殺す口実のようなにおいがします。

この特定の穴について、いくつかの詳細 there があります。 Javaアプレットモデルがすべてです。理解するには:

  • Javaはプログラミング言語であり、コードの巨大なライブラリであり、すべて仮想マシン内で実行されます。 VMは、コードをアーキテクチャ間で移植するのがはるかに簡単であることを意味します。ここまでは順調ですね;同じことが.NETを含む他のいくつかのフレームワークにも当てはまります。

  • JavaとVMの強力な型付けにより、概念的にはC++のようなより多くのベアメタル言語では実現できない(少なくとも容易ではない)追加機能が可能になります。 危険なコードを安全に実行。 C、C++、またはアセンブリなどで、このような偉業にはハードウェアとオペレーティングシステムからの助けが必要です(つまり、プロテクトモードの特権レベル、または極端な場合は、特別な 仮想化オペコード )。強力な型とVMは、ソフトウェアのみのサンドボックスソリューションを可能にします。これは、たとえばWebブラウザに統合できます。

  • Java appletsとは、Webページの一部として、WebからダウンロードされるJavaコードを実行するためのサンドボックスです。しかし、Sun/Oracleの人々はどこに止めるべきかわからず、少し熱心すぎました。サンドボックス化されたコードは実行できる機能が大幅に制限されているため、選択肢は2つしかありません。制限付きで生きることを学ぶ(JavaScript開発者が行うことです)か、サンドボックスにsomeアプレットを許可するエスケープメカニズムを含めるファイルの読み取りと書き込み、任意のソケットのオープン、ネイティブコードの実行など、サンドボックス外の処理を実行します。 VMはそれを許可しますが、アプレットきちんと尋ねるは、きめ細かなアクセス許可 デジタル署名 と明示的な承認ポップアップを伴います。

  • この「権限」のシステムを管理することは、VMおよびライブラリに対して行うのが非常に難しいことがわかりました。つまり、ライブラリは、さまざまなOS機能へのアクセスを提供するコードが非常に豊富であり、それらすべてを忘れずに接続する必要があります。数百、多分数千の「デリケートな呼び出し」が問題になります。 Javaのセキュリティホールの長い歴史は、このタスクが不可能に近いことを証明しています。 Microsoftの競合するテクノロジ( Silverlight 、. NETを介して構築)の影響が少し少ないように見える場合、それは主に世界中で使用されていることがはるかに少ないため、露出がはるかに少ないためです。

当面は、ブラウザでJavaアプレットのサポートを無効にするのが最も安全です。 Java applications、特にサーバーサイドで実行されるものは影響を受けないことに注意してください。

敵対的なコードを安全に実行すると同時に、豊富な機能ときめの細かいアクセス制御を維持するという問題は、新しい問題ではありません。これがもう1つJavaが事故で示しているのは、この古い問題がまだ解決されていないということです。

34
Thomas Pornin

国土安全保障省(DHS)、US-CERT、およびノルウェーの国家安全保障局は、エクスプロイトコードが存在するため、迅速な修正としてJavaを無効にすることを推奨しました。それはJavaに反対する動きではなかった。パッチが出た後、パッチを適用するようにアドバイスされました。

一方、実際に無効にすることでAppleに対してより積極的な姿勢をとるJavaがいます。以前は、Appleは、公式リリースよりも遅れていたJavaの独自のカスタムバージョンを維持していました。 OS X Flashbackマルウェアによって悪用されたJavaの脆弱性は、FlashbackがMac OSに感染し始めた2011年9月の数か月前の公式バージョンにパッチされました。

敗北したフラッシュバックと戦った後、Appleは教訓を学び、その方針を次のように変更しました。

  • Mac OSでJavaの公式バージョンを許可する。
  • Mac OSはマルウェアに対して脆弱ではない」という文をWebサイトから削除します。
  • 5日間使用しないとブラウザからJavaを自動的に無効にして、有効にする許可をユーザーに求めます
3
Cristian Dobre

はい、Javaを無効にする必要があります。開発者は、Javaにハッカーを支援する重要なベネラビリティがあることを発見したため、最近のアップデートではAppleもJavaを「最も安全な」MAC OS Xから削除しました

2
Skynet