Vidar は、ユーザー情報を流出させる機能を持つインフォスティーラー型マルウェアである。以下の週間統計でも確認できるように Top 5 内には含まれないが、常に一定の割合を占めており、ある期間では Top 5 にも含まれていた履歴を見ると、再びその拡散量が増加する場合もある。
ここ1か月の間に確認された拡散ファイルの個数は以下の表の通りである。すべてが「build.exe」という名前で出回っており、(Windowsのライセンス認証のための) KMSAuto に偽装したインストールファイル内部に存在するという共通点がある。
日付 | 拡散ファイル数 | 日付 | 拡散ファイル数 | 日付 | 拡散ファイル数 | 日付 | 拡散ファイル数 |
8月8日 | 4 | 8月16日 | 0 | 8月24日 | 0 | 9月1日 | 3 |
8月9日 | 2 | 8月17日 | 2 | 8月25日 | 3 | 9月2日 | 1 |
8月10日 | 3 | 8月18日 | 2 | 8月26日 | 1 | 9月3日 | 7 |
8月11日 | 1 | 8月19日 | 2 | 8月27日 | 3 | 9月4日 | 4 |
8月12日 | 1 | 8月20日 | 4 | 8月28日 | 2 | 9月5日 | 5 |
8月13日 | 4 | 8月21日 | 4 | 8月29日 | 3 | 9月6日 | 2 |
8月14日 | 5 | 8月22日 | 1 | 8月30日 | 0 | 9月7日 | 4 |
8月15日 | 2 | 8月23日 | 4 | 8月31日 | 2 | 9月8日 | 2 |
Vidar が情報流出を狙うターゲットは、一般的なインフォスティーラー型マルウェアとは異なり、Web ブラウザや電子メールのクライアント等のユーザーアカウント情報のみをターゲットにはしない。Web ブラウザの場合は Cookie、AutoFill、クレジットカード番号のような様々な情報と、ユーザーの PC に存在するファイルまでもがその対象となり得る。
Vidar はまず、情報流出のために必要な機能が実装された正常な DLL を C&C サーバーから C:\Program Data\ のパスにダウンロードする。その対象となる DLL は、次の通りである。
- Freebl3.dll、mozglue.dll、msvcp140.dll、nss3.dll、softokn3.dll、vcruntime140.dll
以下は、DLL のダウンロードアドレスである。
– http://gratyna[.]com/freebl3.dll
– http://gratyna[.]com/mozglue.dll
– http://gratyna[.]com/msvcp140.dll
– http://gratyna[.]com/nss3.dll
– http://gratyna[.]com/softokn3.dll
– http://gratyna[.]com/vcruntime140.dll

以降、C&C サーバーにリクエストを行うと、そのリクエストに対する応答として C&C サーバーから以下のような形式の情報流出関連設定を受け取る。以下は、リクエスト時に使用されるアドレスである。

1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 250, |
C&C サーバーの応答のうち、1と0からなる前の部分の値は、特定情報の流出機能に対する有効化/無効化を決定する。この10個の項目がすべて使用されるわけではなく、以下のように各順序ごとに6つの項目のみが実質的に構文解析されて区別される。
- 2:Autofill、Cookie、CreditCard
- 3:History、Downloads記録
- 4:仮想通貨ウォレットのアドレス
- 7:テレグラム
- 8:スクリーンショット
- 9:ファイル流出
またこれとは別に、アプリケーションのユーザーアカウント情報、そして感染システムの様々な情報は、設定に関係なく常に情報流出の対象となる。
情報流出後は、その結果をテキストファイルのような形式で以下のパスに保存する。
C\ProgramData\[Random]\
….\files\
….\files\Autofill\
….\files\CC\
….\files\Cookies\
….\files\Downloads\
….\files\History\
….\files\Soft\
….\files\Telegram\
….\files\Wallets\
….\files\Files\
……..passwords.txt
……..information.txt
……..outlook.txt
……..screenshot.jpg
……..cookie_list.txt

