スパム解析


掲示板やWikiのコメントスパムに関する私的な解析です。

そもそもスパムコメントとは何か?

何らかのスクリプト(ここではスパムスクリプトと呼称)によって無作為に一斉送信されるコメントのことです(適当)

人間が1つ1つ手動で送信しているわけではないので、スパムに対して文句を言うのは無駄です。

(そもそもスパムコメントは海外から送信されているのに日本語が分かるわけないよなぁ(笑))

アクセス数の多いサイトの掲示板に対してスパムコメントが送信されているようです。

スパム考察

スパムの性質を知るために、うちの掲示板のスパムフィルタに引っかかったスパムの環境変数(Perlでは$ENV、phpでは$_SERVER)についてログをとってみました。

スパムログ(最初の2つが自分が比較用に投稿した時のログで、それ以外全部がスパムコメントのログです_| ̄|●)

※2日程度の集計でなおかつ必要最低限の環境変数だけログをとっているにも関わらず、サイズが93.8KBあります(汗

ログをながめてみた考察を以下に記述します

(バイナリデータの解析はよくやっていますが、スパムログの解析をやることになるとは思わんかった(笑))

1.掲示板スクリプト本体で投稿元URL(HTTP_REFERER)を調べるのは無駄

完全には無駄ではないと思うんですが、ログを見る感じ無駄っぽいです

2.1つのスクリプトから複数のホストに連動している

複数のホストからほぼ同時に投稿されていることから考えて、どこかでスイッチが押されたのを合図にして不特定多数のホストから一斉に送信されているくさいです。

不特定多数のホストから一斉送信されるので.htaccessなどで個別にアクセス規制するのは不可能に近いです(体験談)

3.ユーザーエージェントが「MyIE2」

ログのHTTP_USER_AGENTの大半に「MyIE2」が含まれています。海外産のフリーのタブブラウザのようですが、これがスパム送信に使われているようです。ただ、ユーザーエージェントというのはいくらでも偽装が可能なのであまりあてにはできません。

4.対応言語がない

普通のブラウザだったらHTTP_ACCEPT_LANGUAGEに対応言語(jaとかen)がセットされていないといけないはずなんですが、スパムスクリプトではセットされていません。

セットされているとしてもなぜかHTTP_ACCEPT(対応メディア)がセットされています。(ダミー?)

現時点ではHTTP_ACCEPT_LANGUAGEでスパム判定するのがベターだと思われます。

 

この考察を元に、HTTP_ACCEPT_LANGUAGEでスパムをショットアウトする汎用ライブラリみたいのを作ってみましたのでご自由にどうぞ

掲示板スパム対策 汎用ライブラリ