Tag Archives: Endpoint Protection (AntiVirus)

Android Vulnerability Allows App Hijacking

A serious Android vulnerability, set to be disclosed at the Blackhat conference, has now been publicly disclosed. The vulnerability allows attackers to inject malicious code into legitimate apps without invalidating the digital signature.
Android appli…

Microsoft Patch Tuesday – July 2013

Hello, welcome to this month’s blog on the Microsoft patch release. This month the vendor is releasing seven bulletins covering a total of 36 vulnerabilities. 24 of this month’s issues are rated ’Critical’.

As always, customers are advised to follow these security best practices:

  • Install vendor patches as soon as they are available.
  • Run all software with the least privileges required while still maintaining functionality.
  • Avoid handling files from unknown or questionable sources.
  • Never visit sites of unknown or questionable integrity.
  • Block external access at the network perimeter to all key systems unless specific access is required.

Microsoft’s summary of the July releases can be found here:
http://technet.microsoft.com/en-us/security/bulletin/ms13-Jul

The following is a breakdown of the issues being addressed this month:

  1. MS13-052 Vulnerabilities in .NET Framework and Silverlight Could Allow Remote Code Execution (2861561)

    TrueType Font Parsing Vulnerability (CVE-2013-3129) MS Rating: Critical

    A remote code execution vulnerability exists in the way that affected components handle specially crafted TrueType font files. The vulnerability could allow a remote code execution if a user opens a specially crafted TrueType font file. An attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs, view, change, or delete data, or create new accounts with full administrative rights.

    Array Access Violation Vulnerability (CVE-2013-3131) MS Rating: Critical

    A remote code execution vulnerability exists in the way the .NET Framework handles multidimensional arrays of small structures.

    Delegate Reflection Bypass Vulnerability (CVE-2013-3132) MS Rating: Important

    An elevation of privilege vulnerability exists in the way that the .NET Framework validates the permissions of certain objects performing reflection. An attacker who successfully exploited this vulnerability could take complete control of an affected system.

    Anonymous Method Injection Vulnerability (CVE-2013-3133) MS Rating: Important

    An elevation of privilege vulnerability exists in the way that the .NET Framework validates permissions for objects involved with reflection.

    Array Allocation Vulnerability (CVE-2013-3134) MS Rating: Critical

    A remote code execution vulnerability exists in the way that the .NET Framework allocates arrays of small structures.

    Delegate Serialization Vulnerability (CVE-2013-3171) MS Rating: Important

    An elevation of privilege vulnerability exists in the way that the .NET Framework validates permissions for delegate objects during serialization.

    Null Pointer Vulnerability (CVE-2013-3178) MS Rating: Important

    A remote code execution vulnerability exists in the way Silverlight handles a null pointer.

  2. MS13-053 Vulnerabilities in Windows Kernel-Mode Drivers Could Allow Remote Code Execution (2850851)

    Win32k Memory Allocation Vulnerability (CVE-2013-1300) MS Rating: Important

    An elevation of privilege vulnerability exists when the Windows kernel-mode driver improperly handles objects in memory. An attacker who successfully exploited this vulnerability could execute arbitrary code with elevated privileges.

    Win32k Dereference Vulnerability (CVE-2013-1340) MS Rating: Important

    An elevation of privilege vulnerability exists in the way that the Windows kernel-mode driver improperly handles objects in memory. An attacker who successfully exploited this vulnerability could execute arbitrary code with elevated privileges.

    Win32k Vulnerability (CVE-2013-1345) MS Rating: Important

    An elevation of privilege vulnerability exists in the way that the Windows kernel-mode driver improperly handles objects in memory. An attacker who successfully exploited this vulnerability could execute arbitrary code with elevated privileges.

    TrueType Font Parsing Vulnerability (CVE-2013-3129) MS Rating: Critical

    A remote code execution vulnerability exists in the way that affected components handle specially crafted TrueType font files. The vulnerability could allow a remote code execution if a user opens a specially crafted TrueType font file. An attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs, view, change, or delete data, or create new accounts with full administrative rights.

    Win32k Use After Free Vulnerability (CVE-2013-3167) MS Rating: Important

    An information disclosure vulnerability exists in the way that the Windows kernel-mode driver improperly handles objects in memory. An attacker who successfully exploited this vulnerability could execute arbitrary code with elevated privileges.

    Win32k Buffer Overflow Vulnerability (CVE-2013-3172) MS Rating: Moderate

    A denial of service vulnerability exists in the way that the Windows kernel-mode driver improperly handles objects in memory. An attacker who successfully exploited this vulnerability could execute arbitrary code with elevated privileges.

    Win32k Buffer Overwrite Vulnerability (CVE-2013-3173) MS Rating: Important

    An elevation of privilege vulnerability exists in the way that the Windows kernel-mode driver improperly handles objects in memory. An attacker who successfully exploited this vulnerability could execute arbitrary code with elevated privileges.

    Win32k Read AV Vulnerability (CVE-2013-3660) MS Rating: Critical

    An elevation of privilege vulnerability exists in the way that the Windows kernel-mode driver improperly handles objects in memory. An attacker who successfully exploited this vulnerability could execute arbitrary code with elevated privileges.

  3. MS13-054 Vulnerability in GDI+ Could Allow Remote Code Execution (2848295)

    TrueType Font Parsing Vulnerability (CVE-2013-3129) MS Rating: Critical

    A vulnerability exists in the way that affected Windows components and other affected software handle specially crafted TrueType font files. The vulnerability could allow a remote code execution if a user opens a specially crafted TrueType font file. An attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs, view, change, or delete data, or create new accounts with full administrative rights.

  4. MS13-055 Cumulative Security Update for Internet Explorer (2846071)

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3115) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3143) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3144) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3145) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3146) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3147) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3148) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3149) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3150) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3151) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3152) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3153) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3161) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3162) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3163) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Internet Explorer Memory Corruption Vulnerability (CVE-2013-3164) MS Rating: Critical

    A remote code execution vulnerability exists when Internet Explorer improperly accesses an object in memory. This vulnerability may corrupt memory in such a way that an attacker could execute arbitrary code in the context of the current user.

    Shift JIS Character Encoding Vulnerability (CVE-2013-3166) MS Rating: Important

    A cross-site-scripting (XSS) vulnerability exists in Internet Explorer that could allow an attacker to gain access to information in another domain or Internet Explorer zone. An attacker could exploit the vulnerability by constructing a specially crafted webpage that could allow an information disclosure if a user viewed the webpage. An attacker who successfully exploited this vulnerability could view content from another domain or Internet Explorer zone.

  5. MS13-056 Vulnerability in Microsoft DirectShow Could Allow Remote Code Execution (2845187)

    DirectShow Arbitrary Memory Overwrite Vulnerability (CVE-2013-3174) MS Rating: Critical

    A remote code execution vulnerability exists in the way that Microsoft DirectShow parses GIF image files. This vulnerability could allow a remote code execution if a user opened a specially crafted GIF file. If a user is logged on with administrative user rights, an attacker who successfully exploited this vulnerability could take complete control of an affected system. An attacker could then install programs, view, change, or delete data, or create new accounts with full user rights. Users whose accounts are configured to have fewer user rights on the system could be less impacted than users who operate with administrative user rights.

  6. MS13-057 Vulnerability in Windows Media Format Runtime Could Allow Remote Code Execution (2847883)

    WMV Video Decoder Remote Code Execution Vulnerability (CVE-2013-3127) MS Rating: Critical

    A remote code execution vulnerability exists in the way Windows Media Format Runtime handles certain media files. This vulnerability could allow an attacker to execute arbitrary code if the attacker convinces a user to open a specially crafted media file. An attacker could then install programs, view, change, or delete data, or create new accounts with full user rights.

  7. MS13-058 Vulnerability in Windows Defender Could Allow Elevation of Privilege (2847927)

    Microsoft Windows 7 Defender Improper Pathname Vulnerability (CVE-2013-3154) MS Rating: Important

    This is an elevation of privilege vulnerability. An attacker who successfully exploited this vulnerability could execute arbitrary code in the security context of the LocalSystem account and take complete control of the system. An attacker could then install programs, view, change, or delete data, or create new accounts with full user rights. An attacker must have valid logon credentials to exploit this vulnerability. The vulnerability could not be exploited by anonymous users.

