[[diary/Kojima]]

・wiki spam check

Pythonの練習がてら、httpdのaccess_logから短時間にPOSTを繰り返すIPアドレスを抽出するような
スクリプトを書いてみた。

check_spam.py という名前でこのページに添付しておくので、興味ある人はご覧ください。

やってることは単純で、前にチェックした時間(last_checked)を手元に記録しておいて、
access_logに記録されたその時間以後の履歴について、
1)4回以上POSTして、
2)POST間の平均間隔が45秒以下
のアドレスをspam元と判断している。

一応、ログファイルの位置等はPlamo-4.73に合わせているけど、
それらは先頭部分で定義しているので、Plamo以外の環境でも使えるのではないかと。

# httpdのログ形式はcombined format決め打ちだが

一応、添付のスクリプトではコメントアウトしているけど、
spam元のアドレスをconfファイルに書き出して、自動的にbanリストを更新するような機能も付けてみた。

手元では、このスクリプトをcrontabで6時間ごとに実行しているけど、毎回3〜4個ずつbanされるアドレスが増えていく。。
- 1時間おきぐらいに、さまざまに異なるアドレスからspamを繰り返しているところを見ると、botのネットワークが巡回していると見るべきなんだろうなぁ。 -- [[kojima]] &new{2012-05-09 (水) 07:49:31};

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS