迷惑メールをフィルタリングする上で課題になるのが誤検知である。「誤検知は起こり得る」というのが各ベンダーの共通した意見である。実際,米IRONPORT SYSTEMSの製品を導入したある教育関係ユーザーの計測結果では,1カ月に受信したメール約270万通のうち,75万通が迷惑メールと判定されたが,7通の誤検知があったという。
そもそも迷惑メールの定義はない。メールを受け取るユーザーが“迷惑”と感じるかどうかは個人の主観による。「ウイルスは白黒をはっきりつけられるが,迷惑メールはどうしてもグレー・ゾーンが出てくる」(ソリトンシステムズ パートナー営業本部 営業・技術支援 マネージャ チーフエンジニア 遠藤健志氏)。
誤検知には2種類ある。迷惑メールを正しいメールと判断してしまうものと,正しいメールを迷惑メールと判断してしまうものである。前者を「False Negative」,後者を「False Positive」と呼ぶ。
送信側も“研究”している
迷惑メールを正しいメールと判断する誤検知(False Negative)が起きる主な理由には,送信側の手口が進化していることが挙げられる。新しい手法を取り入れても,それをかいくぐる手口がすぐに登場する。迷惑メールの送信者は熱心に製品を“研究”しており,検知機能をかいくぐるための手口を使ってくる。
例えばIPアドレスのブラックリストによるフィルタリングは,動的IPアドレスを使われてしまうと効果がない。毎回違うIPアドレスを使って迷惑メールを送信してくるので,止めようがない*14。実際,「自社(NTTコミュニケーションズ)のメール・サーバーを利用した迷惑メールの送信はほとんどなくなったが,最近は自前でSMTPサーバーを立てて送信する手口が増えている」(NTTコミュニケーションズ ブロードバンドIP事業部 サービスクリエーション部 担当課長 甲田博正氏)という。
特定文字列の有無やヒューリスティック分析,ベイジアン分析をかいくぐるための細工を施したメールも増えている。図5[拡大表示]がその例だ。一見すると「VALIUM...XANAX」だが,その部分を拡大してみると「VAqLIUvM...XAxNApX」となっている。これでは別の単語として認識されてしまうので,特定文字列の有無やベイジアン分析では検知しにくい。またメールの末尾にあるケイ線に見えるものは,拡大すると無意味な単語の羅列になっている。“スパムらしくない”単語が大量に含まれているので,ヒューリスティック分析やベイジアン分析で検知される可能性が低くなる*15。
検知機能をかいくぐる手口はこれだけではない。このことをあらかじめ理解し,継続的に新しい対策を取り入れていくことが重要になる。
検知の精度は運用で上げる
正しいメールを迷惑メールと判断する誤検知(False Positive)の方が,ユーザーに与える影響が大きい。「1万通に1通でも誤検知(False Positive)が起きては困るというユーザーが多い」(クリアスウィフト マーケティング ディレクター 宮本哲也氏)。さすがに誤検知をゼロにするのは無理だが,減らすことは可能である。そのためには「チューニングが不可欠となる」(マカフィー マーケティング本部 マーケティング部 プロダクトマーケティング 部長代理 能地將博氏)。
まず導入後しばらくは様子を見る。「最初の1~2週間は全くメールを止めない設定にして運用するのが一般的」(クリアスウィフトの宮本氏)である。迷惑メールと判断した場合も,メールの「Subject」に[SPAM]や[MAYBE SPAM],[SPAM-DETECT],[SPAM-SUSPECT]などの文字列を挿入してそのままユーザーに配信する。誤検知があった場合は,その都度ユーザーに報告してもらう。
このような運用を実施した上で,以下の2つのチューニングを実施する。一つは,迷惑メールとして誤検知されたメールをホワイトリストに登録する方法。ほとんどの製品が迷惑メールと判断されないようにするためのホワイトリスト機能を備えている。取引先のメールなど,IPアドレスやドメイン名などを特定できるものに関してはホワイトリストに登録しておく。
もう一つは,迷惑メールと判断するしきい値の調整である。しきい値を高くすればするほど検知率を高めることができるが,その分だけ誤検知(False Positive)の確率も高くなる。False Positiveが多い場合は,検知率が低くなる(False Negativeが増える)という影響も認識した上で,しきい値を下げるしかない。
ホワイトリストへの登録やしきい値の調整は導入時だけでなく,継続して見直していくことが重要である。
破棄ではなく隔離する
もちろん,これらのチューニングでFalse Positiveがゼロになるわけではない。迷惑メールと判断しても破棄せずに,隔離した上で必ず内容を確認する。「後から人の目で確認する処理がどうしても必要になる」(シマンテック プロダクト・マーケティング部 リージョナル・プロダクト・マーケティング・マネージャ 吉田一貫氏)。
実際,郵船航空サービスでは,特定文字列の有無で迷惑メールをフィルタリングしているが,破棄することはしない(図6[拡大表示])。正常なメールが含まれている可能性があるため,特定のフォルダに隔離した上で管理者が必ずチェックするようにしている。迷惑メールであることを確認できた場合のみ破棄する。
しかし,迷惑メールが大量になると,隔離したすべてのメールを管理者がチェックするのはかなり大変である。そもそも企業によっては,メールの中身を管理者が見ることに対してユーザーから強い抵抗を受ける可能性もある。そのような場合は,隔離したメールをユーザー自身に確認してもらうのが有効である。
このような運用が可能な製品の例としては,Microsoft Exchange Intelligent Message Filterがある。迷惑メールを各ユーザーの迷惑メール・フォルダに隔離する機能を備えている。Exchange Serverのようにサーバー側でユーザーのメールを管理する製品の場合はこうした運用も可能だが,POP3を利用してクライアント側にメールを保存する製品の場合はできない。そこで米Sendmailの「Intelligent Inbox」機能のように,ユーザーがWebブラウザを介して隔離した迷惑メールを確認したり削除したりできる製品もある(画面2[拡大表示])。
米Barracuda Networksの「Barracuda Spam Firewall」は,隔離したメールの情報をHTMLメールでユーザーに通知する機能を備える。隔離したメールの一覧画面で配信や削除を指示すると,HTTP経由で装置にコマンドを送信し,実際の処理を行う。一覧画面上で送信者のメール・アドレスをホワイトリストに登録させることも可能である。
このような機能を備えない製品の場合は,迷惑メールの「Subject」に[SPAM]などの文字列を付けてユーザーに配信し,メール・ソフト側で対処してもらうしかない(図7[拡大表示])。多くのメール・ソフトは,メールに含まれる文字列を見て特定のフォルダに振り分ける機能を備えている。この機能を利用して[SPAM]などの文字列が付いたメールを迷惑メール・フォルダに振り分けるようにする。これにより,ユーザーの受信ボックスに迷惑メールが入らないようにできる。