Googlebotの「ニセ」Webサイトクローリングをブロックするには?

IT・IT製品TOP > Key Conductors > 寺下 理恵(バラクーダネットワークスジャパン株式会社) > Googlebotの「ニセ」Webサイトクローリングをブロックするには?
この記事をtweetする このエントリーをはてなブックマークに追加

IT現場の道先案内人 Key Conductors

Googlebotの「ニセ」Webサイトクローリングをブロックするには?

2014/10/29

Webサーバを運用するお客様から、「自社のWebサイトがニセのGooglebotにクローリングされている」という相談を受けるがしばしばあります。さらには、「ニセのクローラによるクローリングはブロックしたいけれど、正当なGooglebot(またはBingbotなど)によるクローリングはブロックしたくない」というニーズがあります。ニセのクローラは帯域幅を消費するだけでなく、ホットリンクやコメントスパム、および他のWebアプリケーションへの攻撃も懸念されます。

まずニセのGooglebotがサーバにどのようなログを記録するのかご紹介します。以下のサンプルはApache上のログとなります。

209.321.163.xx - - [24/Jun/2014:14:32:20 -0600] "GET / HTTP/1.1" 200 31375 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”

このボットによるアクセスは、User Agentフィールドで自らを「Googlebot」であるとしていますが、IPアドレスから、Googleでないことがわかります。

ではこのような「ニセボット」をブロックする方法をいくつかご紹介しましょう。

1. リクエストヘッダの検証

HTTPヘッダを参照すると、標準的なGooglebotヘッダがない、またはヘッダが異なる場合、ニセのGooglebotだと見分けることができます。標準的なGooglebotヘッダはGoogle Webmaster Centralのブログ記事をご覧ください。以下はその一例となります。

Accept: */*  

From: googlebot(at)googlebot.com  

User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)  

Accept-Encoding: gzip,deflate

例えばリクエストのUser-Agentフィールドに「googlebot」と記載されていても、上記のように他のヘッダがないケース、スペルミスがあるケール、誤りがあるケースについては、Barracuda Web Application Firewallの場合、「許可/拒否ルール」を作成することにより、上記の様なリクエストをブロックできます。さらに拒否ルールでは、次のような拡張マッチも使用できます。

(Header  User-Agent co googlebot) && (Header  Accept-Encoding neq gzip,deflate) && (Header  From neq googlebot(at)googlebot.com)

上記の拡張マッチでは、「User-Agent」フィールドに「googlebot」が含まれていても、Accept-Encodingヘッダが「gzip,default」ではなく、Fromヘッダが「googlebot(at)googlebot.com」でない場合、指定の処理(この場合はリクエスト拒否)を実行します。

2. robot.txtとDisallowセクション

ニセのGooglebotのヘッダが正当なGooglebotのヘッダを巧妙に真似ている場合には、別の対処方法が必要になります。一般的にニセのボットは、Webサーバのrobots.txtファイルに記載された[Disallow]セクションに指定されているページへ、意図的にアクセスしようとします。

Barracuda Web Application Firewallの場合、拒否ルールを設定することで、[Disallow]セクションに明記するようなURLを禁止URLとして登録することができます。これにより、ニセボットが禁止URLにアクセスすると、即時にブロックされます。また、時間帯を指定してボットをブロックするルール設定も可能です。

3. 隠しリンクを埋め込み

2.をさらに拡張した方法として、表示されないページを隠しリンクとして挿入する方法があります。robots.txtファイルの[Disallow]フィールドで指定することもできます。

<a style="display:none;" href="hidden.html">...</a>

この手法は非常に効果的ですが、Webサイトのソースを若干の変更を加える必要があります。

4. Robots.txtとCrawl-delayパラメータ

robots.txtのCrawl-delayパラメータを指定することで、特定のサーバへのリクエストの処理間隔を秒単位で指定します。Barracuda WAFでは、ブルートフォースポリシーにより、指定した間隔よりも短い間隔でアクセスしてくるボットを検出し、ブロックすることが可能です。

5. GoogleのIPアドレスの確認

ニセボットのヘッダが巧妙で、しかもrobots.txtフィルのルールを回避し、隠しリンクでも捕捉できない場合には、最終手段としてIPアドレスを使用します。正当なGooglebotでは、次のようなGoogleのIPアドレスが使用されますので、Google以外のIPアドレスを使用している場合には、ブロックする必要があります。

66.249.x.y
216.239.x.y

ただしこの手法では、Googleがクローラで使用するIPアドレスを確認する作業が必要になります。IPアドレスは頻繁に変更されるものではありませんが、1年に1回か2回、変更される事があります。

ニセのGooglebotによるクローリングにお悩みのシステム管理者の皆様、まずは上記5つの方法で対策を講じてみてはいかがでしょうか。

参考URL:
Barracuda Web Application Firewall 製品ページ: http://www.barracuda.co.jp/products/waf

会員限定で「読者からのコメント」が読み書きできます! 「読者からのコメント」は会員限定の機能。会員登録を行い、ログインすると読者からのコメントが読み書きできるようになります。

会員登録(無料)・ログイン

Myリストへ 印刷用ページへ

この記事をtweetする このエントリーをはてなブックマークに追加


この寄稿記事に掲載している情報は、掲載日時点での情報となります。内容は変更となる場合がございますのでご了承下さい。また、「Key Conductors」の寄稿記事及び当該記事に寄せられたコメントについては、執筆者及びコメント投稿者の責任のもと掲載されているものであり、当社が、内容の最新性、真実性、合法性、安全性、適切性、有用性等を保証するものではありません。


30007606


IT・IT製品TOP > Key Conductors > 寺下 理恵(バラクーダネットワークスジャパン株式会社) > Googlebotの「ニセ」Webサイトクローリングをブロックするには?

このページの先頭へ

キーマンズネットとは
2008年バラクーダネットワークスジャパン株式会社に入社。シニアプリセールスエンジニアとして、企業・自治体を中心にネットワークセキュリティ・アプリケーションデリバリ・データ保護ソリューションを提案。2013年よりプロダクトマーケティングマネージャーに着任し、ソーシャルメディアマーケティングを担当。

ページトップへ