【ランダム文字列】スパム対策がむずかしいのはランダム判定が難しいから

 

スパムメール、スパムサイト、スパムアカウントを機械的に排除しようとしても、なかなかうまくいきませんでした。

その理由の1つに、スパムがランダムな文字列を使っていたから、というのがあります。

ランダムな文字列には、単語を無意味につなげたワードサラダもふくみます。

スパムフィルタを作るにあたって、文字列がランダムか?ランダムでないか?の判定は、超むずかしかったです。

たとえば、ツイッターでスパムツイートを繰り返すアカウントです。

スポンサーリンク

アットマークから始まるID(@xxxxxxxx)が、長くてランダムな文字列になっているのが多かったです。

なので、とりあえず単語や名前になっていないID(アイディー)をはじこうとしたのですが、これがうまくいかない。

普通のアカウントでも、語呂合わせとか、ローマ字の母音を取り出した文字列とかで、ランダムっぽいIDになっているのがたくさんありました。

人の目で見れば、『なんかゴロ合わせっぽいな』とか、『ローマ字を省略した感じだな』とか、だいたいわかります。

ですが、そういうのをプログラムで機械的に判定しようとすると、辞書や正規表現だけでは無理でした(自分が試した限りでは)。

ツイート内容のスパム判定でも、同じようなむずかしさがありました。

スパムアカウントは、トレンドのハッシュタグや単語を、ランダムに組み合わせた内容をツイートしていました。

実際は、ランダムというほどランダムではなくて、単語のレパートリーとかもそんなに多い感じはしなかったです。

ですが、それでもスパム判定はとても難しかったです。

結局、普通のアカウントを通しながら、スパムツイートだけをうまく除外することはできませんでした。

一応、文章中の一部の単語を入れ替えてツイートしていたタイプに関しては、正規表現パターンを作ってはじくことができました。

ですが、短期間でまた新しい文章パターンが作られてしまって、イタチごっこになりました。

定型文にランダムな要素を組み合わせるだけで、途端にスパム判定が難しくなることを思い知りました。

ランダムな要素があると、ひとつのツイートだけでスパム判定をすることはできなくて、前後のツイートを広く見る必要がありました。

このあたりは、ワードサラダ(単語を適当につなげて作った文章)をはじくのが難しかったのと、全く同じ感じでした。

人の目で見ても、部分的に読んだだけでは変だと思いません。

ある程度読み進めてみて、ようやく『文章がおかしい』と気づきます。

Twitterのように短い文章の場合は、一つのツイートだけではなんともいえない。

前後のツイートをながめてみて、ようやく変だとわかる。

同じような投稿を繰り返しているとか、具体的な数字や名称がぜんぜん登場しないとか。

一部をランダムに変化させたスパムツイートやワードサラダは、これはスパムだと、簡単に見分ける方法が無かったです。

一方で、全く同じ内容のツイートを複数のアカウントで発信していたタイプは、容易に検出できました。

簡単に除外できるものもあったという意味では、スパムフィルタ作成にチャレンジしたかいがありました。

ですが、少しでもランダム要素を取り入れたものに関しては、ほぼ無理でした。

あと、普通の人でもランダムっぽいツイートをしていたケースもあって、スパムか否(いな)かの境界は、とてもあいまいでした。

スパムフィルタはとても有益なツールですが、作るのも維持するのも、すごく難しかったです。

スポンサーリンク
ブログ
シェアする(押すとSNS投稿用の『編集ページ』に移動します)
フォローする(RSSフィードに移動します)
スポンサーリンク
シラベルノート
タイトルとURLをコピーしました