More information on the vulnerabilities being addressed this month is available at Symantec’s free SecurityFocus portal and to our customers through the DeepSight Threat Management System.

Rendering the Web Red with Redkit

On June 26, we observed an exploit kit attack on the Segway website. Symantec has notified Segway about the attack and Segway has since taken steps to ensure their website is no longer compromised. This blog will look at the details of an attack using the Redkit exploit kit.

Attack details

Code is injected into a jQuery script.

Redkit 1 edit_0.png

Figure 1. jQuery script with code injection

The malicious code is present in the jquery.min.js JavaScript.

Redkit 2 edit.png

Figure 2. Malicious code in jquery.min.js

The injected JavaScript decodes to a malicious iframe, which redirects to a landing page. This also sets up a cookie after the redirection so that users are not compromised more than once.

Redkit 3-1 edit.png

Decodes to:

Redkit 3-2 edit.png

Figure 3. JavaScript decodes to a malicious iframe

The iframe redirects to a Redkit landing page:

  • [REMOVED]. [REMOVED].co.uk/abcd.html

The landing page loads the Java Network Launch Protocol (JNLP) to call the malicious JAR files. On successful exploitation, the JAR files use “Open Connection” and receives the URL from “param value=” in an obfuscated manner.

Redkit 4 edit.png

