PaperPhone クラスターが示す、1つのボット運営者が数千人のモバイルユーザーに見せかける手口

「PaperPhone」と名付けられた大規模なスクレイピングクラスターが確認されました。1人の運営者が、数十カ国にまたがる数万人規模の正規モバイルユーザーを装えることが明らかになっています。

この攻撃活動では、43カ国・230のアドレスブロックにわたる約7万5,000のIPアドレスが使われました。ただし、ブラウザーフィンガープリントとネットワーク分析のシグナルからは、世界中の本物のモバイルユーザーではなく、一元的に統制されたインフラであることがうかがえます。

発見のきっかけは、8月31日にリリースされた CrowdSec 1.8.0 です。このバージョンでは、Web Application Firewall(WAF)にボット検知機能がアルファ版として追加されました。

CrowdSec の Security Engine と WAF は従来、スキャン、ブルートフォース攻撃、不正な HTTP アクティビティといったIPの挙動を重視してきました。新機能はクライアント側のシグナルを収集するため、研究者はアドレスの背後で何が動作しているかを評価できるようになりました。

Cross-sitescripting protection

本番環境への導入により十分なテレメトリーが集まり、当初は無関係に見えたトラフィックを結び付けることができました。

このように分散していると、従来の地理的なブロックポリシーは通用しにくくなります。攻撃者が多数の地域からトラフィックを発生させられる場合、この種のブロックは効果を失いがちです。

しかし、このトラフィックは、各国の独立したユーザーのようには振る舞っていませんでした。CrowdSec は、現地時間では不自然な時刻にアクティビティのピークを観測しています。たとえば日本では午前5時前後、インドでは午前1時前後、メキシコでは午前3時前後、リトアニアでは午前2時前後でした。

さらに重要なのは、時差が大きく離れた国々からのリクエストの急増が、強く同期していたことです。

たとえば、日本と米国のトラフィックとして表示されていたインフラは、13時間の時差があるにもかかわらず、相関したスパイクを示しました。オーストラリアとカナダのトラフィックでも同じパターンが見られました。

現地時間ではなく協定世界時(UTC)で見ると、これらのパターンははるかに理解しやすくなりました。

つまり、見かけ上の国の多様性は、ルーティングと登録情報による偽装にすぎませんでした。分散した人間の利用者がいる証拠ではなかったのです。

PaperPhone クラスターは、主に /24 規模の230のブロックに分散していました。これによりアドレスが細分化され、レピュテーションベースのブロックが難しくなっていました。

Image

CrowdSec の研究者によると、PaperPhone は地理的に多様に見えました。リクエストは、43カ国・約80のネットワークに位置するIPレンジから発信されていました。

PaperPhone クラスター

CrowdSec は、複数の情報の間に食い違いがあることを突き止めました。具体的には、アドレス空間を割り当てた地域レジストリ、その管理にあたるレジストリの記録、レンジに関連付けられた組織、そしてレンジに割り当てられた地理的位置です。

一例が 103.216.1.0/24 です。このアドレス空間は APNIC を通じて割り当てられましたが、地域間の移転を経て RIPE に登録されていました。登録者はリトアニアの組織である一方、WHOIS データでは所在地が米国とされていました。

Incidentresponse planning

隣接する他のレンジも、ブリュッセル、バンコク、東京、パリなど、まったく異なる都市や国に位置付けられていました。

Image

分析の結果、比較的少数の組織がインフラの大部分を支配していることがわかりました。

M247 は PaperPhone のIPブロックの所有者とは特定されていません。ただし CrowdSec は、同社がクラスターのトラフィックの20%超でトランジットを提供していたことを確認しました。

このトランジット関係はインフラ上の観測結果です。M247 がスクレイピング活動を運営していた証拠ではありません。

PaperPhone は、13種類の偽装デバイスIDを使い分けていました。内訳は Android 5機種と iOS 7種類です。

偽装IDには、Google Pixel 9 や Samsung Galaxy S25 Ultra といった最新機種も含まれていました。しかし、フィンガープリントのデータは、こうした主張と繰り返し矛盾していました。

観測されたすべてのクライアントが、同じ375×812のビューポートを示していました。これは特定の iPhone のフォームファクターに関連する値で、Android か iOS かといった偽装機種に関係なく共通していました。

また、すべてのクライアントが、マスクされていない WebGL レンダラーとして Google SwiftShader を報告しました。SwiftShader は、グラフィックドライバーの代替として使われる CPU ベースのソフトウェア実装です。GPU アクセラレーションを備えた最新のフラッグシップ端末では、通常見られないシグナルです。

iOS 14 や iOS 15 を名乗るクライアントでは、この食い違いがいっそう顕著でした。iOS のブラウザーはApple の WebKit エンジンを使用します。そのため、Chrome 系の SwiftShader による WebGL シグナルは、申告されたモバイルIDと根本的に相容れません。

これらの特徴を総合すると、本物の端末ではなく、Chrome ベースの自動化環境やヘッドレス環境がモバイルブラウザーを装っていたと考えられます。

PaperPhone は、IPベースの対策だけでは高度なスクレイピング活動を確実に見抜けない理由を示しています。

運営者は、アドレスのローテーション、クラウドのレンジへの活動の分散、ジオロケーションのメタデータの操作、ユーザーエージェント文字列の大規模な切り替えを行えます。

CrowdSec によると、PaperPhone のレンジの大半は、すでにデータセンターのインフラとして識別されていました。このため、住宅用プロキシを使った活動だったとは確認されていません。

防御側は、ネットワークレピュテーションを、ブラウザーフィンガープリント、JavaScript チャレンジの結果、ビューポートの一貫性、WebGL の特性、タイミングのパターン、ASN やトランジットプロバイダーとの関係などと突き合わせて分析する必要があります。

CrowdSec のボット検知機能は、クライアントチャレンジとフィンガープリントのワークフローを使います。これにより、不審な自動化アクセスを、正規のユーザーや検証済みのクローラーと区別します。

今回の調査では、PaperPhone を特定の攻撃者に結び付けることも、標的を明らかにすることも公表されていません。

この事例の重要性は、その手法にあります。防御側が、自動化では一貫して偽装できないシグナルを突き合わせるまでは、1つの集中型スクレイピング活動が、世界中のモバイルユーザーを説得力をもって装えてしまいます。

SOCのアラート調査を1件あたり21分短縮。即時のIOCコンテキストでSOCを強化し、迅速な対応を実現します。 SOCに TI Lookup を統合する

翻訳元: https://gbhackers.com/paperphone-cluster/

本記事は gbhackers.com の記事を翻訳・要約したものです。