Tag Archives: java

Patches from Adobe, Oracle, and Microsoft released

Avast Software Updater helps you apply software updates. Earlier this week, we told our readers about the three Flash Player zero-day vulnerabilities that were found in stolen files that were leaked from the Hacking Team. We advised Avast users to disable Flash until the bugs are fixed. It doesn’t look good for Flash. Because of […]

?????????????????????????? JRAT

      No Comments on ?????????????????????????? JRAT
Java ベースのリモートアクセスツール(RAT)を使った攻撃も、もはや異例ではなくなりました。過去数年間で広がりを見せ、その後も企業と個人の両方を標的にし続けています。こういった攻撃がこれほど一般化したのも、特に驚くことではありません。RAT によってコンピュータへの感染に成功すると、攻撃者はそのコンピュータを完全に制御できるからです。それだけでなく、この攻撃は理論上、Java が稼働しているあらゆるコンピュータを標的にするので、オペレーティングシステムの種類も限定されません。ほんのいくつかの RAT のソースコードがオンラインで公然と共有されているおかげで、攻撃者は Java RAT を容易に利用することができます。
 
シマンテックは今月、Java RAT(JRAT)を拡散する新しいスパム攻撃を確認しました。攻撃が始まったのは 2014 年 2 月 13 日です。スパムメールの送信者は、支払い証明書を添付したと称して、その受信を確認するようユーザーに求めてきます。
 
Capture_email_figure1.png
図 1. 新しい Java RAT 攻撃で使われているスパムメール
 
添付されているのは、実際には悪質な Paymentcert.jar という名前のファイル(Trojan.Maljava として検出されます)です。このトロイの木馬を実行すると、侵入先のコンピュータに JRAT(Backdoor.Jeetrat として検出されます)が投下されます。RAT は、Windows PC に限らず Linux、Mac OS X、FreeBSD、OpenBSD、さらには Solaris ベースのコンピュータにも感染します。この RAT は以前の標的型攻撃でも確認されており、新しいものではありません。次の画像に示すように、JRAT のビルダーを使うと、独自にカスタマイズした RAT を作成するのが、いかに簡単かわかります。
 
image2_figure2.png
図 2. JRAT のビルダー
 
シマンテックの遠隔測定でこのドロッパーを調べたところ、今回の攻撃はアラブ首長国連邦と英国に特に集中しています。
 
map_figure3.png
図 3. 支払い証明書スパム活動の分布図(2014 年 2 月)
 
今回の攻撃は、特定の個人を標的にしていると考えられます。被害者数が少ないこと、ドロッパーがこの攻撃特有なものであること、コマンド & コントロール(C&C)サーバーが 1 つであること、そしてスパムメールの大部分が個人の電子メールアドレス宛てに送信されていることなど、いくつかの特徴から、これは標的型の性質があると断定できるようです。
 
newchart_figure4.png
図 4. シマンテックの遠隔測定で判明した、2014 年 2 月の攻撃による被害者数
 
迷惑メールや心当たりのない疑わしい電子メールを受信した場合は、十分に警戒することをお勧めします。電子メールの信憑性に疑問がある場合には、けっして返信せず、メッセージ中のリンクをクリックしたり添付ファイルを開いたりしないようにしてください。
 
 
* 日本語版セキュリティレスポンスブログの RSS フィードを購読するには、http://www.symantec.com/connect/ja/item-feeds/blog/2261/feed/all/ja にアクセスしてください。

JRAT Targets UK and UAE in Payment Certificates Spam Campaign.

Java remote access Trojan (RAT) campaigns aren’t rare anymore. Their prevalence has increased in the past few years and they have continued to target both enterprises and individuals. The popularity of these campaigns isn’t surprising, as if an attacker successfully infects a victim’s computer with a RAT, then they could gain full control of the compromised computer. Along with this, these threats aren’t limited to one operating system, as in theory, they focus on any computer that runs Java. Attackers have easy access to Java RATs thanks to the fact that a handful of these RATs’ source code is being openly shared online
 
This month, we have observed a new spam campaign delivering a Java RAT known as JRAT, which started on February 13, 2014. The spam email’s sender claims that they have attached a payment certificate to the message and asks the user to confirm that they have received it. 
 
