* 掲示板spam対策いろいろ
#掲示板spam対策
以下3点の判断基準で、海外からの被リンク数稼ぎ無差別投稿は、9割9分9厘排除できている。
(2006年12月末現在)
今時、foo_bar@gmai.comとかのメールアドレスを掲示板に書き込む「人」はいないよねー。
でも、なぜか、海外の被リンク数稼ぎのspam無差別投稿ロボットは、mailとか書かれた欄があるとそこにアドレスを書き込むのだ。
本文(とか)に<aとか[urlとかあったら、spamと判断。
HTMLとかBBCodeとかは受け付けてないのに、そんなの書くなら「人」じゃない。
被リンク数稼ぎの無差別投稿ロボットは、なぜか、そんな記法でリンクを張ろうとするのが多い。直接htmlを書けたりする掲示板って今でもそんなにあるの? また、BBCode使えるBBSって、日本じゃほとんど見かけないけど英語圏だと多いのだろうか?
投稿用フォームに時刻を埋め込み、POST時に比較する。
掲示板のページを開いて文章を書いて投稿するのには、それなりの時間がかかるよね。少なくとも3秒なんてのは人間業じゃないし、10秒ってのもまともに文章を書いてりゃ無理。
spam投稿ロボットの半数ぐらいはGETしてから5秒経たないうちにPOSTする早い野郎だ。
以下3点の判断基準で、海外からの被リンク数稼ぎ無差別投稿は、9割9分9厘排除できている。
(2006年12月末現在)
メールアドレス書いちゃダメ
- 排除率:9割9部
- 誤判定率:皆無
今時、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を返すようにしてみた。
近頃、掲示板への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以前は、改造の成果を確認するためにspamのPOSTをいまかいまかと楽しみに待ち構えたものだけど、今や1時間経たないうちに結果が出る。とほほ。
2006/12/27,21:36:39,209.213.220.227,"mail2.actslife.org","-","-",POST,"/BBS/BBS.cgi","","1.1",404
* 3点バーストspam投稿
#掲示板spam対策 #spam例
(ReadMore...)
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...)
* e-SocietyRobotよ、動的ページの扱い方をなんとかしろよ
#Web
動的生成されるページを10秒に一回GETするってのは、締め出しくらっても自業自得だと思うぞ。
robots.txtは読むらしいので、このメモからはお引き取り願うことにした。
割と昔からログに散見される割には、いまいち成果が見えなくて、いっそ/からDisallowしたくなる。
e-Society 先進的なストレージ技術およびWeb解析技術
http://cif.iis.u-tokyo.ac.jp/e-society/database/Kitsuregawa_t.html
の「コミュニティ時系列解析」なんかは面白そうなのにな。
Webに負荷をかけるからには、何らかの見返りをWebに返さないと、そのうちWebから閉め出されちゃうぞー。
動的生成されるページを10秒に一回GETするってのは、締め出しくらっても自業自得だと思うぞ。
2006/12/14,07:49:42,"-",GET,"/WiKi/rnx/index.rb","cmd=search&word=#掲示板spam対策","1.1",200,30313,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:49:53,"-",GET,"/WiKi/rnx/index.rb","cmd=search&word=#電子工作","1.1",200,28519,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:50:14,"-",GET,"/WiKi/rnx/index.rb","cmd=random","1.1",200,33033,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:50:25,"-",GET,"/WiKi/rnx/index.rb","cmd=edit","1.1",200,9501,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:50:35,"-",GET,"/WiKi/rnx/index.rb","rss","1.1",200,9118,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:50:50,"-",GET,"/WiKi/rnx/index.rb","cmd=referer","1.1",200,350139,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:51:01,"-",GET,"/WiKi/rnx/index.rb","cmd=change_log","1.1",200,32010,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:51:12,"-",GET,"/WiKi/rnx/index.rb","page=1","1.1",200,27836,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:51:23,"-",GET,"/WiKi/rnx/index.rb","page=2","1.1",200,28107,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:51:33,"-",GET,"/WiKi/rnx/index.rb","page=3","1.1",200,28679,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:51:44,"-",GET,"/WiKi/rnx/index.rb","page=4","1.1",200,32334,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:51:55,"-",GET,"/WiKi/rnx/index.rb","page=5","1.1",200,14081,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:52:06,"-",GET,"/WiKi/rnx/index.rb","1165944355.txt","1.1",200,12767,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
2006/12/14,07:52:16,"-",GET,"/WiKi/rnx/index.rb","fname=1165944355.txt&cmd=edit","1.1",200,11869,"-","","e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)"
robots.txtは読むらしいので、このメモからはお引き取り願うことにした。
割と昔からログに散見される割には、いまいち成果が見えなくて、いっそ/からDisallowしたくなる。
e-Society 先進的なストレージ技術およびWeb解析技術
http://cif.iis.u-tokyo.ac.jp/e-society/database/Kitsuregawa_t.html
の「コミュニティ時系列解析」なんかは面白そうなのにな。
Webに負荷をかけるからには、何らかの見返りをWebに返さないと、そのうちWebから閉め出されちゃうぞー。
* 1日あたりの、披spam投稿回数
#掲示板spam対策
(2006年12月24日の場合)
そりゃ、まったく無防備の掲示板だったら完全に機能しなくなるよな。手作業で対応できる量じゃねぇ。
ToDo: POSTとGETの時間間隔の統計を取る
$ cat access2BBS_24Dec.txt | grep POST | cat -n | tail -1…というわけで、48回
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)"
(2006年12月24日の場合)
そりゃ、まったく無防備の掲示板だったら完全に機能しなくなるよな。手作業で対応できる量じゃねぇ。
ToDo: POSTとGETの時間間隔の統計を取る
* やっつけspam対策
#掲示板spam対策
- メール欄(当サイトではurl欄に転用だが、nameは'mail'のまま)に「@」があったら、それはspam
- 本文に「''<a''」や「''[url''」があったら、(ry
if ($FORM{'mail'} =~ /@/) { $is_spam = 1 ; } if ( ($FORM{'data'} =~ /<a/) or ($FORM{'data'}=~ /\[url/)) { $is_spam = 1 ; }
* 最初のGETを使い回すspam投稿ロボット
#掲示板spam対策 #個々事例
spam投稿司令塔とゾンビの兵隊も参照
GETとPOSTが違うホストから行われる例であり、また、DSBLの効きがめっきり悪くなった例でもある。
spam投稿司令塔とゾンビの兵隊も参照
GETとPOSTが違うホストから行われる例であり、また、DSBLの効きがめっきり悪くなった例でもある。
2006/12/15,04:24:55,72.36.205.10,"sql3.christiandnsonline.com","-","-",GET,"/BBS/BBS.cgi","","1.1",200(ReadMore...)
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
* DSBLが効かない
#掲示板spam対策
7月末にDSBLは効果絶大なんて書いたのだが、近頃(12月現在)はめっきり効果がない。
現在も、掲示板のプログラム冒頭でDSBLに問い合わせて、登録されていたら問答無用で404を返しているのだが、ログを見るとspammerっぽいアクセスの防御率は1割を切っているっぽい。
(詳細な分析はしていないので、ぱっと見だが。
導入当初は「ほとんど」のそれっぽいGETを弾けていたのだけど。
(「メールアドレスとして有効な文字列があったら」投稿拒否しており、それによりほぼ全てのspam投稿は拒否されているが)
原因は不明。DSBLがあまり更新されていないのか、DSBLには登録されないbotnetを使った投稿が主流になったのか…。
どちらにせよ、防御率と誤判定の危険を天秤にかけると、DSBLの使用は、もはやあまりお勧めではない。
7月末にDSBLは効果絶大なんて書いたのだが、近頃(12月現在)はめっきり効果がない。
現在も、掲示板のプログラム冒頭でDSBLに問い合わせて、登録されていたら問答無用で404を返しているのだが、ログを見るとspammerっぽいアクセスの防御率は1割を切っているっぽい。
(詳細な分析はしていないので、ぱっと見だが。
導入当初は「ほとんど」のそれっぽいGETを弾けていたのだけど。
(「メールアドレスとして有効な文字列があったら」投稿拒否しており、それによりほぼ全てのspam投稿は拒否されているが)
原因は不明。DSBLがあまり更新されていないのか、DSBLには登録されないbotnetを使った投稿が主流になったのか…。
どちらにせよ、防御率と誤判定の危険を天秤にかけると、DSBLの使用は、もはやあまりお勧めではない。
* 新種のspam投稿ロボット「6fNS6」(仮称)
* G-LIGHT(等)向け、お手軽spam対策
glight.cgiの400行目あたり↓の部分の
メール欄記入時のエラー条件が反転する。
その結果、メールアドレス欄に記入されていて、かつその文字列がメールアドレスとして有効なものである場合に、エラーが発生する。
英語圏の無差別spamは、ほとんどの場合にformのそれっぽい欄(name="mail"とか)にメールアドレスを入れて投稿するので、この改変でエラーとして弾かれる。
spamが飛び交う昨今、掲示板に無防備にメールアドレスを書き込む人なんていないよね?
Webの日本語圏に蔓延^H^H普及しているKent製の掲示板プログラムでは同じような部分があるので、G-LIGHT以外でも同様の改変が可能であろう。わずか一文字書き換えるだけでいい割には、効果絶大だと思う。
#掲示板spam対策 #Web
if ($in{'email'} && $in{'email'}!~ /^[\w\.\-]+\@[\w\.\-]+\.[a-zA-Z]{2,6}$/)にある「!~」を「=~」に変える。
{ &error("Eメールの入力内容が不正です"); }
メール欄記入時のエラー条件が反転する。
その結果、メールアドレス欄に記入されていて、かつその文字列がメールアドレスとして有効なものである場合に、エラーが発生する。
英語圏の無差別spamは、ほとんどの場合にformのそれっぽい欄(name="mail"とか)にメールアドレスを入れて投稿するので、この改変でエラーとして弾かれる。
spamが飛び交う昨今、掲示板に無防備にメールアドレスを書き込む人なんていないよね?
Webの日本語圏に蔓延^H^H普及しているKent製の掲示板プログラムでは同じような部分があるので、G-LIGHT以外でも同様の改変が可能であろう。わずか一文字書き換えるだけでいい割には、効果絶大だと思う。
#掲示板spam対策 #Web
* layeredtech.comを立ち入り禁止に
xxx.xxx.xxx.xxx.reverse.layeredtech.comからのアクセス後に、必ずOpenProxy経由とおぼしきspam投稿試行があり、
クラスBを丸ごとってのはどうよ?と思わないでもないけど、日本語に堪能でかつゲーム機のRGB出力化改造とかに興味を持った人が、layeredtech.comにいる可能性は極めて低いと判断してアクセス禁止。
もしも巻き込まれた不幸な人がいたなら、あからさまなspammerをのさばらせているlayeredtech.comを呪うがよい。あくまでGETしかしていないから規約で退会させるって事ができない、のかもしれないけど、それはそれ。
#掲示板spam対策 #Web
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",404server1.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
* 人とロボットを区別したい
* spam投稿ロボットと302
spammerの投稿用リストに問題でもあったのか、そもそも存在しない/bbs/bbs.cgiへのアクセスが見られる。
せっかくだから、実験用に302を返すだけのページを用意してみたところ…
へぇ、302を追いかけるのね。
これを利用して、spammerからのアクセスだったら、その宣伝したいサイトに302で誘導して無用な負荷をかけて嫌がらせ…、と思ったけど誤認したときが厄介なのでダメだな。
#掲示板spam対策 #Web
せっかくだから、実験用に302を返すだけのページを用意してみたところ…
2006/09/17,14:48:10,69.41.171.138,"wmstream.libertyleague.com","-","-",GET,"/bbs/bbs.cgi","","1.1",302,302,"http://baku.homeunix.net/bbs/bbs.cgi"
2006/09/17,14:48:10,69.41.171.138,"wmstream.libertyleague.com","-","-",GET,"/bbs/bbs.txt","","1.1",200,0,"http://baku.homeunix.net/bbs/bbs.txt"
へぇ、302を追いかけるのね。
これを利用して、spammerからのアクセスだったら、その宣伝したいサイトに302で誘導して無用な負荷をかけて嫌がらせ…、と思ったけど誤認したときが厄介なのでダメだな。
#掲示板spam対策 #Web
* 掲示板spammeerのPOSTの投げ方
formを生成した時刻をtype=hiddenで記すようにしてみた。
結果、以下のことがわかった。
・フォームの内容は最初にGETしたときのを使い回す
・不明なhiddenは、その時のをそのまま送る
GETするのとPOSTするのとでホストを変えるのを逆手にとって、hiddenでホストに関する情報を入れておくのも手だな。
(ReadMore...)
結果、以下のことがわかった。
・フォームの内容は最初にGETしたときのを使い回す
・不明なhiddenは、その時のをそのまま送る
GETするのとPOSTするのとでホストを変えるのを逆手にとって、hiddenでホストに関する情報を入れておくのも手だな。
(ReadMore...)