Zeusボットネットは2007年に登場し、今日活動している最大のボットネットのひとつです。Zeusは、「トロイの木馬」型マルウェアを作成するツールキットで、ユーザーのPCに感染し、バンキングサイトに入力されたすべての情報を収集することにより、個人情報を盗み出すという手段を備えています。パスワードを盗み出す以外にも、識別情報を盗み出し、ターゲットのPCをコントロールする様々な方法が実装されています。
Zeusはここ数年間、機能を追加、変更した多くのバージョンがリリースされており、非常に柔軟な構成が可能です。ここでは、そのうちのひとつのバージョン(1.2.7.19)を例に、機能の概要を説明します。
このブログの前半では、Zeusボットネットの実環境での構築、配布に関連するプロセスを説明します。後半では、Zeusがどのようにコードを動的に挿入して個人情報を盗み出すかについて論じ、最後にコマンドアンドコントロールに関する見解を述べます。
Zeusは、HTTPSでのバンキングトランザクションが盗聴されることはあり得ないと信じている人たちに警鐘を鳴らすものです。
Zeus作成ツールキット
McAfee Labsでは、どのようにZeusが実環境で構築、配布されているのかについて、懸命に調査しています。Zeusは、その感染率の高さから、発見以来かなり注目を集めているボットネットです。調査活動中、Zeus作成ツールキットを入手することができました。入手当時、ツールキットの価格は700~1,500米ドルでしたが、数カ月後には、ツールキットの無料版が公開されました。
Zeusボットの作成と設定
Zeusボットの作成と設定は、わずか数ステップで行えます。
1) 構成の指定:
構成ファイルのすべての静的構成パラメーターを指定します。
「Edit config」ボタンにより、ボットネットをコントロールする以下のさまざまなパラメーターを入力できます。
timer_logs : ログをサーバーにアップロードする時間間隔。
timer_stats :感染に関する統計データをサーバーにアップロードする時間間隔。
url_config :構成ファイルをフェッチするサーバーのURL。
url_compip :ターゲットを報告するサーバーのURL。
encryption_key :構成ファイルを暗号化する暗号化キー。
url_loader :zeus.exeの最新版をフェッチするURL。
url_server :コマンドアンドコントロールサーバー。
file_webinjects:HTML Webインジェクションコードを含むファイル名。
AdvancedConfigs :バックアップ用構成ファイルをフェッチするURL。
WebFilters :ログイン資格情報を収集するために監視するURLのマスクされたリストを格納。
WebDataFilters: 特定の文字列を監視するURLのリストを格納。「Passw」、「login」などのパターンが一致した場合、データが収集され、C&Cサーバーに送信されます(例:「http://mail.rambler.ru/*」、「passw;login」)。
WebFakes: 偽のWebサイトにリダイレクトされるURL。
TANGrabber:
TAN(トランザクション認証番号)を収集するTANGrabberはZeusの一機能で、ボットマスターが監視するバンキングサイト、銀行のWebサイトにポストされるトランザクションデータで検索する特定のパターンを指定できます。Zeusはこれらの指定されたデータパターンを照合し、収集して、C&Cサーバーにポストします。ボットマスターはここに他のバンキングサイトを入力でき、「Buid config」ボタンをクリックすると、Zeusによって、最終的な暗号化された構成ファイルに追加されます。
暗号化された構成ファイルの作成時に入力したURLが追加されるか確認するため、以下の構成ファイルに偽のバンキングサイトのURL(赤色で示されたURL)を入力しました。
2) 暗号化された構成ファイルの作成
「Build config」ボタンを押すと何が起こるのか見てみましょう。ツールキットにより、最終的な暗号化された構成ファイルが作成され、ファイルを保存することができます。この構成ファイルは、ボットマスターにより、C&Cサーバーにアップロードされます。
3) ボットの実行ファイルの作成
ボットマスターは、「Build loader」ボタンを使って、Zeusの実行ファイルを作成できます。
Zeusのネットワーク通信
ボットを仮想マシンで実行すると、まずHTTPで通信を行い、GETリクエストをコマンドアンドコントロールサーバーに送信し、構成ファイルを検索します。サーバーは、リクエストされた構成ファイルを送信します。このリクエストは、構成ファイルで設定されたタイマーの値に従って、繰り返し行われます。
ボットは、構成ファイルで指定された「url_server」パラメーターに従って、感染PCの情報をコントロールサーバーに送信します。
興味深い分析結果
Zeusのネットワーク通信を詳しく分析したところ、サーバーからのGET応答とボットが送信する次のPOSTリクエストの間に興味深い類似性が確認されました。
サンプル1:
サンプル2:
上記のように、サーバーからのGET応答の最初の部分とボットからのPOSTリクエストには類似性が見られます(HTTPヘッダーの最後から三番目以降)。古いバージョンのZeusボットでも同様の類似性が確認されています。この一貫した特徴は、ネットワークゲートウェイでこのボットの包括的検出を実装するのに利用できます。
SSLで保護されたバンキングトランザクションへのHTMLの挿入
バンキングサイトは現在進化しており、キー入力を記録するサイバー攻撃を軽減するため、セキュリティを強化しています。一方、絶えず進化するマルウェアも、これらのセキュリティ対策を回避し、ログイン資格情報を盗み出す新しい手法を取り入れています。現在、Zeusのようにパスワードを盗み出すボットネットは、HTMLコードを挿入する手法を使用しており、感染したPCのボットがバンキングサイトの正規のWebページにHTMLコードを挿入し、トランザクション中に不要な追加の個人情報をリクエストする仕組みになっています。これにより、ユーザーは必要以上の資格情報を入力してしまい、入力された情報はボットによって収集され、Zeusのボットマスターのコマンドアンドコントロールサーバーにポストされます。
HTMLページにコードが挿入される前のターゲットサイトの外観:
HTMLページにコードが挿入された後の同じターゲットサイトの外観:
これは、仮にフォームがHTTPSで暗号化されていても、ボットによって操作され、ユーザーに任意の個人情報を入力させ、キーロギングにより個人情報を収集し、C&Cマスターに送信することが可能であることを示しています。
Webインジェクション活動のヒューリスティック検出:
利用可能なもうひとつの手法が、HTMLフォームフィールドの違いを検出することです。バンキングサイトにアクセスする際、データがサーバーにポストされるときにHTMLフォームフィールドの数の変化を検出するという発想です。この違いはネットワークゲートウェイで検出できます。Zeusの場合、バンキングサイトにHTTPSでアクセスする際、ゲートウェイ上のドライブに、この種のネットワークトラフィックを検出するSSL中間者攻撃機能を装備する必要があります。
マウスクリックの傍受と仮想キーボードのスクリーンショットの撮影
バンキングサイトには、キー入力を記録するサイバー攻撃を軽減するため、仮想キーボードが取り入れられています。Zeusは、マウスをクリックするたびにスクリーンショットを撮影して、このセキュリティ機能に対抗しています。以下に示すように、クリックごとに傍受され、撮影されたスクリーンショットがドロップサーバーに送信され、順に組み合わされて、入力されたパスワードが抽出されます。
復号化された構成ファイルの分析
マシンがZeusボットに感染すると、ここで提供されているZeus解読ツールを使って、暗号化された構成ファイルを復号化できます。
復号化された構成ファイルを見てみましょう。このボットが追加したHTMLインジェクションコードが確認できます。
http://172.16.230.183/bt.exe
http://172.16.230.183/gate.php
!*.microsoft.com/*
!http://*myspace.com*
https://www.gruposantander.es/*
!http://*odnoklassniki.ru/*
!http://vkontakte.ru/*
@*/login.osmp.ru/*
@*/atl.osmp.ru/*
https://banking.*.de/cgi/ueberweisung.cgi/*
*&tid=*
*&betrag=*
https://internetbanking.gad.de/banking/*
KktNrTanEnz
https://www.citibank.de/*/jba/mp#/SubmitRecap.do
SYNC_TOKEN=*
https://www.mybank.com/loginform.asp
(構成ファイルの作成中に追加した偽のバンキングサイトのURL)
構成ファイルに挿入されたHTMLコード:
以下は、このボットがターゲットにしているバンキングサイトの簡略化されたリストで、復号化された構成ファイルにあります。
https://online.wellsfargo.com/signon*
https://www.paypal.com/*/webscr?cmd=_account
https://www.paypal.com/*/webscr?cmd=_login-done*
https://www#.usbank.com/internetBanking/LoginRouter
https://easyweb*.tdcanadatrust.com/servlet/*FinancialSummaryServlet*
https://www#.citizensbankonline.com/*/index-wait.jsp
https://onlinebanking.nationalcity.com/OLB/secure/AccountList.aspx
https://www.suntrust.com/portal/server.pt*parentname=Login*
https://www.53.com/servlet/efsonline/index.html*
https://web.da-us.citibank.com/*BS_Id=MemberHomepage*
https://onlineeast#.bankofamerica.com/cgi-bin/ias/*/GotoWelcome
https://online.wamu.com/Servicing/Servicing.aspx?targetPage=AccountSummary
https://onlinebanking#.wachovia.com/myAccounts.aspx?referrer=authService
https://resources.chase.com/MyAccounts.aspx
https://bancaonline.openbank.es/servlet/PProxy?*
https://extranet.banesto.es/*/loginParticulares.htm
https://banesnet.banesto.es/*/loginEmpresas.htm
https://empresas.gruposantander.es/WebEmpresas/servlet/webempresas.servlets.*
https://www.gruposantander.es/bog/sbi*?ptns=acceso*
https://www.bbvanetoffice.com/local_bdno/login_bbvanetoffice.html
https://www.bancajaproximaempresas.com/ControlEmpresas*
https://www.citibank.de*
https://probanking.procreditbank.bg/main/main.asp*
https://ibank.internationalbanking.barclays.com/logon/icebapplication*
https://ibank.barclays.co.uk/olb/x/LoginMember.do
https://online-offshore.lloydstsb.com/customer.ibc
https://online-business.lloydstsb.co.uk/customer.ibc
https://www.dab-bank.com*
http://www.hsbc.co.uk/1/2/personal/internet-banking*
https://www.nwolb.com/Login.aspx*
https://home.ybonline.co.uk/login.html*
https://home.cbonline.co.uk/login.html*
https://welcome27.co-operativebank.co.uk/CBIBSWeb/start.do
https://welcome23.smile.co.uk/SmileWeb/start.do
https://www.halifax-online.co.uk/_mem_bin/formslogin.asp*
https://www2.bancopopular.es/AppBPE/servlet/servin*
https://www.bancoherrero.com/es/*
https://pastornetparticulares.bancopastor.es/SrPd*
https://intelvia.cajamurcia.es/2043/entrada/01entradaencrip.htm
https://www.caja-granada.es/cgi-bin/INclient_2031
https://www.fibancmediolanum.es/BasePage.aspx*
https://carnet.cajarioja.es/banca3/tx0011/0011.jsp
https://www.cajalaboral.com/home/acceso.asp
https://www.cajasoldirecto.es/2106/*
https://www.clavenet.net/cgi-bin/INclient_7054
https://www.cajavital.es/Appserver/vitalnet*
https://banca.cajaen.es/Jaen/INclient.jsp
https://www.cajadeavila.es/cgi-bin/INclient_6094
https://www.caixatarragona.es/esp/sec_1/oficinacodigo.jsp
http://caixasabadell.net/banca2/tx0011/0011.jsp
https://www.caixaontinyent.es/cgi-bin/INclient_2045
https://www.caixalaietana.es/cgi-bin/INclient_2042
https://www.cajacirculo.es/ISMC/Circulo/acceso.jsp
https://areasegura.banif.es/bog/bogbsn*
https://www.bgnetplus.com/niloinet/login.jsp
https://www.caixagirona.es/cgi-bin/INclient_2030*
https://www.unicaja.es/PortalServlet*
https://www.sabadellatlantico.com/es/*
https://oi.cajamadrid.es/CajaMadrid/oi/pt_oi/Login/login
https://www.cajabadajoz.es/cgi-bin/INclient_6010*
https://extranet.banesto.es/npage/OtrosLogin/LoginIBanesto.htm
https://montevia.elmonte.es/cgi-bin/INclient_2098*
https://www.cajacanarias.es/cgi-bin/INclient_6065
https://oie.cajamadridempresas.es/CajaMadrid/oie/pt_oie/Login/login_oie_1
https://www.gruppocarige.it/grps/vbank/jsp/login.jsp
https://bancopostaonline.poste.it/bpol/bancoposta/formslogin.asp
https://privati.internetbanking.bancaintesa.it/sm/login/IN/box_login.jsp
https://hb.quiubi.it/newSSO/x11logon.htm
https://www.iwbank.it/private/index_pub.jhtml*
https://web.secservizi.it/siteminderagent/forms/login.fcc
https://www.isideonline.it/relaxbanking/sso.Login*
ボットネットの指揮管理
このツールキットには、コントロールパネルが付属しており、ボットネットの感染を追跡できます。これはPHPアプリケーションで、他の必要なデータベースソフトウェア(MYSQL)と一緒にWebサーバーで実行されます。また、攻撃者は、コントロールパネルを使って、ターゲットPCを遠隔操作し、コマンドを送信できます。
このツールキットに付属していたスクリプトのひとつを開いたところ、ボットに以下のコマンドを送信できることがわかりました。
$_COMMANDS_LIST = array
(
‘reboot‘ => ‘コンピューターを再起動’,
‘kos‘ => ‘OSを強制終了’,
‘shutdown‘ => ‘コンピューターをシャットダウン’,
‘bc_add [サービス] [ip] [ポート]‘ => ‘アドレスが[ip]:[ポート]のサーバーを使って[サービス]のバックコネクトを追加’,
‘bc_del [サービス] [ip] [ポート]‘ => ‘[ip]:[ポート](マスク可)への接続を使用する[サービス](マスク可)へのバックコネクトを削除’,
‘block_url [url]‘ => ‘[url](マスク可)へのアクセスを無効化’,
‘unblock_url [url]‘ => ‘[url](マスク可)へのアクセスを有効化’,
‘block_fake [url]‘ => ‘マスク[url](マスク可)によるHTTPの偽造/挿入の実行を無効化’,
‘unblock_fake [url]‘ => ‘マスク[url](マスク可)によるHTTPの偽造/挿入の実行を有効化’,
‘rexec [url] [引数]‘ => ‘[引数](任意)を含むファイル[url]をダウンロードして実行’,
‘rexeci [url] [引数]‘ => ‘インタラクティブユーザーを使って[引数](任意)を含むファイル[url]をダウンロードして実行’,
‘lexec [ファイル] [引数]‘ => ‘[引数](任意)を含むローカルファイル[ファイル]を実行’,
‘lexeci [ファイル] [引数]‘ => ‘インタラクティブユーザーを使って[引数](任意)を含むローカルファイル[ファイル]を実行’,
‘addsf [file_mask…]‘ => ‘ローカル検索対象にファイルマスク[file_mask…]を追加’,
‘delsf [file_mask…]‘ => ‘ローカル検索対象からファイルマスク[file_mask…]を削除’,
‘getfile [パス]‘ => ‘ファイルまたはフォルダ[パス]をサーバーにアップロード’,
‘getcerts’ => ‘すべてのストアから証明書をサーバーにアップロード’,
‘resetgrab’ => ‘保護されたストレージ、クッキーなどから情報をサーバーにアップロード’,
‘upcfg [url]‘ => ‘[url]から構成ファイルを更新(任意、デフォルトでは標準urlを使用)’,
‘rename_bot [名前]‘ => ‘ボットの名前を[名前]に変更’,
‘getmff’ => ‘Macromedia Flashファイルをサーバーにアップロード’,
‘delmff’ => ‘Macromedia Flashファイルを削除’,
’sethomepage [url]‘ => ‘[url]をInternet Explorerのホームページに設定’
ボットネットの構築過程で、このツールキットの興味深い機能が見つかりました。ボットマスターが誤って自分のPCにボットを感染させた場合、「Remove spyware from this system」ボタンを使ってボットネットを削除できます。非常に残念なことですが、このコマンドはZeusに感染したユーザーには提供されません。
関連記事
- [2011/07/19] Android版ZeuSを解析する:その真相は?
- [2011/05/16] 狙われるMac OS: クロスプラットフォームなJavaボットネットが拡散中
- [2011/04/18] 携帯端末を狙うZeusクライムウェア
- [2011/01/11] 携帯電話ネットワークを所有するモバイルボット
- [2010/11/19] 「Zeus」+「SpyEye」:高機能バンキングマルウェア合併の舞台裏
- [2011/01/25] 「Zeus」+「SpyEye」-第2回:統合ツールキットが登場か
- [2011/03/22] 「Zeus」+「SpyEye」第3回:最新ケースの紹介
- [2011/03/07] ボットネットとソーシャルメディアの相関関係
- [2010/10/05] Zeusボットネットについて
- [2010/10/04] あなたのPCをコントロールするボットネット
※本ページの内容はMcAfee Blogの抄訳です。
原文:Zeus Crimeware Toolkit