TrippyBoyの愉快な日々TrippyBoyの愉快な日々ネットワークエンジニアによる、LinuxやWindowsを基本としたIT系の逆引きサイト。?簡単に言うと他人のサイトを自分のサイトのようにGoogleBotにクロールさせる/させてしまうことによっておきる迷惑行為です。調べた限りでは、Google検索においてバグが存在し、そのバグを理解したものが悪用している・・?そんな感じのようです。Hacking(ウェブサイトの乗っ取り)が発生する可能性があるのです。ハッキング)-あなたのページが乗っ取られる?Proxyってなに?Proxy(プロキシー、プロクシ、串(くし))とは、あなたの代わりに何かを代行してくれるものことです。WebProxyとなると、あなたとアクセス先のWebサイトの間に入ることで、アクセス元であるあなたの情報を隠したりしてくれる機能を持っています。Webサイトこれにより、すでに言いましたがアクセス元のあなたの情報をWebサイトにわからないようにしたり、はたまたすでにアクセスしたことがあるコンテンツをWebProxyが保持する(キャッシュ)ことで、素早くコンテンツを表示したり出来ます。社内にWebProxyがあると、アクセスする先を制限したり、コンテンツをキャッシュしておくことで、利用しているインターネット回線のデータ通信量を抑えてくれたりする優れものです。Hackingという迷惑行為です。根拠のない見解ですが、GoogleAppEngine(GAE)を用いたGoogleのクラウドサービスは「*.appspot.com」というGoogle所有のドメインのサブドメインで公開されます。そのため、Google検索に対するSEOとしては、他の独自ドメインによるサイトなどを差し置いて優先順位があがるんじゃないか?っておもってます。自分のサイトをGoogleAppEngineで独自ドメインで公開しようカーなんて今思ってますが、これはまた今度で。そもそも、なぜ他人のサイトを自分のサイトのようにアクセスさせることが出来るのか。Google検索結果は、Googleのクローラーによってクロールする(Webコンテンツを嘗め回して情報を集める)ことによって、どの情報がどのWebサイトにあるのか、を集めた情報によって出来上がっています。そのためまったく同じコンテンツを公開した場合、クローラーから見たときには同じものになるのです。それで?そこで、Googleが提供するクラウドサービスのAppEngineにてProxyを作ったとします。前述しましたとおり、Proxyサーバーはコンテンツをキャッシュさせることが出来ます。一度Proxy経由でアクセスされたWebページは一定期間キャッシュとしてProxyサーバーに保存されます。これにより、「同じコンテンツを公開した場合」に該当することが実現できるというのを理解するのは難しくないと思います。所要時間1560秒wwwwwhttp://worldbestproxy.appspot.com/このURLはまだGoogleにクロールするように登録していないので、ここでキャッシュされるコンテンツは検索サイトに表示されません/と思います。デフォルトのrobots.txt(http://worldbestproxy.appspot.com/robots.txt)は以下の記述になっているので、クローラーがアクセスしてきたとしても、/main配下以外はクロールされないはずです。/mainこのままGoogleのクラウドサービスにアップロードして、Googleにクロールするように設定したとしても、誰かがプロキシ経由でアクセスしてキャッシュされている情報がクローラーに取得されることはないはずです。robots.txtを変更した上でGoogleクラウドサービス上にアップロード(Deploy(でぷろい)という)して、URLをGoogleクローラーに登録した場合、作成したProxy経由でアクセスしたサイトのキャッシュがクロールされる可能性はあります。ためしに私の遊び用のサーバにアクセスさせて、パケットをキャプチャしてみましたところ、以下のようなUser-Agentを確認できました。gzipなんと簡単なんでしょう。参考までに、アクセスした際にブラウザ上URLとして表示されたのは「http://worldbestproxy.appspot.com/vps2.trippyboy.com」でした。作成する際に参考にしたサイトでは最低限の操作しかされていないので、pythonに詳しい人がもっと記述を変更すれば表示されるURLをランダムな文字列にしたりすることが出来ます。robots.txtの変更も出来ますし、Googleクローラーへの登録も出来ますよね。すればGoogleProxyHackingから身を守れるか!?とにかく巷に出回っているGoogleのクラウドサービスを用いたWebProxyサイト構築はとても簡単であることがわかりました。Hackingと呼ばれる迷惑行為はたやすく出来ると思われます。User-Agentからのアクセスをブロック!とりあえず今回は、上記のパケットキャプチャの結果から「AppEngine-Google」をUser-Agentとしたアクセスがあることがわかりますので、このUser-Agentからのアクセスをブロックするように設定してみました。「AppEngine-Google」をUser-Agentとしたアクセスをブロックすることで、100%のアクセスを制限できるとは思えません。いうのも、*.appspot.comにてUser-Agentを詐称したProxyサイトを立てられた場合は現状対応の仕方が思い浮かびません。GoogleProxyHackingによって検索順位をのっとられてしまったかたは、ぜひアクセスログを解析してこのUser-Agentが記録されていないか確認してください。上記にあるとおりUser-Agentには「s~worldbestproxy」とGoogleAppEngineのIDが記録されているので、このようなログが残っていればどのユーザーかを特定できるのでGoogleに通報しましょう!明確になっていないものとして*.appspot.comはもしかして自動でクロールされてしまうのか?*.appspot.com/*でアクセスしたURLはGoogleのクラウドサービス自体がキャッシュしてそれをクロールしてる?*.appspot.com/*へのアクセスを勝手にキャッシュしてしまうGoogle検索のバグ??とりあえずの対策はこれだ!最後になりましたが、今回初めてこのことをしり私は以下の設定を本サイトに設定しました。「https://blog.trippyboy.com」には以下の設定を行っていますので、「http://worldbestproxy.appspot.com/blog.trippyboy.com」とアクセスをしてもForbiddenになります。Hackingによって被害を受けている人、被害を受けたくない人への回避策の提案を目的としていますが、同時にAppEngineを用いてProxyサーバーを構築している人たちへ、加害側が行う回避策を回避する方法を思いつくきっかけになってしまわないかと考えました。これは本当に防ぎようがないのです。接続元はGoogleのクラウドサービスから行われるわけで、Proxyサーバーから外部サーバーを見るときに通るゲートウェイが違うのか、接続元のIPアドレスがころころ変わります。これらを特定できたとしても、これらのIPアドレスが今後どのようなGoogleサービスに利用されるかわからずブロックが難しい。アクセスにProxy経由ですよーを示すHTTPヘッダーがないので、それを元にもアクセス拒否が出来ない。同じことをやっているので、本当に難しいですね。最後の手段として、今後はGoogelAppEngineで自分のコンテンツを公開する!それしか対抗策がない。対抗策として、「外部サイトからの被リンクを増やす」という対抗策がありますが、それでもGoogleAppEngineを好評価するGoogleクローラーの関心を引くことは難しいようです。@19:21参考にして対策いれました。使う理由を学びました。Sinha%d人のブロガーが「いいね」をつけました。