ホームルーターが、Windowsやアンドロイドデバイスのマルバタイジング経由で攻撃にさらされる

Share with your network!

概要

今年度、Proofpointのリサーチャーはエクスプロイトキット(EK)のアクティビティの減少を頻繁に報告しています。 しかし、EKは依然としてマルバタイジングの活動の重要なコンポーネントであり、数多くのユーザーが悪意のある広告を通じてマルウェアに曝されています。  10月末以降は、マルバタイジングによる継続的な攻撃で使用される「DNSChanger EK」[1] の改良されたバージョンを確認しています。 DNSChangerは、標的とするユーザーのウェブブラウザー経由でインターネットルーターを攻撃します。EK はブラウザーやデバイスの脆弱性ではなく、ユーザーの自宅や小規模オフィス(SOHO)のルーターの脆弱性を狙います。 ほとんどの場合、DSNChangerは、ChromeブラウザーやWindowsのデスクトップ、およびアンドロイドデバイス経由で攻撃します。 しかし、一旦ルーターが攻撃されてしまうと、オペレーティングシステムやブラウザーの種類に関わらず、そのルーターに接続している全てのユーザーが攻撃とマルバタイジングの危険にさらされます。

ルーター攻撃は次から次へと続き、数日続くマルバタイジング攻撃と関連があるようです。 攻撃パターンと感染連鎖の類似性から、これらの攻撃の背後に潜むアクターが、2015年前半に発生した「CSRF(クロスサイトリクエストフォージェリ)Soho pharming」の活動にも関わっていると結論づけました [1]。

しかし、弊社はこれらの攻撃の実行に際して、以下のような改良が施されていることを発見しました。

  • 社内アドレス用の外部DNSリゾリューション
  • 隠ぺいのためのステガノグラフィー
    • フィンガープリント/デフォルト認証情報とローカルレゾリューションのリストを解読するAESキー
    • 標的になったルーターを攻撃するために送信されるコマンドのレイアウト
  • 十数件のルーターエクスプロイトの追加:2015年には55のフィンガープリントだったものが、今では129のフィンガープリントが255のルーターをカバーしています。 例えば、「Comtrend ADSL ルーター CT-5367/5624」を標的にしたエクスプロイトは、10月28日ごろに攻撃が始まった時点で、ほんの2~3週間前に(2016年9月13日)出現したものでした。
  • 可能な場合(36件)、エクスプロイトキットはネットワーク規則を改変し、外部アドレスから管理ポートにアクセスできるようにして、Miraiボットネット攻撃のように、ルーターをさらなる攻撃にさらします [2]
  • マルバタイジング攻撃チェーンは、アンドロイドデバイスも対象となっています。

攻撃チェーン:

攻撃チェーンは、悪意のある広告をホスティングさせた正規のウェブサイトを通じて、被害者のネットワークを陥れます。悪意ある広告は、知らない間に正当な広告エージェンシーから配信されています。 図1に攻撃チェーンの全容を示します。

図1:攻撃チェーンの全容図

図2は、この攻撃に捉われたトラフィックの例を示しています。

図2:SOHO(スモールオフィス/ホームオフィス)ルーターへのDNSChanger EK攻撃に曝されたトラフィック。

攻撃分析:

デスクトップとモバイルデバイス上でマルバタイジングに遭遇すると、DNSChanger EKにトラフィックを送信します。 この攻撃は、最新版にアップデート済みの、Windowsやアンドロイド向けGoogle Chrome上で確実に実行されたことが確認できました。

DNSChangerは、 webRTCを利用して、stun.services.mozilla[.]com経由で STUNサーバーをリクエストし、被害者のローカルIPアドレスを特定します。 被害者のIPアドレスがすでに知られている場合、あるいはローカルIPが攻撃範囲にない場合、サードパーティ広告エージェンシーからの合法的な広告が表示されるデコイパスに移動します。

クライアントがこのチェックにパスすると、被害者には偽の広告が表示されます。 JavaScriptは、PNGファイルのコメントフィールドからHTMLコードを抽出し、被害者をDNSChanger EKにランディングするように仕向けます。 図3(1)に示した画像は、本来の.jpgではなく偽物のPNGファイルです。

図3: DNSChanger EKへのリダイレクトを引き起こすコードが含まれた偽の広告(2016年11月)