Figure 4. Obfuscated URL received from “param value=”

The encoded string resolves to:

  • http://[REMOVED]. [REMOVED].co.uk/19.html

The JNLP script is used to deploy malicious JAR files on user’s computer.

Redkit 5 edit.png

Figure 5. JNLP script used to deploy malicious JAR files

The URI for the JAR files:

  • http://[REMOVED]. [REMOVED].co.uk/8o.jar

Current JAR file names are two characters long, such as 80.jar, sj.jar, and 7t.jar. These JAR files download an encrypted payload and employ cipher schemes to decrypt it.

The JAR files used in this attack use a Java type confusion vulnerability (CVE-2012-1723)

Redkit 6 edit.png_0.png

Figure 6. Java type confusion being exploited

The cipher scheme used to decode the URL, passed as param through JNLP, is a simple character substitution algorithm.

Redkit 7 edit_0.png

Figure 7. Cipher scheme used to decode URL

Several pieces of malware are dropped in this attack:

Redkit 8 edit_0.png

Figure 8. Attack scenario

Conclusion

Redkit has been available since early 2012 and still propagates in the same way: Hacked sites with a malicious iframe redirect to the exploit kit landing page, as we have observed in this case, and then plugin detect scripts are used for fingerprinting just like other exploit kits.

Recently, we have observed landing pages with the following URI patterns:

  • [REMOVED]. [REMOVED]/hfiv.htm
  • [REMOVED]. [REMOVED]/hmtg.htm
  • [REMOVED].[REMOVED]/hmtg.htm

Redkit has started deploying JAR files using JNLP script as a plugin to load them. The dropped JAR files have numbered names such as 11.jar or 123.jar. The JAR files are obfuscated and exploit the latest Java vulnerabilities. The payload for these files is encrypted.

Redkit exploits several Java vulnerabilities:

Redkit is known to drop:                                                  

Symantec blocked approximately 150,000 Redkit attacks last month.

Redkit 9 edit.png_0.png

Figure 9. Geographical distribution of attacks

