迷惑メールへの対策が最も普及しているのは,受信側のメール・サーバーの部分だ。そこで今回は,送信側より先に受信側の対策を紹介しよう。外部のネットワークから送られてくるメールを,各ユーザーに渡す前に迷惑メールかどうかチェックする。
ここでチェックするポイントは主に三つ,(1)本文や件名などメールの本体,(2)メール・ヘッダー,(3)メールを受信する前のTCPやSMTPの通信の内容──である(図2-1)。
図2-1●受信側での迷惑メールのチェック・ポイント 受信側で迷惑メールをチェックするポイントは大きくわけて三つある。(1)本文や件名,添付ファイルなどメールを構成する文字や画像の要素をチェック,(2)メール・ヘッダーの内容をチェック,(3)メール・データを受信する前にTCPやSMTPのやりとりでチェック──だ。 [画像のクリックで拡大表示] |
(1)のメール本体のチェックは,迷惑メール対策として古くから使われている定番だ。本文や件名などメールの内容を基に判断する。チェックすべきデータ量が多いので,処理にかかる負荷が大きくなる。
(2)のメール・ヘッダーのチェックは,メールに付属するヘッダーの部分を調べるものだ。メールのヘッダーには,送信してきた相手や中継したサーバーなど,いろいろな情報が入っている。この情報から迷惑メールの特徴を探しだして判定する。
ここまではメールを受信してからの対策である。これに対し,メールの受信前に明らかに怪しい通信は門前払いしようというのが,(3)TCPやSMTPの通信内容のチェックである。
メールは,送信側メール・サーバーが,受信側メール・サーバーにTCPで接続してから,SMTPのプロトコルを使って送られてくる。この途中で,受信側のサーバーで通信の内容をチェックして,迷惑メールかどうかを判定する。メールの本体を受信する前にチェックするので,メール・サーバーへの負荷が比較的軽いのが特徴だ。
では,これらの具体的なしくみを順番に見ていこう。
本体はルールかシグネチャで判定
(1)のメール本体での判定方法としては,大きく分けて,「ルール・フィルタ」と「シグネチャ・マッチング」がある(図2-2)。この二つはメール・サーバー向け対策ソフトや迷惑メール対策アプライアンスといった企業向けの製品だけでなく,パソコン向けの迷惑メール対策ソフトまで,幅広い製品に組み込まれている。
ルール・フィルタとは,本文や件名に特定の文字列があるかをルールとして設定しておくもの。例えば,「本文に『出会い』が含まれる」,「件名に『格安』が含まれる」といった具合にルールを設定し,これを基に判定する。
一方,シグネチャ・マッチングは,メールの本文やヘッダーを一定の法則に従って計算したデータ(シグネチャ)を比べて,迷惑メールかどうかを判定する方式だ。同じメールなら当然,同じシグネチャになるし,まったく同じメールでなくとも,似たメールは似たシグネチャとなる。
例えば,本文が「薬を格安で提供します」と,「薬,格安提供」という2種類のメールのシグネチャが,それぞれ「0x0d 3496」と「0x2e 3496」になるといったように,シグネチャの計算式に工夫が施してある。過去の迷惑メールとの類似性がシグネチャで比較でき,完全に一致しなくても疑わしい迷惑メールを発見できるというわけだ。