DNSChanger EK は、STUNリクエスト経由で、再度、被害者のローカルIPアドレスをチェックします。 それから、複数の機能と小さな画像内にステガノグラフィーで隠されたAESキーをロードします。

図4:AESキーを抽出する関数とそれを使用した、フィンガープリントと関連コマンドの解読。 

このキーは、フィンガープリントの解読に使用され、フィンガープリントは129のアイテムへと重複排除されます(完全なリストは付録を参照)。

図5:被害者の自宅/オフィスの利用可能なルーターを特定するために使用される関数

被害者のブラウザーは、ネットワークで使用されているルーターを見つけて識別しようとします(図5)。

スキャン関数が実行されると、ブラウザーはDNSChanger EKにそれを報告し、DNSChanger EKがルーター攻撃に関する適切な指示を返します。

図6:画像と復号されたAESから抽出した攻撃レイアウト

図7:攻撃コマンドの例

この攻撃は、スキャン段階で検出された特定のルーターモデルによって決定されます。 既知のエクスプロイトがない場合、攻撃はデフォルトの認証情報の使用を試みます。あるいは、既知のエクスプロイトを利用してルーターのDNSエントリーを改ざんし、可能な場合(129存在するフィンガープリントのうち、36で確認済み)、外部アドレスから管理ポートにアクセスしようと試みます。 このようにして、ルーターを Mirai [2] ボットネットが実行したような追加の攻撃にさらすのです。

図8:解読されたポートマッピングの指示例

図9:DNSChanger EKがトラフィックで捉えた外部TCP 8780へ、テルネット管理ポートをマッピングしようと試みている様子 

感染後:

このような攻撃(ルーターのDNS記録を書き換える)の目的は、必ずしも常に明確ではありません。今回、その目的の要素を少なくともひとつ判定できました。 信頼できる公開DSNサーバーとこれらの攻撃で識別された悪意あるサーバーの間のDNSレゾリューションの違いを調査した結果、攻撃の目的は、主に以下のような大規模なウェブ広告エージェンシーのトラフィックを盗むことであるとわかりました。

エージェンシー

経由

Alexa ランキング

Propellerads

onclickads.net

32

Popcash

popcash.net

170

Taboola

cdn.taboola.com

278

OutBrain

widgets.outbrain.com

146

AdSuppy

cdn.engine.4dsply.com

cdn.engine.phn.doublepimp.com

362

245

攻撃者は193.238.153[.]10 または46.166.160[.]187に該当するドメインのレゾリューションを図ります。 ドメインによっては、攻撃者はレゾリューションを利用して広告の動作と標的とするウェブサイトを改ざんしたり(例えば、ページの任意の場所をクリックすると、ポップアップがトリガーされるようにするなど)、置き換えを実行したりします。

図10:攻撃によって改ざんされた広告コール

弊社が調査した時点では、これらの攻撃はトラフィックをFogzy (a.rfgsi[.]com) とTrafficBrokerに誘導していました。 弊社はこの両社に連絡し、さらなる情報を得て、両社のネットワーク上でトラフィックが盗まれていることを報告しました。

攻撃されたルーターと被害緩和の手順

被害者サイドですでにフィンガープリントのデータと関連ルーター間の明らかな関係がなくなっているため、攻撃されたルーターの完全なリストを提供することはできません。明らかな関連性は、2015年半ばにDNSChanger EKから削除されており、より深い調査はこの分析の範囲を超えていました。 しかし、エンドユーザーにとって最も安全なアプローチは、全ての既知のエクスプロイトがこのようなエクスプロイトキットに統合されているとみなし、全てのルーターを最新版のファームウェアにアップデートすることです。

弊社は、脆弱なルーターとして新たに複数のルーターを判別しました。

  • D-Link DSL-2740R
  • COMTREND ADSL ルーター  CT-5367 C01_R12
  • NetGear WNDR3400v3 (このシリーズの他のモデルもおそらく脆弱と思われる)
  • Pirelli ADSL2/2+ 無線ルーター P.DGA4001N
  • Netgear R6200