Capture_email_figure1.png
Figure 1. Spam email as part of the new Java RAT campaign
 
The email actually contains a malicious attachment with the file name Paymentcert.jar, detected as Trojan.Maljava. If the Trojan is executed, it will drop JRAT, detected as Backdoor.Jeetrat, on the compromised computer. The RAT not only affects Windows PCs, but also Linux, Mac OSX, FreeBSD, OpenBSD, and Solaris computers. This RAT is not new, as we have seen it in previous targeted attacks. JRAT’s builder, as seen in the following image, shows just how easy it is for an attacker to create their own customized RAT. 
 
image2_figure2.png
Figure 2. JRAT’s builder 
 
Our telemetry on the dropper shows that the campaign has predominantly affected the United Arab Emirates and the United Kingdom.  
 
map_figure3.png
Figure 3. Payment certificate spam campaign heat map for February 2014
 
This campaign appears to be targeting specific individuals. Certain aspects of the attack seem to confirm the targeted nature of the campaign, such as the low victim numbers, a unique dropper, one command-and-control (C&C) server and the fact that the majority of these spam messages were sent to personal email addresses. 
 
newchart_figure4.png
Figure 4. Number of people affected by the campaign in February 2014, according to our telemetry
 
Symantec advises users to be on their guard when they receive unsolicited, unexpected, or suspicious emails. If you aren’t sure of the email’s legitimacy, then don’t respond to it and avoid clicking on links in the message or opening attachments. 

Ignoring update warnings makes you a sitting duck for malware

We all see the reminders to update Adobe Reader, Adobe Flash, and Java frequently. There is good reason not to put this task off: The trusted researchers at AV-TEST Institute found that 66 percent of affected Windows systems are victims of malware that took advantage of exploits found in Reader, Flash, and Java. During the […]

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,…

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 (2 of 3)

Obfuscations
In my previous blog, I discussed some stealth techniques Java.Cogyeka uses. These stealth techniques are not effective at deceiving users or security researchers, but their use proves that Java malware is continuously improving.

Aside from the stealth techniques, Java.Cogyeka is designed to evade security researchers through various obfuscation techniques. Some are effective, some are overdone. Overdone obfuscation techniques will often cause malware to be less effective.

Java.Cogyeka uses three obfuscation techniques:

1. Autorun.inf obfuscation
The autorun.inf file helps Java.Cogyeka spread through removable drives. This file is made up of three parts:

  1. Action
  2. Icon
  3. ShellExecute

It must contain a ShellExecute function in order to execute itself in the removable drive Recycler folder. As I wrote in my previous blog, Java.Cogyeka employs a folder icon and also displays the message “Open folder to view files.”

Java.Cogyeka uses an obfuscation technique to ensure that security scanners do not detect autorun.inf. The obfuscation technique inserts garbage between entries. The garbage consists of a control character between 0x00 and 0x1F. This obfuscation technique is often found in malicious .inf or .html files.

Figure1_3.png

Figure 1. Obfuscation technique fills in garbage

Uppercase and lowercase capitalization is used randomly in the ASCII characters to create inconsistency. The volume of the garbage is between 0 and 50 bytes and it is in clusters located alongside the tokens in a crafted autorun.inf file. Symantec detects the autorun.inf file crafted by Java.Cogyeka as Java.Cogyeka!autorun.

2. Zelix obfuscation tool
This Java malware spreads itself as a JAR file with 15 class files (a.class to o.class). Originally, these classes may have been named based on the functionality of each class. The Java obfuscation tool—named Zelix KlassMaster—modifies class names, method names, Java byte codes, and strings.

Figure2_1.png

Figure 2. Zelix bitmap of encrypted and decrypted strings with XOR table

The Java obfuscation tool is not malware but rather a legitimate tool. Java developers may want to hide important data and code in Java class files. It is difficult to decompile a Java class file if Zelix obfuscation has been applied.

Java.Cogyeka is not the only object to use this tool; many malicious Java applets that exploit Java vulnerabilities, for instance, are also use this tool.

3. Network connection obfuscation
Determine server name and port number

To download an additional module from the command-and-control (C&C) server, Java.Cogyeka has to connect to it. However, it is difficult to successfully connect an existing server while also attempting to connect many fake servers. It takes a long time to download an additional module this way. The difficulty results from the complicated server name and port number.

