自分自身のための ものづくり / 自分自身のためのものづくりメモ

* 掲示板へのspam投稿が、久々にチェックをすり抜けた

#掲示板spam対策 #Web

1204215628 Fri Feb 29 01:20:28 JST 2008
HOST 201.86.240.210
page 0


1204215664 Fri Feb 29 01:21:04 JST 2008
HOST 201.86.240.210
rep_num 0
pass XXXXXXXX
page 0
jikan 1204215628
do post
name jammarlibre
data Very good web site, great work and thank you for your service.
mail http://enavivo.info/cookie-monster
subj cookie-monster

 name="mail"なのにURLを書いてきたのは、狙ってのことか?!
(ReadMore...)

* RandomNoteの検索用クローラ対策

#RandomNote #Web #掲示板spam対策
 googleやらyahooやらmsnやらが、入れ替わり立ち替わり、smode=sumやらsmode=countやらcmd=editやらのついたページを、別々のものと見なしてGETしていく。
 こっちにもあっちにも無駄な負荷がかかる、とても不幸なことだ。

とりあえずの対策として、それらへのリンクをformにしてみた。

 検索エンジンは、いくらなんでもsubmitしないだろうから、無駄にリンクを辿らなくなると期待。

 ただし、spam投稿用クローラが心配。textもtextareaもないのにPOSTする馬鹿がいるかもしれない、と危惧している。

ロボットの類相手では、cmd=editとかsmode=hogeとかあったら、404を返すようにした

 既にsmode=hogeとかのページのurlが記録されていて、リンクが無くなっても読みに来る。だから、ロボットの類相手にそれらのページは404を返すようにした。
 ロボットか?の判断は、user_agentにhttp:が入っているかどうか。

ロボットなどに対して、サイドバーを渡さないようにした

 検索の邪魔だよね。本文にないキーワードがあるのは。
 さらに、ロボットに送るデータ量が減るという恩恵もあった。無駄なデータが減るのは、互いにとって有益だ。

* RandomNoteの敵はspam投稿用クローラ

#RandomNote #掲示板spam対策 #Web

2007/09/23

 久々に、RandomNoteをspam投稿ロボットが引っかき回していった。
 対策が必要とは思ってるのだけど、たまにしかないし、投稿その物はBASIC認証で弾かれるしで、面倒なので1年以上放置してる。

 後述のような感じで、2時間半にわたり、GETとPOST合わせて800回以上のアクセスを行う酷いロボットだった。
 401で弾かれているのに延々と試行するのは無駄で、馬鹿なプログラムだと思う。ふつー、エラーが出たらとっととあきらめて他の無防備なBBSとかblogとかWikiを探すよう組むと思う。

(ReadMore...)

* iptables -A INPUT -s 66.232.96.0/19 -j DROP

#掲示板spam対策
deny from 66.232.96.0/19
http://baku.homeunix.net/WiKi/rnx/index.rb?1171520140.txt
にて、403を返すようにしても延々POSTし続けて、実にうざい。全て失敗するのでたいした害はないが、いいことは全くない。
…というわけで、TCP/IPレベルで接続を蹴ることにした。これでaccess.logも少々すっきりするだろう。

* deny from 66.232.96.0/19

#掲示板spam対策
 連投がウザイ(*)ので、丸ごと.htaccessでBBSから排除。

$ cat /var/log/apache/access.log | grep POST | grep 66.232 | grep '16/Feb' | cat -n | tail -1
139 66.232.113.98 - - [16/Feb/2007:22:49:40 +0900] "POST ttp://baku.homeuni
x.net/BBS/BBS.cgi HTTP/1.0" 403
 2月16日だけで139件かよ…。

 この範囲の人がこのサイトを見て更に掲示板に書き込みを行おうとする可能性は、無視してもいいだろう。個人向けプロバイダでもなさげな雰囲気だし(唯一逆引きできたアドレスのホスト名は"host.a1hosting4u.com")。

$ whois  66.232.118.177

Country:    US

NetRange:   66.232.96.0 - 66.232.127.255
CIDR:       66.232.96.0/19

*連投の例
(ReadMore...)

* 色々な掲示板spam

#掲示板spam対策 #Web
 うちの掲示板へ書き込みを試みたspam投稿ロボットの形跡を挙げる。
(ReadMore...)