Netgear R7000, R6400のゼロデーエクスプロイト[4]とその他の攻撃が最近、他のリサーチャーによって公表されました。 DNSChanager内で、これらのモデルに関連するフィンガープリントを調査しましたが、2016年12月12日の時点では、見つかりませんでした。 それでも、弊社はUS-CERT [5]からの指示に従い、攻撃されたNetgearルーターのウェブサーバーを無効化することをユーザーに強く推奨しています[6]。近い将来、このエクスプロイトがこのEKに追加されると考えられるためです。 Netgearは、これらの脆弱性の問題を抱えるユーザーに対し、ベータ版のファームウェアを利用可能にしました [8]。

多くの場合、SOHOルーターの遠隔管理機能を無効にするだけで、セキュリティを改善できます。 この場合、攻撃者はネットワーク上のデバイスから有線あるいは無線の接続を試みます。 その結果、攻撃者は遠隔管理機能がオンになっていなくても、ルーター設定を変更できます。

残念ながら、こうした攻撃を回避するための簡単な方法はありません。 ルーターに最新のアップデートを適用することが、エクスプロイトを回避する最善の方法なのです。 この場合に限っては、デフォルトのローカルIP範囲を変えることで、ある程度の回避は可能かも知れません。 しかし、どのソリューションも標準的なSOHOルーターのユーザーが利用する典型的な方法に過ぎません。 そのため、ルーターの製造者にとっては、ハードウェアのシンプルで使いやすいアップデート方法を開発するのは手間がかかるのです。

しかも、広告はウェブパブリッシングエコシステムの重要なコンポーネントだとわかってはいますが、攻撃がマルバタイジングに端を発している場合には、広告をブロックするブラウザーのアドオンがこうした種類の攻撃回避につながることもあります。

結論:

攻撃者がネットワーク上のDNSサーバーをコントロールしてしまうと、ネットワークに接続しているデバイス上で、さまざまな悪意ある行動を実行する恐れが生じます。 これには、銀行の不正取引、中間者攻撃、フィッシング[7]、不正広告、その他さまざまな行為が含まれます。 この場合、攻撃者はDNSChanger エクスプロイトキットを利用して、SOHOネットワークの唯一のDNSサーバー、つまりインターネットルーターを攻撃できるようになります。 一般に、これらの攻撃を回避するには、ルーター製造者が定期的にファームワークにパッチを提供し、ユーザーが定期的にこれらのパッチを適用する必要があります。 ルーターが脆弱な場合、攻撃されてボットネットで利用されてしまうと、ネットワーク上のユーザーだけでなく、ネットワーク外の他のユーザーにも影響が及びます。 ファームウェアのアップデートはユーザーの責任ですが、デバイス製造者もセキュリティを明確にし、アウトセットからべークインしておかなければなりません。特にSOHOマーケット向けに設計された機器には必要です。

参考

[1] http://malware.dontneedcoffee.com/2015/05/an-exploit-kit-dedicated-to-csrf.html

[2] https://www.malwaretech.com/2016/10/mapping-mirai-a-botnet-case-study.html

[3] https://www.kb.cert.org/vuls/id/582384

[4] http://thehackernews.com/2016/12/netgear-router-hacking.html

[5] https://www.kb.cert.org/vuls/id/582384

[6] http://www.sj-vs.net/a-temporary-fix-for-cert-vu582384-cwe-77-on-netgear-r7000-and-r6400-routers/

[7] https://www.proofpoint.com/us/threat-insight/post/Phish-Pharm

[8] http://kb.netgear.com/000036386/CVE-2016-582384

攻撃されたことを示す痕跡(IOC)

ドメイン | IP

コメント

modificationserver.com | 93.115.28.248

EKの前のマルバタイジング ステップ2 - 2016年12月

expensiveserver.com | 46.28.67.21

EKの前のマルバタイジング ステップ 1 - 2016年12月

immediatelyserver.com

EKの前のマルバタイジング - 2016年11月 

respectsserver.com | 217.12.220.127

EKの前のマルバタイジング ステップ 1 - 2016年10月

ad.reverencegserver.com

EKの前のマルバタイジング ステップ 2 - 2016年12月

parametersserver.com|93.115.28.249

DNSChanger EK/ RouterEK - 2016年12月

phosphateserver.com

DNSChanger EK/ RouterEK - 2016年11月

cigaretteinserver.com

DNSChanger EK/ RouterEK - 2016年10月

46.17.102.10 ~ 24

Rogue DNS サーバー