The C&C server’s host name is made up of five to eight random letters and the randomly selected domain is based on a dynamic DNS. A random seed based on the time the malware is run is used to select the random letters. The domain is selected from 22 famous dynamic services by the same random seed used to obtain the random letters.  The port number is also randomly generated by the same random seed. The seed number is based on a 64-bit integer.

Figure3_1.png

Figure 3. Random seed used to determine host name, domain name, and port number

There is a possibility that the generated C&C server name is the same as a legitimate one hosted by another user in the dynamic DNS service. If so, the malware tries to connect the server name with a generated TCP port number. If the server denies connection with the port the connection will be closed immediately, but the malware has to wait until it knows the connection cannot be established.

Negotiation
The protocol used to download an additional module is the original one, but it is obfuscated. The protocol will likely establish a secure connection because it uses a stream cipher created by a pseudo-random generator.

Java.Cogyeka and the server program have the same random seed and pseudo-random generator. The malware negotiates by exchanging two byte streams.

Figure4_1.png

Figure 4. Java.Cogyeka and server program negotiation

Java.Cogyeka generates the first byte stream, and its length, with a pseudo-random generator and then sends it to the server through a TCP connection. The server then receives the data. If the server was created by the malware author, the server program runs and has the same random seed and pseudo-random generator as the malware. The server can verify the byte stream, and the length, by using the same generator. To perform a double check, the server creates a second byte stream. The malware receives the second byte stream and verifies the data with a byte stream it has generated.

If the negotiation is successful, the malware has confirmed the server has the same random seed and pseudo-random generator.

Downloading a module
After a successful negotiation Java.Cogyeka downloads the settings, including the size of the module to download, but the settings are encrypted by the stream cipher. After obtaining the size, it downloads a module encrypted by the stream cipher. The settings include a hash value of the downloaded module. The malware can make sure the download is successful by using SHA-512.

Made with a purpose
I discussed three obfuscation techniques used by Java.Cogyeka. The obfuscation techniques used by the malware are somewhat complicated, but the autorun.inf file in the malware should be easy to detect by security scanners. Part of the obfuscation technique used for the server name and port number is ineffective because of too much obfuscation. The streaming cipher may be effective against network-type security scanners. This obfuscation technique demonstrates that this malware was not created as a hobby, but instead, made with a specific purpose.

To be concluded…
The third and final blog in this series will show the purpose of the malware as well as what information it obtains and how it obtains it.

Java ???? CVE-2013-2432 ???????

      No Comments on Java ???? CVE-2013-2432 ???????

Java の脆弱性は、サイバー犯罪者(悪用ツールキットの作成者)の間で常に悪用の対象となってきました。Java はオペレーティングシステムやブラウザの種類を超えて動作し、大量のユーザーに感染させられる可能性が非常に高いためです。

4 月 16 日に Oracle 社は、サポート対象の多数の製品で見つかった脆弱性に対処する 2013 年 4 月版の Java Critical Patch Update(CPU)をリリースしました。興味深いことに、それらの脆弱性のひとつ CVE-2013-2432 は、この翌日に公表され、続く 4 月 20 日に Metasploit の概念実証が公開されています。

悪用ツールキットの作成者は、一般に公開されたこの脆弱性をさっそく悪用し始めています。現在確認されているのは、Redkit と Cool 悪用ツールキットが今回の新しい Java 脆弱性を利用するケースですが、その他の悪用ツールキットにも波及するものと予測されます。

Redkit と Cool 悪用ツールキットを使ってこの脆弱性を悪用する攻撃を遮断するために、以下の侵入防止シグネチャ(IPS)が提供されています。

シマンテックのウイルス対策技術では、これらの悪質なファイルは Trojan.Maljava として検出されます。

現在この脆弱性は重大度が高いと考えられているので、Oracle 社からリリースされている Java Critical Patch Update を適用することをお勧めします。また、上記のように、脅威を未然に検出する新しい IPS シグネチャがリリースされていますので、シマンテックのセキュリティ製品を更新して最新のセキュリティコンポーネントをインストールすることもお勧めします。ただし、ソフトウェア更新やパッチに偽装するマルウェアに注意して、パッチは必ず公式 Web サイトからダウンロードしてください。

 

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