Tag Archives: Adobe Reader

Emerging ‘Stack Pivoting’ Exploits Bypass Common Security

[This blog was primarily written by Xiaoning Li of Intel Labs, with assistance from Peter Szor of McAfee Labs.] In February 2013, the Adobe Product Security Incident Response Team (PSIRT) released security advisory APSA13-02. In that report they listed two vulnerabilities (CVE-2013-0640 and CVE-2013-0641) that were widely exploited. At Intel Labs and McAfee Labs we Read more…

Tracking PDF Usage Poses a Security Problem

Looking back this year’s RSA Conference, you might have the feeling that the current threat landscape is primarily a series of advanced attacks. This concept includes well-known advanced persistent threats (APTs) and zero-day vulnerability exploits. To respond to this trend in threats, McAfee Labs has launched several innovative projects, one of which we call the Read more…

2013 ?? 1 ????????????????

      No Comments on 2013 ?? 1 ????????????????

2013 年第 1 四半期には、Oracle Java、Adobe Flash、Adobe Reader、および Microsoft Internet Explorer に影響するゼロデイ脆弱性が悪用されているケースが多数確認されました。このブログでは、2013 年第 1 四半期にマルウェアの拡散に悪用されたこれらのゼロデイ脆弱性について詳しく説明します。
 

Java のゼロデイ脆弱性

t1.png

シマンテックでは 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 プロセスでの任意のメモリ読み書きにつながるリモートコード実行の脆弱性に関連します。これにより、攻撃者はメモリを破壊し、セキュリティマネージャコンポーネントを無効にすることができます。
 

Figure1.png

図 1. 信頼されていないアプレットが脆弱性を悪用してセキュリティマネージャを無効にしてシステムリソースにアクセス
 

これらすべての脆弱性の悪用条件は同じです。つまり、認証なしでリモートから悪用して、現在ログインしているユーザーのコンテキストで任意のコードを実行できるということです。攻撃者がこれらの脆弱性を悪用するには、警戒心の弱いユーザーをだまして、悪質なアプレットを含む特別に細工された Web ページにアクセスさせる必要があります。悪用に成功すると、ユーザーのシステムの可用性、完全性、および機密性に影響を与える可能性があります。なお、これらの脆弱性は、サーバーで実行されている Java、スタンドアロンの Java デスクトップアプリケーション、埋め込みの Java アプリケーションには影響を与えません。
 

Adobe Flash Adobe Reader のゼロデイ脆弱性

t2.png

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 を含む)にも影響をあたえるものでした。
 

Figure2.png

図 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 の脆弱性

t3.png

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 にアクセスしてください。

2013 First Quarter Zero-Day Vulnerabilities

In the first quarter of 2013, we spotted quite a few zero-day vulnerabilities affecting Oracle Java, Adobe Flash, Adobe Reader, and Microsoft Internet Explorer being exploited in the wild. This blog discusses the details of these zero-days exploited to spread malware in the first quarter of 2013.
 

Java zero-day vulnerabilities

t1.png

During the month of January 2013, we saw some interesting Oracle Java SE zero-day issues being actively exploited in the wild. On January 13, 2013, Oracle released a security alert for Oracle Java Runtime Environment Multiple Remote Code Execution Vulnerabilities (CVE-2013-0422) to address multiple vulnerabilities in Java SE. The first vulnerability occurs in the way the public “getMBeanInstantiator” method in the “JmxMBeanServer” class is used to obtain a reference to a private “MBeanInstantiator” object, and then retrieving arbitrary Class references using the “findClass” method. The second vulnerability occurs because of using the Reflection API with recursion in a way that bypasses a security check by the “java.lang.invoke.MethodHandles.Lookup.checkSecurityManager” method due to the inability of the “sun.reflect.Reflection.getCallerClass” method to skip frames related to the new reflection API.

Immediately, after patching CVE-2012-0422, Oracle alerted the public about Oracle Java Runtime Environment Remote Code Execution Vulnerability (CVE-2012-3174) being exploited in wild to execute arbitrary code. Specifically, the issue occurs when the “MethodHandle” abstract class is used to invoke a method in the “sun.misc.reflect.Trampoline” class. This can allow the Security Manager to be bypassed.

On February 1, 2013, Oracle released a massive patch update for Java SE addressing 50 vulnerabilities. The Critical Patch Update (CPU) was originally scheduled for February 19, however it was released well in advance because of the exploitation in the wild of one of the vulnerabilities affecting the Java Runtime Environment (JRE) in desktop browsers. The details about this vulnerability are currently unknown. On February 19, Oracle released an updated Critical Patch Update (CPU) with an additional five fixes, bringing the total of fixes in the February 2013 CPU to 55.

On March 4, 2013, Oracle released yet another security alert about Oracle Java SE Remote Code Execution Vulnerability (CVE-2013-1493). This issue is prone to a remote code execution vulnerability that leads to arbitrary memory read and writes in the JVM process. This allows attackers to corrupt the memory and disable the Security Manager component.
 

Figure1.png

Figure 1. Untrusted Applet exploits a vulnerability to disable the Security Manager and access system resources
 

The exploit conditions for all these vulnerabilities are the same i.e. they are remotely exploitable, without authentication, to execute arbitrary code in the context of the currently logged-in user. To successfully exploit the vulnerabilities, an attacker must entice an unsuspecting user into visiting a specially crafted webpage that contains a malicious applet. Successful exploits can impact the availability, integrity, and confidentiality of a user’s system. Please note that these vulnerabilities do not affect Java running on servers, standalone Java desktop applications, or embedded Java applications.
 

