最近、Googleプロキシのいくつかの亜種が私のサイトにアクセスすることを発見しました。これらのクローラーは常にプロキシの背後にあるとは限らず(ホスト名が説明するように)、ブラウザーとして自分自身を識別するため、これらは合法的なGoogleクローラーとは思えません。ホスト名は、Googlebotと同様にフォーマットされていますが、文字列「proxy」が追加されています。
PHPブロッククラスはこれらのクローラーをブロックしますが、これらをブロックするのは正しいですか?彼らは何であり、これらはグーグルからのものですか、それとも偽物ですか?
これらのクローラーの1つに関する情報を以下に示します。
BlockedIp Notifier Report - IP:66.249.81.131:: has been blocked
Ticket ID : {EVNT_136877_2013040520130402_33147_10348}
Event type : Access blocked
Event date : 04/05/2013 - 19:17:47 (server date-time)
Event counter : First occurring
Processed url : http://streambutler.net/
From url : http://www.google.com/search
Domain : streambutler.net
Domain IP : 95.170.70.213
Visitor IP : 66.249.81.131
Proxy IP : 66.249.81.131
Critical : Yes
Action required : No
Additional information
Problem : Bad Proxy - via 66.249.81.131
Hostname : google-proxy-66-249-81-131.google.com
Block : Yes
Refferer : http://www.google.com/search
AgentString : Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.4 (KHTML, like G...
Browser : Chrome 22.0.1229
Platform : Linux
Robot : No
Mobile : No
Tablet : No
Console : No
Crawler : No
Agent_type : browser
Agent_name : chrome
Agent_version : 22.0.1229
Os_type : linux
Os_name : linux
Agent_languagetag : en
Status : ok
Request : 66.249.81.131
Languagecode : us
Country : United States
Region : California
City : Mountain View
Zipcode : 94043
Latitude : 37.406
Longitude : -122.079
Timezone : -07:00
Available from : \'http
Areacode : 0
Dmacode : 0
Continentcode : na
Currencycode : USD
Currencysymbol : $
Currencysymbol_utf8 : $
Currencyconverter : 1
Extended : 1
Organization : NULL
他の亜種が見つかりました
google-proxy-66-249-81-131.google.com
(Firefox 6.0として識別されますか?)google-proxy-66-249-81-148.google.com
(javascriptファイルへのアクセスを試行)google-proxy-66-249-81-131.google.com
google-proxy-66-249-81-111.google.com
(javascriptファイルへのアクセスを試行)google-proxy-66-249-81-164.google.com
リストの最初のものは奇妙なもので、Windows 7上のFirefox 6.0と上記の例と同じIPですが、次のログのプロキシではありませんか?モバイルプロキシの場合、これは非常に奇妙かどうか?
Ticket ID : {EVNT_164838_2013040520130402_33147_10348}
Event type : Access blocked
Event date : 04/05/2013 - 19:19:07 (server date-time)
Event counter : First occurring
Processed url : http://streambutler.net/
From url : Unknown or direct link
Domain : streambutler.net
Domain IP : 95.170.70.213
Visitor IP : 66.249.81.131
Proxy IP : (not present)
Critical : Yes
Action required : No
Additional information
Problem : Blocked Server IP address (analysis) - 66.249.81.131
Hostname : google-proxy-66-249-81-131.google.com
Block : Yes
Refferer : (direct access)
AgentString : Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0 ...
Browser : Firefox 6.0
Platform : Windows 7
Robot : No
Mobile : No
Tablet : No
Console : No
Crawler : No
Agent_type : browser
Agent_name : firefox
Agent_version : 6.0
Os_type : windows
Os_name : windows 7
Agent_languagetag : en
Status : ok
Request : 66.249.81.131
Languagecode : us
Country : United States
Region : California
City : Mountain View
Zipcode : 94043
Latitude : 37.406
Longitude : -122.079
Timezone : -07:00
Available from : \'http
Areacode : 0
Dmacode : 0
Continentcode : na
Currencycode : USD
Currencysymbol : $
Currencysymbol_utf8 : $
Currencyconverter : 1
Extended : 1
Organization : NULL
誰もがこれらについての情報を持っていますか?
Got it!これらの「クローラー」はクローラーではなく、Google検索エンジンで使用されるライブWebサイトプレビューの一部です。
私はこれを試して、プレビューで自分のWebサイトの1つを表示しました。そうです、blockedIPメッセージを受信しました。
ユーザーがWebサイトのプレビューを表示できるようにするには、これらの「クローラー」を受け入れる必要があります。
他の人が言ったように、「そのURLのルートドメインはgoogle.com
であり、簡単に偽装することはできません」。
結論:これらのボットまたはクローラーを信頼でき、Google検索でプレビューを表示するために使用されます。
これらは偽物ではなく、使用されています。これらは、スタッフがさまざまな手動タスク/監査/レビューのために使用するプライベートプロキシであり、ブロックしないでください...
また、Googleプロキシが同じWebサイトに何度も(30+)アクセスしたこともわかりました。
66.249.81.106 - - [30/Aug/2013:01:26:35 +0200] "GET /index.php HTTP/1.1" 200 280329
66.249.81.106 - - [30/Aug/2013:01:26:35 +0200] "GET /index.php HTTP/1.1" 200 280329
66.249.81.106 - - [30/Aug/2013:01:26:35 +0200] "GET /index.php HTTP/1.1" 200 280329
66.249.81.106 - - [30/Aug/2013:01:26:35 +0200] "GET /index.php HTTP/1.1" 200 280329
...
サーバーの負荷が上昇します。 robots.txtで以下を設定したため、これは奇妙でした。
Crawl-delay: 1
(クローラー(google)は毎秒1クエリ(cca)の最大頻度でサイトにアクセスする必要があります。Googleはこの設定を無視しません)。
IPが30秒以上実行する場合、google [any] IPをブロックするPHPスクリプトを作成しようとしましたが、something differentを発見しました。このコードでは、訪問者のIPアドレスを検索していました。
function get_visitor_ip_address($server)
{
foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key)
{
//if (array_key_exists($key, $_SERVER) === true)
if ($server->testIp($key))
{
//foreach (explode(',', $_SERVER[$key]) as $ip)
foreach (explode(',', $server->getEscaped($key)) as $ip)
{
$ip = trim($ip); // just to be safe
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) return $ip;
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) return $ip;
}
}
}
}
しかし、このコードは異なるIPアドレス(通常は中東、アフリカ、または同様の場所、つまり197.132.255.244)を返しました。これは私のPHPログからです
IP address 197.132.255.244 banned at 2013-08-30 01:26:35 for the 1. time exceeding 30 visits in a second, banned for 30 minutes
興味深いことに、Apacheサーバーは、アクセスログに197.132.255.244ではなく、GoogleプロキシIPアドレスを保存しました)。最初のApacheログ、同じ日付と時刻などを数回テストしました
>>>
PHPスクリプトはいくつかの方法でIPアドレスを検索しますが、PHPコードの異なるサーバーパラメーターに注意してください。
'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR'
これにより、「正しい」IPアドレス-197.132.255.244(さまざまな攻撃者で数回テスト済み)が検出され、ログに記録されます。
http://whois.domaintools.com/197.132.255.244
>>>
私の結論:
一部の人々は、Googleサービス(Google翻訳、Googleモバイルなど)を使用して(ブロックされた)Webサイト(学校など)にアクセスするだけでなく、DOS攻撃や同様のアクティビティにも使用していると思います。どうやって?
こちらです:
http://www.gmodules.com/ig/proxy?url=http://www.yoursite.com
http://www.google.com/translate?langpair=de|en&u=www.yoursite.com
(www.yoursite.comの代わりにWebサイトに変更します)
または他の方法:
http://www.tech-recipes.com/rx/1322/use_google_proxy_bypass_blocked_site/
このPHP関数を使用して元のIPアドレス(197.132.255.244)を見つけてブロックするかどうかは、攻撃者がGoogleプロキシを使用している場合でも機能するため、あなた次第です。 「制限を超えました」という短いメッセージまたは空のページまたはエラーページを表示します。
または、プロキシが許可された制限を超えた場合、たとえば.httaccessファイルで直接、GoogleプロキシIP(66.249.81.106など)をブロックします。これでGoogleクローラーをブロックすることはありませんが、実際の(攻撃者ではない)誰かがあなたのWebページなどを翻訳したい場合、機能を無効にすることができます。
@Jamesや@FFrewinと同様の経験がありました。新しい「シークレット」アプリ/ URLをテストすると、さまざまなGoogleプロキシからのトラフィックが突然見られました。いくつかの実験の後、(少なくとも)Chrome on Androidはこれらのサーバーを「データセーバー」機能の一部として使用しているようです。説明では、「データセーバーをオンにすると、Chrome」はGoogleサーバーを使用してページの読み込みを高速化し、圧縮します。データセーバーをオフにすると、プロキシトラフィックがなくなりました。
したがって、これらのプロキシは不正ではありません(少なくとも完全ではありません)。それらをブロックすると、モバイルユーザーがサイトにアクセスする能力が変更または妨害される可能性があります。
いくつかの異常なログエントリを調査しているときに、このスレッドに出会いました。投稿された質問と同じ方法で、Googleプロキシとして記録されます。ただし、IISログのリファラーにはgoogle.com/searchと表示され、実際に見えるUserAgentが含まれています。ただし、これが実際のクローラーである場合、エージェントを模倣する必要はありません。
しかし、クリンチャーは、このサイトはライブではなく、Googleの検索にはまだないということです。実際、1〜2日前にウイルスをダウンロードしたのではないかと疑っていたため、サイトのテスト中にこの完全なアドレスを手動で入力する必要がありました。だから、キーストロークトラッカーを使用して、私の活動のすべてをフォローアップしようとしている人がいますが、Google検索プロキシの後ろに隠れようとしているように見えますか?私は197の住所に関する仮説が好きです。
Stem:/ monitor/getAccountは、テスト用の新しいコードビルドを検証するために時々ヒットするタスクエンドポイントです。ユーザーやGoogleがこれを見つけることはありません。
2018-03-09 06:56:29 10.138.0.4 GET /monitor/getAccount - 80 - 66.249.80.26 Mozilla/5.0+(X11;+Linux+x86_64)+AppleWebKit/537.36+(KHTML,+like+Gecko;+Google+Web+Preview)+Chrome/41.0.2272.118+Safari/537.36 - http://www.google.com/search app.tru-stats.com 200 0 1236 0 426 31203
サーバーがボットに攻撃された場合、ブロックする前に必ずIPアドレスをGoogleで検索してください。
「IPアドレス66.249.81.131」を検索すると、これはGoogleが所有するIPであることがわかります。
IPアドレスを検索しても、サイトをクロールする会社が返されない場合は、ほとんどの場合、ブロックしても安全です。
UserAgentの問題と、それが正当なクローラーである可能性が最も高い理由を次に示します。
Webサーバーは、UserAgentを含むWebページ要求のヘッダーのいずれかに応答するように構成できます。 Googleウェブボットがすべて同じように見える場合、あらゆる種類のGoogle検索で高得点を目指して、他のさまざまなUserAgentを使用して一般ユーザーに完全ながらくたを配信しながら、Webbotに役立つ情報の百科事典のように見える怪しげなWebサイトを作成できます。 Googleはそれよりも優れていると確信しています。コンテンツを検証するために、あらゆる種類のボットとあらゆる種類のUserAgentを使用します。また、Googleはそのようなスキャンから収集した情報を使用して、さまざまなブラウザーのコンテンツを便利な方法でフレーバー化するスマートサイトを検出できます。
結局のところ、そのURLのルートドメインはgoogle.comであり、簡単に偽装することはできません。
また、JavaScriptファイルへのアクセスは、Google Webbotにとって完全に正常です。 JavaScriptでさらにURLを探しています。 <script rel="nofollow" src="code.js"></script>
を使用して、Googleがスクリプトをスキャンしないようにすることができます。
rate-limited-proxy-66-249-90-176.google.com
からのWebアプリケーションファイアウォールでログを見つけた後、ここに到達しました。
これらのログについて私を疑っているのは、それらが非常に特別な条件下で発生したことです。 WebアプリケーションでシークレットURLをテストして、ファイアウォールがどのように応答するかを確認しました。これが最初に使用された秘密のURLであり、だれもそれらを知る方法がありませんでした。ファイアウォールはそれらのURLへの呼び出しをIPと一緒に期待どおりに記録しましたが、約30秒後に同じ秘密URLにいくつかの追加のログエントリがありましたが、今回は別のIPから-まだわかりません。
これらのURLを試すことができたのは私だけなので、これがどのように可能かを考えました。その後、IPルックアップを実行し、上記のホストrate-limited-proxy-66-249-90-176.google.com
が出てきました。
次に、GoogleのDNSを使用してインターネットに接続しているため、これが起こっているのではないかと考えました。ローカルISPの設定を使用するように設定し、再試行しました。それでも、新しいシークレットURLを試してみたところ、20〜30秒後に、同じGoogleのIPから別の2番目の呼び出しが見つかりました。
最後に、VPN接続を有効にし、新しいシークレットURLで再試行しました。今回は、Webアプリケーションに到達するためのリクエストが私のリクエストだけでした。Googleプロキシは私をフォローしませんでした。
結論はあなた次第です...
参考までに、google-proxyからDOS攻撃を受けました:
ホスト66.249.82.43 43.82.249.66.in-addr.arpaドメイン名ポインターgoogle-proxy-66-249-82-43.google.com.
ログ抽出:
Jun 9 21:19:43 gemelos kernel: PAX: From 66.249.82.43: execution attempt in: (null), 00000000-00000000 00000000
Jun 9 21:19:43 gemelos kernel: PAX: terminating task: /usr/sbin/Apache2(Apache2):25541, uid/euid: 81/81, PC: 00795f72, SP: b01666ec
Jun 9 21:19:43 gemelos kernel: PAX: bytes at PC: ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
Jun 9 21:19:43 gemelos kernel: PAX: bytes at SP-4: a2be3e6c a262fa66 1d620670 00000000 0000000c a3315e34 00000005 1d9ba84c a2be3e6c a2614bb8 1d9baadc 00000003 00010006 a2b222c7 a3316880 a12977a8 1d9baaf0 36183700 1d9ba84c a31a7d26 a1939349
Jun 9 21:19:43 gemelos kernel: grsec: From 66.249.82.43: bruteforce prevention initiated for the next 30 minutes or until service restarted, stalling each fork 30 seconds. Please investigate the crash report for /usr/sbin/Apache2[Apache2:25541] uid/euid:81/81 gid/egid:81/81, parent /usr/sbin/Apache2[Apache2:29657] uid/euid:0/0 gid/egid:0/0
Jun 10 00:03:40 gemelos kernel: grsec: denied resource overstep by requesting 18 for RLIMIT_Nice against limit 0 for /usr/bin/namecoind[namecoind:27085] uid/euid:105/105 gid/egid:122/122, parent /sbin/init[init:1] uid/euid:0/0 gid/egid:0/0
Jun 10 03:58:05 gemelos kernel: PAX: From 66.249.82.43: execution attempt in: <anonymous mapping>, 00000000-0001f000 00000000
Jun 10 03:58:05 gemelos kernel: PAX: terminating task: /usr/sbin/Apache2(Apache2):27985, uid/euid: 81/81, PC: (nil), SP: b01666ec
Jun 10 03:58:05 gemelos kernel: PAX: bytes at PC: ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
Jun 10 03:58:05 gemelos kernel: PAX: bytes at SP-4: 1d746620 a262fa66 1d6f34c0 00000000 0000000c a3315e34 00000005 1d7bb4dc a2be3e6c a2614bb8 1d7bb76c 00000003 00010006 a2b222c7 a3316880 a07a23c8 1d7bb780 36183700 1d7bb4dc a31a7d26 a1939349
Jun 10 03:58:05 gemelos kernel: grsec: From 66.249.82.43: bruteforce prevention initiated for the next 30 minutes or until service restarted, stalling each fork 30 seconds. Please investigate the crash report for /usr/sbin/Apache2[Apache2:27985] uid/euid:81/81 gid/egid:81/81, parent /usr/sbin/Apache2[Apache2:29657] uid/euid:0/0 gid/egid:0/0