ScamClubによるAdTechエコシステムへの攻撃
2018年以来、ScamClubはアドテク領域でのサプライチェーン全体に対する持続的な脅威として現れ、SSPおよびDSPに入り込むことでパブリッシャーやそのユーザーにアクセスしています。彼らはこれらの広告プラットフォームを活用して高度な金融詐欺攻撃を起こし、被害者のブラウザ上で正規のパブリッシャーサイトからScamClubのランディングページに強制的にリダイレクトさせます。年末年始恒例のCPM価格の下落はこのような攻撃者が作戦を拡大する恰好の舞台が作り上げ、彼らによる悪質な行為は2023年12月以降ピークに達しました。
図2: VASTの例
攻撃者達はかつて、ビデオ在庫は金銭的に手が届かないと考えていましたが、その手口は大きく進化しました。Webおよびモバイルユーザーに提供されるビデオ在庫の脆弱性だけが懸案事項というわけではありません。広範なCTV(Connected TV)環境でも適切な広告セキュリティコントロールが欠けており、ユーザー保護の観点で重大なギャップが生じています。
ScamClub の攻撃フロー
図3: ScamClub 2月の攻撃フロー
1. 悪意のあるスクリプトの作成:
初期段階では、悪意のあるスクリプトが作成されます。ここでは、重要なフィンガープリント(注1)情報が戦略的にスクリプト外の攻撃者の環境変数(OSなどでの設定値)に保存されます。図4に示されているこの環境変数は、フィンガープリンティング(注2)に必要な重要なデータのリポジトリ(格納場所)として機能します。
注1)フィンガープリント: 個々のユーザーを特定する情報群
注2)フィンガープリンティング: フィンガープリントを使い特定のブラウザやユーザーを識別する手法
2. 悪意のある難読化されたスクリプトの実行:
スクリプトが配置されたら、実行が続きます。ここで、悪意があり難読化されたコードが展開されます。このスクリプトは、一連のフィンガープリント関数を使用してクライアントをシステマティックにテストし、クライアントの環境内の特定の属性と構成を調査します。
3. サーバーサイドのフィンガープリンティング:
クライアントサイドのフィンガープリントチェックが成功すると、悪意のあるスクリプトはサーバーサイドでのフィンガープリンティングのフェーズに進みます。ここでは、「trackmenow[.]life」といったプライベートドメインにホストされた悪意のある広告サーバーに追加のリクエストが行われます。このリクエストには、URLパラメータと、特にPOSTリクエストを介したDOMデータが含まれ、豊富な種類のフィンガープリンティングの情報ができる役割を果たします。
4. リダイレクトコード:
サーバーサイドのフィンガープリンティングの検証後、POSTリクエストからの応答には、リダイレクトを開始するためのさまざまなメカニズムが含まれています。このリダイレクトコードは、悪意のあるフローの後続の手順のための基盤として機能し、重要な要素となります。
5. リダイレクトチェーンのドメイン:
リダイレクトコードから取得したドメインは、クライアントを欺く到達地点 – 典型的なものとしては偽もしくは詐欺が発生するページ – に向かうリダイレクトチェーンを開始します。このように編み出されたリダイレクトチェーンは、悪質のあるフローの最後のステップで、取得したフィンガープリントデータを使い、のリダイレクトプロセスをカスタマイズして実行します。
この悪意のあるフローの一連の手順は、クライアントサイドとサーバーサイドの両方のフィンガープリンティング技術を利用して、クライアントを特定の宛先に検証してリダイレクトするための洗練された組織的なアプローチとみることができます。これらのステップが統合されたことで、悪質のあるスクリプトの複雑な設計の性質と、オンライン広告エコシステム内のユーザーへの潜在的な影響が浮き彫りになりました。
図4: 悪意のあるスクリプトの作成と共に変数に含まれるフィンガープリント情報
攻撃者の環境変数内のフィンガープリント情報:
この変数に封入されたデータは、’|’で区切られます。これは、base64エンコード、md5ハッシュ化、および文字列の難読化を含むさまざまな技術によって一部が隠されます。攻撃者は文字列を覆い隠すために追加の文字を使用し、データの順序は常に置換されます。
重要なフィンガープリント
- IPアドレス
- 国コード
- クライアントの位置のホスト名
- サイトID(ホスト名+ID)
- タグのリクエストのタイムスタンプ
- 広告交換サーバー
- ブラウザ名
- ブラウザのバージョン
- オペレーティングシステム
- タイムスタンプ+ IP +ソルトのハッシュ
- 入札ID
- X-RTB ID
すべてのデータ要素が常に存在するわけではないことに注意してください。図4では、特定のデータが欠落しているインスタンスが示されており、それに伴う情報がない場合には ‘||’ で示されています。データの完全性が求められるなかでのこの変動性により、フィンガープリンティングのプロセスがさらに複雑になり、埋め込まれた情報の正確な構造と内容を予測するのがより難しくなります
利点:
1. 重要なフィンガープリントデータ: 悪質なスクリプトは、後でフィンガープリント関数内でこの情報を使います。
2. ブロックテスト環境: この変数が存在しない場合、テスト環境を示し、スクリプトはレンダリングされません。
悪質なスクリプトで使用されるフィンガープリント関数:
1. IPアドレスの一貫性: スクリプトは、現在のリクエストに関連付けられたIPアドレスが、フィンガープリントデータに保存されたものと一致するかどうかをチェックします。
2. 時間差: 時間はAdTechセキュリティにおける重要な要素です。スクリプトは厳格な時間制約を施し、60,000ミリ秒(または60秒)未満の時間差のリクエストのみを許可します。この時間的検証は、攻撃の再現に対する防御として機能します。
3. タイムゾーンの同期: タイムゾーン情報の重要性を認識し、スクリプトは現在のリクエストのタイムゾーンがフィンガープリントデータに記録されたものと正確に一致することを確認します
4. 位置フィンガープリントの検証: フィンガープリントデータに埋め込まれた位置データと動的に取得した現在の位置を比較します。この細心のチェックにより、位置情報が一貫していることが確認されます。
5. アンチデバッグ検証: スクリプトの耐久性を強化するために、アンチデバッグ機能が組み込まれています。この機能はデバッグの試みを検出し、阻止するため、逆アセンブリと分析に対する追加の防御層を追加します。
スクリプトが実行中に失敗した場合、セキュリティベンダーの検証など、追加のフィンガープリント関数(ハッシュ関数)を実行します。
これらの関数を通過したスクリプトは、より多くのフィンガープリントデータを持つ、悪意のある広告サーバーにPOSTリクエストを送信します:
1. iFrameの存在チェック:
広告がiFrame内に表示されているかどうかをチェックします。広告がiFrame内に検出されると、スクリプトが特定の環境で動作していることを示す指標となります。このチェックにより、攻撃者は、実世界の広告配信シナリオと潜在的なテスト環境または制御されたセットアップとを区別できます。
2. WebGLのフィンガープリンティング:
WebGLは、Webブラウザ内でインタラクティブな2Dおよび3DグラフィックをレンダリングするためのJavaScript APIです。WebGL関連の情報、例えばサポートされている拡張機能やレンダラーの詳細を抽出することで、攻撃者はユーザーのブラウザの機能と構成についての洞察を得ます。この情報により、ユーザーのデバイスのユニークなフィンガープリントが作成でき、スクリプトがユーザーを識別し追跡する能力が向上します。
3. OSタッチイベントのチェック:
この方法では、ユーザーのオペレーティングシステムがタッチイベントをサポートしているかどうかを判断します。タッチイベントの存在または不存在、デバイスの性質(モバイルまたはデスクトップなど)を把握することができます。この情報は、ユーザーのデバイスプロファイルを洗練させ、よりターゲットに絞ったフィンガープリンティングを可能にします。
4. DOMデータのフィンガープリンティング:
Document Object Model(DOM)データに基づくフィンガープリンティングは、DOMのさまざまな属性やプロパティを抽出して分析することを含みます。これには、ウェブページの構造、特定の要素の存在、およびその他の一意の識別子の詳細が含まれる可能性があります。DOMを包括的に調査することで、攻撃者はユーザーのブラウジング環境全体の識別に貢献する独特の指紋を作成することができます。
これらの追加のフィンガープリンティングメソッドは、攻撃者がユーザーのデバイスとブラウジングコンテキストに関する多様で詳細な情報を収集するための洗練されたアプローチを示しています。各メソッドはフィンガープリントにユニークなデータポイントを提供し、アドテクエコシステム内でターゲットを特定し追跡するための強靭で特徴的なプロファイルを作成するスクリプトの能力を高めます。
悪質なアドサーバーはこのデータを使い、ユーザーを詐欺ページにリダイレクトするかどうかを決めます。
ScamClubの悪質なビデオキャンペーン
数ヶ月前、ScamClubがビデオのVASTのキャンペーンを通じた攻撃を始めました。
図5: ScamClubの悪質なビデオキャンペーン
1. VASTの実装
VAST タグは、’MediaFile’ 要素を含む VAST XML ファイルの読み込みを開始します。この要素は、AzureEdge/Cloudfront ドメインから取得した JavaScript ファイルをホストします。フィンガープリント情報は、このファイル内のクエリパラメータとして渡されます。このフェーズの間(図6)、攻撃者はユーザーをフィルタリングすることを控え、幅広いユーザーを許可します。
2. 応答内容 (図7)
(a) VpaidVideoPlayerのプロパティが正当なビデオ広告をシームレスにレンダリングします。
(b) 同時に、応答コンテンツ内には悪意のある難読化されたスクリプトが隠されています。
3. サーバーサイドのフィンガープリンティング
4. リダイレクトのコード
5. チェーンドメインへのリダイレクト
図6:Azによってホストされる悪意のあるスクリプト
図7: ScamClubの悪質なスクリプト
このVASTの主な目的は、悪質なコンテンツを提供することであり、実際のビデオコンテンツは表示されません。このVASTをレンダリングすると、悪質なスクリプトが読み込まれ、Googleプレーヤーのデフォルトビデオだけが表示されます。ビデオコンテンツのレンダリングに失敗したためです。
ScamClubのVAST攻撃にリンクされた最初の広告
ScamClubの最新の手口では、攻撃者は悪質なスクリプトのホスティングサーバーを、Azureではなく独自のドメインに移動しました。
URL例
hxxps://trackmenow.life/vtag/ft1.js?VUHa=1&HXbwq=1h8t5&bMit=1j9qylF2mOrq&VVXO=781c6a2553149ab83c561f10a2151&dWiq=allnovel.net&TAcZ=adsgard-cpm-rtb-vo&upiOi={client_ip}&msBWy=safari&dTeAp=ios&wXczw={subage}&CBKVK=RO&feoL=1x7y0y7o9e9n1x9a8m6j4m3n2&hGbg=43894&mOsAF=allnovel.net_4a3266fca0b6&pznfW=0579587625b92f9ef09c7753e1acf217
ここに、広告をレンダリングするためのより長いVPAID Adプロパティのスクリプトがあります(図9)。
図9:新しいスクリプトは、ScamClubのプライベートドメインから戻ってきます。
更新版には、本物の広告を模倣しようとするMcAfeeからのプロモーションコンテンツが含まれており、次のURLにリードします:hxxps://iabtechlab.com
ScamClubのVAST攻撃に関連する2番目の広告
通常のScamClub攻撃とVAST攻撃とでは以下の違いがあります:
VASTキャンペーンでは、悪質なスクリプトへのリクエスト中にフィンガープリントデータがURLで送信されるため、攻撃者はサーバーでそれらを検証できます。一方、通常のバージョンでは、フィンガープリントデータがリクエスト前のスクリプトに含まれているため、攻撃者はクライアントでそれらを検証する必要があります。
IOC:
VAST攻撃で配信されたすべてのドメイン:
- vo-av[.]azureedge[.]net
- v-fa[.]azureedge[.]net
- bn-vdo[.]azureedge[.]net
- d3i45xa0npwdkr[.]cloudfront[.]net
- zr-vd[.]azureedge[.]net
- livd[.]azureedge[.]net
- doazcw5q3y88m[.]cloudfront[.]net
- v3-ky[.]azureedge[.]net
- ftder[.]azureedge[.]net
- trackmenow[.]life
TTPs(戦術、技術、手順):
戦術:
1.VAST広告を介した悪質広告
主な戦術は、VAST(ビデオ広告配信テンプレート)広告に悪意のある機能を埋め込み、広告配信インフラを利用して広範な視聴者にアクセスすることです。
2.正当なスクリプトの後に逃避
攻撃者が採用する戦術の一つは、正当なスクリプトの実行後にVAST定義内に悪意のある要素を埋め込むことで、検出を回避することです。この方法により、悪意のある要素が正当な要素と混ざり合い、攻撃の隠密性が向上します。
技術:
1.VAST XMLの悪用
攻撃者は、VASTプロトコルを利用し、’MediaFile’要素を含むXMLファイルを読み込みます。この要素は、一見正当なAzureEdge/CloudfrontドメインからJavaScriptファイルをホストし、悪意を隠しています。
2.クライアント側のフィンガープリンティング
VAST XMLを読み込んだ後、応答内容には、ビデオ広告をレンダリングする正当なVPAID(ビデオプレーヤー広告インターフェース定義)プロパティと、同時に、フィンガープリント関数を含む悪意のある難読化されたコードが含まれています。この技術により、攻撃者はユーザーをプロファイリングし、一意に識別できます。
3.サーバー側のフィンガープリンティング
攻撃には、クライアントがフィンガープリント関数を通過した場合に開始されるサーバー側のフィンガープリントが組み込まれています。悪意のあるスクリプトはその後、プライベートドメイン(例えば、trackmenow.life)にリクエストを送信し、URLパラメータを追加し、POSTリクエストを介してDOMデータを抽出し、フィンガープリントデータセットを強化します。
4.リダイレクトメカニズム
サーバー側のフィンガープリンティングが成功した場合、スクリプトはリダイレクトコードを返します。これには、攻撃戦略を多様化するためのさまざまなリダイレクトプロセスの開始方法が含まれています。
追加の技術:
1.難読化
攻撃者は、悪意のあるスクリプトを理解、分析、検出しにくくするために、コードの難読化技術を使用します。
2.Base64エンコード
Base64エンコードは、悪意のあるスクリプト内のデータをエンコードするために使用され、機密情報を隠したり変換したりするためのものです。
3.MD5ハッシング
MD5ハッシングは、フィンガープリンティングのプロセス内で特定のデータ要素をハッシュ化するために使用され、さらに複雑さを加えます。
ScamClubからの保護
現在のVAST攻撃からビデオインベントリを保護するために、すべてのビデオ資産の定期的なスキャンが必要です。この脅威に関する最新の研究と更新情報を入手するためには、ご用意したリンクにアクセスするか、直接当社のチームにご連絡ください。