PornhubはWebソケットを使用して広告ブロッカーをバイパスします





BugReplayのエンジニアは、彼のスクリーンキャストサービスがWebSocketやJavaScriptなどのネットワークトラフィックの記録とエラーの表示でどのように機能するかを示す素晴らしい方法を見つけました。 彼は、ビデオと同期されたトラフィックログを示すPornhubダウンロードスクリーンキャストを記録しました。 そのため、このデモでは、Pornhubが広告ブロッカーをバイパスし、Webソケットを使用して広告をプッシュする方法を明確に見ることができます。



Pornhubは非常に有能です。 サイトにアクセスすると、ブロッカーがチェックされます。 これが見つかった場合、サイトは新しいWebSocket接続を開きます。これは、 バックアップ広告配信メカニズムとして機能します。



ネットワークログを使用したスクリーンキャストでは 、uBlock Originがブロックした多くのリクエストを確認できます。 これらは、ネットワークトラフィックで失敗としてマークされます。



http://cdn1b.static.pornhub.phncdn.com/www-static/js/ph-tracking.js?cache=2016102525 GET Failed https://media.trafficjunky.net/js/holiday-promo.js GET Failed http://www.google-analytics.com/analytics.js GET Failed http://ss.phncdn.com/iframe-1.1.3.html GET Failed http://ss.phncdn.com/iframe-1.1.3.html GET Failed http://engine.phn.doublepimp.com/Tag.engine?time=240&id=7129f320-ce21-4b40-9d7e-37b1df8cf8f0&rand=25334&ver=async&referrerUrl=&fingerPrint=123&abr=false&stdTime=-300&fpe=3&bw=1262&bh=636&res=1280x800 GET Failed http://electosake.com/240/7129f320-ce21-4b40-9d7e-37b1df8cf8f0/82615/asynch/null/123/null/true/-300/3/1262/636/Tag.a1b GET Failed https://www.etahub.com/trackn?app_id=971&product_name=2&category=connectTime&action=other&label=&value=116 GET Failed https://www.etahub.com/trackn?app_id=971&product_name=2&category=ttfb&action=other&label=&value=799 GET Failed https://www.etahub.com/trackn?app_id=971&product_name=2&category=redirectTime&action=other&label=&value=0 GET Failed https://www.etahub.com/trackn?app_id=971&product_name=2&category=domInteractive&action=other&label=&value=1659 GET Failed https://www.etahub.com/trackn?app_id=971&product_name=2&category=domComplete&action=other&label=&value=1829 GET Failed https://www.etahub.com/trackn?app_id=971&product_name=2&category=domContentLoadedEventEnd&action=other&label=&value=1710 GET Failed https://www.etahub.com/trackn?app_id=971&product_name=2&category=loadEventEnd&action=other&label=&value=1850 GET Failed
      
      





リクエストをクリックすると、詳細が表示されます。 ブロックの理由: net::ERR_BLOCKED_BY_CLIENT



このようなエラーは、ブラウザの広告ブロッカーがいくつかのAjax呼び出しをブロックすると発生ます(少なくともChromeでは、これはまったく同じように機能します)。



ログのエラーメッセージの直後に、 Webソケットおよびフレームの作成要求が表示され、肯定的な応答が受信されました。



 ws://ws.adspayformy.site./nsoj webSocketCreate ws://ws.adspayformy.site./nsoj webSocketFrameSent ws://ws.adspayformy.site./nsoj webSocketFrameReceived
      
      





ユーザーに謝罪するように、Pornhubはドメインadspayformy.siteを使用してWebソケットを作成します。 ジョークは明らかに広告ブロッカーを使用する人を対象としています。



Webソケットを読み込んだ後、フレームが作成され、エンコードされたJSONコンテンツがページ上のバナーのある場所ごとに読み込まれます。



 { "zone_id": 32, "link": "http://cp.pleasedontslaymy.download/_z/eyJj...In19", "media_type": "image", "media_encoding": 0, "img_data": "/9j/4QA.....Wh+n//2Q==", "img_type": "image/jpeg" }
      
      





