モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

近い未来の画像スパム

最近はスパム本文を画像に入れて、あとはワードサラダで普通の文章をランダムに選択して貼り付け、ベイジアンフィルタを抜ける手法のスパムが多い。
この手のスパムをコンテンツフィルタで排除するために、OCRで文字認識してその文字を認識する方法がある。例えばSpamAssassinから使えるFuzzyOCRプラグインなどがある。
でも、やつらがやろうと思えば、それも無意味だよなあ、と思っていた。

ITmedia News:スパマーの逆襲――進化するアンチ・アンチスパム (1/2)

こちらの記事にも紹介されているが、よく掲示板のスパム投稿のチェックにつかわれる、ゆがんだ文字を表示してコンピュータの認識を難しくする、CAPTCHAのような技術を使う方法だ。


むろんあそこまでゆがませると人間も読みにくくてかなわないだろうが、ちょっとゆがませたり汚したりするだけで、認識率を大きく下げさせることが出来るだろう。
むろん頑張れば認識させられるだろうが、FuzzyOCRでも1通の認識に1秒以上とか掛かってしまう状況で、大規模運用には使えそうにない感じなのに、さらに重くするのはだんだんと現実的で無くなってくる。
そう、やつらは後は数で押せばよいのだもの。
それ以前に、日本語や中国語、韓国語のスパムについては、1通あたりどのくらいの速度で認識できるようになるの、という問題もある。


あと、アニメーションGIFを使って、アニメーションの後半にスパム画像を持ってくるというアンチOCRフィルタもあるようだ。
これ自体は対応を考えることは難しくないと思うが、例えば2枚の画像を短い期間で切換えてちかちかさせ、それで2枚が組み合わさったら意味のある単語になる、とかだったらどうだろう?


スラドで縦書きスパムのことが紹介されてたけど、結局コンピュータがパースするものと、人間が視覚的にパースするものが違う、ということを利用したアンチアンチスパム手法は、原理的にコンピュータ側での対策が難しい、少なくともサーバ側でやるのは負荷的にきつい、ということになると思う。


逆に、さっき書いたCAPTCHAを使ったコメントスパム除けだけど、あれもニューラルネットとかで認識させたらいけるんじゃないのかな、と思ってたら、もうすでに実験して論文が出てるとのこと。

Breaking CAPTCHAs with NNs - Radium Software Development

だから、本気出してアンチアンチコメントスパムツール書くスパマーがいれば(そいつがCAPTCHA抜けるツールをスパマーに売って歩けば)、CAPTCHAだって防壁とはならないということだ。


こうなるとやはり、コンテンツフィルタ系はメールスパムもコメントスパムも、シグニチャURIBLを利用したコラボレーションフィルタ(フィルタ利用者がスパム情報を持ち寄って、そこから判定に利用する情報を共有するもの)を使うのが良いのかな、と思う。
ただ、コラボレーションフィルタは、情報が後手後手に回って検出率が低くなる場合が多いように思う。


で思ったんだけど、一旦スプールに入ったり、コメントとして上がっちゃったりした後もある程度の時間フォローして、シグニチャURIBLで引っかかったら消しちゃう、というのはどうだろうか。
コメントスパムについてはだいぶ有効だと思う。
一旦スプールに入れちゃったりしたのを消すのは少し気持悪いと思うけど、そんなに頻繁に受信しにこないユーザにはスパム認識率向上にそこそこ役立たないかなあ、と思ってみた。