本日の記事は、SOC アナリスト 小池 倫太郎の記事です。
---
Webサイトを閲覧しただけでマルウェアに感染してしまうDrive-by Download攻撃は、2017年頃から急速に下火となっており、現在ではほとんど話題になることはありません。日本においても減少傾向にありましたが、Bottle Exploit Kitと呼ばれる日本のユーザのみを標的としたExploit Kit[1][2]が登場するなど、やや特殊な状況にあります。
日本を標的としたDrive-by Download攻撃キャンペーンはいくつか存在しており、ここ数年の間で最も活発であると考えられているものはPseudoGateと呼ばれる攻撃キャンペーンです。PseudoGateキャンペーンは2018年に存在が報告された[3]攻撃キャンペーンで、日本語のWebサイトを用いてバンキングトロジャンを送り込みます。
PseudoGateキャンペーンはこれまでにいくつかのExploit Kitを使用してきました。登場初期はRIG Exploit Kit[4]やGrandSoft Exploit Kit[5]を使用していましたが、その後Fallout Exploit Kit[6]に移行し、数年間攻撃を行っていました。しかし、2020年12月頃からFallout Exploit KitではなくSpelevo Exploit Kitを使用し始め、それは2021年2月でも継続しています。
Spelevo Exploit Kitは2019年3月に存在が報告された[7]Exploit Kitです。その後、HookAdsキャンペーン[8]やMakeMoney(あるいはMalcdnとも呼ばれる)キャンペーン[9]などで用いられ、ShadeやMazeのようなランサムウェアやDridexやIcedIDのようなバンキングトロジャンを実行するために使用されてきました[10][11][12]。
日本においては、2019年3月にHookAdsキャンペーンで使用されたことを皮切りに、主に2019年にSpelevo Exploit Kitを使用した攻撃が観測されていました。その後、2020年は海外での観測報告は数件ありますが、日本国内含め、他のExploit Kitに比べて極めて目立たない存在となっていました。
そのため、Spelevo Exploit Kitについて、これまで詳細な解析レポートが公開されたことはほとんどありません。これまでに公開されてきたいくつかのレポートはトラフィック構造の簡単な紹介のみがほとんどで、シェルコードの具体的な挙動などは1度も示されたことがありません。
そこで今回は、Spelevo Exploit Kitに移行したPseudoGateキャンペーンについて、具体的なコードを見ながら、実際にこれらがどのように攻撃が行われているのか、詳細に紹介します。
攻撃の流れ
今回は2021年2月末に観測されたPseudoGateキャンペーンのトラフィックについて扱います。重要なトラフィックを抜粋した結果、攻撃は以下のような9つのトラフィックから構成されていました。
PseudoGateは広告ネットワークから誘導される、いわゆるMalvertisingキャンペーンです。ユーザが一般のWebサイトを閲覧した際に読み込まれたWeb広告からリダイレクトを繰り返し、最終的にPseudoGateのランディングページを読み込むことによって攻撃が行われます。
ランディングページは日本語で、実在する料理店などの情報を記載したものです。一見すると、このWebサイトがPseudoGateキャンペーンによるものであるとは思えません。
ランディングページの中には以下のようなコードが存在しており、これによってtom.phpを読み込みます。
tom.phpは以下のようなレスポンスを返します。これによって、さらにtom.phpに対してPOSTリクエストが送信されます。そのレスポンスをPOSTリクエストで呼び出します。
このときtom.phpは以下のようなデータを返します。
これはKeitaro TDSというTDS(Traffic Distribution System)で、リダイレクタとして動作します。その結果、Spelevo Exploit Kitのランディングページにリダイレクトが行われます。
Spelevo Exploit Kit
Spelevo Exploit Kitは2つの脆弱性(CVE-2018-8174とCVE-2018-15982)を悪用することが報告されていますが、PseudoGateによる攻撃ではCVE-2018-15982のみが観測されています。
CVE-2018-15982はAdobe Flash PlayerのRCEの脆弱性です。Adobe Flash Playerは2020年12月31日でサポートを終了していますが、現在でも古いバージョンを使用するユーザが一定数存在することから、CVE-2018-15982が悪用されているのだと推測されます。
Spelevo Exploit KitがCVE-2018-8174を悪用する設定だった場合でも、SWF LoaderとSWF Exploitの代わりにCVE-2018-8174を悪用するExploitコードが読み込まれるだけで、それ以外の挙動は同じです。
まずユーザがランディングページにアクセスすると、Adobe Flash Playerの情報を取得するコードが読み込まれます。それによって、ユーザのブラウザがAdobe Flash Playerをインストールしているか、インストールしている場合はバージョン情報が取得されます。
インストールされているAdobe Flash Playerのバージョンが21以上31.0.0.153以下であるかチェックを行います。これはCVE-2018-15982を悪用することができるか[13]確認するためです。チェックを通過した場合、iframeを用いてSWFのローダが読み込まれます。
SWFのローダはシンプルなHTMLで構成されています。後に使用されるFlashVarsパラメータの値にセットされたlinkという変数の値をチェックしておきましょう。これはマルウェアを取得する際に使用されます。こうしてSWFファイルが実行されます。
SWFはパックされています。リソースとして保存された画像ファイルのRGBデータを使ってデータを取得し、それを動的に実行していきます。具体的には、まず2800x2800のサイズの画像ファイルを読み込み、左上から順にRGBAデータを読み込みます。
読み込んだデータの先頭から36番目までのデータを削除し、以降のデータからアルファチャンネルの部分を削除します。
その後、得られたデータに対してXOR 0x22することで、データを復号します。
さらに、loaderInfo.parametersを使用して、SWFが読み込まれる際に指定されたlinkパラメータの値を取得します。そのデータを復号後のデータの0xcceに埋め込みます。最後に、得られたデータを動的に読み込んで実行します。
こうして実行されたデータはCVE-2018-15982を悪用するためのSWFファイルです。GitHubなどで公開されている典型的なPoCと極めて類似した構造で、それらをコピーペーストして作成されたと考えられます。
CVE-2018-15982の技術的な詳細はここでは省略しますが、Exploitに成功すると、最終的にシェルコードを実行します。シェルコードはSWF内にバイナリオブジェクトとして埋め込まれており、先程linkパラメータの値を書き込んだエリアに存在します。つまり、シェルコード内にlinkパラメータを埋め込んだということです。
シェルコードはまずror9AddHash32でAPIを解決した後、先程埋め込まれたlinkパラメータのURLに対してリクエストを送信します。そのレスポンスデータは一見するとノイズだらけの画像ファイルのように見えますが、実際にはマルウェアがエンコードされて埋め込まれています。
シェルコードはレスポンスデータの0x1100からデータを読み始めます。0x1104を鍵として、0x1106以降のデータをXORすることで、マルウェアが得られます。
その後、復号したマルウェアを%TEMP%\Low以下に保存し、wmicコマンドを使用して実行します。
最後に、マルウェアの実行に成功したことを通知するためか、再度リクエストを飛ばしてSpelevo Exploit Kitによる攻撃は終了します。
マルウェア
PseudoGateキャンペーンによって実行されるマルウェアは様々ありますが、最終的にはバンキングトロジャンが実行されます。過去にはRamnitやKronos、Zloaderなどが使用されましたが、昨今ではUrsnifが多用されています。また、最近ではUrsnifを単体で使用することはなく、その前段階としてSmokeLoaderが好んで使われています。
日本を標的としたDrive-by Download攻撃は、Bottle Exploit Kitなど他にもありますが、それらの多くがバンキングトロジャンを使用して銀行等の情報を窃取することが目的です。同一のアクターによるものの可能性も考えられますが、日本はそうしたバンキングトロジャンを用いた攻撃に狙われる傾向があると言えます。
さいごに
今回はSpelevo Exploit Kitを用いたPseudoGateキャンペーンによるDrive-by Download攻撃について、実際のコードを解析しながら攻撃の流れを詳細に紹介しました。Drive-by Download攻撃自体は下火になっていますが、現在でも根強く攻撃を行っているアクターがいます。それらのうち、日本を標的とした攻撃キャンペーンは、日本語のWebサイトを用いたり、日本に特化した特徴を持つなど、より注意が必要となります。こうした攻撃は今後も継続していくと考えられるため、引き続き警戒が必要でしょう。
また、今回Spelevo Exploit KitはAdobe Flash Playerの脆弱性を悪用しました。Adobe Flash Playerは既にサポートが終了しており、アンインストールすることが推奨[14]されています。さらに、Spelevo Exploit Kitは他にもCVE-2018-8174を使用することがありますが、これはパッチが適用されていないInternet Explorerを使用していることで攻撃に晒されます。こうしたことから、既にサポートが終了しているAdobe Flash Playerや、最新のパッチが適用されていないInternet Explorerの使用を中止することが強く推奨されます。
IOC
Spelevo Exploit Kit
- 37[.]18.90.119
- 37[.]18.90.44
参考文献
[1] nao_sec, Say hello to Bottle Exploit Kit targeting Japan
[2] NTTセキュリティ・ジャパン, When you gaze into the Bottle,...
[3] アクティブディフェンス研究所, 日本を標的とした新たなDrive-by Download攻撃キャンペーンPseudoGate
[4] NTTセキュリティ・ジャパン, RIGエクスプロイトキット解析レポート
[5] nao_sec, Analyzing GrandSoft Exploit Kit
[6] nao_sec, Hello "Fallout Exploit Kit"
[7] Twitter, @kafeine
[8] Malwarebytes, The HookAds malvertising campaign
[9] Twitter, @adrian__luca
[10] Malware-Traffic-Analysis, 2019-03-16 - Spelevo EK examples
[11] Cisco Talos, Welcome Spelevo: New exploit kit full of old tricks
[12] Cybereason, Exploit Kits “Shade” Into New Territory
[13] IPA, Adobe Flash Player の脆弱性対策について(APSB18-42)(CVE-2018-15982等)
[14] Adobe, Adobe Flash Playerサポート終了