スパムとの闘い

はてなダイアリーのデザインの見直しを行った次に手をつけたのは、スパム対策でした。
ブログを用いたスパムは昨年ころからどんどん増加していて、今年の2月時点で、はてなダイアリーに毎日投稿される全5万件のコメントのうち、実に90%以上がスパムコメント、という状況でした。また、トラックバックスパムや、スパムブログも毎日大量に投稿されています。
はてなダイアリーでは、サービス開始当初からアダルトコンテンツの掲載や無許可の商業行為を禁止しています。しかし、常に新手のスパムが出現し、こちらの監視を掻い潜ろうとしています。これらのスパムとは本当に長い闘いを続けています。

まず、スパムコメントですが、これは特定の条件に適合したコメントをスパムとして自動判定して書き込めない措置を取ったり、ゲストがコメントを書くときには画像認証を行うようにしました。(この画像認証については、機械的に識別が可能だという話が先日上がっていましたが、現時点では大きな効果を上げています。効果が無くなればまた改善をします)
2月、3月はこうしたスパムコメント対策に力を入れ、大幅にスパムを削減することが出来ました。現在は、ゲストのコメントを許可していても、ほぼスパムコメントが入らないようになっていますが、これには、裏側でたくさんの仕組みが動いてスパムを日々はじいています。(ゲストにコメントを許可していてスパムをブロックする設定をオフにしている方はぜひフィルタをオンにすることをお勧めします)

続いて手をつけたのがトラックバックです。トラックバックは、今年の7月時点で1日2000件のトラックバック中約600件がスパムという状態でした。これに対しても新しいフィルタを導入することで、大部分のスパムトラックバックをはじくようになっています。

そして一番厄介なのがスパムブログです。こちらは相手が人間で、毎日新しい文章を用意して新しい書き込みを行ってきます。スパムブログというのは、ページの中に大量のキーワードやアダルトコンテンツを含ませて、キーワードの含む日記から商用サイトやワンクリック詐欺サイトに誘導を図ろうとしたりします。

こうしたスパムブログは日々目視で確認し、非公開措置を取っています。
f:id:jkondo:20071031235033p:image
これは、非公開措置を行ったブログ数の推移グラフですが、今年の夏ごろには1日100件以上、多い日は300件ものスパムブログを非公開にしていたことが分かります。

この処理にはたくさんの労力がかかり、また仕事としても大変な仕事なのですが、サポートチームを他のメンバーが手伝い、開発チームが効率的にスパムを発見できる仕組みをどんどん進化させてより短時間でスパム判定>非公開処理が出来るシステムを作るという形で、社内の人間だけで対処を行っています。

この非公開措置を多い時は1日4回も行うことで、なるべく一般ユーザーの方に不快な思いをさせることがないよう努力してきましたが、それでもまだ限界がありました。

スパムブログを発見→非公開、という措置を行うだけでは、永遠にいたちごっこになってしまいます。スパムブログの目的は、キーワードページやおとなり日記などに表示され、自分のブログにユーザーを誘導することが目的ですから、この部分を止めることが根本的な問題解決につながります。

そこで、サポートで使っているスパムブログ検出システムにさらに改良を加え、これらのブログが含む日記やおとなり日記に表示されないような措置を行いました。この措置により、スパム業者も「やっても意味が無い」と諦めてくれたのか、9月に入ってようやくスパムブログの数が減りました。

どのような判定を行っているのかを詳細に書くことはできませんが、判定のためのアルゴリズムは何種類もの方法を試したうえで、なかなかユニークなアルゴリズムをエンジニアが考え、効果に結び付けています。

参考:キーワード機能を悪用したワンクリックスパムダイアリーの状況について

スパム対策は労力がかかる割りにあまり目立たず、なかなか評価されにくい仕事です。この時間を新機能開発に注ぎ込めたら、とスパム業者を恨めしく思うこともしばしばですが、これから増加するであろうブログ初心者の方々が、安心してはてなを使って頂けるためには、避けては通れない道であると考えています。

幸い、半年間に渡って重点的に行ったこうした対策によって、かなりの改善が行われており、はてなダイアリーは随分と「スパムが少なく安心して使えるブログ」になっているのではないかと思います。

スパム対策に多大な貢献をしたid:riko,id:aql,id:kiyoheroに敬意を表しつつ、今後も引き続き対策を行っていきたいと考えています。