web-dev-qa-db-ja.com

トラフィックが正当であるか(ボット)であるかを検出する最良の方法は何ですか?

YouTubeに似たプログラムを開始し、ユーザーが視聴ごとに報酬を受け取ることを計画しています。

しかし、私たちが直面している問題は、人々がシステムをゲームし、ボットネットを使用してトラフィックを送信し、過度のアドバンテージを獲得することです。

そのようなトラフィックのカウントを解除する100%正当な方法はないかもしれませんが、トラフィックをフィルタリングする最良の方法は何ですか?

1
Vivek Sancheti

Webで始まるタグを使用しているので、有料インプレッションを機能させるためにHTMLをダウンロードする必要があるシステムを構築していると思います。

サーバーアクセスログファイルを見てロボットの動作を学習する必要があります。 Apacheがインストールされているサーバーでは、ファイルの名前は通常access_logです。サーバーが頻繁に使用されている場合、数千行ではないにしても数百行が表示されます。各行には、サーバーに接続されているリモートデバイスのIPアドレスと、要求されたリソース、および日付と時刻が含まれています。

一般に、Webサイトが指示のない不十分に設計された高速推測ゲームである場合を除いて、ユーザーがWebサイトのあるページから次のページに移動する時間には少なくとも1秒あり、それでも速度が速くなることはありません最初の接続レイテンシにより、1秒より長くなります。

同じIPアドレスが次の20以上の行の正確な同じ日付と時刻と共にリストされている場合、それは明らかにロボットがシステムを攻撃しようとしている(サービス拒否攻撃を引き起こそうとしている)可能性があります。

そのロボットが、特にエラーログで、要求されているファイルを探すかどうかを確認する別の方法です。同じようなパターンのファイルが何度も何度も見られる場合、特にそれらのファイルが存在しない場合は、Wordpressなどのコンテンツ管理システムがインストールされていると想定して、1つ以上のシステムがサーバーに侵入しようとしている可能性があります。

また、一部のロボットは、誤った名前のファイルを要求したり、自分自身を誤って識別したりする場合があります。ソースコードを含む行は、おそらくロボットからの行です。たとえば、これを含むコード:(:;){}

サーバーの名前(apache?nginx?)がシステムのコンテンツを提供しているのがわからないため、ログファイルのどの列がIPアドレスに属しているか、または要求されているファイルに属しているかを特定できません。それらを見ると、特にサーバーにリクエストを出した後で、パターンが見つけやすくなる場合があります。

3
Mike

ボットトラフィックを検出するいくつかの方法:

  1. ユーザーエージェントの検証(特定のネットワークプロトコルを使用するクライアントアプリケーションです)。
  2. マルウェアのシグネチャ、特定の実行可能ファイル、C&C接続アドレスなどに非常に具体的な一致を探します。
  3. ビューの深さ、訪問時間、エンゲージメントなどの行動パラメータなどの調査。
  4. プログラムソリューション。トラフィックをフィルタリングしてその品質を検査するためのソリューションとして、Google AnalyticsとMaxymizely.comの2つが知られています。 GAを使用して、既知のボットネットとリファラーからのヒットをフィルタリングします。Googleアナリティクスからボットとスパイダーのトラフィックをフィルタリングするには、[管理者設定]-> [表示設定]-> [ボットフィルタリング]に移動し、[除外する]チェックボックスをオンにします既知のボットとスパイダーからのすべてのヒット。2番目のソリューションMaxymizely.comを使用すると、トラフィックのアクティビティ、エンゲージメント、収益化の3つのディメンションを考慮してトラフィック品質を分析できます。このツールを使用すると、すべてのディメンションに重要なサブパラメータを選択して割り当てることができますまた、これらのものを3Dマップのビューで視覚化する便利な機会があります。
2
Olga Schors

通常のユーザーが1時間に何本の動画を視聴したかを調べます。

1時間あたりのほとんどの訪問者が視聴した10本のビデオだとしましょう。

セッション+ Cookie + IPアドレスを使用して表示されたビデオの数を保存して使用します。

いずれかのセッションで表示されたビデオの数が10を超える場合は、単純なキャプチャを使用してボットを回避します。

キャプチャの検証に失敗した場合(継続的または何度も)、これらのIPアドレスをブラックリストに追加し、特別な方法で扱います。つまり、徐々にキャプチャを増やしていきます。

IPアドレス+ Cookie +セッション変数の組み合わせを使用して、ボットとユーザーの違いを簡単に見つけることができます。

1
Mani