* 掲示板spam対策いろいろ

#掲示板spam対策
 以下3点の判断基準で、海外からの被リンク数稼ぎ無差別投稿は、9割9分9厘排除できている。
(2006年12月末現在)

メールアドレス書いちゃダメ

  • 排除率:9割9部
  • 誤判定率:皆無
 メールアドレスが記されていたらspamと判断。

 今時、foo_bar@gmai.comとかのメールアドレスを掲示板に書き込む「人」はいないよねー。
 でも、なぜか、海外の被リンク数稼ぎのspam無差別投稿ロボットは、mailとか書かれた欄があるとそこにアドレスを書き込むのだ。


<aとか[urlとか、書くな

  • 排除率:9割以上
  • 誤判定率:皆無

 本文(とか)に<aとか[urlとかあったら、spamと判断。

 HTMLとかBBCodeとかは受け付けてないのに、そんなの書くなら「人」じゃない。
 被リンク数稼ぎの無差別投稿ロボットは、なぜか、そんな記法でリンクを張ろうとするのが多い。直接htmlを書けたりする掲示板って今でもそんなにあるの? また、BBCode使えるBBSって、日本じゃほとんど見かけないけど英語圏だと多いのだろうか?


GETとPOSTの時間差が5秒?てめぇ人間じゃねぇ

  • 排除率:5割ぐらい?
  • 誤判定率:かなり低い(設定次第)

 投稿用フォームに時刻を埋め込み、POST時に比較する。

 掲示板のページを開いて文章を書いて投稿するのには、それなりの時間がかかるよね。少なくとも3秒なんてのは人間業じゃないし、10秒ってのもまともに文章を書いてりゃ無理。
 spam投稿ロボットの半数ぐらいはGETしてから5秒経たないうちにPOSTする早い野郎だ。

* spamのPOSTに対して404を返してみる

#掲示板spam対策
 近頃、掲示板へのspam投稿試行頻度が鰻登り。突破率は0.1%もないとはいえ、なかなかに鬱陶しい。
 POSTに対して一見書き込みが成功した風な返答してるのが原因かな、と思い、POSTをspamと判定したら問答無用で404を返すようにしてみた。

2006/12/27,21:36:37,209.213.220.227,"mail2.actslife.org","-","-",GET,"/BBS/BBS.cgi","","1.1",200
2006/12/27,21:36:39,209.213.220.227,"mail2.actslife.org","-","-",POST,"/BBS/BBS.cgi","","1.1",404
 以前は、改造の成果を確認するためにspamのPOSTをいまかいまかと楽しみに待ち構えたものだけど、今や1時間経たないうちに結果が出る。とほほ。

* 3点バーストspam投稿

#掲示板spam対策 #spam例
2006/12/26,19:20:56,72.237.18.167,"","-","-",POST,"/BBS/BBS.cgi","","1.1",200
2006/12/26,19:21:03,72.237.18.167,"","-","-",POST,"/BBS/BBS.cgi","","1.1",200
2006/12/26,19:21:16,72.237.18.167,"","-","-",POST,"/BBS/BBS.cgi","","1.1",200

(ReadMore...)

* 1日あたりの、披spam投稿回数

#掲示板spam対策
$ cat access2BBS_24Dec.txt | grep POST | cat -n | tail -1
48 219.23.20.207 - - [24/Dec/2006:23:32:17 +0900] "POST /BBS/BBS.cgi HTTP/1.0" 200 23406 "http://baku.homeunix.net/BBS/BBS.cgi" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
…というわけで、48回
(2006年12月24日の場合)

 そりゃ、まったく無防備の掲示板だったら完全に機能しなくなるよな。手作業で対応できる量じゃねぇ。


ToDo: POSTとGETの時間間隔の統計を取る

* 最初のGETを使い回すspam投稿ロボット

#掲示板spam対策 #個々事例
spam投稿司令塔とゾンビの兵隊も参照
 GETとPOSTが違うホストから行われる例であり、また、DSBLの効きがめっきり悪くなった例でもある。

2006/12/15,04:24:55,72.36.205.10,"sql3.christiandnsonline.com","-","-",GET,"/BBS/BBS.cgi","","1.1",200
2006/12/15,04:25:15,80.227.0.156,"","-","-",POST,"/BBS/BBS.cgi","","1.1",200
2006/12/15,04:25:19,222.231.50.97,"","-","-",POST,"/BBS/BBS.cgi","","1.0",200
2006/12/15,04:25:21,83.243.108.45,"named.derbynet.pl","-","-",POST,"/BBS/BBS.cgi","","1.0",200
(ReadMore...)

* 新種のspam投稿ロボット「6fNS6」(仮称)

#掲示板spam対策 #Web
 対象ページのtitleをtextareaに放り込んだり、cookieを食べたりと、これまでにやってきた芸のないspamとは毛色が違う。
(ReadMore...)

* layeredtech.comを立ち入り禁止に

 xxx.xxx.xxx.xxx.reverse.layeredtech.comからのアクセス後に、必ずOpenProxy経由とおぼしきspam投稿試行があり、
2006/11/06,10:37:27,72.232.179.242,"242.179.232.72.reverse.layeredtech.com","-","-",GET,"/BBS/BBS.cgi","
2006/11/06,10:37:28,62.225.72.140,"","-","-",POST,"/BBS/BBS/BBS.cgi"
2006/11/06,10:37:36,81.183.212.133,"mail.fairway.hu","-","-",POST,"/BBS/BBS/BBS.cgi"
かつ、まともそうなアクセスもないので、
#xxx.xxx.xxx.xxx.reverse.layeredtech.com
deny from 72.232.0.0/16
として、丸ごとアクセス禁止にした。

 クラスBを丸ごとってのはどうよ?と思わないでもないけど、日本語に堪能でかつゲーム機のRGB出力化改造とかに興味を持った人が、layeredtech.comにいる可能性は極めて低いと判断してアクセス禁止。
 もしも巻き込まれた不幸な人がいたなら、あからさまなspammerをのさばらせているlayeredtech.comを呪うがよい。あくまでGETしかしていないから規約で退会させるって事ができない、のかもしれないけど、それはそれ。

#掲示板spam対策 #Web

* spam投稿司令塔とゾンビの兵隊

2006/10/25,22:18:17,209.67.214.90,"server1.xpressaccess.com","-","-",GET,"/BBS/BBS.cgi","","1.1",200
2006/10/25,22:18:19,201.13.121.178,"201-13-121-178.dsl.telesp.net.br","-","-",POST,"/BBS/BBS/BBS.cgi","","1.1",404
2006/10/25,22:18:22,86.55.117.135,"","-","-",POST,"/BBS/BBS/BBS.cgi","","1.1",404
2006/10/25,22:18:27,59.94.9.179,"","-","-",POST,"/BBS/BBS/BBS.cgi","","1.1",404
 server1.xpressaccess.comがフォームを取得した後、OpenProxy経由での書き込みを試みている様子がはっきりとわかる。
 対象BBSは、DSBLに登録されているホストには問答無用で404を返すように改造してあるので、投稿自体は失敗に終わっている。
 しかし、司令塔みたいなserver1.xpressaccess.comはDSBLには登録されていない。ただの想像だが、DSBLとかに登録されないように運用しているのだろう。BBQでも引っかからないし。で、潰してもいい人様の穴のあいたマシンを踏み台にして、実際のspam投稿を行う、と。


 以下は、他にもあった同様の痕跡。
2006/10/24,23:38:14,72.36.151.106,"dcwindows.net","-","-",GET,"/BBS/BBS.cgi","","1.1",200
2006/10/24,23:38:23,200.204.126.148,"200-204-126-148.dsl.telesp.net.br","-","-",POST,"/BBS/BBS/BBS.cgi","","1.1",404
2006/10/24,23:38:32,61.95.205.88,"dsl-KK-static-088.205.95.61.touchtelindia.net","-","-",POST,"/BBS/BBS/BBS.cgi","","1.0",404
2006/10/24,23:38:33,221.247.27.81,"221x247x27x81.ap221.ftth.ucom.ne.jp","-","-",POST,"/BBS/BBS/BBS.cgi","","1.0",404
2006/10/24,23:38:36,59.94.101.21,"","-","-",POST,"/BBS/BBS/BBS.cgi","","1.1",404

#掲示板spam対策 #Web

* 人とロボットを区別したい

 またRandomNoteの検索キーワードがかき回された。
 今度の犯人は、おそらく先読みプログラムの一種。UAはIEを名乗っているので、種類は不明。

(ReadMore...)