North American, European, and USSR regions are the most affected geographical areas. The motive for these attacks is generally compromising users for monetary benefits. Recently, these attacks have targeted organizations in order to steal intellectual property.

Protection

The good news is that Symantec provides comprehensive protection for Redkit attacks, and customers with updated intrusion prevention and antivirus signatures are protected. Intrusion Prevention scans all the network traffic that enters and exits your computer and compares this information against a set of attack signatures, protecting users against the most common Internet attacks.

Symantec has the following protection in place to protect customers from this attack:

Intrusion prevention:

Antivirus:

Rise of the Java Remote Access Tools

We recently came across an attack campaign which looked quite unusual compared to the standard attacks normally seen in the wild. This campaign is targeting government agencies by sending phishing emails with a malicious attachment. Nothing new so far,…

Google Play ???? Android ??????

      No Comments on Google Play ???? Android ??????

アプリストアから悪質なアプリを除外するのが難しいことは、先日のブログでもお伝えしたばかりです。本日、シマンテックの自動システムによって、Google Play でも別のミスリーディングアプリが公開されている例が見つかりました。

このアプリは Next Launcher 3D Pro という名前で、同じく Google Play で公開されている Next Launcher 3D という正規アプリの無償版であると謳っています。調べてみると、このアプリには一見して何かがおかしいとわかる明らかな特徴があります。正規版の開発元である Go Launcher Dev Team は、無償版と称するアプリの開発元である TuranPercin とは別です。偽のアプリをインストールすると、無償でアプリを使う前に何ページかの広告を閲覧する必要があると説明されます。

Fig2_275_0.png

図 1. インストール画面

広告表示を実行し終わるとようやく、悪質なアプリはダウンロードに進み、有償版の Next Launcher 3D をインストールするよう求めてきますが、Google Application Licensing サービスによって保護されているため、これは正しく処理されません。

Fig1_275_0.png

図 2. 正規の Next Launcher 3D アプリで表示されるメッセージ

シマンテックでは、同様の手口でユーザーを欺いて正規アプリの偽バージョンをインストールさせようとするアプリをさらに 752 種類特定しています。Google Play で特定されたアプリは 1 つだけで、このアプリが公開されていることは Google 社に通知済みです。

ノートン モバイルセキュリティなどのセキュリティアプリをインストールすることをお勧めします。ノートン モバイルセキュリティは、今回のアプリを Android.Fakeapp として検出します。

スマートフォンとタブレットの安全性に関する一般的なヒントについては、モバイルセキュリティの Web サイト(英語)を参照してください。

 

* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。

Another Fake Application for Android Found on Google Play

Recently we released a blog talking about the difficulties of keeping app stores free of malicious applications. Today our automated system flagged yet another example of a misleading application that was posted on the Google Play store.
The applicatio…

Another Fake Application for Android Found on Google Play

Recently we released a blog talking about the difficulties of keeping app stores free of malicious applications. Today our automated system flagged yet another example of a misleading application that was posted on the Google Play store.
The applicatio…

Java Autorun ??? Java.Cogyeka?? 3 ??

このブログシリーズの第 1 回第 2 回でお伝えしたように、Java.Cogyeka は autorun.inf ファイルを使って拡散し、追加のモジュールをダウンロードします。サーバーとの接続を確立するのが難しかったため 1 週間以上掛かってしまいましたが、シマンテックは Java アプリケーションベースのダウンロードされるモジュールを入手することに成功しました。ダウンロードされるモジュールは、メインモジュールと同様に、Zelix KlassMaster による不明瞭化によって自身を隠そうとします。ダウンロードされるモジュールを調べたところ、Java.Cogyeka の目的は侵入先のコンピュータ上にあるゲームから情報を盗み出すことだとわかりました。

標的となるゲーム
Java.Cogyeka が標的とするゲームは、Riot Games 社が運営している『League of Legends(リーグオブレジェンズ)』という無料オンラインゲームです。このゲームは無料ですが、追加のキャラクターやキャラクタースキンを実際のお金で購入することができます。Java.Cogyeka がこのゲームを狙うのは、このように現実の金銭取引があるためでしょう。

