1 ポイント 投稿者 GN⁺ 2025-03-19 | 1件のコメント | WhatsAppで共有

Apple TVでYouTube広告をブロックする

概要

Apple TVと外部世界の間に中間者プロキシを配置することで、HTTPSトラフィックを復号できた。これにより、GoogleがYouTubeに広告を挿入する際に使用するProtocolBufferデータを読み取ることができた。ProtocolBufferをリアルタイムでデコードするのはCPU負荷が高いため、ProtocolBuffer形式の欠陥を発見し、それを利用して広告を除去できた。

目標

FreeBSDとpfSenseを使用して強力な暗号化ルーターを構築し、Google ProtocolBuffer形式の欠陥を利用してApple TVとiPhoneでYouTube広告をネットワーク全体で完全にブロックすること。

広告および行動追跡ブロックの必要性

  • プライバシー: ユーザーのオンライン活動は監視されており、これは広告主にとって非常に価値のある情報である。
  • 帯域幅: ネットワークトラフィックの25%〜40%は広告および追跡スクリプトで構成されている。
  • クリックベイト: クリックベイトはユーザーを引きつけ、悪意のあるサイトへ誘導する可能性がある。
  • クリプトジャッキング: 一部のWebサイトは、ユーザーのコンピューターを利用して暗号資産を採掘しようとする。

必要なルーターハードウェア

  • AES-NI命令セットを備えたミニPC(例: J4125)
  • 数GBのDDR4 RAM(例: 32 GiB)
  • 適切なmSATA SSDドライブ(例: 128 GiB)
  • pfSenseを書き込むためのUSBドライブ

pfSenseのインストールと設定

  • pfSenseをUSBドライブに書き込んでインストール。
  • AES-NI暗号化命令を有効化。
  • RAMディスクを有効化し、/varおよび/tmpで使用。
  • pfBlockerNGを使って広告ブロックを設定。

ネットワークLAN分離

  • 信頼できないデバイス向けに別個のハードウェアネットワークを作成。
  • pfSense経由でDNSリクエストを傍受し、ハードコードされたDNSサーバーへのリクエストもブロック。

YouTube広告アルゴリズムをだます

  • Apple TVのYouTube広告を制限する方法を研究。
  • VPNを通じてApple TVのトラフィックを選択的にルーティング。

HTTPSトラフィックの復号

  • MITMProxyをインストールしてHTTPSトラフィックを傍受・分析。
  • Protobufメッセージをリバースエンジニアリングして広告を除去。

要約

  • YouTube Premiumを通じた広告ブロックの実験。
  • DMCAおよびその他の法的問題への配慮。
  • 広告ブロック技術の適用成功に関する分析。

1件のコメント

 
GN⁺ 2025-03-19
Hacker Newsのコメント
  • Protobuf形式の欠陥を見つけて広告を削除できる
    • フィールド番号を大きな未使用番号に変更したものと推測される
    • Protobufのバイト列をスキャンして広告URLのシグネチャを探し、フィールドタグを見つけてフィールドキーを変更する
    • これは欠陥ではなく意図された動作である
    • タグを探す手間をかければ、その隣にある長さを読み取ってバイトをスキップできる
    • バッファをコピーするかバイトを移動する必要があるが、mitmproxyのAPIが返すバイトオブジェクトは不変である
    • 小さなC++/Goプロキシなら、より少ないオーバーヘッドで同じことができる
    • すべてをプロキシ経由でルーティングすると性能が低下する
    • pfSenseの代わりに、シンプルなLinuxサーバーとiptablesのルールセットのほうが効率的である
    • 逆コンパイルしたprotoフィールドで.protoファイルを書けば、コード生成やフラグ切り替えが可能になる
    • 不明なフィールドタグを無視することは、Protobufの重要な機能である
  • コンテンツ制作者を支援したくてYouTube広告をブロックした後、YouTube Premiumを契約した
    • YouTube Premiumが制作者を支援しているのか気になる
  • ガールフレンドのYouTubeアカウントには広告が表示されない
    • 内部的にどのフラグが設定されて広告が無効化されているのか気になる
  • Apple TVと外部の間に中間者プロキシを置いて、HTTPSトラフィックを復号できた
    • Apple TVの証明書ストアにCAを追加できる事実に驚いた
    • 徹底した説明に感謝する
  • ハードウェアやソフトウェアの所有権を得るために多大な努力を払わなければならないのは悲しい
  • Apple TVで何度か試したが成功しなかった
    • YouTubeアプリが証明書ピンニングを実装しているようだ
  • ネットワーク全体でオンラインサービスをブロックするのが好きだ
    • 広告ブロック以外にも、無限スクロールをブロックする方法がもっとあればいいのにと思う
    • Instagramではフォローしている人の投稿やストーリーを見たいが、注意を引く動画をおすすめされたくない
  • YouTubeに広告があるとは知らなかった
    • Apple TVの体験は一般的なWebブラウザーの体験よりはるかに悪い
    • Appleがハードウェアをロックしていることで、YouTubeの広告収益により利益をもたらしている
  • プロトコルを解読してリバースエンジニアリングしなければならない状況なら、こうした機器は使わないほうがよい気がする
    • この経済圏から離れて、別の方法で楽しむほうがよい気がする