明かされるスパムメール判定率の実情スパム対策最前線(1/3 ページ)

まるでブラックボックスのようなアンチスパムで、大事なメールが排除されてはたまらない。アンチスパム環境を構築予定の運用管理者はもちろん、ユーザーもスパム排除の仕組みを知っておくことは、予想外のリスクを回避するための新基準だ。

» 2006年03月30日 11時00分 公開
[大澤文孝,ITmedia]

 スパムを排除するためのソフトは数多い。その中でも、サーバサイドで動作するオープンソースソフトウェアの「SpamAssassin」(スパム・アサシン)は、広く知られているものの一つだ。SpamAssassinは、サーバサイドでメールフィルタとして動作し、スパムの判定結果をメールヘッダに追記する。SpamAssassinはApache Foundationの下で提供されているオープンソースソフトウェア(OSS)である(関連リンク)

 3月のオンライン・ムック「スパム対策最前線」のこれまでは、「スパムメールの送信元はどこにある」でスパムの現状についての概要を、「アプリケーションスパムに勝つ秘策」ではスパムメール以外に問題視されているWebアプリケーションのスパム対策について、「スパムを見分けるリテラシー」ではスパムメールを目視判断する上で考えるべき点や対策方法の具体化を解説した。そして、「日本語スパムへ一石を投じる日本SpamAssassinユーザ会設立」ではキーマンによるコラムで日本語スパムに対策を講じる最前線を紹介した。

 今回は、前回に続く第2弾として「SpamAssassin」の詳細に迫っていく。スパム排除とは具体的にどのような仕組みかを見ていくことが目的だ。読者は事例としてSpamAssassinの仕組みを知り、どのようなプロセスでスパム排除が行われるのかを理解してほしい。

 記事の中盤からは具体的な設定方法を挙げていくが、運用管理者でなくても雰囲気が分かるように、ところどころに補足を加えた。

SpamAssassinで知るスパム判定の実情

 SpamAssassinは、Perl言語で作られたスパム判定フィルタ搭載のオープンソースソフトウェアである(関連リンク)。Perlといえば、フリー掲示板などでCGIスクリプトとしても配布されているものが多いため、比較的多くの人が存在を知っているだろう。Perlが何であるか詳細は知らなくてもいい。ここでは、それほどオープンな土壌で作られたもの、ということを理解しておけば十分である。

 SpamAssassinの基本的な動きは単純だ。標準入力からメール内容を受け取り、そのメールがスパムかどうかを判定して、標準設定で表1に示す3つのメールヘッダを加えてから、標準出力へと出力する(図1)。標準出力とは通常コンソール(画面上)への表示を示す。このため、SpamAssassinはメールサーバのプロトコルである、SMTPに特化したツールではないのだ。

 スパム判定のための「設定」は、次に挙げる2つのファイルのいずれかに記述する。

1. /etc/mail/spamassassin/local.cf

 メールサーバ上の全ユーザーで共通設定となる。

2. ~/.spamassassin/user_prefs

 個々のユーザーごとに設定したい場合、このファイルを配置させる(上記の「~」はユーザーのホームディレクトリを示すもの。ISPのホームページスペースを表すチルダとしてもおなじみのもの)。

表1■標準で追加されるメールヘッダ

ヘッダ 意味
X-Spam-Status スパムの結果。最初に「Yes」(スパム判定の場合)または「No」(スパム判定されていない場合)が入り、その後ろにカンマ区切りでスコアリング結果が加わる
X-Spam-Level スパムの認定レベルが「*」の数で示される
X-Spam-Checker-Version SpamAssassinのバージョン番号や実行されたホスト名
図1■SpamAssassinの仕組み
       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