はてなのCAPTCHAは簡単に破れるというエントリが非常に大きな反響を受けました。
本来、機械によって破られない必要のあるCAPTCHAが、その作りのまずさから
あまりに容易に機械によって破られるということを指摘し、
また対策として機械に破られにくいCAPTCHAとは何なのかということにも触れました。
先の稿ではなぜCAPTCHAを設置するのか?という点については触れませんでしたので
今回それをまとめておきたいと思います。
スパマーは何を思ってスパムをばらまくのか
サイトへの誘導を目的としたスパムが日々投稿されています。これらは何を思って投稿されるのでしょうか?
ひとつは検索エンジンで被リンクが重視されることに注目しての間接的な広告行為という側面ではないでしょうか。
もうひとつはそのサイトへの直接的な誘導なのですが、当然のことながら真っ当な企業がこの広告手法を行うことはありません。
それは、スパム行為が忌み嫌われる行為であることを理解しているからです。
スパムという手段をもって広告をした場合、そもそも企業の信用が失墜します。
スパムは時に法的な手段で排除されることもあるでしょう。利用規約上、許されない行為とされているのが通常ですし、
そうした中で技術的に可能だからという理由で実施すれば、信用を失い回りまわって不利益なることが容易に想像できます。
では、なぜスパムでの広告がなくならないのでしょうか。
それは、スパムで広告されている事業が信用を必要としないからです。
その一番最たるものが架空請求サイトです。詐欺には本物の信用などまったく必要ない。
ですからスパム広告による信用低下というデメリットがない。だからスパムを行えるのです。
コメントスパムのほかにも電子メールによるスパムを幅を利かせています。
これらは送信にほとんど費用がかからない。ダイレクトメールなどに比べて格段に安いわけです。
コメントスパムも機械化することで非常に安価に多量にばらまくことができます。ここがポイントになります。
例えば5万円の架空請求サイトがあったとしましょう。
1億通のメールを送付して、もし仮に100万人に一人の割合でひっかかる人間がいれば、100人×5万円で500万の儲けです。
このように、99.9999%が無駄になっても元が取れる、という経済的な仕掛けがあるわけです。
そして、その0.0001%のために我々が迷惑をこうむる、それがスパムというものなのです。
また、詐欺ではなかったとしても短期に利益を上げては潰すといったタイプの経営手法であれば信用を必要としません。
これにエロといった人間の本能に基づく部分に働きかけ稼ごうとする、そういった連中によって
スパムが繰り広げられているわけです。
スパムとの闘い
jkondo氏が自身のblogにて
スパムとの闘いというエントリを書かれています。
スパマーは機械によって大量のコメントスパムをばら撒いていきます。
これに対抗する手段としてCAPTCHAが採用されていることがわかります。
さきほど、スパムは広くばら撒いてごく一部が引っかかればよいという方法論であることを述べました。
コメントスパムは機械によって大量に送付されていると考えられます。
ですから、機械と人間とを判別して機械を通さない、逆チューリングテストを行おうという考えが出てくるわけです。
ですから、CAPTCHAは機械によって破られないことが求められるわけですね。
そして、はてなのCAPTCHAもどきは機械によって簡単に破ることが実証済みです。
しかし、jkondo氏は以下のように述べている。
まず、スパムコメントですが、これは特定の条件に適合したコメントをスパムとして自動判定して書き込めない措置を取ったり、ゲストがコメントを書くときには画像認証を行うようにしました。(この画像認証については、機械的に識別が可能だという話が先日上がっていましたが、現時点では大きな効果を上げています。効果が無くなればまた改善をします)
機械によって破れるにも関わらず効果が上がっている。それはなぜ?という話になります。
それは、スパマーの大半がスクリプトキディであるからではないか。
何かしらのスパム送信ツールが出回っており、それを使っているだけではないかということです。
こうした、ツールを使うだけのダサい低脳なクラッカーは侮蔑を込めてスクリプトキディと呼ばれます。
人の作ったものを使うだけ、しかも使い方が人に迷惑な方向性なのですから始末に終えません。
いまや一般の方まで広くパソコンを扱うようになりました。
プログラマというのは全体比率からすればごく一部でしょう。
いくらプログラム的には簡単にやれることだといっても、
出回っているツールにそれを組み込むような改造をできる人間は限られる。
スパマーなんてのはコンピュータ犯罪者というイメージがあるわけですが、
別に凄腕なわけでもなんでもない、実はツールを使うためにパソコンを使うような
一般人と変わらないのではないか、そう思えるのです。つまり、悪意に満ちた、ただの人。
ですからスパマーが扱うようなツールを供給するクラッカーが、CAPTCHA破りに対応しようと考えるまでは
たとえどんなに貧弱なCAPTCHAもどきでも効果があるということになるでしょう。
だってただの人であるスパマーにツールの改造なんてできないでしょうから。
クラッカーは個別対応はあまりしない
以下の内容はプログラム的観点からの推測です。実際にスパムツールを手にして検証したものではありません。
Webでコメントの投稿をしたければ、HTTPのPOSTを送信すればいいわけです。
その際のパラメータ名は投稿先のシステムによって違っています。
しかし、コメントスパムの文面を検索すると、複数のBBSシステムに対して同じ文面が
投稿されている例を見つけることができます。
同一文面が結構な数ばらまかれていることからも複数のシステムへの仕分けを手作業でやっているとは思いえません。
多分、スパムツールはメジャーなBBSシステムの種類とパラメータ名ぐらいは
マッチングさせられる用にリストを用意しているのでしょう。
Webで公開されているフリーのBBSシステムなどをダウンロードしてきてサーバに設置していると、
よくコメントスパムが送られてきます。
これは運営している人間が違っても使っているシステムが同じである以上は同じ方法でスパムを投稿できるからでしょう。
逆に独自に作ったBBSには機械的な大量のコメントスパムが送られてきたことはありませんでした。
これはスパマーの対応BBSシステムにリストアップされていないからではないでしょうか。
対応したところでたかだかひとつのBBSがターゲットにできるだけのことですし。
しかし、独自に作ったシステムといえど、シェアが大きい場合はスパムの標的にされることでしょう。
はてなのようなシステムではひとつ破ればはてなユーザ分のダイアリーにスパムできるわけですから。
はてなのシステムはスパムツールの対応BBSの一種としてリストアップされているのではないでしょうか。
さて、ここまでならどの種類のBBSシステムはどういうパラメータを持っている、というだけの話でした。
この程度の管理であればパソコンを触れる程度の人間でできてしまうでしょう。
ツールを使える程度の人間でスパム対象となるBBSシステムを追記していける。
しかし、ここにCAPTCHAというものが入ってくるとスクリプトキディの手には負えなくなる。
もしスパムツールがよく設計されたものであれば(そうでないことを祈りたい)CAPTCHA解読部分だけ
プラグインで増設可能なように設計することでしょう。
しかし、単にパラメータを調整するだけというものから、プラグインを個別に作るというところまで
手間が一気に増大するわけです。
どれだけこの手間が大きいか、難易度が高いか。そこがポイントとなります。
クラッカーがはてなのCAPTCHA解読プラグインを作ったとしても、それはシステム運用側がなんらかの対策をするまでの
寿命しか持ち得ないわけです。この手間と利益(?)バランスこそがCAPTCHAを有効たらしめているのです。
もっとも、小一時間で破れるCAPTCHAもどきというのは、システム変更までの時間×ターゲットとなるユーザ数と
いうものと秤にかけたときに、クラッカーが割に合わないと考えてくれるのか微妙に思えたのです。
トラックバックのスパムは厄介
さきほど、独自システムではコメントスパムがくることは少ないという話をしましたが、
トラックバックの場合は独自システムだったとしてもがんがんスパムが飛んできます。
それは、トラックバックというシステム自体が、システム同士でやり取りできるように作られたモノであるからです。
BBSは作った人によってパラメータの名前も違えば入力できる項目も違う。
しかし、システム間でやりとりされるトラックバックは規格が決まっているわけです。
だからこそ、標準規格に則って作ることで、非常に汎用的なトラックバックスパムツールを作れてしまう。
トラックバックにはCAPTCHAのような仕掛けをはさむ余地はありませんから、
むしろ厄介なのはトラックバックスパムなのではないかと思います。
個人的な経験からすると、トラックバックスパムの大半は、aタグによるリンクを含む本文を送ってくるため、
そのようなタイプのトラックバックpingをはじくことで比較的効率よくはじけるのですが、
単なる被リンク稼ぎのトラックバックなどもあって対策が難しい。
いろいろと工夫してフィルタリングすることになるのですが、誤認識も多くあり、
トラックバックpingを飛ばしたけどもうまく受理されないこともよくありますね。
投稿日時 : 2007年11月3日 18:06