この場合、 zone_id



32が指定されます。これは、広告の導入場所を示します。 通常、ビデオはそこに挿入されますが、この例では、 media_type



で示されるグラフィックバナーです。 コンテンツはbase64でエンコードされ、 data:URL (またはdata:URI)スキームに従ってブラウザーで復元されます。これは、ほとんどすべての最新ブラウザーでサポートされています。 オンにすると、 image/jpeg



としてマークされたデータがこのスキームに転送されます。



通常、広告ブロッカーはWebソケットを追跡するため、base64でのデータのエンコードも賢明な方法です。



もちろん、Pornhubの汚い方法を発見した後、音楽は長時間再生されません。 すでに10月25日に、pkalinnikovというニックネームでChromiumコミュニティの開発者の1人が、ブラウザでwebRequest APIを使用してWebソケットをブロックできるパッチ提案しました 。 パッチが受け入れられると、広告ブロッカーは、Chromeでこのようなハッキングをブロックする通常の方法を冷静に実装できますが、Pornhubの所有者は、ブロッカーとの永遠の闘いの中で新しいトリックを探す必要があります



開発者BugReplayからの出版物の出版後、一部の広告ブロッカーは、Pornhubで使用されるようなWebソケットをブロックすることを学んだことが判明しました。 少なくとも、WebソケットはuBlock Origin( 対応するチケット )およびAdBlock Plus( ticket )をクロールしなくなります。 ただし、AdBlockブロッカーなどはまだ更新されていません。



WebSocketリクエスト( チケット129353 )をインターセプトできない「バグ」Chrome webRequest APIの話は非常に興味深いです。 このチケットは2012年5月にオープンしました。 そして、まだ開いたままです。 議論は非常に長い間続いた。 ユーザーは、Webソケットをブロックできないため、サイトが広告ブロッカーをバイパスするのが比較的簡単である可能性があるという議論で不満を述べました。 結局、ブロッカーが標準APIを介してWebソケットを監視しない場合、そのような広告をブロックするには、非常に難しい回避策を探す必要があります。 最初は純粋に理論的な問題でした。 2012年には、広告ブロッカーをバイパスするこのような方法を使用したサイトは1つもなかったようです。ブロッカー自体でさえ、当時は今ほど人気が​​ありませんでした。



2015年と2016年に状況は変わりました。 現在、このようなハッキングを考えたサイトはPornhubだけではありません。 最も興味深いのは、開発者の1人が 2016年8月のChromiumでのチケットの議論で話したことです。 彼は、広告ブロッカーがWebソケットのコンテンツを書き換えようとしていることを説得力を持って説明しました。これは、Javascriptの基本機能を破壊するため、ユーザーの安全を本当に脅かしています。 つまり、このパッチの実装はセキュリティを犠牲にすることを意味します。 すべて順調ですが、 routeh ... @ gmail.comのこの開発者はMindGeek働いています 。MindGeekはPornhubと、そこに広告を提供するBy Traffic Junky広告ネットワークの両方を所有しています。 ところで、広告ブロッカーをバイパスする同様のトリックは、Pornhubだけでなく、他のMindGeekサイトでも機能します。



かなり高度なプログラマーはポルノ会社で働いているようです。 歴史から知られているように、技術の進歩をしばしば前進させたのはポルノ産業でした。 それが判明し、今では彼らはいくつかの点で他の誰よりも先を行っています。 少なくとも広告ブロッカーをバイパスする最も革新的な方法では。 確かに、Chomiumトラッカーでの同じ議論で、他の一部の広告ネットワークがWebソケットを使用したトリックを使用していることが報告されました。RevDefenderと呼ばれる特定のネットワークが言及されました。



彼のパッチが Chromiumコードベースに受け入れられるように、 pkalinnikovを同志にしてください 。 どうやら、これはChromiumの主要な開発者の1つであるため、信頼性に依存しています。



All Articles