櫻庭秀次/インターネットイニシアティブ メッセージングサービス部
サービス推進課シニアプログラムマネージャ

 第1回で述べた通り,いまや迷惑メールはメール全体の8割を占めるようになり,メールシステムの安定運用のためには迷惑メールフィルタなどの対策はもはや必須の機能である。

 迷惑メールかどうかを判断するための鍵としては,主に2つの情報が用いられる。(1)メールの内容そのもの,(2)接続元(IPアドレス)を含めたSMTP(Simple Mail Transfer Protocol)セッション中に得られる情報---である。今回は,これらの対策技術のいく つかについて詳細に解説していく。

ヘッダー情報に迷惑メール特有の特徴がある

 まずは,(1)のメールの内容そのものにより迷惑メールを判断する技術を見ていこう。

 迷惑メールの判断を行う場合,メールの内容は,ヘッダー情報とメール本文それぞれで解析される。ヘッダー情報には,メール受信者に送信元として表示される「From:」ヘッダーや,メールの件名を示す「Subject:」ヘッダーなどがあるが,それ以外にも途中の配送経路を示す「Received:」ヘッダーやメールの構造や文字コードを示す「Content-Type:」ヘッダー,メール固有の値を付加する「Message-ID:」ヘッダーなど様々なものがある。

 これらのヘッダーは,それぞれ決められた書式で記述する必要がある。しかし迷惑メールの中には,大量配信のためか,あるいはボット経由による簡略化によるためか,通常のメールとは異なる何らかの特徴を持つことがある。例えばSMTPセッション中に得られる情報とつじつまが合わなかったり,日付が極端にずれていたりする。これらの特徴を集め,ヒューリスティックに判定ルール化することによって,迷惑メールかどうかの判断に役立てることができる。

 迷惑メールも最近は巧妙化しているため,対応できる範囲はそれほど広くないが,ある程度のふるい分けには有効であろう。

統計的手法を用いてメールの内容から判定

 メール受信者は,最終的にはメールの内容で迷惑メールかどうかを判断する。迷惑メールの目的の多くは,何らかの宣伝活動であるため,その内容を意味的に把握できれば迷惑メールかどうかの判断が可能となる。しかし,現在の計算機技術では自然言語で書かれた文章の意味を短時間で理解することは難しい。このため現在は,統計的な手法で簡易的に判断する手法が一般的である。

 統計的手法とは,メール本文に出現する個々の単語などを「トークン」とし,迷惑メール,通常メールそれぞれに出現する確率をあらかじめ計算しておき,それぞれから最終的な“迷惑メールらしさ”の値を導き出す手法である。統計的手法でよく使われるようになったものにベイジアンフィルタがある。ベイジアンフィルタの名前は,個々のトークンの確率からベイズの結合確率(ベイズ定理)を用いることに由来している。

 ベイズ定理以外にも,最近では隠れマルコフモデルを応用したフィルタなども開発されている。

 これら統計的手法の難しさは大きく2点ある。1つは,メール本文からトークンをどう切り出すか,という問題である。特に日本語の場合は英文などと異なり,単語の区切りを見つけるのが難しい。また,英単語でも最近では「viagra」を「v*1agra」と記述したりするなど,視覚的に似た文字を代わり用いたり,無関係な文字を混ぜることによって機械的なフィルタリングを妨害する難読化の手法が用いられたりしている。

 もう1つは学習の問題である。判定精度を高めるには,あらかじめ十分なトークンの確率データが必要だが,新たなトークンが出現した場合,そのデータを追加する必要がある。

 また,誤判定があった場合にそれを修正するためのデータ変更も必要となる。ここで難しいのは,精度を上げるためには迷惑メールと通常のメールのそれぞれについて確率データが必要な点である。個人的に運用しているフィルタであれば問題はないだろうが,例えばインターネット・サービス・プロバイダ(ISP)やフィルタ・ベンダーなどの事業者に対して,学習のために誤判定した通常の業務メールなどを提供することには抵抗があるだろう。

 情報の提供を受けるISPやフィルタ・ベンダーにとっても,常に正しくメールが提供されているのかについては不安がつきまとう。例えば,判定を妨害するために迷惑メール送信者などがわざと誤ったメールを提供する可能性も否定できない。

 さらに最近では,なるべく本文に情報を載せずにURLを記述するメールも多く,こういった統計的手法が通じないケースも増えている。

SMTPセッション中に得られる情報で迷惑メール判定

 そこで考えられるのが,(2)のSMTPセッション中に得られる情報による迷惑メール判定の併用である。SMTPセッション中に得られる情報はさほど多くないが,それでも有用な情報はいくつかある。

 まず,SMTP接続時に接続元を識別するEHLO/HELOコマンドに続くドメイン名(FQDN)や,送信者情報としてMAILコマンドで指定するメール・アドレス(reverse-path)が存在するものかどうかの確認は基本だろう。送信元のIPアドレスの利用については,第2回でも触れたように,RBLなどを利用することによるブロック手法などに使われる。

 逆に,明確に取引先と判明しているIPアドレスについては,ホワイトリストとして登録し,他の迷惑メール・フィルタ機能を迂回させることによる誤判定の回避や負荷軽減などの手法も有効だ。