5.39.220.117 ~ 126

Rogue DNS サーバー

217.12.218.114 ~ 121

Rogue DNS サーバー

93.115.31.194 ~ 244

Rogue DNS サーバー

193.238.153.10 および 46.166.160.187

標的になったトラフィックの代替IP(偽装サーバー)

このホストへのトラフィックは、ルーターで改ざんされたDNSエントリーの前兆だと思えます。

pix1.payswithservers.com

192.168.1.1の外部ドメイン

pix2.payswithservers.com

192.168.8.1の外部ドメイン

pix3.payswithservers.com

192.168.178.1の外部ドメイン

pix4.payswithservers.com

192.168.0.1の外部ドメイン

pix5.payswithservers.com

192.168.10.1の外部ドメイン

pix6.payswithservers.com

192.168.137.1の外部ドメイン

pix7.payswithservers.com

10.10.10.1の外部ドメイン

pix8.payswithservers.com

192.168.100.1の外部ドメイン

pix9.payswithservers.com

10.1.1.1の外部ドメイン

pix10.payswithservers.com

10.0.0.1の外部ドメイン

pix11.payswithservers.com

192.168.2.1の外部ドメイン

pix12.payswithservers.com

192.168.254.1の外部ドメイン

pix13.payswithservers.com

192.168.11.1の外部ドメイン

pix14.payswithservers.com

192.168.3.1の外部ドメイン

0 < i < 18のsub[i].domain254.com 

名前解決なし

sub16.domain.com

66.96.162.92に解決

sub17.domain.com

66.96.162.92に解決

ETシグネチャ

2023473 || ET CURRENT_EVENTS DNSChanger EK 二次的ランディング  2016年10月31日

2021090 || ET CURRENT_EVENTS DNSChanger EK ランディング 2015年5月12日

2023466 || ET EXPLOIT D-Link DSL-2740R 遠隔 DNS 変更の試行

2020487 || ET EXPLOIT ジェネリック ADSL ルーター DNS 変更 GET リクエスト

2020488 || ET EXPLOIT ジェネリック ADSL ルーター DNS 変更 POST リクエスト

2020854 || ET CURRENT_EVENTS DRIVEBY ルーター DNS 変更 2015年4月7日

2020856 || ET EXPLOIT TP-LINK TL-WR340G ルーター DNS 変更 GET リクエスト

2020857 || ET EXPLOIT Belkin Wireless G ルーター DNS 変更 POST リクエスト

2020858 || ET EXPLOIT Linksys WRT54GL Router DNS 変更 POST リクエスト

2020859 || ET EXPLOIT Netgear WNDR Router DNS 変更 POST リクエスト

2020861 || ET EXPLOIT Motorola SBG900 ルーター DNS 変更 GET リクエスト

2020862 || ET EXPLOIT ASUS RT N56U Router DNS 変更 GET リクエスト1

2020863 || ET EXPLOIT ASUS RT N56U ルーター DNS 変更 GET リクエスト2

2020871 || ET EXPLOIT ASUS RT N56U ルーター DNS 変更 GET リクエスト3

2020873 || ET EXPLOIT D-link DI604 既知の悪意あるルーター DNS 変更 GET リクエスト

2020874 || ET EXPLOIT Netgear DGN1000B ルーター DNS 変更 GET リクエスト

2020875 || ET EXPLOIT Belkin G F5D7230-4 ルーター DNS 変更 GET リクエスト

2020876 || ET EXPLOIT Tenda ADSL2/2+ ルーター DNS 変更 GET リクエスト

2020877 || ET EXPLOIT 既知の悪意あるルーター DNS 変更 GET リクエスト

2020878 || ET EXPLOIT TP-LINK TL-WR841N ルーター DNS 変更 GET リクエスト

2020896 || ET CURRENT_EVENTS DRIVEBY ルーター DNS変更 2015年4月7日 M2

2023467 || ET EXPLOIT COMTREND ADSL ルーター CT-5367 遠隔 DNS 変更試行

2023468 || ET EXPLOIT 未知のルーター 遠隔DNS 変更試行

2023628 || ET EXPLOIT Netgear R7000 コマンドインジェクション エクスプロイト

2823788 || ETPRO TROJAN DNSChanger 不正DNS サーバー (A Lookup)