Infostealer
ダウンロードされたモジュールは、『League of Legends』のプレイヤーのアカウント情報とキーストロークを盗み出して、そのアカウントを自由に制御しようとします。Java.Cogyeka の目的は、このゲームに関連する情報を盗み出すことにありますが、キーストロークを盗む機能があるので、それ以外の情報も盗み出される恐れがあります。

キーストロークの窃盗
ダウンロードされたモジュールは、32 ビット版と 64 ビット版の 2 種類の DLL ファイルを投下します。このとき利用されるのは、メインモジュールでリムーバブルドライブのドライブ名を取得するときに使われたのと同じ手口です(Java.Cogyeka に関する最初のブログを参照)。Java システムでは、Java アプリケーションが他のプロセスからキーストロークを取得することが許可されていません。Java.Cogyeka はパスワードを盗み出すことができますが、それにはネイティブコールを必要とするため、Java アプリケーションから Windows DLL ファイルを投下します。

キーストロークとマウス操作を記録するために、フックタイプとして WH_KEYBOARD_LL と WH_MOUSE_LL が使われているときに SetWindowsHookEx API を使います。盗み出されたキーストロークとマウス操作は、リモートサーバーに送信されます。

Fig1_1.png

図 1. ダウンロードされたモジュールがキーストロークとマウス操作を盗み出す

アカウント情報の窃盗
Java.Cogyeka がキーストロークを盗み出すのは、『League of Legends』のプレイヤーからユーザー名とパスワードを取得するためです。しかし、ゲームのログインウィンドウにはプレイヤーのユーザー名を記憶しておくオプションがあるため、このオプションが選択されている場合、Java.Cogyeka はユーザー名を取得できません。この問題を回避するために、Java.Cogyeka はユーザーのアカウント情報が記録されているファイルも盗み出そうとします。

Fig2_0.png

図 2. 『League of Legends』のログイン画面

ユーザーのアカウント情報を盗み出すために、Java.Cogyeka はすべてのドライブ上で以下のフォルダを検索します。

  • Riot Games/League of Legends/RADS/projects/lol_air_client/releases

このフォルダの中に、「0.1.2.0.」のようにゲームのバージョン名が付いたフォルダがあります。Java.Cogyeka は、バージョンフォルダでそれらのフォルダを走査して、以下のパスを検索します。

  • deploy/preferences/global/global.properties

このファイルには、ゲーム設定のほか、ログインに使われるプレイヤーのユーザー名が記録されています。

盗み出した情報の送信
ダウンロードされたモジュールによって取得されたログイン情報は、TCP ポート 1087 で Jkl.no-ip.biz というドメインに送信されます。

このサーバー名はすでに無効化されており、現在はアクセスできませんが、このサーバー名とポート番号はモジュールにハードコード化されており、その点でコマンド & コントロールサーバーの名前やポート番号とは異なります。また、盗み出された情報は暗号化されます。

Fig3.png

図 3. 標的となったゲームが全世界でプレイされているので、マルウェアも世界各地で確認されている

まとめ
このブログシリーズでは、Java.Cogyeka の拡散機能および情報窃盗機能と、不明瞭化ツールを使ってセキュリティスキャナによる検出をすり抜ける方法について説明してきました。はっきり狙われているのは『League of Legends』というオンラインゲームですが、取得されたキーストロークとマウス操作を通じて、それ以外の情報も盗み出される恐れがあります。追加の Java モジュールをダウンロードすることから、Java.Cogyeka には自身を更新する機能もあるかもしれません。シマンテックは、このマルウェアについて今後も監視と調査を続ける予定です。

