2013年1月14日(米国時間1月13日)に公開された、Java の脆弱性「CVE-2013-0422」に対する緊急修正プログラムが不完全であることが話題になっています。トレンドマイクロは、ここでこの修正プログラムに関するいくつかのポイントについて解説します。
トレンドマイクロが行った解析の結果、「CVE-2013-0422」に対する修正プログラムが、完全な修正ではないことを確認しました。この脆弱性には 2つの問題点が存在します。1つは、com.sun.jmx.mbeanserver.MBeanInstantiatorクラスの findClassメソッドに存在し、もう1つは、java.lang.invoke.MethodHandleクラスの invokeWithArgumentsメソッドに存在します。Oracle が今月14日に公開した緊急修正プログラムにより、後者は修正されていますが、findClassメソッドの脆弱性は、制限付きクラスの参照を取得するために依然として利用される可能性があります。要約すると、findClassメソッドの問題は、他の新たな脆弱性に利用される恐れがある不具合が残されたままとなっています。
また、脆弱性「CVE-2012-3174」に関して明確にしておきたい点があります。一部でされている報告とは異なり、この脆弱性は Java のReflection API に関連する問題ではない、ということです。Reflection API に関連する問題は、「CVE-2013-0422」の一部として修正されています。米国立標準技術研究所が管理している脆弱性情報データベース「National Vulnerability Database(NVD)」は、「NOTE: some parties have mapped CVE-2012-3174 to an issue involving recursive use of Reflection API, but that issue is already covered as part of CVE-2013-0422(註:一部において「CVE-2012-3174」に Reflection API の再帰的な利用に関する問題が含まれるとありますが、この問題は、既に「CVE-2013-0422」の一部として修正されています)」と発表しています。
本件を踏まえて、誰もが抱く大きな疑問は、「この修正プログラムをインストールすることで、ユーザは安全になるのか」または「この修正プログラムは、脆弱性「CVE-2013-0422」を突く問題の攻撃を防げるのだろうか」ということです。その答えは、既に確認されている攻撃からは守ることができますが、上述の「CVE-2013-0422」に残る最初の問題と組み合わせることができるバグを誰かが見つけた場合には防ぐことができません。findClassメソッドの問題は、いまだ修正されていませんが、このメソッドの問題を単体で悪用することができません。しかしながら、結論は明確です。Java は依然として大きなリスクを抱えています。
ユーザはまず、Java が本当に必要がどうか検討しなければなりません。もし必要ないのであれば、アンインストールすべきでしょう。Java の使用が避けられない場合には、リスクを軽減するいくつかの方法があります。
Java を使用する際のリスクを最小限にする方法については、以下の記事をご参照ください。
/archives/6542
なお、トレンドマイクロのサーバ向け総合セキュリティ製品「Trend Micro Deep Security(トレンドマイクロ ディープセキュリティ)」および「Trend Micro 脆弱性対策オプション(ウイルスバスター コーポレートエディション プラグイン製品)」をご利用のユーザは、以下のフィルタを適用することにより、問題となった脆弱性を利用した攻撃から保護されています。2013年1月11日、弊社がこの問題について初めて本ブログ上で報告して以来、このフィルタによって守られています。
また、トレンドマイクロのクラウド型セキュリティ基盤「Trend Micro Smart Protection Network」により、問題となった Java の脆弱性を突く攻撃に関連する脅威を検出し、問題のエクスプロイトコードを組み込んだ Webサイトへのアクセスもブロックします。
※協力執筆者:Deep Security Labsチーム
参考記事:
by Pawan Kinger (Vulnerability Research Manager)
翻訳:船越 麻衣子(Core Technology Marketing, TrendLabs)