flint>flint blog>2013年>11月>26日>スパム退治

スパム退治

アクセス制御編集ページ

現在、当ブログのアクセス数は一日に20~50件程度。 閑古鳥が鳴きまくっている状況ですが、それでも記事や時間帯ごとの統計を取ってみると、色々な傾向が読み取れて面白いものです。

ところで、そうした統計を取る際に大きな障害となるのが、人間の読者以外の存在、即ち、ボットと呼ばれるプログラムによるアクセス。 Google や Yahoo を初めとする検索エンジンによる情報収集のためのクローラや、宣伝コメントを書き込むためのスパムボット、セキュリティホールを突いてパスワードなどの情報を盗み出そうとするクラッキングなど、その目的や種類は多岐に渡りますが、いずれにしてもそれらはアクセス解析の主要な目的である「(人間の) 訪問者の閲覧傾向の把握」にとっては、その精度を低下させるノイズでしかありません。 そのため、殆どのウェブサービスやCMSはこれらを取り除くための機構を備えています。

そんなわけで今回は、当サイトのウェブシステムが備えているノイズ除去のための仕掛けについて紹介してみたいと思います。

「ノイズ」の影響はどの程度?

ノイズ除去あり

その前に、そうしたボットによる「ノイズ」がアクセス解析にもたらす精度低下がどれほどのものかを見てみましょう。

右図に、ボットによるアクセスを除いた昨月のアクセス統計を示します。 総アクセスは1,725件。 そのおよそ6割が「福島を蝕むEM菌」へのアクセスが占めていることが読み取れます。 昨月はこの記事が突出してアクセスを集めたため、このような極端な結果が出ていますが、それ以外の月でも、人気のある記事の傾向を掴むことができます。

ノイズ除去なし

では、この月のアクセスを「ノイズ」を除かずに集計するとどうなるでしょうか。

その結果を右図に示しましたが、まず目に付く変化は総アクセス数。 ノイズを除去した結果の18倍以上の31,870件という値が出ていますが、これは総アクセス数の95%近くがボットによるものであることを示しています。

続いてその内訳に目を転じてみると、流石に1位の記事は同じであるものの、2位以下の記事については、殆どが入れ替わってしまっている有様。 これでは、ノイズを除去せずにアクセス解析をしたところで、得られた結果に何の意味もないことは明らか。

もし、そうした結果を以って「アクセス数が増えました!」と嬉々として報告してくるようなサービス (アメブロ界王拳使い) をご利用の場合は、早急に他のサービスへ移行することをお勧めします。

アクセス制御リスト

アクセス制御編集ページ

これらのボットを除去するには、何らかの方法でアクセスが「ボットによるものであること」を識別する必要があります。 その手がかりとして使うことのできるアクセス情報のフィールドは、概ね以下の4つ:

そこで、ボットであると思われるアクセスの情報が得られたら、それを「アクセス制御」レコードとしてシステムに登録します。 「アクセス元IPアドレス」にマスクをかけることで特定の範囲のアドレスに合致させたり、「アクセス元ホスト名」の後方一致で特定ドメイン下のホストやサブドメインを一括して制御の対象にすることが可能。 なお、条件を2つ以上指定した場合はANDマッチ (すべての条件に合致するアクセスを適用対象とする) となります。

また、各アクセスに対する処置も選択することができます。

アクセス拒否
コンテンツの閲覧を拒否 (ステータス403で応答) し、アクセス記録にも残さない。
クロール判定
コンテンツへのアクセスを許可し、アクセス記録にそれがクローラであることを示すマークを付ける。
スパム判定
コンテンツへのアクセスは許可するが、アクセス記録にそれがスパム (またはアタック) であることを示すマークを付ける。

ご意見をお寄せください

冒頭でも述べたように、現在では殆どのウェブサービスがこれと同様の機能 (クロール除去/スパム拒否) を備えているはず。 しかしながら、自分で作って運用してみると分かるのですが、スパマやアタッカの手口は日々移り変わっているため、フィルタリングのための条件を設定してやるだけでもかなりの手間がかかってしまいます。 皆様がお使いのウェブサービスでも、多かれ少なかれ、やはり同様の問題が生じているのではないでしょうか。

「こんな方法でフィルタが設定できたらいいのに」というご意見やご要望や、現在開発しているシステムにこうしたアクセス制御機能を付けたいといった需要があれば、ぜひともお声を掛けください。

成田 (回線越しにスパマを焼き殺す方法はないものだろうか。)
このエントリーをはてなブックマークに追加

コメント

投稿者
URI
メールアドレス
表題
本文