【分析レポート】 バンキング型トロイの木馬 「BackSwap」
01. 概要
分析の対象となるサンプルは、次のとおりである。各ファイルのハッシュを含む詳細情報は、[04. 対策と予防] で確認できる。
[表 1] サンプル情報
02. 分析
1) 要約
BackSwap は、バンキング型トロイの木馬の一種であり、ユーザーの金融情報に対して悪性行為を行う。
これまでバンキング型トロイの木馬のさまざまな亜種が発見されているが、主に使用されている攻撃手法は、Web インジェクションおよびブラウザが使用する API をフックする手法である。
しかし BackSwap は、上記の手法ではなく、Self-XSS (Self Cross-Site Scripting) 攻撃を利用してユーザーが転送する口座情報を攻撃者の口座情報にすり替える手法を使用する。
また、正常なファイルのコード改ざんや悪性スクリプトを追加する方法で配布されており、7-zip、FileZilla、Ollydbg などが悪用された事例が確認された。
BackSwap の動作方式は [図 1] のとおりである。
[図 1] BackSwap の動作方式
2) 動作の流れ
ア) 自動実行
自動実行のために、[表 2] のパスと比較して一致しない場合は、該当パスに自らを複製して再実行する。

[表 2] 自己複製パス
イ) ログファイルの転送
フックイベント (※ 「C) Self-XSS 攻撃」 を参照) によって実行中の Windows のウィンドウ情報を記録し、攻撃者の Web サーバーに転送する。
当該機能は、一定の周期で実行され、転送が完了するとログファイルは削除される。

[表 3] ログファイルおよび転送先アドレス
また、ログファイルの作成前に、%Temp% で実行中のプロセスをすべて終了するが、これはログファイル関連機能を円滑に動作させるためであると推定される。

ウ) Self-XSS 攻撃
BackSwap のメイン機能であり、他のバンキング型トロイの木馬と異なる点でもある。
Self-XSS は、Web ブラウザで悪意のあるコードを実行させユーザーの口座情報などをコントロールする方法であり、主にコンテンツ(スクリプト) をコピーして Web ブラウザの開発者コンソールに貼り付ける方式である。
最近の Web ブラウザは Self-XSS 攻撃を防御するための手段を備えているため、これを無力化させるために BackSwap は [表 5] のような設定を適用する。



[表 6] BackSwap のブラウザ設定
その後、SetWinEventHook API を使用して実行中の Windows ウィンドウを確認し、ターゲット銀行リストと比較する。
[図 2] Windows イベントフック
[図 2] でフックするイベントは、[表 7] のとおりである。

[表 7] フックイベント
ターゲット銀行と一致するウィンドウが存在した場合 (ユーザーがターゲット銀行の Web サービスにアクセスした場合) は、攻撃者の Web サーバーに該当銀行に対応するリソースディレクトリ名を転送する。
[図 3] Web サービスフィルターのための https 文字列比較コード (一部文字のみ比較)

[表 8] ターゲット銀行リスト
[表 8] のように、特定の銀行に対応するスクリプトは BackSwap のリソース領域に暗号化保存されている。
分析対象サンプルにおいては、暗号化された6つのスクリプトが含まれていたが、実際使用されていたスクリプトは5つであった。
(※[図 4] の MIB ディレクトリ内のスクリプトは使用されていない)
[図 4] BackSwap リソースセクション内部のスクリプトファイルの位置
攻撃者はリソースディレクトリ名によりユーザーが利用中の銀行を特定することができ、該当銀行における攻撃者の口座情報および振込金額の最小値を転送する。
BackSwap は受信した情報を復号化されたスクリプトに反映させ、当該データをクリップボードに保存する。スクリプトはユーザーの振込金額を確認し、特定範囲内の金額である場合は、振込先口座情報を攻撃者の口座情報にすり替える。
スクリプトがブラウザ内で実行されると、バンキング型トロイの木馬としての機能を遂行するようになり、この過程が Self-XSS 攻撃に該当する。
[図 5] メモリ内の復号化されたスクリプトの一部 (リソースディレクトリ 「IPC」 内のスクリプト)

[表 9] Self-XSS 攻撃の過程
[図 6] Web 開発者コンソールウィンドウにコピーされたスクリプト (例)
[図 6] は、一部のプロパティ値を適用していないテスト画面である。BackSwap 実行時、Web ブラウザはウィンドウが少しの間非アクティブ化・透明化された後、すぐに正常な状態に戻るため、ユーザーは異常に気付きにくい。
クリップボードに保存された悪性スクリプトを Web 開発者コンソールウィンドウで実行するためのショートカットキーに関する内容は、[図 7] および [表 10] で確認することができる。
[図 7] クリップボードを利用するためのショートカットキー組み合わせコード
[表 10] 対象ブラウザおよび使用するショートカットキー
最近発見された BackSwap の亜種は、Web 開発者コンソールウィンドウを利用する代わりに、Javascript Protocol を使用して Web ブラウザのアドレスバーで直接実行していた。

[図 8] Javascript Protocol を使用する BackSwap (例)
スクリプトも、Web サーバーから追加情報 (攻撃者の口座情報、振込金額の最小値) を取得して反映させるのではなく、スクリプトに直接挿入していた。
[図 9] 口座情報などが挿入された BackSwap スクリプト (例)
03. まとめ
BackSwap は、既存のバンキング型トロイの木馬が使用する攻撃手法と異なる手法を使用する。
Windows が提供するイベントフックを通じて対象 URL をモニタリングし、ユーザーが Web ブラウザで対象 URL にアクセスすると、それを感知して悪性 Javascript をインジェクションする。
このような中間者攻撃は、バンキング型トロイの木馬では初めての試みであり、セキュリティ対策製品およびブラウザのセキュリティ機能を迂回する。
Web サービスの利用中にユーザーがブラウザの細かな変化に気づくことは難しく、細心の注意を払う必要がある。
04. 対策と予防
1) アンラボにおける対策
アンラボでは、当該マルウェアを以下のように検知できる。

2) 予防対策
BackSwap は、脆弱性を悪用したドライブバイダウンロードおよびソーシャルエンジニアリング手法である迷惑メールにより流布される。
BackSwap による被害を最小化するためには、Windows セキュリティパッチの適用、セキュリティ対策製品の最新バージョンへのアップデートなどの対策を実施する必要がある。特に、迷惑メールの場合、ユーザーと関係性のあるメール内容が多く、添付ファイルを開く際には十分注意しなければならない。