【分析レポート】 Ursnif 報告書_Ver. 2
01. 概要
分析の対象となるサンプルは、次のとおりである。各ファイルのハッシュを含む詳細情報は、[04. 対策と予防] で確認できる。

02. 流布方法
マルウェア感染に関するネットワーク情報を提供するサイト (http://malware-traffic-analysis.net) に2017年12月29日に掲載された内容によると、スパムメールに添付された CV-Pettegrew.jse から Ursnif がダウンロードされる。
以下のように Powershell を実行し、特定のホストから Ursnif をダウンロードする。ダウンロードしたファイルは、一時フォルダーに *.scr ファイルで保存し、実行する。

03. 分析
1) 要約
Dreambot、Gozi、ISFB とも呼ばれる Ursnif は、ユーザー情報を搾取し、C&C サーバーからデータを受信して悪性行為を遂行するマルウェアである。金融情報を搾取することを主な目的としている。
Ursnif は、主にスパムメールに添付された文書ファイルまたはスクリプトファイルに含まれた悪性 URL よりペイロードがダウンロードされ動作する。
ダウンロードされた Ursnif は、Visual C++でコンパイルされたファイルや VB およびカスタムパックなどさまざまな形をしており、内部に暗号化された DLL が含まれている。暗号化された DLL をメモリ上で復号化した後、最終的にシステムに存在する正常な explorer.exe にインジェクションして動作する。explorer.exe プロセスが悪性行為をしているように見えるが、実際はインジェクションされた DLL が悪性行為を行っている。
2017年11月~12月頃に公開された一部セキュリティベンダーの資料には、「Ursnif が新しいコードインジェクション手法 (Double process hollowing、※ Explorer.exe のみならず、正常な svchost.exe も実行し、文書化されない Windows API を利用してコードをインジェクションする手法) を使用する」 と記載があるが、本レポートでは、既存の手法をそのまま使用していると分析した。
インジェクションされた DLL の主要機能としては、C&C サーバーからコマンドまたは Config ファイルを受信してスクリプト基盤のWeb ブラウザページを改ざん、Web インジェクション、フォームグラビング (※入力フォームの情報を窃取)、スクリーンキャプチャ & ビデオグラビング、VNC リモート制御およびソケットプロキシ攻撃などがある。搾取対象である URL 情報も Config ファイルに保存されていると知られている。
全体の動作方式は [図 1] のとおりである。

[図 1] Ursnif 動作方式
2) 主要機能および特徴 – [Ursnif.exe]
ア) 実行遅延
- サンドボックスを回避するため、実行遅延手法を活用
Ursnif は、%temp% に [ランダムな4文字].tmp ファイルを生成する。ファイルの生成時間が暗号化された .bss セクションに対する復号化キーとして使用される。復号化キーを探すため、%temp% に多数のファイルが生成および削除される。
[図 2] 実行遅延および .bss セクション復号化
イ) Anti-VM
- VM が使用するレジストリキーの参照のため、SetupDiGetDeviceRegistryPropertyA API を活用
Ursnif は、SetupDiGetDeviceRegistryPropertyA API を活用して、VM で使用するハードウェア情報を確認する。
API を呼び出し、VM と関係があるハードウェア名があった場合は、自らを終了させ、悪性行為を行わない。(※ハードウェア情報に vbox、qemu、vmware、virtual hd 文字列が含まれていない場合のみ、悪性行為を行う。)
[図 3] Ursnif に使用された VM 回避手法
ウ) レジストリ登録
- 自動実行のためのレジストリに自らを登録


エ) DLL インジェクション
- 悪性行為の遂行に必要な DLL を Explorer.exe または Iexplore.exe のような Web ブラウザプロセスにインジェクション
Ursnif のリソースセクションには、次のような暗号化された PE ファイルバイナリが含まれている。
[図 4] 暗号化された DLL
上記のバイナリは、Ursnif の復号化ルーチンにより復号化され、実行中の Explorer.exe プロセスまたは Iexplore.exe、 chrome.exe などにインジェクションされる。本レポートでは、インジェクションされた DLL ファイルを Decoded DLL と表記する。
[図 5] は、復号化された Decoded DLL の一部である。
[図 5] 復号化された DLL
Decoded DLL は、別途のファイルで作成されず、インジェクションされメモリに常駐する。Decoded DLL がインジェクションされる過程は [図 6]、[図 7] のとおりである。現在実行中のプロセスリストを呼び出し、プロセス名に対する CRC 演算により Decoded DLL をインジェクションする。
[図 6] NtQuerySystemInformation 呼び出しによるインジェクション対象プロセスの探索