2823811 || ETPRO CURRENT_EVENTS DNSChanger EK DNS リプライ アドフラウドサーバー 1 2016年12月12日

2823812 || ETPRO CURRENT_EVENTS DNSChanger EK DNS リプライ アドフラウドサーバー 2 2016年12月12日

フィンガープリントのリスト:

[-37,"/img/Netgeargenie.png",290,41,"0",0]

[-36,"/UILinksys.gif",165,57,"0",0]

[-32,"/redbull.gif",7,7,"1",0]

[-31,"/settings.gif",654,111,"0",0]

[-30,"/images/img_masthead.jpg",836,92,"0",0]

[-29,"/images/logo.png",183,46,"0",0]

[-28,"/images/top1_1.jpg",280,87,"1",0]

[-27,"/headlogoa.gif",370,78,"0",0]

[-26,"/image/logo_gn.gif",101,51,"0",0]

[-25,"/bg_logo.jpg",858,82,"0",0]

[-24,"/image/tops.gif",450,92,"0",0]

[-23,"/graphics/banner.png",1024,70,"1",0]

[-22,"/img/loading.gif",32,32,"0",0]

[-21,"/logo_corp.gif",95,50,"1",0]

[-20,"/img/banner.gif",778,60,"0",0]

[-19,"/down_02.jpg",133,75,"0",0]

[-18,"/redbull.gif",7,7,"0",0]

[-17,"/pic/head_01.gif",162,92,"0",0]

[-16,"/image/linksys_logo.png",230,30,"0",0]

[-15,"/file/Comtrend_banner.jpg",897,70,"1",0]

[-13,"/logo.gif",371,38,"1",0]

[-12,"/image/top/NETGEAR_Genie.png",512,60,"1",0]

[-11,"/img/Netgeargenie.png",290,41,"",0]

[-10,"/tmp.gif",700,54,"1",0]

[-9,"/wlan_masthead.gif",836,92,"0",0]

[-8,"/images/logo.png",146,38,"0",0]

[-6,"/image/top/logo.gif",300,38,"0",0]

[-4,"/button_log_in.gif",70,21,"0",0]

[-3,"/image/UI_Linksys.gif",166,58,"1",0]

[-2,"/smclg.gif",133,59,"0",0]

[-1,"/themes/TM04/Drift-logo.png",300,89,"0",0]

[0,"/graphics/topbar.jpg",900,69,"1",1]

[1,"/graphics/young.png",128,96,"1",0]

[2,"/images/bg_stripes.png",50,50,"1",0]

[3,"/image/logo.png",271,43,"0",0]

[5,"/images/logo.gif",133,59,"0",0]

[8,"/img/tenda-logo-big.png",199,45,"0",0]

[9,"/images/main_welcome.gif",850,179,"1",1]

[11,"/image/UI_Linksys.gif",288,58,"0",0]

[12,"/Images/img_masthead_red.gif",856,92,"0",0]

[13,"/settings.gif",750,85,"0",0]

[14,"/images/top-02.gif",359,78,"1",0]

[15,"/UI_Linksys.gif",165,57,"1",0]

[16,"/set_bt.gif",93,52,"0",1]

[18,"/images/top1_1.jpg",208,85,"1",0]

[19,"/graphics/head_logo.gif",121,64,"0",0]

[20,"/images/top1_1.jpg",280,87,"0",0]

[21,"/router_logo.jpg",79,50,"1",0]

[22,"/graphics/gui_admin_login.jpg",283,120,"0",0]

[23,"/ag_logo.jpg",164,91,"1",0]

[24,"/images/head_logo.gif",312,68,"0",0]

[25,"/menu-images/logo.gif",169,50,"1",0]

[28,"/image/UI_Linksys.gif",288,58,"1",0]

[29,"/Images/Logo.gif",143,33,"0",0]

[30,"/images/logo.gif",169,50,"0",0]

[31,"/pic/logo.png",287,69,"0",0]

[32,"/spin.gif",16,16,"1",0]

[33,"/icons/top_left.png",300,96,"1",0]

[34,"/headlogo.gif",121,64,"0",0]

[35,"/pictures/home.jpg",255,41,"1",0]

[37,"/images/new_qanner.gif",840,92,"0",0]

[38,"/zyxellg.gif",169,50,"0",0]