[ユーザーアカウント情報]
まず、アプリケーションのユーザーアカウント情報が含まれる passwords.txt ファイルと outlook.txt ファイルを調べる。参考に、outlook.txt ファイルにアカウント情報が保存される Outlook を除き、他のものはすべて passwords.txt ファイルにアカウント情報が保存される。
Firefox 基盤の Web ブラウザ
Firefox 基盤の Web ブラウザについては、アカウント情報が含まれたファイル、すなわち過去のバージョンの場合は signons.sqlite ファイル、最新バージョンの場合は logins.json ファイルをその対象とする。signons.sqlite ファイルは sqlite フォーマットで存在するため、アカウント情報抽出のために以下のような sql クエリ文が使用される。
> SELECT encryptedUsername, encryptedPassword, formSubmitURL FROM moz_logins
最新バージョンの場合は、logins.json ファイルにテキスト形式で存在する。その後、このようにして取得したアカウント情報は nss3.dll の関数を利用して復号化を行う。そして復号化されたアカウント情報は \files\passwords.txt ファイルに保存される。
情報流出対象である Firefox 基盤の Web ブラウザは、Firefox 以外にも以下のようなものがある。
– Pale Moon、Waterfox、Cyberfox、BlackHawk、icecat、K-Meleon
Chromium 基盤の Web ブラウザ
過去の Chrome バージョン以外にも、Local State ファイルに存在するマスターキーが必要な Chrome バージョン80以降のバージョンに対して、アカウント情報を抽出するルーティンが実装されている。
また、このファイルは sqlite フォーマットのため、以下のようなSQLクエリ文が使用される。
> SELECT action_url, username_value, password_value FROM logins
情報流出対象である Chromium 基盤の Web ブラウザは、Chrome 以外にも以下のようなものがある。
– Chromium、Kometa、Amigo、Torch、Orbitum、Uran、QIP Surf、Cent Browser、Elements Browser、Torbro Browser、Suhba、Chedot、Edge、Opera
Internet Explorer / Edge
IE や Edge を対象に Vault を利用したアカウント情報抽出ルーティンが存在する。
Thunderbird電子メールクライアント
Thunderbird の電子メールクライアントは、Mozilla の Firefox で使用されたものと同じルーティンが使用される。
Outlook
Outlook は \files\passwords.txt ファイルに抽出したアカウント情報が保存される他の対象とは異なり、\files\outlook.txt ファイルにアカウント情報が保存される。
以下のように00000003から00000009まで、各7個のレジストリキーに存在するレジストリ値を取得するが、そのうちエンコードされて保存されたパスワードについては、CryptUnprotectData() API を利用してデコードして保存する。
– HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\00000003
~HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook\9375CFF0413111d3B88A00104B2A6676\00000009
その他
その他にも、WinSCP、FileZilla のような FTP クライアントおよび Pidgin インスタントメッセンジャーがアカウント情報流出の対象となる。
[Webブラウザのその他情報]
Cookie
Cookie の場合、抽出された情報が\files\Cookies\フォルダにテキストファイル形式で保存される。例えば、Internet Explorer の場合は IE_Cookies.txt ファイルに、Edge の場合は Edge_Cookies.txt ファイルに保存される。
Cookie 情報の流出機能は、IE、Edge、Firefox 基盤、Chromium 基板の Web ブラウザを対象とする。また、C&C サーバーのコマンドによっては情報流出対象から除外されることがある。
Internet Explorer
\AppData\Roaming\Microsoft\Windows\Cookies\Low\フォルダ内の *.txt ファイルを読み込んで必要な情報を構文解析したあと、\files\Cookies\IE_Cookies.txt ファイルに保存する。
Edge
\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC\#!001\MicrosoftEdge\Cookies\内の *.cookie ファイルと *.txt ファイルを読み込んで \files\Cookies\Edge_Cookies.txtパスに保存する。
Firefox基盤の Web ブラウザ
Firefox を対象とする場合、\AppData\Roaming\Mozilla\Firefox\Profiles\a7obrt24.default-release\のようなパスの cookies.sqlite ファイルに当該情報が含まれている。このファイルは sqlite フォーマットであるため、以下のようなSQLクエリ文で情報を抽出する。
> SELECT host, isHttpOnly, path, isSecure, expiry, name, value FROM moz_cookies
参考に、この場合は\files\Cookies\cookies_Mozilla Firefox_a7obrt24.default-release.txtのようなファイルが作成される。
Chromium 基盤の Web ブラウザ
Chrome を対象とする場合、\AppData\Local\Google\Chrome\User Data\Default\Cookies ファイルに当該情報が含まれている。このファイルは sqlite フォーマットであるため、以下のようなSQLクエリ文で情報を抽出する。
> SELECT HOST_KEY, is_httponly, path, is_secure, (expires_utc/1000000)-11644480800, name, encrypted_value from cookies
Chrome の場合、\files\Cookies\Google Chrome_Default.txtファイルが作成される。
[History、Download]
History の場合、抽出された情報が \files\History\フォルダに、Download 記録の場合は \files\Downloads\フォルダにテキストファイル形式で保存される。
History 記録に対する情報流出機能はFirefox 基盤、Chromium 基盤の Web ブラウザを対象とし、Download 記録に対する情報流出機能は Chromium 基盤のWebブラウザを対象とする。また、これらは C&C サーバーのコマンドによっては情報流出対象から除外されることがある。
Firefox 基盤の Web ブラウザ
Firefox を対象とする場合、\AppData\Roaming\Mozilla\Firefox\Profiles\a7obrt24.default-release\places.sqlite ファイルに当該情報が含まれている。このファイルは sqlite フォーマットであるため、以下のようなSQLクエリ文で History 情報を抽出する。
> SELECT url FROM moz_places
Chromium 基盤のWebブラウザ
Chrome を対象とする場合、\AppData\Local\Google\Chrome\User Data\Default\Historyファイルに当該情報が含まれている。このファイルは sqlite フォーマットであるため、SQLクエリ文で情報を抽出する。
– History記録 > SELECT url, title from urls
– Downloads記録 > SELECT target_path, tab_url from downloads
[AutoFill、CreditCard]
Autofill の場合、抽出された情報が \files\Autofill\フォルダに、CreditCard の場合は \files\CC\フォルダにテキストファイル形式で保存される。
これらの項目に対する情報流出機能は Chromium 基盤のWebブラウザを対象とする。また、C&C サーバーのコマンドによっては情報流出対象から除外されることがある。
Chrome を対象とする場合、\AppData\Local\Google\Chrome\User Data\Default\Web Dataファイルに当該情報が含まれている。このファイルはsqliteフォーマットであるため、SQLクエリ文で情報を抽出する。
– Autofill > SELECT name, value, value_lower FROM autofill
– CreditCard > SELECT name_on_card, expiration_month, expiration_year, card_number_encrypted FROM credit_cards
[その他プログラムの情報流出]
Telegram
Telegram の場合、流出対象ファイルを \files\Telegram\フォルダにコピーする。その対象ファイルとなるのは、\AppData\Roaming\Telegram Desktop\tdata\D877F783D5D3EF8C\パス の map で始まるファイルと、\AppData\Roaming\Telegram Desktop\tdata\パスのD877F783D5D3EF8C0ファイルと D877F783D5D3EF8C1 ファイルである。これらのファイルは Telegram PC バージョンにおけるセッションハイジャックのための方式として知られている。
仮想通貨ウォレットファイル
仮想通貨ウォレットファイルに対しては、流出対象ファイル、すなわちウォレットファイルを\files\Wallets\フォルダにコピーする。Electrum を例にすると、ウォレットファイルは\AppData\Roaming\Electrum\wallets\default_walletファイルであり、このファイルがそのままコピーされる。
流出対象となる仮想通貨ウォレットは、以下の通りである。
– Ethereum、Electrum、ElectrumLTC、Exodus、ElectronCash、MultiDoge、JAXX、Atomic
Authy Desktop
Authy Desktop 認証プログラムの場合、\AppData\Roaming\Authy Desktop\Local Storage\*.localstorageファイルを \files\Soft\Authy フォルダにコピーする。
[ファイル流出]
Vidar はアカウント情報を含む特定のアプリケーションの設定情報以外にも、ファイル自体を直接 C&C サーバーに流出させる機能も持っている。
C&C サーバーから受信した設定文字列の中には、情報流出機能の有効化/無効化オプションの後ろに、以下のような部分が含まれている。これを区分すると、それぞれ \files\Files\ フォルダに保存するフォルダ名、パス、流出対象ファイル名、ファイルサイズ条件、そしてデリミタ(区切り文字)となる。
Desktop;
%DESKTOP%\;
*.txt:*.dat:*wallet*.*:*2fa*.*:*backup*.*:*code*.*:*password*.*:*auth*.*:*google*.*:*utc*.*:*UTC*.*:*crypt*.*:*key*.*:*.kdbx;
50;
true;movies:music:mp3;
Documents;
%DOCUMENTS%\;
*.txt:*.dat:*wallet*.*:*2fa*.*:*backup*.*:*code*.*:*password*.*:*auth*.*:*google*.*:*utc*.*:*UTC*.*:*crypt*.*:*key*.*:*.kdbx;
50;
true;movies:music:mp3;
Authy;
%APPDATA%\Authy Desktop\;
*.*;
4000;
true;movies:music:mp3;
Desktop を例に挙げる。Vidar はまず、\files\Files\Desktop\フォルダを作成したあと、ここに「*.txt」、すなわちテキストファイルと「.wallet」ウォレットファイルを含め、名前に以下のような文字列が含まれているファイルをコピーする。参考に、このパスはデスクトップ、すなわち%DESKTOP%であり、サイズは50(KB)より小さいファイルを条件とする。そして、この Desktop フォルダを zip ファイルに圧縮する。最後に true;movies:music:mp3; は、デリミタとして Desktop と以降のファイル流出対象である Documents の二つを区分する役割を行う。
– 流出ファイル保存パス:Desktop;
– 流出対象パス:%DESKTOP%\;
– 流出対象ファイル名:*.txt:*.dat:*wallet*.*:*2fa*.*:*backup*.*:*code*.*:*password*.*:*auth*.*:*google*.*:*utc*.*:*UTC*.*:*crypt*.*:*key*.*:*.kdbx;
– 流出ファイル最大サイズ(KB):50;
– デリミタ:true;movies:music:mp3;
上記の C&C サーバーのコマンドによれば、デスクトップおよびドキュメントパスと%APPDATA%\Authy Desktop\パスにおいて、上記のような名前が含まれる指定サイズ以下のファイルを C&C サーバーに流出させる。
[スクリーンショット]
C&C サーバーから受信した設定のうち、8番目の項目であるスクリーンショット機能は0、すなわち無効化されていた。この機能が有効化されている場合、現在の画面のスクリーンショットを撮ったあと、\files\screenshot.jpgファイルとして保存する。
[システム情報]
最後に、\files\information.txt ファイルに様々なシステム情報を保存する。参考に、[Network]項目の場合 http://ip-api.com/line/にアクセスして確保された結果をもとに保存する。Information.txtファイルに保存される項目は、以下の通りである。
– 基本情報:Version、Date、MachineID、GUID、HWID、Path、Work Dir、Windows、Computer Name、User Name、Display Resolution、Display Language、Keyboard Languages、Local Time、TimeZone
– Hardware:Processor、CPU Count、RAM、VideoCard
– Network:IP、Country、City、ZIP、Coordinates、ISP
– Processes:現在実行中のプロセスリスト
– Software:インストールされているソフトウェアのリスト
このようにして抽出した情報は zip ファイルで圧縮され、C&C サーバーに送られる。そのアドレスは以下の通りである。
C&C サーバーに流出情報が含まれた圧縮ファイルを送信
送信後は、C&C サーバーから追加のマルウェアをダウンロードするためのアドレスを応答として受け取る場合がある。現在の環境では URL の代わりに上記スクリーンショットのように「OK」の文字列を受け取っていて、ダウンロードは正常に動作していないが、もしマルウェアのダウンロード URL を応答において正常に受け取った場合はC\ProgramData\[Random].exeパスにマルウェアをダウンロードして実行させる。すなわち、Vidar はインフォスティーラー機能以外にも、ダウンローダー機能も存在するということである。
最後に、情報流出およびダウンローダー機能の実行を終えた Vidar は、以下のように自己削除を行う。
> “C:\Windows\System32\cmd.exe” /c taskkill /im 1.exe /f & erase [Vidarのパス] & exit
ユーザーは疑わしいメールを受信した場合、添付ファイルを開かないように注意しなければならず、正規のソフトウェアを使用するように心がけ、疑わしい Web サイトや P2P の利用は避けなければならない。また、V3 を最新バージョンにアップデートしてマルウェアへの感染を事前にブロックできるように注意を払わなければならない。
現在V3製品では、このマルウェアを次のような診断名で診断している。
[ファイルの診断]
– Trojan/Win32.MalPe.R350320 (2020.09.05.05)
[行為の診断]
– Malware/MDP.SystemManipulation.M2040
[関連IOC情報]
HASH
– 107aec31f2f3b9d4cbd1545f69504136
Categories:マルウェアの情報
[…] https://asec.ahnlab.com/jp/16787/ […]
[…] Vidarインフォスティーラー型マルウェアの情報流出機能の分析 […]