2023/11/28 i-FILTER,サイバー攻撃,フィッシング,改ざんサイト
ClearFake - 偽アップデートでWeb経由のマルウェア感染
前回のセキュリティレポートでは "偽アップデート業界の老舗" ともいえる SocGholish(FAKEUPDATES)についての調査結果を報告しました。
SocGholish - 偽アップデートでWeb経由のマルウェア感染
しかし、今年はこの "偽アップデート業界" に新勢力が多数参入し、にぎわい始めています。
- ClearFake
- SmartApeSG(ZPHP)
- FakeSG(RogueRaticate)
- FakeUpdateRU
本稿では、弊社Dアラートも発生し日本でもアクセス事例を確認している、配信経路にブロックチェーンを悪用するという「ClearFake」についての調査結果を報告します。
ClearFake とは
ClearFake は2023年8月ころから確認されています。改ざんサイトにあらかじめ挿入された JavaScript が起点となり偽アップデートページが表示され、最終的にマルウェアダウンロード・感染へと至ります。
ClearFake による Web 経由マルウェア感染チェーン
ClearFake は SocGholish ほど解析回避の手法は取り入れていません。しかし、ブロックチェーンを悪用してテイクダウンされない経路を用いたり、偽アップデートページは複数の主要ブラウザーに対応していたり多言語対応していたりといった特徴がありました。
SocGholish がターゲットを選別してマルウェアを配信するのに対し、ClearFake はいわば無差別的にマルウェアを配信しています。
※以後 JavaScript を JS と表記させていただきます。
Stage.0 改ざんサイト
あらかじめ攻撃者は正規の Web サイトを改ざんし、html 内または JS ファイル内に不審な JS を挿入します。JS は一部 Base64 エンコードされているためデコードすると【図3】のようになっています。JS が挿入された改ざんサイトは多数あります。あとは改ざんサイトに誰かがアクセスすることによって開始されます。
Stage.1 ブロックチェーンの悪用
改ざんサイトにアクセスすると【図3】の JS が実行されますが、これが非常に厄介なものでした。
「インターネットを介してブロックチェーンに接続して特定のスマートコントラクトにアクセスし、悪意のある JS コードを取得してブラウザーで実行する」というものです。今回使われたブロックチェーンは BSC(BNB Smart Chain)という、ビットコインなどの仮想通貨取引で利用されるものです。
「ブロックチェーン」は改ざん防止や永続性を保証するために設計されているため、一度ブロックチェーン上に記録されたデータは削除することが非常に困難という特性があります。「スマートコントラクト」とはブロックチェーン上で自動的に動作するプログラムのようなものです。
厄介なポイント
- 誰からもテイクダウンされない
- ブロックチェーン上に悪意のある JS コードを展開すると、削除することががほぼ不可能になります。
- ブラックリストによるブロックが困難
- 本事例では、インターネットを介してアクセスする際に「https://bsc-dataseed1.binance.org/」という一般に共通利用されている正当な URL が使われているためブラックリストではブロックされにくいでしょう。
攻撃者側からすると、管理者にテイクダウンされず閲覧者にもブロックされない安定した配信経路といえます。
悪意のある JS 自体は、ブロックチェーンのトランザクション(取引・処理)履歴から確認することが可能です。またスマートコントラクトとやりとりを行ったパケットから解析して確認することも可能でした【図4】。
Stage.2 ClearFake 偽アップデート表示
ブロックチェーン上に展開された悪意のある JS がブラウザーで実行されると、下記の3つの URL(ドメインは同じ) に順にアクセスが発生し、偽アップデートページが表示されます。
ドメインは頻繁に変更されますが URL パス文字列は3パターンのみです。それぞれの役割を下に示します。
「https://ドメイン/文字列」
- ドメイン/vvmd54/
- ここでのURLは攻撃者側で時限的に有効と無効を切り替えているのか、または IP アドレスでアクセス制御をしているのか、レスポンスが返らずに挙動しないことがあります。
- 問題なかった場合には JS がレスポンスされ、実行されます。この JS は元のページ全体を覆い隠すように iframe を設定します。下記の URL から取得したコンテンツで覆い隠します。
- ドメイン/ZgbN19Mx
- ここではアクセス時に User-Agent をチェックしています。一般的な Web ブラウザーでなければ次に進みません。リファラもチェックしていますが、空白でなければ何でも良いようでした。
- 問題なければ html(JS も含む)がレスポンスされます。上述の JS が呼び出す iframe のコンテンツです。この html もさらに下記の URL からデータを取得しようとします。
- ドメイン/lander/<ブラウザー名>_<数字10ケタ>/_index.php
- <ブラウザー名>部分は User-Agent によって異なります。chrome、firefox、edge、opera という主要なブラウザー名に対応しています。
- ここではブラウザー別の偽アップデートページ表示用コンテンツがあります。言語も英語フランス語ドイツ語スペイン語などに対応しています。
ただし本稿執筆中に、上記 URL パス文字列に更新がありました(文字列のみで役割は同じ)。
これらの結果、
利用しているブラウザーと利用言語に応じた偽アップデートページが表示されます。
また、iframe で元のページ全体を覆い隠すように表示しているため、
元の改ざんサイトからリダイレクトしておらず、アドレスバーも元の改ざんサイトの URL のまま表示されます。