2013 ?? 1 ????????????????
2013 年第 1 四半期には、Oracle Java、Adobe Flash、Adobe Reader、および Microsoft Internet Explorer に影響するゼロデイ脆弱性が悪用されているケースが多数確認されました。このブログでは、2013 年第 1 四半期にマルウェアの拡散に悪用されたこれらのゼロデイ脆弱性について詳しく説明します。
Java のゼロデイ脆弱性
シマンテックでは 2013 年 1 月に Oracle Java SE の興味深いゼロデイ問題が頻繁に悪用されているのを確認しました。2013 年 1 月 13 日、Oracle 社は Oracle Java Runtime Environment の複数のリモートコード実行の脆弱性(CVE-2013-0422)に関するセキュリティ警告をリリースして、Java SE の複数の脆弱性に対処しました。1 つ目の脆弱性は、JmxMBeanServer クラスのパブリックな getMBeanInstantiator メソッドを使用してプライベートな MBeanInstantiator オブジェクトへの参照を取得した後、findClass メソッドを使用して任意のクラス参照を取得することにより発生します。2 つ目の脆弱性は、sun.reflect.Reflection.getCallerClass メソッドに新しいリフレクション API に関連するフレームをスキップする機能がないことを利用して、java.lang.invoke.MethodHandles.Lookup.checkSecurityManager メソッドによるセキュリティチェックを回避するようにリフレクション API を再帰的に利用することに起因します。
Oracle 社は、CVE-2012-0422 のパッチをリリースした直後に、Oracle Java Runtime Environment のリモートコード実行の脆弱性(CVE-2012-3174)が悪用されて任意のコードが実行されていることを警告しました。具体的には、この問題は MethodHandle 抽象クラスを使用して sun.misc.reflect.Trampoline クラスのメソッドを呼び出したときに発生します。これにより、セキュリティマネージャを回避することが可能になります。
2013 年 2 月 1 日、Oracle 社は Java SE の 50 件の脆弱性に対処する巨大なパッチ更新をリリースしました。この Critical Patch Update(CPU)は当初 2 月 19 日にリリースされる予定でしたが、デスクトップブラウザでの Java Runtime Environment(JRE)に影響を与える、ある脆弱性が実際に悪用されていたことから大幅に繰り上げてリリースされました。この脆弱性の詳細は現時点で不明です。Oracle 社は追加の修正を 5 件含む改訂版の Critical Patch Update(CPU)を 2 月 19 日にリリースし、2013 年 2 月の CPU による修正は合計 55 件になりました。
2013 年 3 月 4 日、Oracle 社は Oracle Java SE のリモートコード実行の脆弱性(CVE-2013-1493)に関する別のセキュリティ警告をリリースしました。この問題は、JVM プロセスでの任意のメモリ読み書きにつながるリモートコード実行の脆弱性に関連します。これにより、攻撃者はメモリを破壊し、セキュリティマネージャコンポーネントを無効にすることができます。
図 1. 信頼されていないアプレットが脆弱性を悪用してセキュリティマネージャを無効にしてシステムリソースにアクセス
これらすべての脆弱性の悪用条件は同じです。つまり、認証なしでリモートから悪用して、現在ログインしているユーザーのコンテキストで任意のコードを実行できるということです。攻撃者がこれらの脆弱性を悪用するには、警戒心の弱いユーザーをだまして、悪質なアプレットを含む特別に細工された Web ページにアクセスさせる必要があります。悪用に成功すると、ユーザーのシステムの可用性、完全性、および機密性に影響を与える可能性があります。なお、これらの脆弱性は、サーバーで実行されている Java、スタンドアロンの Java デスクトップアプリケーション、埋め込みの Java アプリケーションには影響を与えません。
Adobe Flash と Adobe Reader のゼロデイ脆弱性
2013 年 2 月 7 日、Adobe 社は、Adobe Flash アプリケーションにも影響する Adobe Flash Player のバッファオーバーフローの脆弱性(CVE-2013-0633)と Adobe Flash Player のリモートメモリ破壊の脆弱性(CVE-2013-0634)に対する修正を含むセキュリティ速報 APSB13-04 をリリースしました。これらの脆弱性は、さまざまな業界を狙ったスピア型フィッシングメールを通じた標的型攻撃で悪用されました。CVE-2013-0633 はリモートバッファオーバーフローの脆弱性であり、CVE-2013-0634 はリモートメモリ破壊の脆弱性です。攻撃者は、これらの脆弱性を悪用して、アプリケーションのコンテキストで任意のコードを実行したり、サービス拒否状態を発生させたりすることができます。実際に検出されたサンプルでは、悪質な Flash(SWF)コンテンツを含む Microsoft Word 文書を電子メールに添付して、それをユーザーに開くように仕向ける手口が使われていました。これらの脆弱性は、特別に細工されたサイトにユーザーを誘導する方法で悪用される可能性もあります。シマンテックでは、これらの脅威を Bloodhound.Flash.19 および Bloodhound.Flash.20 として検出します。
2 月 20 日、Adobe 社は Adobe Reader X に影響を与える Adobe Acrobat および Adobe Reader のリモートコード実行の脆弱性(CVE-2013-0640)と Adobe Acrobat および Adobe Reader のリモートコード実行の脆弱性(CVE-2013-0641)の 2 つの興味深いゼロデイ脆弱性に対処するセキュリティ速報 APSB13-07 をリリースしました。これらの脆弱性に対する悪用は、その時点で最新の Adobe Reader と Adobe Acrobat のバージョン(サンドボックス保護機能を備えたバージョン X およびバージョン XI を含む)にも影響をあたえるものでした。
図 2. CVE-2013-0640 と CVE-2013-0641 の脆弱性を組み合わせてサンドボックスを回避
この悪用はきわめて高機能なもので、高度に不明瞭化された JavaScript、ROP のみのシェルコード、多段式のペイロードなど、複数の回避技術を使用しています。この悪用は 2 段階で動作します。最初の段階では、CVE-2013-0640 の脆弱性を悪用し、サンドボックス化されたプロセス内でコードを実行して悪質な DLL ファイルをペイロードとして投下します。次の段階では、このペイロードを使用してブローカープロセスで CVE-2013-0641 の脆弱性を悪用し、サンドボックス保護を回避してマルウェアを投下します。シマンテックでは、悪質な PDF ファイルを Trojan.Pidief として、投下される 2 つの DLL ファイルを Trojan.Swaylib としてそれぞれ検出します。
2013 年 2 月 26 日、Adobe 社の Product Security Incident Response Team(PSIRT)は、Adobe Flash Player 用の新しいセキュリティ更新を公表しました。2 月だけで 3 度目のパッチです。最新のセキュリティ速報 APSB13-08 では、Flash の 3 つの脆弱性に対処していますが、そのうち 2 つは実際に悪用されています。これらの脆弱性は、悪質な Flash(SWF)コンテンツを含むサイトにアクセスするよう仕向ける標的型攻撃で利用されました。Adobe Flash Player の不特定のセキュリティ脆弱性(CVE-2013-0643)と Adobe Flash Player のリモートコード実行の脆弱性(CVE-2013-0648)を悪用する攻撃は、Mozilla Firefox ブラウザを狙うように設計されていました。具体的には、CVE-2013-0648 の脆弱性は ExternalInterface ActionScript 機能に関連し、CVE-2013-0643 の脆弱性は Flash Player の Firefox サンドボックスのアクセス許可の問題に起因します。
Microsoft Internet Explorer の脆弱性
2012 年 12 月 27 日、Internet Explorer の新しいゼロデイ脆弱性が実際に悪用されているのが確認されました。これは 2013 年のゼロデイ脆弱性ではありませんが、2013 年第 1 四半期にも引き続き悪用されています。2013 年 1 月 14 日、Microsoft 社はこの問題に対処するセキュリティ情報をリリースしました。この脆弱性は、mshtml.dll ファイルで CButton オブジェクトを処理するときの解放後使用エラーに起因します。水飲み場型攻撃の一環として、一部の有名な Web サイトが悪質なコードをホストさせる目的で改ざんされ、そういった Web サイトにユーザーがアクセスすると、コンピュータがマルウェアに感染し、攻撃者が貴重な機密情報を盗み出すことが可能になります。シマンテックでは、水飲み場型攻撃に関する調査文書(『The Elderwood Project』)を以前に公開しており、2009 年以降に確認された標的、増加傾向、攻撃プラットフォームについて詳しく説明しています。
2013 年 3 月 16 日 には Microsoft Internet Explorer の解放後使用のリモートコード実行の脆弱性(CVE-2013-1288)が悪用されているのを確認しました。この問題は、すでに解放され後で再利用される CParaElement オブジェクトを処理するときに発生し、それによって脆弱性を引き起こします。この問題は Microsoft 社によって 2013 年 3 月 12 日にパッチが公開済みです。マルウェア作成者にとって、新しいゼロデイ脆弱性を発見するには費用も時間もかかります。そのため、攻撃者はパッチのリバースエンジニアリングによって脆弱性を理解し、悪質なコードを作成したと考えられます。ほとんどのシステムにはすでにパッチが適用されていたはずですが、パッチ公開後の数日間は攻撃者が狙えるパッチ未適用のシステムが多数存在していた可能性があります。
まとめ
合計すると、シマンテックでは 2013 年の最初の 3 カ月間で、Oracle Java、Adobe Flash、Adobe Reader、およびMicrosoft Internet Explorer に影響する 11 件ものゼロデイ脆弱性が悪用されていたことを確認しています。このことは、ゼロデイ脆弱性の発見と悪用が増加していることを示しています。また、これらの脆弱性は広く普及しているアプリケーションで見つかっており、被害が大きくなる可能性があります。これらの脆弱性のほとんどは、悪質なコードをホストしているサイトにアクセスするようユーザーを誘導することにより、インターネット上で悪用することが可能です。さらに、攻撃者は悪用の達成を阻む制限を回避するために、アプリケーションのサンドボックス保護機能の中にまで入り込んで脆弱性を見つけ出し始めました。こうした脆弱性のいくつかは、闇市場で販売されているさまざまな悪用ツールキットで利用されています。
シマンテックでは、以下の基本的なセキュリティ対策にを講じることをお勧めします。
- すべてのアプリケーションに最新のセキュリティパッチを確実に適用する。ゼロデイ攻撃をパッチで防ぐことはできませんが、すでに公表されている脆弱性から保護することは可能です。
- ウイルス対策ソフトウェアと IPS の定義を最新の状態に保つ。
- 怪しいサイトにはアクセスしない。
- 信頼できない送信元から提供されたファイルは開かない。
- 実行不可能でランダムにマップされるメモリ領域によって攻撃者が脆弱性を悪用できないようにするなど、セキュリティを何重にも実装する。
* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。