Java.Cogyeka が、USB による拡散機能を必要としている理由は不明なままです。このマルウェアの目的はオンラインゲームから情報を盗み出すことにあります。『League of Legends』は、ユーザーがゲームサーバーに接続してオンラインでプレイするタイプのゲームなので、もしかすると、インターネットカフェのコンピュータに感染することを狙っているのかもしれません。その場合、プレイヤーやインターネットカフェの管理者は、USB メモリを使う可能性があります。あるいは、ユーザーが友人と同じ場所でプレイすることも考えられ、ファイルを共有するために USB メモリを使う可能性もあります。Java.Cogyeka は、そのような状況を利用しようとしているのかもしれません。

シマンテックは、これらのファイルを Java.CogyekaJava.Cogyeka!autorunJava.Cogyeka!gen1 としてそれぞれ検出します。セキュリティソフトウェアは常に最新状態に保つようにしてください。

 

* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。

Java Autorun ??? Java.Cogyeka?? 2 ??

不明瞭化
前回のブログでは、Java.Cogyeka で用いられているステルス技術について説明しました。ユーザーやセキュリティ研究者を欺く効果はありませんが、こうしたステルス技術が利用されているのは、Java マルウェアが絶えず改良されていることの証です。

ステルス技術とは別に、Java.Cogyeka はさまざまな不明瞭化技術によってセキュリティ研究者の目をすり抜けるように設計されています。成功している手口もありますが、なかには過剰な手口もあり、過剰な不明瞭化は、多くの場合マルウェアの効果を損ねているようです。

Java.Cogyeka で使われている不明瞭化技術は以下の 3 つです。

1. autorun.inf の不明瞭化
autorun.inf ファイルは、リムーバブルドライブを介した Java.Cogyeka の拡散に関与しています。このファイルは、以下の 3 つの部分で構成されています。

  1. Action
  2. Icon
  3. ShellExecute

autorun.inf がリムーバブルドライブの Recycler フォルダで自身を実行するには、ShellExecute 関数が必要です。前回のブログで述べたように、Java.Cogyeka はフォルダアイコンを使い、「Open folder to view files(ファイルを表示するにはフォルダを開いてください)」というメッセージも表示します。

Java.Cogyeka は、不明瞭化技術を使うことで、セキュリティスキャナによって autorun.inf が検出されないようにしています。不明瞭化する際には、エントリ間に無意味なゴミデータが挿入されます。そのゴミデータを構成しているのは、0x00 ~ 0x1F の制御文字です。このような不明瞭化技術は、悪質な .inf または .html ファイルでしばしば見つかります。

Figure1_3.png

図 1. 不明瞭化技術で挿入されるゴミデータ

不規則性を生ませるために、ASCII 文字の大文字と小文字がランダムに使われています。ゴミデータのサイズは 0 ~ 50 バイトで、細工された autorun.inf ファイルにトークンとともに配置されているクラスタの中にあります。シマンテックは、Java.Cogyeka によって細工された autorun.inf ファイルを Java.Cogyeka!autorun として検出します。

2. Zelix 不明瞭化ツール
Java.Cogyeka は、15 個のクラスファイル(a.class から o.class)を持つ JAR ファイルとして自身を拡散する Java マルウェアです。本来これらのクラスは、各クラスの機能に基づいて名前が付けられていたと考えられます。Zelix KlassMaster という名前の Java 不明瞭化ツールで、クラス名、メソッド名、Java バイトコード、文字列を変更しています。

Figure2_1.png

図 2. XOR テーブルで暗号化され復号される文字列の Zelix ビットマップ

Java 不明瞭化ツール自体はマルウェアではなく、正規のツールです。Java の開発者は、Java クラスファイルに重要なデータやコードを隠そうとすることがあります。Zelix による不明瞭化が適用されている場合、Java クラスファイルを逆コンパイルするのは困難です。

このツールを使うオブジェクトは、Java.Cogyeka だけではありません。たとえば、Java の脆弱性を悪用した悪質な Java アプレットの多くが、やはりこのツールを使っています。

