web-dev-qa-db-ja.com

プログラムでボットを検出する方法

訪問をログに記録し、ページヒットの訪問者とボットがデータベースを詰まらせている状況があります。人間の入力を求める前であるため、キャプチャなどの手法を使用することはできません。基本的にはページヒットをログに記録し、人間によるページヒットのみをログに記録したいと考えています。

既知のボットIPのリストはありますか?既知のボットユーザーエージェントのチェックは機能しますか?

4
Tom DeMille

これで追求するいくつかの要素があります。

user-agent文字列は1つの値ですが、簡単になりすますことができます。

かなり有用なヒューリスティックは、少し前処理を行ってからトラフィックを調べることです。

  • 逆IPルックアップ
  • Routeviewsプロジェクト( http://www.routeviews.org/ )を呼び出して、特定のIPのCIDRとASNをプルアップします。これにより、単一のIPから、同様のトラフィックパターンを持つ連続したネットワーク範囲に拡張できます。
  • ASN名をプルダウンします: http://bgp.potaroo.net/cidr/autnums.html

ホスト、ASN、CIDR、およびASNの名前情報を追加してアクセスログを解析します。 URLを非バリアント部分にサブセット化します(YMMVを使用しますが、通常は「?」を超えてすべてを削除します)。特定の検索ページまたはユーティリティページがある場合は、これらに焦点を合わせます(通常、ある種のユーザー検証サービスを使用するボット、または検索で問題が発生します)。

トラフィック量の多い単一のIPを探します。

トラフィック量の多い単一のCIDRブロックまたはASNを探します。

正当な検索トラフィック(Google、Bing、Yahoo、Baidu、Facebook、および同様のボット/ネットワークスペース)を除外します。これはおそらく継続的なメンテナンスのより大きな領域の1つになるでしょう、このようなものは常に変化します。

正当なユーザートラフィックを除外します。特にあなたのサイトの大量のユーザーのために。

エンドユーザーと検索ボットの両方について、通常の使用パターンを特定します。通常のユーザーが1分あたり1〜3ページにアクセスし、通常のセッションは5〜10分で、Googlebotが1分あたり10回の検索に制限している場合、突然1つのIPまたはCIDRブロックが数百または1分あたり数千回の検索で、問題が見つかった可能性があります。

大量/影響の大きい(否定的な意味での)トラフィックの発生源を調査します。多くの場合、WHOISクエリは、これが何らかのホスティングスペースであることを明らかにします。通常、正当なユーザートラフィックが多く見られる場所ではありません。パターンは、ユーザーエージェント文字列、リクエストURL、リファラー文字列などに表示される場合があり、追加のパターンにヒントを与えます。

キャッシングwhoisクライアントは、プロセスの速度とレジストラによるレート制限/スロットルの回避の両方で、多くのWHOISルックアップを実行することになった場合に大きな助けになる可能性があります(何らかの理由で、実行しているエンティティに親切に対応しません)何千もの繰り返し/自動ルックアップ)。私はこれを追求していませんが、詳細についてはレジストラに直接アクセスできる場合があります。

さまざまなレピュテーションデータベース(スパムルックアップ、SenderBase、これらの線に沿っていくつかのGoogleのものがあります)に対するチェックも、不十分にポリシングされたネットワークスペースを裏付ける可能性があります。

私はこれらの線に沿ってあなたを売るために何かを持っていると言いたいのですが、私が取り組んでいるのは主にこれをまとめるためのいくつかのawkと他のツールです。適度なワークステーションで、1分あたり数百万行のログを解析します(さらに、IPおよびASN/CIDR情報のハッシュを準備するための準備オーバーヘッドも少しあります)。完全に自動化されているわけではありませんが、数分の作業で問題の適切な状況を把握できます。

1

Sysadminの観点からは、単一のIPから一定の間隔で繰り返しヒットすることは、ボットの可能性を示していると思います。これは、ログを解析するだけで見つけることができます。

最初に、ヒット数の多いIPを除外する場合があります。次に、それらのヒットの時間で配列を埋め、おそらくそれらのヒット間の間隔の標準偏差を調べます。

このようなソリューションの明確な利点は、フルタイムの管理者で作業している場合にかなり興味深いものを書くことができることです;-)

1
Kyle Brandt

実際には、より大規模なボットと戦うために設定された新しいテクノロジーがあります。これは、プログラマティックメディアの購入者に役立ちます。これはデバイスフィンガープリントと呼ばれ、基本的にCookieベースの訪問者追跡に取って代わります。その背後にある前提は、Cookieが詐欺師によって頻繁に使用され、IPアドレスもVPNを介して変更できるということです。一方、指紋はデバイス、IP、およびGEOに固有のままであり、変更することはできません。このソリューションを提供するWebサイトがいくつかあります fraudhunt.netCPA Detective およびDistil-ほんの数例を挙げると。

この技術には確かに限界があります。深く掘り下げて他のツールをインストールしたくない場合は、GAでボットを排除できます。確実にブロックする必要のある既知のボットドメインをいくつか紹介します

darodar.com(およびさまざまなサブドメイン)econom.co ilovevitaly.co semalt.com(およびさまざまなサブドメイン)buttons-for-website.com see-your-website-here.com

0
Alex

クイックグーグル検索は明らかにしました このサイト 。それは良い出発点かもしれません。

ユーザーエージェントは簡単に偽造できるため、ユーザーエージェントだけをチェックするだけでは不十分な場合があります。

0
Dan Andreatta