[Analysis]

スパムメールは根絶できるか

2007/02/13

 「スパムは止められると思う。コンテンツベースフィルタを使うのが、その方法だ」。Lisp界では名の知れた大物ハッカーであるポール・グラハム氏(Paul Graham)は、2002年8月に公開した「A Plan for Spam」と題する論考の冒頭で、そう断言した。あれから4年が経過し、今もまだスパムはやっかいな問題だが、記者はいつかスパムは根絶できるものと思っている。

スパムの“メッセージ”を捕捉すればいい

 グラハム氏がスパムを止められると言った根拠は簡単だ。スパマーの目的は、受信者になにがしかのメッセージを伝えることだが、そうしたメッセージを機械的に捕捉すれば、メールボックスに入る前にスパムを事前に排除できるはずだからだ。あるレベルを超えてスパムが排除されるようになると、「100万通のうち100通が読まれて1人か2人が商品を購入すればいい」というスパム経済の前提が崩れ、スパマーはスパムの大量送信を「コストに見合わない」という理由であきらめるようになるだろう。多くの人の感覚では理解しがたいかもしれないが、スパムメールを受け取って実際にバイアグラ(や、その偽物)を購入している人、援助交際サイトに登録する人というのが、数万とか数十万の受信者のうち1人ぐらいはいるのである。

実際のスパムの弾き方

 メール受信者は長くても1秒程度でスパムか非スパムかを見抜けるわけだし、受信者本人でなくても、スパム排除のために人を雇えば、スパムメールは99.99%ぐらい即座に弾いてくれるだろう。問題は、それをどこまでコンピュータで自動化できるかだ。

 スパム判定は、当初は単純な文字列マッチやヘッダ情報の解析だけにとどまった。やがてスパムの文面が進化し、「Viagra」という文字列は「V1agra」や「V i agra」という変則的な文字列に置き換わった。意図的なスペルミスやランダムな文字列も混入された。「辞書登録のない単語のスパム度判定はニュートラルにする」というアルゴリズムを逆手に取り、まったくランダムな文字列を文末に長々と羅列するという手法も、一時期広く使われるようになり、単純なスパムフィルタだけでは立ち行かなくなった。

大きな効果を挙げたベイジアン・フィルタ

 グラハム氏が2002年に発表したアイデアは今では当たり前になったベイズ確率を用いたスパム判定が有効ではないか、というものだった。2003年には「Better Bayesian Filtering」という論考で、さらにアイデアを発展させ、実験的に実装したフィルタで高い精度を達成している。

 ベイズ確率は、ベイズ推定とかベイズ逆確率とも言われる統計学上の手法だ。「多数の試行の結果を観察し、発生頻度を確率とする」という我々の良く知る“頻度確率”とはプロセスが逆転したような、「結果から原因を推定する」という理論だ。スパムフィルタを例にして言えば、届いたスパムと非スパムの数をカウントしてスパムである確率を求めるのではなく、あるメールが与えられたときに、それがスパムか非スパムかを推定する(どのぐらいの確率でスパムだと言えるかを決める)ための計算モデルだ。「viagra」という文字列があれば99%、「出会い」という文字列なら60%などと決めていく。自分の会社名が入ったものなら0.01%などと低い確率となるため、必要なメールが弾かれるリスクは小さい。

 余談だが、このベイズ確率は我々が確率と呼んでいる頻度確率よりも登場は古く、18世紀にまでさかのぼる。その後、現在広く使われる確率に押される形で忘れられていたが、20世紀後半になってからは注目を集め、さまざまな学問・工学の領域で応用されている。エンジニアリングの世界でも、かつてはファクスのノイズ除去に使われていたり、ヘルプファイルでユーザーが直面する問題から原因を推定する、というプロセスにも使われている。

 グラハム氏が指摘していることだが、ベイズ確率をスパム判定に用いるというアイデア自体は、すでに1998年からあったようだ。ただ、2つあった先行研究はいずれも成果を上げず、このアイデアは埋もれていた。グラハム氏は、先行研究で成果が上がらなかったのは、サンプルとして使ったスパムの数が少なすぎたことが大きな原因だったのではないかと考え、そのことを証明してみせた。

メールソフトやメールアプライアンスに実装

 ベイジアン・フィルタは、最初はUNIX向けのツールとして登場したが、やがてThunderbirdやWindows向けのPOPプロキシとして実装されるようになった。同時に、Webメール系のサービスやメールアプライアンスとしての実装が進み、そうしたスパムフィルタを導入した企業などでは、大きな成果を上げている。記者もThunderbirdを使うようになってからは、1日に届く数百通のスパムメールのうち、手動で削除するのは20〜30通程度になっている。

 ただ問題は、「それでもスパムは進化している」ことだ。例えば最近は「ルパン三世」という差出人からのメールが良く届くが、どうしたわけか、記者のThunderbirdは、なかなかこの文字列をスパムだと学習してくれない。おそらく本文中に、次々と新しい単語を入れ込んでいるのだろう。

