
本記事は、内容をライトにして記載しています。もう少し詳しく・ソースも見たい、知りたい方は、【実録調査・専門家向け】アダルトサイトを開くと何が起きているのか?広告追跡の実態をPlaywrightで解析した | やさしいサイバーセキュリティ を読んでみてください。
あなたが何気なくWebサイトを開いた瞬間、裏側では数十〜数百の外部サーバーへの通信が走っています。その通信の中には、あなたの行動を追跡するトラッカー、リアルタイムで広告を競り落とすオークションシステム、そして場合によっては予期しないリダイレクトを引き起こすスクリプトが含まれています。本記事では、ブラウザ自動化ツール「Playwright」を使って実際に複数サイトのネットワーク通信を観測・分析した過程を、技術的な解説とともに紹介します。
本記事は広告エコシステムの技術的な仕組みを教育・研究目的で解説するものです。特定のサービス・企業への悪意ある攻撃や、プライバシー侵害を目的としたデータ収集を推奨するものではありません。また、本記事で観測された通信の多くは合法的な広告配信活動です。
なぜアダルトサイトを調査対象にしたのか
アダルトコンテンツを扱うサイトは、一般サイトと比較して広告収益への依存度が極めて高く、多数の広告ネットワークが複雑に組み合わさった「広告エコシステム」が観察できる場として研究に適しています。また、スマートフォンユーザーへの積極的な広告手法が実装されていることが多く、ブラウザの挙動を学ぶ上でも有益な観察対象です。本調査では公開されているWebページにアクセスし、標準的なネットワーク通信ログを記録・分析しています。コンテンツのダウンロードや、認証を必要とするページへのアクセスは一切行っていません。
調査ツール:Playwright によるネットワーク解析
今回使用したのは Microsoft が開発したオープンソースのブラウザ自動化ライブラリ「Playwright」です。通常ブラウザの開発者ツール(DevTools)で手動確認できる通信ログを、スクリプトで自動収集・保存できます。
基本的なセットアップ
Python環境への導入は以下のコマンドで行えます。
pip install playwright
playwright install chromium
Playwrightの主な用途はテスト自動化ですが、ネットワーク通信の監視・記録機能を活用することで、ページ読み込み時に発生するすべてのHTTPリクエストを一覧化することができます。取得できる情報は「どのURLへ」「どんなリソース種別(画像・スクリプト・XHRなど)で」アクセスしたか、という公開情報のみです。
今回の調査では①公開ページのみアクセス②コンテンツ本体は保存せずURLとドメインのみ記録③適切な待機時間を設定④ログイン・認証突破なし、の4点を遵守しています。
海外アダルトサイトの広告エコシステム
まず、欧米向けアダルト動画サイトを対象に通信ログを取得しました。ページ読み込み後15秒間のネットワーク通信を記録した結果、外部ドメインは26件、外部リクエスト数は約450件に達しました。
リアルタイム入札(RTB)の仕組み
観測された通信の中で特に注目したのが「RTB(Real-Time Bidding:リアルタイム入札)」の動作です。RTBとは、ユーザーがページを開いた瞬間に広告枠を複数の広告主がオークションで競い合い、最高値をつけた広告主の広告が表示される仕組みです。今回の観測では、広告スクリプトの読み込みから入札APIへの通信、最終的な広告クリエイティブの配信まで、以下のような流れが確認できました。
| ステップ | 通信先 | 役割 |
|---|---|---|
| ① 広告スクリプト読み込み | 広告ネットワークのAPIサーバー | SSP(Supply-Side Platform)への接続 |
| ② 入札オークション | /v1/api.php(XHRで複数回) | DSPが競り合い、落札者が決定 |
| ③ 広告クリエイティブ配信 | creative.*.com 系ドメイン | 動画・画像広告の実体ファイル |
| ④ インプレッション計測 | /cimp.php | 広告が表示されたことを記録 |
| ⑤ クリック追跡 | トラッキングドメイン | クリック後のリダイレクト経路を追跡 |
ページを開いてから広告が表示されるまでの数百ミリ秒の間に、これらすべての通信が完了しています。
地域ターゲティングの実態
取得した通信ログ内の広告クリエイティブURLを調べると、URLパラメータに地域を示す文字列が埋め込まれているケースが確認できました。これは広告の「ジオターゲティング」と呼ばれる機能で、ユーザーのアクセス元IPアドレスから地域を推定し、対応する広告素材を配信する標準的な技術です。日本からアクセスした場合、日本語圏ユーザー向けのパラメータが付与された広告クリエイティブが返ってくることが確認できました。
日本向けサイトの広告エコシステム:より複雑な多層構造
次に、日本語コンテンツを中心とした日本向けアダルト動画サイトを調査しました。海外サイトと比較すると、関与する外部ドメイン数・リクエスト数ともに大幅に増加しました。
| 比較項目 | 海外向けサイト | 日本向けサイト |
|---|---|---|
| 外部ドメイン数 | 26 | 51 |
| 外部リクエスト数 | 約450件 | 約600件 |
| 主要広告ネットワーク | 欧米系 | 国内系 |
| 行動追跡 | クリック追跡中心 | Criteo等の詳細プロファイリング |
| 収益構造 | 広告単体 | 広告+アフィリエイト送客の複合 |
国内広告ネットワークの重層構造
日本向けサイトでは、国内に根ざした広告プラットフォームが複数組み合わさっていました。
| ドメイン(カテゴリ) | 観測回数 | 役割 |
|---|---|---|
| 国内広告DSP系 | 40回超 | 広告配信・ユーザーセグメント |
| 国内SSP(入札プラットフォーム) | 50回超 | RTBオークション処理 |
| Criteo(仏・世界大手) | 21回 | クッキー同期・リターゲティング |
| データ管理基盤(DMP) | 21回 | ユーザープロファイリング |
| アフィリエイト送客系 | 複数 | 有料サービスへの誘導・成果報酬 |
広告スロットの集中
特定の広告中継スクリプトを解析したところ、1ファイルの中に98個の広告タグが定義されており、そのうち96個が単一の広告プラットフォームに集中していることが判明しました。これはそのサイトの広告枠の大部分を1社のプラットフォームが実質的に担っていることを示しています。残りの2スロットに他のネットワークが割り当てられている構造でした。
アフィリエイト送客の仕組み
日本向けサイトでは「広告による直接収益」に加え、外部の有料サービスへユーザーを誘導する「アフィリエイト」による収益構造も観測されました。iframeとして読み込まれたコンテンツのURLに、送客元を特定するアフィリエイトIDが付与されており、ユーザーが外部サービスに流入するたびに成果報酬が発生する仕組みになっています。
注目スクリプトの解析:難読化コードの発見
通信ログの中に、11回繰り返し読み込まれている正体不明のJavaScriptファイルが存在していました。同一スクリプトを短時間に繰り返し読み込む挙動はセキュリティ上の観点から注意を要するパターンであるため、スクリプトの内容を取得して分析しました。
難読化処理の特徴
取得したスクリプトは、以下のような特徴を持っていました。
以下はスクリプトに観察された技術的特徴の記述です。難読化は正規の広告スクリプトでも使用される場合があり、それ単体で悪意の証明にはなりません。
- 変数名の総入れ替え:すべての変数名が
_0x...形式のランダムな文字列に置換されている - 整数演算による制御フロー難読化:
parseIntの連鎖とwhile(!![])ループによる実行順序の撹乱 - 文字列の分散格納:文字列が配列に分解されてインデックス参照される
このような処理を施す難読化ツールは複数公開されており、解読ツール(デオブファスケーター)を使って元のコードに近い状態に復元することができます。復元後のコードを解析した結果、このスクリプトの動作が判明しました。
スクリプトの実際の動作
スクリプトはページ内の特定の広告iframeを監視し、iframe内に特定の識別子(広告主IDに対応する文字列)が含まれる場合に、スマートフォンのタッチ操作をインターセプトする動作をしていました。
| 動作要素 | 内容 |
|---|---|
| 発動条件 | 特定の広告IDが表示されているとき |
| 対象デバイス | スマートフォン(touchendイベント) |
| 動作 | タッチを検知して広告リンク先へウィンドウ全体をリダイレクト |
| ポップアップブロッカー回避 | _topターゲット使用により、ポップアップでなくページ遷移として処理 |
| 頻度制御 | クッキーに発動時刻を記録し、一定時間内の連続発動を制限 |
このスクリプトの挙動は「スマホで画面を触ったら突然別のページに飛ばされた」という体験の技術的な原因の一つと考えられます。広告スクリプトがユーザーの操作を横取りする形でリダイレクトを発生させます。なお、類似の手法は国内外の複数の広告ネットワークで観測されており、広告業界における積極的な広告手法の一形態として存在します。
リダイレクトチェーンの追跡
次に、広告クリックが最終的にどこへ到達するのかを、リダイレクトを手動で追跡することで確認しました。
送客フロー(例:動画サービス系)
広告クリック → 広告中継ドメイン(短縮リンク相当) → 成果計測サーバー(アフィリエイトID付与) → 目的地(有料動画サービス)
この流れを経ることで、どのサイトのどの広告経由で流入したかが全ステップで記録されます。成果計測サーバーは複数の広告主と中継サイトの間に挟まり、コンバージョン(会員登録・購入)が発生した際の報酬分配を管理しています。
リダイレクトに登場する各プレイヤー
| ステップ | 役割 | 主な目的 |
|---|---|---|
| コンテンツサイト | 無料コンテンツを提供 | ユーザーを集める |
| 広告中継サーバー | クリックURLの生成・管理 | 経路の制御と匿名化 |
| アフィリエイト計測サーバー | クリック・コンバージョンの記録 | 報酬の配分管理 |
| 最終送客先(有料サービス等) | 実際の商品・サービスを提供 | 売上の発生 |
今回の調査から見えてくること
広告エコシステムは複雑な多層構造になっている
1つのページを開くだけで数十〜数百の外部サーバーへ通信が発生しており、ユーザーが意識している「見ているサイト」の裏側に、多数のプレイヤーが存在しています。広告主・SSP・DSP・DMP・アフィリエイトネットワーク・クリック追跡サービスなど、それぞれが連携しています。
スマホユーザーは積極的なリダイレクト手法の対象になりやすい
PCではポップアップブロッカーが機能するケースでも、スマートフォンのタッチイベントを利用したリダイレクトは別の経路で動作することがあります。突然ページが切り替わる体験をしたことがある方は、こうした仕組みが原因の可能性があります。
一般サイトと同じ広告インフラが使われているケースがある
調査の中で、ブログ運営者向けに広告掲載の営業活動を行っている国内広告プラットフォームが、今回の調査対象サイトにも広告を配信していることが確認できました。広告ネットワークは複数のサイトカテゴリにまたがって配信していることが多く、広告主側が意図しない場所に広告が表示されるリスク(ブランドセーフティ)も業界の課題として認識されています。
ユーザーが今すぐできる対策
以下の対策を実施することで、不意なリダイレクトや過剰なトラッキングのリスクを軽減できます。
- ✅ 広告ブロッカーの導入:uBlock Origin(PC)やAdGuard(モバイル)などを使用する
- ✅ プライベートDNSの活用:既知の広告・トラッキングドメインをDNSレベルでブロックするサービスを利用する(例:1.1.1.2 / NextDNS)
- ✅ ブラウザのセキュリティ設定確認:サードパーティCookieをブロックし、トラッキング防止を有効にする
- ✅ スマホでの閲覧に注意:タッチ操作でページ全体が切り替わった場合はすぐ「戻る」を押す
- ✅ 不審な遷移先でのフォーム入力はしない:意図せず飛ばされたページで個人情報を入力しない
この調査の法的・倫理的位置づけ
本調査で行ったことは、公開Webページへのブラウザアクセスと、そのネットワーク通信ログの記録・分析です。これは技術者が開発者ツールで日常的に行う作業をスクリプトで自動化したものであり、不正アクセス禁止法が想定する「認証突破」や「アクセス制限の回避」には該当しません。ただし以下の点には留意をしました。
- サーバー負荷:短時間の大量アクセスは不法行為と見なされる可能性があります。適切な待機時間(数秒以上)を設けました。
- コンテンツの保存・再配布:今回の調査ではURLとドメイン情報のみを記録しており、コンテンツそのものの保存は行っていません。
- 調査結果の公表:観察された事実を記述することは問題ありませんが、特定企業への悪意ある断定表現は名誉毀損リスクを伴います。よって、本記事では観測された通信の「事実」のみを記述し、企業の意図に関する断定は行っていません。
同様の調査を自分で行う際は、Webサービスの利用規約を確認してください。スクレイピングを明示的に禁止しているサービスもあります。また、取得したデータの取り扱いには個人情報保護法上の注意が必要です。
まとめ
今回の調査で、私たちが何気なく開くWebページの裏側には、数十社に及ぶ広告関連プレイヤーが複雑に連携していることが改めて確認できました。特にスマートフォンユーザーへの積極的な広告手法や、複数のリダイレクトを経由する送客構造は、ユーザーが「なぜページが切り替わったのかわからない」という体験の技術的な背景となっています。Playwrightを用いたネットワーク解析は、こうした仕組みを可視化する強力な手段であり、セキュリティ研究・広告の透明性向上・ブラウザ挙動の学習において今後も有効な手法です。


コメント