Nemucodがランサムウェアのルーチンを追加

先日、少し奇妙なバージョンのNemucodが新たに登場したことが発覚しました。Nemucodはスパムメールを介して送信され、PCに別のマルウェアをダウンロードする有名なJavaScriptマルウェアファミリーです。ごく最近では、NemucodはTeslaCrypt ランサムウェアの亜種をダウンロードすることが知られています。

しかし、この数週間でNemucodの亜種に変化がありました。そのJavaScriptからランサムウェアをドロップするコードが見つかったのです。今回のサンプルは、暗号化されたJavaScriptが添付された、典型的なNemucodのスパム経由で届きました。

JavaScriptを復号してみると、このマルウェアは侵害を受けたウェブサイトからユーザーの一時ディレクトリにファイルのダウンロードを試みることがわかりました。ダウンロードされるファイルは実行可能ファイルで、これが後にユーザーのファイルを暗号化するのに使用されます。

ダウンロードが成功すると、テキストファイルとして脅迫状がドロップされます。

その後、バッチファイルをドロップ、実行し、これが利用可能なドライブ上の特定のファイルタイプのファイルを暗号化し、システムのインストールを完了します。

標的とするファイルタイプには、「.crypted」という拡張子が付けられています。続いて、最初にダウンロードした実行可能ファイルを呼び出し、標的とする各ファイルをパラメータとしてフィードし、そのファイルを暗号化します。暗号化が完了すると、脅迫状のテキストを表示させます。

最後に、システムに別のマルウェアをダウンロードして実行するという、通常のルーチンに進みます。こうして、ユーザーはあっという間に2つのマルウェアに感染してしまうのです。

良い点

少なくともこの記事を書いている時点では、このマルウェアはRSA-1024を用いていません。これは良い点と言えます。実際このマルウェアは、ダウンロードされた実行可能なコンポーネントに埋め込まれた、事前定義された255という長い鍵を使い、XOR暗号で各ファイルの最初の2048バイトを暗号化するだけです。 以下は、実行可能ファイルにある命令コードです。

悪い点

ランサムウェアの実行法は割とシンプルなものですが、それでもファイルの暗号化を行うことができます。しかし、それ以上に大きな疑問があります。Nemucodを利用する攻撃者はかなり前から活動していました(そしてほぼ間違いなく成功していた)が、それが今になってランサムウェア界に参入を始めたということでしょうか?真相は、時間がたてば分かるでしょう。現在の唯一の手掛かりは、ランサムウェアのコードがJavaScriptのbodyに直接書き込まれているということです。

ドロップされたランサムウェアは、KeyBTCランサムウェアに多少似ているところがあり、その実行法はよりシンプルなものになっているということにも注意しておくべきでしょう。KeyBTCとNemucodのアクターに直接の関係があるのか、あるいはNemucodのアクターが単純にKeyBTCの単純な手法をコピーしているだけなのか、現在は確認できていません。

おもしろい点

上で述べたように、このマルウェアはXOR暗号を使用します。これは対称アルゴリズムです。つまり、解決できるのは自分たちだけ、というランサムウェアのメッセージにある主張は、正しくないということになります。感染した場合、以下を行えば、自分で解決することができます。

  • 実行可能コンポーネントに埋め込まれているXOR鍵があれば、暗号化されたファイルの復号が可能。
  • システムリストアを使ってPCの復元が可能。
  • ボリュームシャドウコピーでファイルの復元が可能。

フォーティネットでは、NemucodマルウェアファミリーをJS/Nemucod亜種として検出しています。

-= FortiGuard Lion Team =-

Indicators of Compromise(侵害指標)

関連するハッシュ値:
54FBF82E339A37745ADD19C7252B42F0
0E2A4B02097CCC30B2A6F173507FA52A

追加ファイル:
%AppData%DesktopDECRYPT.txt
%UserProfile%DesktopDECRYPT.txt
"%User Temp%{random}.txt"
{filename}.crypted

追加レジストリ:
HKEY_CLASSES_ROOT.crypted
HKEY_CLASSES_ROOT.crypted
Crypted = ""
HKEY_CLASSES_ROOTCrypted
HKEY_CLASSES_ROOTCryptedshellopencommand
notepad.exe = "%User Temp%{random}.txt"
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
Crypted = "%User Temp%{random}.txt"
HKEY_LOCAL_MACHINESOFTWAREClasses.crypted
HKEY_LOCAL_MACHINESOFTWAREClasses.crypted
"Crypted" = ""
HKEY_LOCAL_MACHINESOFTWAREClassesCrypted
HKEY_LOCAL_MACHINESOFTWAREClassesCryptedshellopencommand
notepad.exe = "%User Temp%{random}.txt"