画像文字、画像歪曲文字へと進化したスパム

 スパムの進化は単語レベルの話だけではない。スパマーにとって、単語を認識されることがそもそも問題なのだから、文字列を画像にして添付してしまえと、昨年末あたりから、画像を用いたスパムが急増した。

 これに対して、添付画像からOCRと同様の技法でテキストを機械的に読み取るという対策を多くのフィルタが実装した。すると今度は画像に描いた文字列を歪曲させる“Captcha”(キャプチャ)を用いたスパムが現れた。Captchaは、オンラインサービス登録時やブログのコメント入力時に「以下の文字列を入力してください」といって表示されるグニャグニャの文字だ。人間はスラスラ読めるが(そうでないこともあるが、まあ読める)、機械には判読が難しいというのがポイントだ。

 もともとスパマーとスパムフィルタは技術的に追いかけっこしているわけだが、2003年時点でのグラハム氏は、こうした進化を予測していなかったに違いない。

集約すれば効率よく対応できる

 結局のところ、スパムフィルタを自動化するには、最新のスパム技法を抑えこむための技術的コストと、スパム辞書をメンテナンスする人的コストが常に発生し続けると見るのが正しいのではないだろうか。

 いずれにしても、これはもう個々人で対応できるレベルは超えている。では、スパム根絶は困難かと言えば、そんなことはない。2つの可能性が残っていると思う。

 1つはスパムフィルタのメンテナンスを集約すること。現在、多くのWebメールではスパムフィルタを実装しているが、通常のPOPメールも、すべてなにがしかのフィルタを通して受信するようにし、フィルタサービスはパブリックなものとして共有して使っていくことだ。ISPや企業内のメールサーバ、あるいはWebメールサービスといったレベルでフィルタを行えば、辞書メンテナンスの効率も高い。実際、記者は日常的にGMAILを使っているが、まったくと言っていいほどスパムを見かけなくなった。

 現在、こうしたフィルタはローカルで動くパーソナルファイアウォール製品、事業部単位で動かすメールアプライアンス、ISPのサービスと、複数のレベルに分散しているが、どんどん上位へ統合していくほうがいい。

認証強化と法整備の可能性

 スパム根絶のもう1つの方法は、法整備によってスパマーに罰金を科すことだ。

 米国では1991年にファックスを用いたスパムを禁じる法律が成立している。事前に受信者が許可した以外の商業的なファックスを送ると、1通当たり最大500ドルの罰金が科せられる。こうした対策が可能なのは、ファックスの場合は送信者が容易に特定できるからだが、電子メールでは、さまざまに偽装したメールの真の送信者を特定することは難しい。

 身も蓋もないことを言えば、もはや電子メールは認証機能が弱すぎて使い物にならないという段階に来ているということで、もしこのままメールを悪用したスパムや詐欺が横行するようであれば、どこかの時点でSMTPを捨てるときが来るだろう。SMTPにも、SMTP-AUTHやPOP Before SMTPなどの後付けの認証機能があるが、その実装や利用が必須でないのは致命的だ。Sender IDやCaller IDといった認証の仕組みも考案されたが、広く使われるには至っていない。

 SMTPを捨てろというのは暴論に聞こえるかもしれないが、SMTPの限界を感じているのは、何も認証機能のことだけではない。バイナリ添付容量の厳しい制限やアドレス管理の煩雑さ、後付けで使いづらい暗号機能、引用やリプライ、スレッドといったメッセージ構造の不統一や貧弱さと、どれをとっても、できればもうSMTPは使いたくないと思うことばかりだ。フィルタの精度が低いことや1人で多数のメールアドレスを管理するようになってからは、メールが読まれない確率がぐっと高くなって、そういう意味でもツールとしての使い勝手は悪くなる一方だ。

 ビジネス向けSNSは、こうした問題を解決する1つの選択だが、SNSはイントラネットの代替にはなっても、インターネットの代替にはならない。本当に求められているのはIETFで標準化されるぐらいオープンでセキュアなメッセージ送受信のフレームではないだろうか。そうした大胆な移行というものが、メリットがコストを数倍上回らないと起こらないものだとすると、皮肉なことだが、もう1度スパムの嵐が吹き荒れて「いっそSMTPから作り直そう」という議論がスタートしたほうがいいのではないかと思う。そうしたとき、より本質的なのは、インターネットの匿名性に対して何らかの対策を打つということだ。

(@IT 西村賢)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)