3. ネットワーク接続の不明瞭化
サーバー名とポート番号の決定
コマンド & コントロール(C&C)サーバーから追加のモジュールをダウンロードするために、Java.Cogyeka は C&C サーバーに接続しなければなりません。しかし、既存のサーバーに接続しつつ多くの偽サーバーにも接続しようとするのは困難です。このようにして追加のモジュールをダウンロードするには長い時間が掛かりますが、その難しさの原因になっているのは、複雑なサーバー名とポート番号です。

C&C サーバーのホスト名は 5 個から 8 個のランダムな文字から成り、ドメインは動的 DNS に基づいてランダムに選択されます。ランダムな文字の選択には、マルウェアが実行される時刻に基づいたランダムなシードを使います。ドメインは、ランダムな文字の取得に使われたものと同じランダムシードによって、22 の有名なドメインサービスから選択されます。ポート番号も、同じランダムシードによってランダムに生成されます。シードの数は、64 ビット整数に基づいています。

Figure3_1.png

図 3. ホスト名、ドメイン名、ポート番号の決定に使われるランダムなシード

生成された C&C サーバー名は、動的な DNS サービスで別のユーザーによってホストされている正規のサーバー名と同じになる可能性もあります。その場合、マルウェアは生成された TCP ポート番号でこのサーバー名に接続しようとします。サーバーがこのポートでの接続を拒否した場合、接続はただちに停止されますが、マルウェアは接続を確立できないことがわかるまで待機しなければなりません。

ネゴシエーション
追加モジュールのダウンロードに使われるプロトコルはオリジナルのもので、不明瞭化されています。このプロトコルは、擬似乱数ジェネレータによって作成されるストリーム暗号を使うため、セキュアな接続を確立する可能性があります。

Java.Cogyeka とサーバープログラムでは、ランダムシードも擬似乱数ジェネレータも同じです。マルウェアは、2 つのバイトストリームを交換してネゴシエートします。

Figure4_1.png

図 4. Java.Cogyeka とサーバープログラムのネゴシエーション

Java.Cogyeka は擬似乱数ジェネレータで 1 つ目のバイトストリームとその長さを生成し、TCP 接続を介してサーバーに送信します。次にサーバーがデータを受信しますが、このサーバーがマルウェア作成者によって作成されたものである場合には、実行されるサーバープログラムはマルウェアと同じランダムシードと擬似乱数ジェネレータを備えています。サーバーは、同じジェネレータを使うことでバイトストリームとその長さを検証できます。再確認のため、サーバーは 2 つ目のバイトストリームを作成します。マルウェアは 2 つ目のバイトストリームを受け取り、先に生成したバイトストリームでそのデータを検証します。

ネゴシエーションに成功した時点で、マルウェアはサーバーが同じランダムシードと擬似乱数ジェネレータを使っていることを確認できたことになります。

モジュールのダウンロード
ネゴシエーションに成功すると、Java.Cogyeka はダウンロードするモジュールのサイズなどの設定をダウンロードしますが、この設定はストリーム暗号によって暗号化されています。サイズを取得すると、ストリーム暗号によって暗号化されたモジュールをダウンロードします。この設定には、ダウンロードされるモジュールのハッシュ値などが含まれており、マルウェアはダウンロードの成否を SHA-512 で確認します。

作成の意図
ここまで、Java.Cogyeka で使われている不明瞭化の 3 つの技術について説明しました。これらの技術はいくぶん複雑ではあるものの、マルウェアの autorun.inf ファイルはセキュリティスキャナで簡単に検出されます。サーバー名とポート番号に使われる不明瞭化技術の一部は、不明瞭化が行き過ぎているために効果を発揮していません。ストリーム暗号は、ネットワークタイプのセキュリティスキャナに対して効果を発揮する可能性があります。この不明瞭化技術は、Java.Cogyeka が単なる趣味として作成されたものではなく、明確な意図を持って作成されたものであることを示しています。

