迷惑メールへの対策が最も普及しているのは,受信側のメール・サーバーの部分だ。そこで今回は,送信側より先に受信側の対策を紹介しよう。外部のネットワークから送られてくるメールを,各ユーザーに渡す前に迷惑メールかどうかチェックする。

 ここでチェックするポイントは主に三つ,(1)本文や件名などメールの本体,(2)メール・ヘッダー,(3)メールを受信する前のTCPやSMTPの通信の内容──である(図2-1)。

図2-1●受信側での迷惑メールのチェック・ポイント
図2-1●受信側での迷惑メールのチェック・ポイント
受信側で迷惑メールをチェックするポイントは大きくわけて三つある。(1)本文や件名,添付ファイルなどメールを構成する文字や画像の要素をチェック,(2)メール・ヘッダーの内容をチェック,(3)メール・データを受信する前にTCPやSMTPのやりとりでチェック──だ。
[画像のクリックで拡大表示]

 (1)のメール本体のチェックは,迷惑メール対策として古くから使われている定番だ。本文や件名などメールの内容を基に判断する。チェックすべきデータ量が多いので,処理にかかる負荷が大きくなる。

 (2)のメール・ヘッダーのチェックは,メールに付属するヘッダーの部分を調べるものだ。メールのヘッダーには,送信してきた相手や中継したサーバーなど,いろいろな情報が入っている。この情報から迷惑メールの特徴を探しだして判定する。

 ここまではメールを受信してからの対策である。これに対し,メールの受信前に明らかに怪しい通信は門前払いしようというのが,(3)TCPやSMTPの通信内容のチェックである。

 メールは,送信側メール・サーバーが,受信側メール・サーバーにTCPで接続してから,SMTPのプロトコルを使って送られてくる。この途中で,受信側のサーバーで通信の内容をチェックして,迷惑メールかどうかを判定する。メールの本体を受信する前にチェックするので,メール・サーバーへの負荷が比較的軽いのが特徴だ。

 では,これらの具体的なしくみを順番に見ていこう。

本体はルールかシグネチャで判定

 (1)のメール本体での判定方法としては,大きく分けて,「ルール・フィルタ」と「シグネチャ・マッチング」がある(図2-2)。この二つはメール・サーバー向け対策ソフトや迷惑メール対策アプライアンスといった企業向けの製品だけでなく,パソコン向けの迷惑メール対策ソフトまで,幅広い製品に組み込まれている。

図2-2●本文や件名から迷惑メールを検出する
図2-2●本文や件名から迷惑メールを検出する
ルール・フィルタは「件名に『出会い』が含まれる」といったルールを多数用意して,当てはまるものを探す。一方,メールの特徴的な部分を抜き出して,一定のアルゴリズムを使って数値(シグネチャ)に変換し,ベンダーがデータベースとして用意した既知の迷惑メールのシグネチャと照合するのがシグネチャ・マッチングだ。シグネチャ・マッチングはルール・フィルタと比べて一般に設定やメンテナンスの手間がいらず,誤検知が少ない。 [画像のクリックで拡大表示]

 ルール・フィルタとは,本文や件名に特定の文字列があるかをルールとして設定しておくもの。例えば,「本文に『出会い』が含まれる」,「件名に『格安』が含まれる」といった具合にルールを設定し,これを基に判定する。

 一方,シグネチャ・マッチングは,メールの本文やヘッダーを一定の法則に従って計算したデータ(シグネチャ)を比べて,迷惑メールかどうかを判定する方式だ。同じメールなら当然,同じシグネチャになるし,まったく同じメールでなくとも,似たメールは似たシグネチャとなる。

 例えば,本文が「薬を格安で提供します」と,「薬,格安提供」という2種類のメールのシグネチャが,それぞれ「0x0d 3496」と「0x2e 3496」になるといったように,シグネチャの計算式に工夫が施してある。過去の迷惑メールとの類似性がシグネチャで比較でき,完全に一致しなくても疑わしい迷惑メールを発見できるというわけだ