[図 7] プロセス名に対する CRC 値でインジェクション対象の確認
インジェクション対象プロセスは以下のとおりである。

Ursnif に感染した時点で Internet Explorer、Chrome などの Web ブラウザが実行中の場合は、Decoded DLL がそれぞれのプロセスにインジェクションされ、追加で悪性行為を行う。
3) 主要機能および特徴 – [Decoded DLL]
ア) 既存のサンプルとの類似度および異なるサブ関数機能
2017年11月中旬に分析したサンプルと今回分析したサンプルを比較すると、共通する関数は828個であり、比率計算すると85.3%である。両サンプルは機能面において類似していることが分かる。
[図 8] 共通する関数比率および類似度
既存のサンプルと異なる新しいサブ関数は37個であり、このうち、二重インポート関連関数を除いた20個のサブ関数一覧および機能は、以下のとおりである。

[表 5] 既存のサンプルと異なるサブ関数一覧および機能
イ) API フック
- Decoded DLL は、インジェクションされたプロセスの API をフックして追加で悪性行為を遂行
Decoded DLL がフックする API 対象はインジェクションされたプロセスによって異なる。プロセス名に対する API フック対象は以下のとおりである。

Explorer.exe にインジェクションされる場合、CreateProcessA、CreateProcessW、CreateProcessAsUserA、CreateProcessAsUserW をフックし、Explorer.exe を親プロセスとするプロセスが実行されると Decoded DLL がインジェクションされる。
つまり、Ursnif に感染している状態で新しくインターネットブラウザプロセスが実行されると、Explorer.exe の CreateProcess API 系列フックにより Decoded DLL が実行時、インジェクションされる。
Iexplore.exe、Chrome.exe、Opera.exe、FireFox.exe API フックは、ユーザーが Config ファイルに保存されている特定サイトにアクセスした際に、Web ページの改ざんまたはサイト情報を %temp% に保存するために行われる。
ウ) アクセスするネットワーク情報
- Explorer.exe に対するインジェクションおよびフック過程を経た Decoded DLL は、C&C サーバーからコマンドおよび Config ファイルを受信してさまざまな悪性行為を遂行
スクリプトファイルおよび Decoded DLL は、以下のネットワークにアクセスしてインターネット接続の有無や公認 IP を確認したり、Config ファイルをダウンロードして攻撃者からコマンドを受信する。

また、C&C サーバーと通信を行う際、下位 URL に images1、bmp 文字列を含む特徴がある。特に、bmp 拡張子は jpeg、gif にフォーマットが変更される可能性がある。 (※ 拡張子別意味については、[表 7] を参照)
[図 9] C&C サーバーに転送されるデータ

[図 9] を見ると、bmp 拡張子で、データ (%temp%[ランダムな4文字].bin) を送信していることが分かる。
[図 10] - %TEMP%\A4C1.bin ファイルデータ(PK)

[図 11] A4C1.bin 内部ファイル (ファイル名 : 01D2F480ABDD8E3201)
分析時には C&C サーバーが遮断されていたため、Config ファイルを確保することができなかった。
エ) Tor クライアントモジュールのダウンロード
- Decoded DLL は、C&C サーバーとの通信を隠ぺいするため、Tor クライアントモジュールを使用
Decoded DLL は、システム OS 環境に合う Tor モジュールをダウンロードして、[表 9] のレジストリ位置に該当データを保存する。Tor モジュールをダウンロードするアドレスは Ursnif の形によって異なる。


オ) C&C サーバーから受信するコマンド
- Decoded DLL は、C&C サーバーからコマンドを受信してさまざまな悪性行為を遂行
Explorer.exe にインジェクションされた Decoded DLL は、C&C サーバーからコマンドを受信して以下のような悪性行為を行う。

Decoded DLL は C&Cサーバーから受信したコマンドに従って、Cookie 情報、メールアカウント、システム情報などを搾取する。
カ) Config ファイル関連
- Decoded DLL は、C&C サーバーから Config ファイルを受信してさまざまな悪性行為を遂行
Decoded DLL は、Config ファイルに保存された銀行関連 URL 情報を通じて、Web ページ改ざんなどの悪性行為を行う。また、コマンドと Config ファイルが連携して悪性行為を行うこともある。例えば、VNC のようなリモートサーバー関連モジュールをダウンロード・実行する過程で、Config ファイルの CRC_VNC とコマンドの CMD_RUN_VNC が使用される場合がある。

04. 対策と予防
1) アンラボにおける対策
アンラボでは、当該マルウェアを以下のように検知できる。

2) 予防対策