[39,"/imagesV/vlogo_blk.jpg",185,40,"0",0]

[40,"/images/New_ui/asustitle.png",218,54,"0",0]

[41,"/images/New_ui/asustitle_changed.png",218,54,"0",0]

[45,"/images/date_bg.png",71,70,"0",0]

[47,"/graphic/head_04.gif",836,92,"0",0]

[49,"/image/logo.gif",390,69,"0",0]

[50,"/images/data_1_voda.gif",149,28,"0",0]

[51,"/images/logo_wind.gif",156,28,"0",0]

[53,"/pic/ag_logo.jpg",164,91,"0",0]

[54,"/banner_s.gif",126,65,"1",0]

[55,"/logo.gif",270,69,"0",0]

[56,"/logo_320x23.png",320,23,"0",0]

[58,"/image/UI_Linksys.gif",165,57,"1",0]

[59,"/file/int_logo_4_firmware.gif",366,66,"1",0]

[61,"/images/header.jpg",800,70,"0",0]

[62,"/images/btn_apply.png",61,20,"0",0]

[63,"/tendalogo.gif",387,90,"0",0]

[64,"/file/Logo.gif",216,83,"1",0]

[65,"/body/logo.jpg",154,118,"0",0]

[68,"/head_logo_p1_encore.jpg",92,72,"0",0]

[69,"/images/UI_Linksys.gif",288,57,"0",0]

[70,"/images/title_2.gif",321,28,"1",0]

[71,"/home_01.gif",765,95,"0",0]

[74,"/wlan_masthead.gif",836,85,"0",0]

[75,"/settingsDGND3300.jpg",799,97,"0",0]

[76,"/main/banner_files/bannertxt.gif",672,40,"0",0]

[77,"/html/images/dsl604.jpg",765,95,"1",0]

[79,"/head_logo.gif",140,64,"0",0]

[80,"/images/logo.jpg",270,69,"0",0]

[81,"/images/logo_netis.png",121,31,"0",0]

[82,"/images/icon-Change_pencil.png",18,18,"0",0]

[83,"/logo1.gif",207,105,"0",0]

[85,"/images/icon_now.gif",14,14,"0",0]

[87,"/down_02.jpg",135,75,"0",0]

[88,"/Images/logo.gif",270,69,"1",0]

[89,"/UILinksys.gif",166,58,"1",0]

[91,"/image/UI_Linksys.gif",134,58,"1",0]

[92,"/logo.gif",390,69,"0",0]

[93,"/images/icon_now.gif",14,14,"1",0]

[95,"/Images/img_masthead_red.gif",836,92,"0",0]

[97,"/images/topbg.gif",960,66,"0",0]

[99,"/down_02.jpg",133,75,"1",0]

[102,"/images2/main_title.n704bcm.gif",758,74,"0",0]

[104,"/common/images/logo.gif",108,32,"0",0]

[105,"/Images/logo.gif",780,62,"0",0]

[106,"/images2/login_title.n704bcm.gif",299,62,"0",0]

[107,"/images2/login_title.n704a3.gif",299,62,"0",0]

[108,"/file/logo.gif",165,47,"1",0]

[110,"/images/login_title_n104t.gif",299,62,"0",0]

[111,"/img/redbull.gif ",7,7,"1",0]

[112,"/images/head_logo.gif",140,78,"0",0]

[114,"/img/title_RP614v4.gif",750,85,"0",0]

[115,"/UI_Linksys.gif ",273,44,"1",0]

[116,"/logo.gif",318,69,"0",1]

[117,"/pic/img_masthead.gif",836,92,"0",0]

[118,"/images/logo.gif",76,69,"0",0]

[119,"/images/logo_transparent.gif",156,129,"0",0]

[121,"/Images/bg_a1.gif",280,70,"0",0]

[122,"/images/index_wrapper_bg_3347.png",801,325,"0",0]

[123,"/images/vz_logo.gif",185,40,"0",0]

[124,"/file/Manhattan_Banner.png ",452,90,"1",0]

[125,"/Images/Logo.gif",150,47,"0",0]

[126,"/Images/Logo.gif",200,50,"0",0]

[127,"/images/corp_logo.gif",153,42,"0",0]

[128,"/images/logo.png",171,75,"0",0]

[129,"/cornerartD241.jpg",140,90,"0",0]