次回は…
このシリーズの最終回となる次回は、Java.Cogyeka の目的と、どのような情報がいかにして取得されるかについて説明します。

 

* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。

The Java Autorun Worm, Java.Cogyeka (3 of 3)

As I wrote in parts one and two of this series of blogs, Java.Cogyeka uses an autorun.inf file to propagate and download an additional module. I was able to get the downloaded module, based on a Java application, even though it took over a week because of the difficulty in establishing a connection with the server. The downloaded module, like the main module, tries to protect itself through obfuscation with Zelix KlassMaster. After investigating the downloaded module, I discovered that the purpose of Java.Cogyeka is to steal information from a video game on the compromised computer.

The targeted game
The game being targeted by Java.Cogyeka is League of Legends, a free-to-play video game published by Riot Games. While the game is free-to-play, users can purchase additional characters and character skins with real money. Java.Cogyeka may target League of Legends because of these real money transactions.

Infostealer
The downloaded module attempts to steal the League of Legends player’s account information and keystrokes to gain control of their account. While the purpose of the threat is to steal information related to the League of Legends game, it may also steal additional information because of its keystroke-stealing capabilities.

Stealing keystrokes
The downloaded module drops two types of DLL files, a 32-bit version and a 64-bit version. This is done using the same technique that the threat uses for obtaining the drive letters of the removal drive in the main module, as described in the second Java.Cogyeka blog. The Java system does not permit Java applications to obtain keystroke information from other processes. The malware may steal passwords, but it needs a native call, so it drops the Windows DLL file from the Java application.

The SetWindowsHookEx API is used to log keystrokes and mouse operations while WH_KEYBOARD_LL and WH_MOUSE_LL are used as hook types. The stolen keystrokes and mouse operations are then sent to a remote server.

Fig1_1.png

Figure 1. Downloaded module steals keystrokes and mouse operations

Stealing account information
The malware steals keystrokes in the hopes of obtaining a player’s League of Legends user name and password. However, the League of Legends login window has an option to remember a player’s user name and, if a player has selected this option, Java.Cogyeka cannot obtain the player’s user name. To get around this, the malware also attempts to steal a file that contains the user’s account information.

Fig2_0.png

Figure 2. League of Legends login screen

To steal the user’s account information, the malware tries to search for the following folder on all drives:

  • Riot Games/League of Legends/RADS/projects/lol_air_client/releases

This folder contains a folder with the name of the version number of the game, for example “0.1.2.0.” The malware traverses folders at the version folder searching for the following path:

  • deploy/preferences/global/global.properties

This file contains the game settings as well as the player’s user name that is used to log in to the game.

Sending the stolen information
Once the downloaded module has obtained the login information, it sends it to the domain Jkl.no-ip.biz on TCP port 1087.

This server name has been deactivated and is no longer accessible. However, both the server name and port number are hardcoded into the module unlike the command-and-control server name and port number, and the stolen information is encrypted.

Fig3.png

Figure 3. Malware observed worldwide as the targeted game is played all over the world

Conclusion
In this series of blogs, I have discussed the propagation and information-stealing functions of Java.Cogyeka and how it uses an obfuscation tool to protect itself from detection by security scanners. While the malware has a specific target, the video game League of Legends, other information may also be stolen through the captured keystrokes and mouse operations. Java.Cogyeka may also update itself because it downloads an additional Java module. We will continue to observe and investigate this malware.

I am left wondering why the malware requires the USB spreading functionality. The purpose of this malware is to steal information from an online game. The League of Legends is a type of game whereby users connect to a game server in order to play online. There is a possibility that it attempts to infect computers at Internet cafés. In this case, game players or administrators of the Internet café may use a USB storage device. On the other hand, a user may play the game with his or her friends at the same place and use USB storage devices to share files. It is possible that the malware aims to take advantage of such a situation.

Symantec detects these files as Java.Cogyeka, Java.Cogyeka!autorun, and Java.Cogyeka!gen1. We recommend  that users keep their security software up to date.