私たちは、ユーザーが正規のアプリをインストールしていると錯覚させ、オンラインギャンブルサイトへ誘導することを目的とした大規模なソーシャルエンジニアリング攻撃を特定しました。
この手口は「FriendlyDealer」と呼ばれています。これまでに少なくとも1,500のドメインで確認されており、各ドメインにはGoogle PlayやApple App Storeを装ったウェブサイトがホストされています。ユーザーは、信頼できるソースからギャンブルアプリをダウンロードしていると信じ込んでいます。そこには、信頼できるソースならではの審査、レビュー、セキュリティ対策が施されていると期待しているのです。しかし実際には、ユーザーは依然としてウェブサイト上にいて、そこでウェブアプリをインストールすると、アフィリエイトリンクを通じてカジノのオファーページにリダイレクトされてしまうのです。
このキャンペーンは、パスワードを盗んだり、従来のマルウェアをインストールしたりすることはありません。その代わり、誰かがこれらのサイトのいずれかに登録したり、入金したりするたびに、手数料を通じて収益を得ています。
銀行向けトロイの木馬ほど深刻には聞こえないかもしれませんが、結局のところ、人々は年齢確認もなければ、入金額の上限も消費者保護もない、規制の及ばないギャンブルサイトに誘導されてしまうことになります。しかも、ギャンブル依存症が「国内でかつてないほど急速に拡大している」と指摘されているまさにこの時期に、このような事態が起きているのです。
1つのキットで数十のアプリを作成可能。実際のアプリストアを模倣するように設計されています
FriendlyDealerは、多種多様な偽のアプリリストを生成できる、単一の再利用可能なキットとして構築されています。
このキットは、ユーザーが使用しているデバイスを検知し、それに応じて異なる偽のストアを表示します。Android 偽のGoogle Playストアが、iPhoneユーザーには偽のApple App Storeが表示されます。さらに、このキットは各プラットフォームに適したシステムフォント(Android Sans、iOSSan Francisco)を読み込むため、表示される文字のスタイルは、自分のスマートフォンで見慣れたものと一致します。
内部的には、ページに埋め込まれた1つの設定ファイルからすべてのコンテンツを読み込む単一のWebアプリケーションです。そのファイルを変更するだけで、同じコード上で動作する、まったく異なるアプリ一覧が表示されます。
運営者はこれを利用して、「Tower Rush」(189件)から「Chicken Road」(97件)、YouTube を装った「BEAST GAMES: ICE FISHING」(43件)に至るまで、少なくとも20のカジノブランドを展開してきた。(なお、一部のスキンは正規のギャンブルブランドの名称を流用しているが、これらはいずれも当該運営とは一切関係がない点に留意すべきである。)
これらのレビューは偽物です。異なるアプリ間で同じユーザー名、プロフィール写真、テキスト、開発者の返信が流用されており、複数のブランドにわたって繰り返されています。偽のストアを表示する前に、このキットはエンゲージメントを高めるために、シンプルなカジノのミニゲームを表示することも可能です。
Android 偽の「インストール」ボタンは、Chrome み機能するChrome Android 。Chromeインストールプロンプトをキャプチャし、タップされるとそれをトリガーすることで、本物のインストールダイアログを表示させます。そのため、通常表示される「不明なソースからのアプリインストールに関する警告」は表示されません。これまでの調査によると、この方法でインストールされたアプリは、端末の設定画面に「Google Playストアからインストールされました」と表示されることさえあることが分かっています。
このコードは、ユーザーを適切なブラウザに誘導するために並外れた工夫を凝らしています。Instagram アクセスした場合、ユーザーはそれらのアプリに組み込まれたブラウザ内にいることになり、そこからインストールを開始することはできません。Androidでは、このキットが特別なリンクを生成し、ページをChromeで再表示するように強制します。iOS同様の処理が行われますが、対象はSafariになります。Chrome 場合、フォールバック処理により、実際のPlayストアに誘導してダウンロードさせます。 Samsungのブラウザ用には、さらに別のハンドラーが用意されています。ブラウザごとの対応は、異例なほど詳細に設計されています。
このページではズーム機能が無効化されているため、詳細を確認しにくくなっています。このキットはユーザーごとに追跡IDを割り当て、分析、イベント、プッシュ通知登録、オファールーティングの各フローでそれを再利用します。
このキットは有料広告に対応しています。設定には、Google、Yandex、Facebook、TikTokの4つの広告プラットフォームのトラッキングピクセル用の空きスロットが含まれています。アプリとバックグラウンドスクリプトは、Facebook広告識別子(_fbc / _fbp)が利用可能な場合、それらを転送することができます。 コードにはYandexのテレメトリフィールドへの参照が含まれており、ロシア語のコメントやデバッグ文字列が付属しています。これはロシア語圏の開発環境と一致していますが、これらの痕跡は再利用または購入したキットから引き継がれた可能性もあります。
その流れは単純明快だ。広告トラフィックを購入し、端末を検知して、偽のアプリストアを表示させ、本物そっくりのインストールを装い、アフィリエイトリンクを通じてカジノサイトへリダイレクトする。
アプリをインストールしているわけではありません
ユーザーが「インストール」をタップしても、実際にはアプリがダウンロードされるわけではありません。その代わりに、ブラウザが「プログレッシブ・ウェブ・アプリ(PWA)」と呼ばれるものを作成します。これは本質的にはウェブサイトですが、ホーム画面に独自のアイコンが表示され、独自の起動画面も備えているため、アプリのように動作します。ほとんどの人にとって、本物のアプリと見分けがつかないほどです。
インストールが完了すると、このアプリは「サービスワーカー」と呼ばれるブラウザ機能を利用してバックグラウンドで動作し続け(デバイスとの接続を維持します)。サンプルには、メインのPWAワーカーに加え、有効化された際に(通知を送信するための)個別のプッシュワーカーを登録するコードが含まれています。
このキットは、ユーザーがすでにインストール済みかどうかも判別します。デバイス上に自身のPWAが存在するかを確認し、見つかった場合は偽のストアを完全にスキップして、直接カジノへ誘導します。
1つのドメインがすべてを結びつける
FriendlyDealerがデプロイされるたびに、同じドメインに接続します: ihavefriendseverywhere[.]xyz. これはキャンペーンのデータ収集サーバーであり、この作戦の追跡名に採用された名称の由来となったものです。
バックグラウンドスクリプトとアプリのコードは、ブラウザの言語、タイムゾーン、ユーザーエージェントデータ、オプションのユーザーエージェントクライアントヒント、キャンペーン識別子、および利用可能な場合は広告識別子を含むテレメトリデータを、このドメインに送信します。これらのデータの多くは、カスタムリクエストヘッダーを介して送信されます。
軽量化を図るため、HEADメソッドを使用するリクエストもあります。
また、アプリケーションのコードは、バックグラウンドスクリプトでは送信されないもの、つまりJavaScriptのエラーレポートも送信します。被害者のデバイスで発生するすべてのクラッシュ、リソースの読み込み失敗、および未処理の例外は捕捉され、タイムスタンプとコンテキストを含む構造化されたエラーオブジェクトにまとめられ、 ihavefriendseverywhere[.]xyz/api/log_standard_err. 実質的に、事業者らは実機からユーザーデータと生産エラーのテレメトリの両方を収集している。
リクエストが失敗した場合(例えば、電波の状態が悪い場合など)、バックグラウンドスクリプトはそのリクエストをローカルに保存し、後で再試行します。接続が回復すると、データは自動的に送信されます。
この偽アプリは通知の許可も求めてきます。ユーザーが許可すると、キットはプッシュ通知の登録を行い、今後の通知のための直接的な経路を確立します。これらは通常のアプリ通知と同様に表示されるため、アプリを閉じた後でも、運営者はユーザーと直接連絡を取ることができるようになります。
資金の流れを追え:マルウェアではなく、アフィリエイト報酬だ
FriendlyDealerはウイルスを拡散したり、端末を乗っ取ったりすることはありません。その運営はすべてアフィリエイト手数料によって成り立っています。偽のアプリストアの各ページには、アフィリエイト追跡ネットワークへのリダイレクトが隠されています。ユーザーが登録したり入金したりすると、運営者に報酬が支払われます。
コード内には複数のアフィリエイト追跡ネットワークが確認されました。ユーザーごとのIDが、キットの分析、イベント、プッシュ通知、およびオファールーティングのロジック全体にわたり使用されており、これによりファネルの複数の段階にわたるアクティビティを関連付けることが可能になっています。
このモデルこそが、このキャンペーンの膨大な規模を説明しています。各ドメインは使い捨てです。キットはテンプレートのようなもので、設定ファイルを1つ変更するだけで、数分以内に新しいドメイン上で新しいカジノブランドを立ち上げることができます。ギャンブルのアフィリエイト報酬は、入金ユーザー1人あたり50ドルから400ドルと報じられていますが、たとえコンバージョン率が低くても、1,000ものドメインを運用すれば、収益は瞬く間に膨れ上がります。
これの黒幕は誰ですか?
このキャンペーンを特定のグループの仕業だと断定することはできませんが、手がかりはいくつかあります。 ソースコードにはロシア語のコメントが含まれています(例:「Vueの読み込み時間を測定するためのタイマーを作成する」)。あるビルドには、本番版から削除されたロシア語のデバッグ文字列が未削除のまま含まれていました。また、このコードはロシアや旧ソ連諸国で広く利用されているYandex Metricaと連携しています。
これらは、ロシア語圏での開発環境を示唆していますが、コードが再利用されたり購入されたりした可能性もあります。
このコードには、アフィリエイトマーケティング用のタグ(preland-alias および preland-final-action)も含まれており、「プレランダー」とは、訪問者が実際のオファーを表示する前に目にするページのことです。 アプリケーションコードを見ると、このタグがキットの動作を制御していることがわかります。値が 0 の場合は PWA のインストールをトリガーし、1 の場合はアプリストアへリダイレクトします。プラグアンドプレイ式の広告ピクセルスロット、デプロイごとの設定、およびステージング/本番環境のロジックと組み合わせると、これは単発のプロジェクトではなく、複数のキャンペーンや事業者を想定して構築された再利用可能なキットであることを強く示唆しています。
同じキットの複数のビルドが見つかりました。本番版ではデバッグメッセージが削除されていますが、他のビルドにはロシア語のエラーメッセージがすべて含まれており、インターフェース全体(ダウンロード数、評価、レビューの日付など)でアラビア数字がサポートされています。これは単一の市場向けに構築されたキットではなく、ビルド時に地域ごとのバリエーションに対応できるよう設計されているようです。
おなじみの手口だが、結果は一味違う
偽のアプリストアページは、銀行の認証情報を盗んだりスパイウェアを配布したりするために頻繁に用いられる、よく知られた手口です。「FriendlyDealer」も同様の手法、つまり説得力のある偽のストアと本物そっくりのインストール手順を採用していますが、その目的は異なります。このアプリは、スマートフォンを乗っ取ったりパスワードを盗んだりすることはありません。ユーザーをギャンブルサイトへと誘導し、ユーザーが金銭を支払った際に手数料を得る仕組みになっています。
被害は技術的なものではなく金銭的なものです。被害者は、欺瞞的なインストールやリダイレクトの手口によってギャンブルのオファーへと誘導され、意図せずに選んだサイトへ入金してしまう可能性があります。
また、すべての詐欺がパスワードを狙っているわけではないということも忘れてはなりません。特にオンラインギャンブルにおけるアフィリエイト詐欺は、認証情報を一切入手することなく、巨額の資金を調達することが可能です。この手口の背後にいる者たちは、まるで工場のような仕組みを構築しました。1つのテンプレート、20のブランド、1,500以上のドメイン。有料広告がトラフィックを呼び込み、偽のアプリストアが取引を成立させ、アフィリエイトネットワークが収益を生み出すのです。
この手法が効果的なのは、本来信頼されるべき仕組みを悪用している点にあります。Android iPhone版Safariの「ホーム画面に追加」機能は、いずれも正当な機能であり、本来の目的通りに動作しています。問題は、インストールを促すページ自体が偽りであることです。このキットは、適切なユーザー、適切なデバイス、そして適切な広告を経由してアクセスしたユーザーにのみ表示されるよう、綿密に設計されています。
これらのアプリのいずれかをインストールしてしまった場合の対処法
Androidの場合:
- アプリを削除する:アイコンを長押しして「アンインストール」をタップするか、「設定」>「アプリ」に移動し、見覚えのないアプリを削除してください。
- Chromeサイトのデータを消去する:アプリがブラウザにデータを残している可能性があります。Chrome を開きChrome 設定」>「サイト設定」>「すべてのサイト」の順に選択し、該当するサイトを見つけて「消去とリセット」をタップしてください。
- 通知の権限を確認する:Chrome [設定] > [通知]に移動し、見覚えのないサイトがあれば削除してください。アプリをアンインストールしても、通知へのアクセス権は削除されません。
- 他のブラウザを確認する:Edge、Brave、またはその他のChromiumベースのブラウザを使用している場合は、そこで同じ手順を繰り返してください。
iPhoneでは:
- アプリを削除する:ホーム画面のアプリアイコンを長押しし、「アプリを削除」をタップします。iOSでは、PWAはAndroidのようにバックグラウンドスクリプトをインストールしないため、アイコンを削除するとキャッシュされたサイトデータも削除されます。
- Safariのサイトデータを消去する:[ 設定] > [Safari] > Advanced >ウェブサイトデータ」に移動し、ドメインを検索します。スワイプして削除します。これにより、残っているCookieや保存されたデータがすべて削除されます。
- 通知の権限を確認する:「設定」>「アプリ」>「Safari」の順にタップします。「Webサイトの設定」セクションまでスクロールし、「通知」をタップします。該当するサイトを見つけて、アクセスを解除または拒否します。
これらのページを経由して入金を行い、詐欺被害に遭ったと思われる場合は、速やかにご利用の銀行または決済サービスプロバイダーにご連絡ください。
侵害の兆候(IOC)
ドメイン
ihavefriendseverywhere[.]xyz—データ流出およびエラーログ記録サーバーvalor[.]bet—ゲート/チェックポイントのURL(/__pwa_gate パス)wikis[.]lifestyle—アプリケーションコード内のハードコーディングされたドメイン参照
私たちは電話セキュリティについて報告するだけでなく、それを提供します。
サイバーセキュリティのリスクは、ヘッドラインを超えて広がるべきではありません。今すぐ Malwarebytes foriOS Malwarebytes forAndroidダウンロードして、モバイルデバイスに脅威を持ち込まないようにしましょう。














