システム構成図

spamshutter.com の構成

上図はspamshutter.comの構成図です。通常のフローでは、SMTPサーバがメールを受信した後、各ユーザのメールボックスにローカル配信します。spamshutter.comは、ローカル配信の途中に作業を行います。

分類した結果はユーザ毎に独立したデータベースに登録され、次の分析にフィードバックされます。分類後のメールは、クリーンメールは通常のメールボックスに格納されますが、スパムメールも専用の領域に一定期間、保管されます。これは、もし誤検知が発生してもメール自身を廃棄してしまわないための保障です。

同時にクリーンメールも一定期間、別途保管されます。これは、ケータイへの選択的配信などに使います。うっかりミスで重要なメールを失ってしまった時にも、この保管庫から取り出すことが可能です。

「スパムフィルタ」とは

スパムフィルタには大きく分けて、次の3種類があります。

  1. DNSBL (DNS BlockList) サーバを利用するもの
  2. 単語頻度分析(いわゆるベイジアンフィルタ等)
  3. それ以外の独自の方法

spamshutter.comは、このうち、主機能としては2番目と3番目を使用します。

1番目はDNSBLサーバと呼ばれる一種のDNSを使用します。これは、ボランティア組織などが運営し、スパム等を送出したとみなされたホストをBlockListに登録しています。ところが副作用もあります。以前、NIFTYのIP群が登録されてしまい、NIFTY全体からメールが届かないなどの事件がありました。このため、spamshutter.comでは、主機能としてのDNSBLは使用しません。これに代わり、補助機能としてURIDNSBLを使用します。これは、メール中にサイトへののアクセスURLが含まれる場合に問い合わせるもので、正規メールをスパムと判定する率は極めて少ないのです

2番目は、ほとんどのスパムフィルタで使用される方法です。メールボディーを分析対象とします。スパムに特有な単語の頻度を分析し、スパムである確率を算出します。欠点は、スパムのような正常メールや、その逆の正常なメールにみせかけたスパムメールを、誤って分類してしまうことです。この方法だけで、スパムシャット率はせいぜい 90% 程度ですが、欠かせない機能ではあります。spamshutter.comでは、ベイジアンネットワーク理論を基盤にした、独自開発の単語頻度分析を導入しています。

3番目は、それぞれのスパムフィルタが独自の方法で性能を競います。主としてメールヘッダから得られる情報を分析します(メールボディーの情報も利用します)。これを利用する代表的なフィルタに、オープンソースのspamassasinがあります。これはたいへん優れたソフトウェアではありますが、設定項目があまりにも多く、一般のユーザが使いこなすことは不可能です。spamshutter.comでは、メールを自動的に分析学習する機能を搭載していますので、ユーザの負担は大きく軽減されます。

疑わしさの数値化

spamshutter.comでは、スパムの疑わしさを数値化します。この数値化は、何段回にも行われ、最終的には、メールの外形要因とメールの単語要因を次元とする2次元データに帰着します。前者は上記の3番目、後者は2番目の分析法の結果です。多くのスパムフィルタでは1次元データに帰着しますが、これに比べてより精密な判定を可能にします。残念ながら2次元解析を表示するのが難しいため、さらに1次元に縮約したグラフを示します。

疑わしさの数値化

上図は1次元に縮約しているため正確ではありませんが、数値が50%の付近で正規メールとスパムメールの頻度が分離されています。この谷の部分がくっきりとしている程、スパム判定が良いことになります。

Izumi Cyber Networks Inc.