【分析レポート】 インターネットバンキングマルウェア 「Karius」
分析の対象となるサンプルは、次のとおりである。各ファイルのハッシュを含む詳細情報は、[04. 対策と予防] で確認できる。
[表 1] サンプル情報
02. 分析
1) 要約
2018年6月、「Karius」 と名付けられたバンキング型マルウェアが流布されており、注意が必要である。
Karius は、RIG Exploit Kit 脆弱性ツールを通じて流布される。ブラウザにインジェクションされ、ユーザーが特定のサイトにログインする際に入力した値を搾取して攻撃者に転送する。
搾取の対象が定義された設定ファイルは C&C サーバーからダウンロードされ、攻撃者の指示によって流動的にアップデートされるように設計されている。
Karius の動作方式は [図 1] のとおりである。
2) 動作の流れ
ア) ファイルのコピー
Karius は感染後、自身のファイルを以下の場所にコピーする。
- [ユーザーアカウント]\Music\temp.exe
その後、temp.exe のショートカット (.LNK) ファイルをスタートプログラムに登録し、システム再起動時に自動で実行されるようにする。
ファイルのコピーに成功したら、最初に実行した自身のファイルを削除するために [図 2] のバッチファイルを実行する。

イ) レジストリへの登録
ブラウザインジェクションを遂行する前に、[表 2] のようにインターネット保護モードを解除するレジストリ値を設定する。インターネット保護モードが解除されると、インジェクションや追加ダウンロード時に別途の通知や制約なしに悪性行為をすることができる。
[表 2] レジストリへの登録
ウ) C&C サーバーとの通信
C&C サーバーに接続して追加動作のためのコマンドを受信する。転送されるデータは RC4 暗号化された JSON フォーマットを使用する。
[表 3] C&C サーバー接続データのフォーマット
その後、C&C サーバーとの通信に成功すると、ユーザーシステム情報を追加で転送して攻撃者のコマンドを待つ。
[表 4] C&C サーバーに転送するユーザーシステム情報
転送するデータのうち、id 値は、システムの固有情報に基づいて生成したハッシュ値であり、以後の追加動作時に感染システムを区分する用途で使用される。
搾取対象 OS バージョン情報は次のとおりである。
[表 6] 搾取対象 OS バージョン
エ) 追加ファイルのダウンロード
C&C サーバーとの通信に成功したら、バンキング機能を遂行するために追加ファイルをダウンロードする。
ダウンロードする対象は、攻撃者のコマンドによって次の2つに分類される。
a) Update
実行ファイルを追加でダウンロードし、「%Temp%\[システムハッシュ]\.exe」 というファイル名で生成および実行する。
b) Config
ユーザー情報の搾取のための設定ファイルを 「%Temp%\temp.bin」 というファイル名で生成する。
設定ファイルは攻撃者の指示によりアップデートできるため、攻撃の対象は流動的に変更される可能性がある。
設定ファイルのフォーマットは次のとおりである。
[図 3] は、アンラボが確保した temp.bin の内容であり、ブラウザで host に定義された URL に接続時にユーザーログイン画面の入力値を搾取する。

[図 3] temp.bin 設定ファイル
オ) pipe 通信
temp.exe は、ブラウザにインジェクションしてユーザー情報を搾取するためのチャネルとしてプロセス間の Pipe 通信を使用する。以下の固定された名前の Pipe を生成し、受信データがある場合は C&C サーバーに転送する役割を遂行する。
- \\.\pipe\form
カ) Explorer.exe インジェクション
当該マルウェアは、システムメモリに常駐しながら動作するために実行中の Explorer.exe にインジェクションを遂行する。temp.exe 内にはそれぞれ 32/64ビットの DLL モジュールが含まれており、システム環境に合う DLL をロードする。
ロードされた DLL では MyFunction Export 関数が呼び出され、CreateProcessInternalW API をフックする。その後、エクスプローラーで実行されるすべてのプロセスに対して攻撃者が作成したコード領域への分岐を誘導する。
[図 4] は、Explorer.exe で CreateProcessInternalW API がフックされたコード領域を表しており、赤枠で囲んだ JMP コマンドの後、攻撃者が作成したマルウェア領域へ分岐する。
[図 4] CreateProcessInternalW API フックコード
攻撃対象のプロセス名は [表 7] のとおりである。該当プロセスが実行された場合、悪性行為のための追加インジェクションが遂行される。
[表 7] インジェクション対象ブラウザ
キ) ブラウザ (IE/Edge/Firefox/Chrome) インジェクション
[表 7] のブラウザが実行されたら、該当プロセスのメモリ領域を割り当てて追加で遠隔スレッドを生成する。
インジェクションに成功すると、temp.exe によりダウンロードした設定ファイル (%temp%\temp.bin) に定義されている攻撃対象 URL に対するユーザー入力値を搾取する。
各ブラウザ別 API フック対象は [表 8] のとおりである。
[表 8] 各ブラウザ別 API フック対象
最初のブラウザインジェクション時に [表 8] の API をすべてフックするため、以後、インターネット接続を通じたほとんどのヘッダーおよびデータに対するフィルタリングが可能である。

フックが成功した後、該当 API 呼び出し時に POST 転送データに対する制御が可能であり、搾取対象に含まれる場合は Pipe 通信により temp.exe に該当データを送信する。

設定ファイルに定義された攻撃対象サイトへの接続時、[図 7] のようにログイン画面でユーザーが入力した値が攻撃者コード内で確保可能である。

ブラウザで搾取したデータは JSON フォーマットで組み合わされ、RC4 エンコード状態で攻撃者に転送される。
マルウェアサンプルと共に確保した設定ファイル以外にも、攻撃者によりさまざまな攻撃対象が定義される可能性があり、金融業界や特定サイトへの攻撃に繋がる恐れがある。
03. まとめ
Karius は、多数のユーザーが使用するブラウザにインジェクションしてユーザー情報を搾取する目的で作成された。
また、実行中の Explorer.exe もインジェクションし、以後実行されるすべてのブラウザに対するインジェクションを繰り返し遂行するようになる。マルウェアに支配されたシステム上でユーザーが特定サイトに接続する場合、設定ファイルの内容によりユーザーの入力値が C&C サーバーに転送される。
04. 対策と予防
1) アンラボにおける対策
アンラボでは、当該マルウェアを以下のように検知できる。

2) 予防対策
Karius は RIG Exploit Kit 脆弱性ツールを通じて流布される。
従って、使用中のソフトウェアのバージョンを常に最新の状態に維持し、自動アップデートを設定することで脆弱性によるマルウェア感染を防止する。また、疑わしいサイトへのアクセスを控え、送信元不明なメールは開かないなどの対策が必要である。