Adobe Flash and Adobe Reader zero-day vulnerabilities

t2.png

On February 7, 2013, Adobe released a security bulletin, APSB13-04, that included fixes for Adobe Flash Player Buffer Overflow Vulnerability (CVE-2013-0633) and Adobe Flash Player Remote Memory Corruption Vulnerability (CVE-2013-0634) which also affected the Adobe Flash application. These vulnerabilities were exploited in targeted attacks through spear phishing email messages targeting numerous industries. CVE-2013-0633 is a remote buffer-overflow vulnerability and CVE-2013-0634 is a remote memory-corruption vulnerability. An attacker can exploit these issues and execute arbitrary code in the context of the application or cause denial-of-service conditions. The samples discovered in-the-wild were delivered by tricking users into opening a Microsoft Word document sent as an email attachment that contains malicious Flash (SWF) content. These issues can also be exploited by enticing a user to visit a specially crafted site. Symantec detects these threats as Bloodhound.Flash.19 and Bloodhound.Flash.20.

On February 20, Adobe released a security bulletin, APSB13-07, that contained fixes for two interesting zero-day vulnerabilities, Adobe Acrobat And Reader Remote Code Execution Vulnerability (CVE-2013-0640) and Adobe Acrobat And Reader Remote Code Execution Vulnerability (CVE-2013-0641), affecting Adobe Reader X. The exploit for these issues worked in the latest versions of Adobe Reader and Adobe Acrobat that were available at the time, including versions X and XI, which both have a sandbox protection feature.
 

Figure2.png

Figure 2. CVE-2013-0640 and CVE-2013-0641 vulnerabilities combine to bypass sandbox
 

The exploit was highly sophisticated and contained multiple evasion techniques, including heavily obfuscated JavaScript, ROP-only shellcode, and a multi-staged payload. The exploit worked in two stages. The first stage exploited the first vulnerability to have a code execution inside the sandboxed process in order to drop a malicious DLL file as the payload. The second stage used this payload to exploit the second vulnerability in a broker process and bypass the sandbox protection to drop the malware. Symantec detects the malicious PDF file as Trojan.Pidief and the two dropped DLL files as Trojan.Swaylib.

On February 26, 2013, the Adobe Product Security Incident Response Team (PSIRT) announced the availability of new security updates for Adobe Flash Player. This was the third time in February that they patched their code. The latest security bulletin, APSB13-08, addressed three Flash vulnerabilities, two of which were exploited in wild. These issues were used in targeted attacks that trick a user into visiting a site that contains malicious Flash (SWF) content. The exploits used for Adobe Flash Player Unspecified Security Vulnerability (CVE-2013-0643) and Adobe Flash Player Remote Code Execution Vulnerability (CVE-2013-0648) were designed to target the Mozilla Firefox browser. Specifically, the issue related to CVE-2013-0648 exists in the “ExternalInterface ActionScript” feature and CVE-2013-0643 exists because of a permissions issue with the Flash Player Firefox sandbox.
 

Microsoft Internet Explorer vulnerability

t3.png

On December 27, 2012, a new Internet Explorer zero-day vulnerability was discovered being exploited in wild. Although this is not a 2013 zero-day, the exploitation of this issue continued into the first quarter of 2013. On January 14, 2013, Microsoft released a security bulletin containing fixes for this issue. The vulnerability occurred because of a user-after-free error when handling the “CButton” object in the mshtml.dll file. Certain popular websites were compromised to host the exploit as a part of a watering hole style attack. When users visited the compromised website, their computers were infected with malware, allowing attackers to extract valuable and sensitive information. Symantec had earlier published a research document surrounding watering hole attacks (The Elderwood Project) detailing targets, growing trends, and attack platforms that have been seen since 2009.

On March 16, 2013, we saw Microsoft Internet Explorer Use-After-Free Remote Code Execution Vulnerability (CVE-2013-1288) being exploited in wild. The issue occurred when handling the “CParaElement” object that was already freed and reused later and thus triggering the vulnerability. The issue was already patched by Microsoft on March 12, 2013. Discovering new zero-days can be a costly and time consuming business for malware authors. So it is speculated that the attackers may have reverse-engineered the patches to understand this vulnerability and craft an exploit. Though most systems would have already been patched, there would still be many unpatched systems during the first few days that attackers can compromise.
 

Conclusion

In total, we observed 11 zero-day vulnerabilities exploited in the first three months of 2013 affecting Oracle Java, Adobe Flash, Adobe Reader, and Microsoft Internet Explorer, which is quite high. This shows an increase in the finding and exploiting of zero-days. Plus the issues were discovered in popular applications allowing for maximum damage. Most of these flaws can be exploited over the Internet by enticing users to visit a site hosting the exploit. We also observed the attackers have started digging deeper to find vulnerabilities in the sandbox protection features of applications in order to bypass the restrictions for complete exploitation. A number of these flaws are used in different exploit kits and sold on the underground market.

Symantec recommends users to follow these best security practices:

  • Ensure all applications are up to date with the latest security patches. Even though a zero-day exploit cannot be patched, the latest updates will provide protection from previously disclosed vulnerabilities.
  • Ensure antivirus and IPS definitions are up-to-date.
  • Avoid visiting sites of questionable integrity.
  • Avoid opening files provided by untrusted sources.
  • Implement multiple redundant layers of security such as non-executable and randomly mapped memory segments that may hinder an attacker’s ability to exploit vulnerabilities.