【分析レポート】 Ursnif 報告書_Ver. 3
01. 概要
分析の対象となるサンプルは、次のとおりである。各ファイルのハッシュを含む詳細情報は、[04. 対策と予防] で確認できる。
02. 流布方法
Ursnif は、Necurs ボットネットを通じて、スパムメールに悪性ファイルを添付する形で流布されている。2018年9月現在、分析対象と既存の亜種との違いは、メールに添付されたファイルが動作する方式である。

[図 1] Ursnif を流布するスパムメール
IQY 拡張子ファイルは Microsoft Excel Web Query File であり、特定 URL のデータをインターネットから直接ダウンロードする目的で使用されるフォーマットである。
[図 2] IQY 拡張子ファイルのアイコン
スパムメールに添付された IQY ファイルの内容は [図 3] のとおりであり、ファイル内に明示された URL からパワーシェルデータをダウンロードする。以後、EXCEL の DDE (Dynamic Data Exchange) 機能により自動でパワーシェルスクリプトが実行される方式で動作する。

当該 IQY ファイルが実行されると、EXCEL の下位プロセスとして cmd.exe、powershell.exe が追加で実行される。
[図 4] ダウンロード過程のプロセス一覧
以後、ダウンロードスクリプトの内容によりさまざまな悪性行為ができるようになり、分析対象ファイルでは、実行ファイルをダウンロードして Start-Process コマンドですぐに実行させる方式で動作する。
[図 5] パワーシェルダウンローダーの内容
この際、感染システムの IP 情報を ipinfo.io/json に問い合わせて、国コードが JP の場合のみ動作するように作成されている。追加でダウンロードされるパワーシェルスクリプトは、[図 6] のようにエンコードされた形のものも発見された。
動作に使用されるパワーシェルスクリプトは、亜種によってダウンロードアドレスおよび方式が若干異なるが、Ursnif をダウンロードするという共通点を持っている。
[図 6] エンコードされたパワーシェルスクリプト
最終的にダウンロードされる実行ファイルは Bebloh、Ursnif と呼ばれる情報搾取型マルウェアであり、詳細機能については 「03. 分析」 で説明する。
03. 分析
1) 要約
Dreambot、Cozi、ISFB, Bebloh とも呼ばれる Trojan/Win32.Ursnif (以下、Ursnif) は、ユーザー情報を搾取し、C&C サーバーからデータを受信して悪性行為を遂行するマルウェアである。金融情報を搾取することを主な目的としている。

[図 7] Ursnif 動作方式
ア) 実行遅延
- サンドボックスを回避するため、実行遅延手法を活用
Ursnif は、%temp% に [ランダムな4文字].tmp ファイルを生成する。ファイルの生成時間が、暗号化された .bss セクションに対する復号化キーとして使用される。復号化キーを探すため、%temp% に多数のファイルが生成および削除される。
[図 8] 実行遅延および .bss セクション復号化
イ) Anti-VM
- VM が使用するレジストリキーの参照のため、SetupDiGetDeviceRegistryPropertyA API を活用
亜種によって Ursnif は、SetupDiGetDeviceRegistryPropertyA API を活用して、VM で使用するハードウェア情報を確認する。
[図 9] Ursnif に使用された VM 回避手法
ウ) レジストリ登録
- 自動実行のためのレジストリに自らを登録

エ) DLL インジェクション
- 悪性行為の遂行に必要な DLL を Explorer.exe または Iexplore.exe のような Web ブラウザプロセスにインジェクション
Ursnif のリソースセクションには、次のような暗号化された PE ファイルバイナリが含まれている。
[図 10] 暗号化された DLL
上記のバイナリは、Ursnif の復号化ルーチンにより復号化され、実行中の Explorer.exe プロセスまたは Iexplore.exe、 chrome.exe などにインジェクションされる。本レポートでは、インジェクションされた DLL ファイルを Decoded DLL と表記する。
[図 11] は、復号化された Decoded DLL の一部である。
[図 11] 復号化された DLL
最初にパワーシェルによりダウンロードされる undocument.exe ファイルおよび追加でダウンロードされる実行ファイルでは、共通して上記のような DLL インジェクション方式を使用する。悪性行為に必要なデータも該当 DLL 内部にエンコード・保存されている。
Decoded DLL は、別途のファイルで作成されず、インジェクションされメモリに常駐する。Decoded DLL は実行中のプロセス名に対する CRC 演算によりインジェクション対象を探す。
[図 12] プロセス名に対する CRC 値でインジェクション対象の確認
各 CRC 値に対する意味を確認した結果、インジェクション対象プロセスは以下のとおりである。
既存の亜種との差は、ブラウザインジェクション対象から Opera.exe は削除され、Microsoft Edge が追加された点である。
Ursnif に感染した時点で Internet Explorer、Chrome などの Web ブラウザが実行中の場合は、Decoded DLL がそれぞれのプロセスにインジェクションされ、追加で悪性行為を行う。
3) 主要機能および特徴
ア) 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 ファイルをダウンロードして攻撃者からコマンドを受信する。

[表 6] アクセスするネットワーク情報
また、C&C サーバーと通信を行う際、下位 URL に images、bmp 文字列を含む特徴がある。特に、bmp 拡張子は jpeg、gif にフォーマットが変更される可能性がある。 (※拡張子別意味については、[表 7] を参照)

[図 13] は、%temp%[ランダムな4文字].bin に CAB ファイルで生成されるユーザーシステム情報データファイルである。当該ファイルは、C&C サーバーに最終 .bmp 拡張子として送信される。
[図 13] %TEMP%\[ランダムな4文字].bin ファイルデータ (CAB)
流出されるユーザー情報は次の内容を含む。
- Systeminfo : OS 名、OS インストール日、システム種類、メモリ情報、ネットワーク IP などのシステム情報
- Tasklist /svc : 各プロセスにホストされたサービスリスト
- Driverquery : インストールされたデバイスドライバリスト
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall レジストリ情報
分析時には C&C サーバーが遮断されていたため、その後の動作分析に必要な Config ファイルを確保することができなかった。
04. 対策と予防
1) アンラボにおける対策
アンラボでは、当該マルウェアを以下のように検知できる。

2) 予防対策
