Perl Perl_2
! Perl Web のスクリーンショットを撮る「 Awesome Screenshot 」が怪しい通信をしていた話

Theme
Web ブラウザのスクリーンショットを取るときにお世話になっていた「 Awesome Screenshot 」が怪しい通信をしていたという話。
HTTP 通信の詳細を確認したくて
Perl モジュール CGI.pm のメソッド 「 uploadInfo() 」は、Web ブラウザが送信する情報の中から、「 MIME content type 」を取り出すことが出来ると言います。
そこで、Web ブラウザと Web サーバの間で、どの様な時に、どの様な通信が行われているのかを確認したいと思い、そうした情報を俯瞰できるツールを探してみました。
Firefox や Chrome の標準機能でも、かなりの部分を確認出来ますが、それぞれ独自の編集がされているため、素人の僕には全体像の把握が難しく感じたのです。
Fiddler
僕がやりたいことは、要するに、Web 通信のデバッグ的なことなのですが、そうしたら、体よく「 Fiddler 」( フィドラー )というツールの存在を知りました。
「 Fiddler 」とは、「 The free web debugging proxy for any browser, system or platform 」なツールで、つまりは、「 Web デバッギング 」が可能だと謳われています。素晴らしい。
http://www.telerik.com/fiddler - Fiddler
さっそくその動作を確認してみました。
見慣れない URL
Fiddler は、Web ブラウザの通信をキャッチして、その内容を事細かに表示してくれる便利ツールです。僕は僕の検証用の Web 領域にアクセスを試しながら、その動向を確認しようとしました。
つまり、僕は僕の検証用領域の URL にしかアクセスしていない状態で、純粋にその通信内容を確認しようと試みている訳です。
けれども、どうでしょう。何をどうしても、いくつかの見慣れない URL が通信に紛れ込んでいることを発見します。それらは、次のものでした。
https://s821.crdui.com/related
https://s1821.crdui.com//related
http://api.advisormedia.cz/
いったいどういうことでしょう。
英語圏でも同じ通信の話題
該当するドメイン名で検索をしてみたところ、「 superuser 」という英語圏の Web サイトで、今回の僕とまったく同じ疑問を持った、とあるユーザの投稿を確認しました。
Network Sniffer identifying strange requests to *.crdui.com - superuser
「 Network Sniffer は識別した *.crdui.com への奇妙なリクエストを 」という表題です。「 Network Sniffer 」というのは、TCP のパケットデータをモニタリング出来るツールです。
以下は、その投稿の内容を意訳したものです。
意訳 「 あ...ありのまま 今 発見した奇妙な通信の話をするぜ 」
表題:「 Network Sniffer は識別したんだ。奇妙な要求を ! 」
投稿者: 僕はダウンロードした。Network Sniffer を。僕は感じたんだ。"僕のマシンで何かが起きている" ってね。
Network Sniffer をインストールした僕は、すぐさまそれを起動して、僕のネットワークアダプタを選択した。そうして、通信の内容を追跡するんだ。
それはある奇妙なリクエストを僕に示した。Chrome による「 s*.crdui.com 」へのリクエストだ。「 * 」の部分には「 821 」か「 1821 」が当てはまる。こんなドメインに心当たりはない。いったい何なんだ ?
インターネットを駆け回る。僕の心中は穏やかじゃない。「 crdui.com 」だって ? お前は何のために僕と通信しているんだ。
意訳 「 ネットの噂によると」
投稿者: ネットの噂によると、それは危険ではない様に思えた。でも、僕が走り回った電脳空間は、「 それが何か 」ということには答えてくれなかったんだ。。
ここで、現時点で判明している情報を明確にしておこうと思う。
ひとつ。もしサブドメインが「 s1821 」なら、それは常に「 /related 」のパスをリクエストしている。そしてもうひとつ。もしサブドメインが「 s821 」なら、それは常に「 /sercice2 」パスをリクエストしている。
それと、僕は知っている。これは確実に「 Chroem 」の通信だってことを。Suniffer が僕にそう告げているんだよ。「 ユーザエージェントは Chrome だ 」ってね。
意訳 「 回答者 1 のアドバイス 」
回答者 1: やあ。ひとつ聞かせてくれ。君はサードパーティ製の拡張機能を何かインストールしているんじゃあないかな ?
可能であれば ( 可能だろうがね )、シークレットウィンドウを起動して、改めてパケットを確認してみるといい。シークレットウィンドウは、すべての機能拡張を無効に出来るんだ。
これで仮にその「 奇妙な通信 」が観測出来ないとすれば、それは拡張機能の仕業だってことが分かるだろう ? 一見遠回りに思えるかもしれないが、何事も原因の切り分けは重要だ。是非試してみることをお勧めするよ。
おっと、他のアプリケーションをすべて終了させてから試すこと。いいね。
意訳 「 回答者 2 は語る。それは。。 」
回答者 2: 僕のシステムでも、それを確認したよ。そう、「 奇妙な通信 」をね。
Web ブラウザの拡張機能には、それぞれに個別の ID が割り当てられていることを知っているかい ? 僕も少し気になってね。奇妙な通信をしている奴 ( ID ) を追跡してやったのさ。
そうしたら。やっぱりだ。その通信の出所は、Chrome の拡張機能だった。そいつの名前は "Awesome Screenshot"。君も入れているだろう ? Web ページのスクリーンショットを撮る奴だよ。
証拠だって ? はは。だったら、"Awesome Screenshot" を無効にしてみるといい。そうすれば「 奇妙な通信 」はもう確認出来ないはずさ。それで十分だろ ?
スクリーンショットを撮る「 ついでに 」だって ? いいや、もっと悪いね。こいつは僕の ( そして君の ) ブラウンジングデータを片っ端から盗っていたんだから。
意訳 「 回答者 3 による補足 」
回答者 3: そう、それは拡張機能の仕業だよ。そして、それは誰かに売り渡されていたはずだ。そうして、彼らは君を追跡する様になったんだ。
僕らはもう逃げられない
俺氏: グッバイ "Awesome Screenshot"。とやったところで、Web トラッキングの網の目からは、僕らはもう抜け出すことが出来ないのかもしれない。
参考
http://superuser.com/questions/778479/network-sniffer-identifying-strange-requests-to-crdui-com
http://developer.cybozu.co.jp/akky/2014/08/awesome-screenshot-collects-your-visiting-urls/
https://mig5.net/content/awesome-screenshot-and-niki-bot
0x120 へ
次回からは、改めて CGI.pm の機能確認に戻ります。
参考情報は書籍「 初めての Perl 第 6 版 」を中心に perldoc, Wikipedia および各 Web サイト。それと詳しい先輩。
目次 - Perl Index
Perl mp2 翻訳 Web コンテンツ圧縮の FAQ (d228)
Perl mp2 翻訳 既知のブラウザのバグの回避策をいくつか (d227)
Perl mp2 翻訳 Perl と Apache でのキュートなトリック (d226)
Perl mp2 翻訳 テンプレートシステムの選択 (d225)
Perl mp2 翻訳 大規模 E コマースサイトの構築 (d224)
Perl mp2 翻訳 チュートリアル (d223)
Perl mp2 翻訳 既知のブラウザのバグの回避策をいくつか (d227)
Perl mp2 翻訳 Perl と Apache でのキュートなトリック (d226)
Perl mp2 翻訳 テンプレートシステムの選択 (d225)
Perl mp2 翻訳 大規模 E コマースサイトの構築 (d224)
Perl mp2 翻訳 チュートリアル (d223)