Logo address

SPAM 統計

目次

僕のサーバ(ar.aichi-u.ac.jp)に来るスパムメールの統計(ほぼ一年間)を紹介する。

基礎統計

2007/10/31

期間

まずは smtpd が受け取ったアクセス記録の解析から始める。
記録の先頭データは
ar Oct  6 10:40:46 ehlo from 81.169.174.135 as h5449.serverkompetenz.net
最後のデータは
ar Oct 29 13:07:04 helo from 80.32.153.131 as 131.Red-80-32-153.staticIP.rima-tde.net
である。
年度が記録されていないが、先頭のは 2006 年、最後のは 2007 年である。
記録は不正アクセスに対する処理レポートも含まれている。アクセスの件数を調べるには処理レポートを除かなくてはならない。
term% grep ' (ehlo|helo) from' smtpd|wc
 144487 1300389 9193452
でアクセスの件数が分かる。144487 件のアクセスが 13 ヶ月程にあったわけだ。一日当り 370 件程のアクセスで、この殆どがスパムメールである。

smtpd は明らかな不正アクセスを拒否しているので、これらの全てが僕のメールボックスに届く訳ではない。

gTLD 別件数

僕のメールサーバーにアクセスしたクライアントの gTLD(general Top Level Domain)別統計は次のようになる。
gTLD 別件数(トップ 20)
gTLD 件数 割合
- 41437 29%
net 25975 18%
com 18313 13%
br 9720 7%
edu 7337 5%
jp 4673 3%
cn 4291 3%
it 2861 2%
pl 2623 2%
tr 2084 1%
de 2010 1%
fr 1975 1%
ru 1761 1%
mx 1360 1%
uk 1095 1%
nl 1002 1%
ar 944 1%
in 896 1%
ro 798 1%
au 737 1%
スパマーが名乗るドメイン名(HELO ホスト) は信頼できない。このテーブルの基になっているドメイン名は IP アドレスを基に dnsquery によって得られたドメイン名である。複数のドメイン名がある場合には、先頭の一つだけを使っている。スパマーが使用した全ての IP アドレスを調べてみると、問い合わせ先の DNS が明らかに正しくない応答をしているものもある。しかしそれらは少数で、このテーブルの結果を変える程ではない。

テーブルの最初のテータは gTLD が "-" になっているが、これは dnsquery の応答がなかったものである。この事は DNS に登録されていないバソコンからのアクセスが 3 割を占めている事を意味している。それらの全てがスパーマーによる不正アクセスである。

このテーブルのアクセス件数は正当なアクセスを含んでいる。僕の場合、その殆どがメーリングリストからのもので、さらにその殆どは cse.psu.edu からのものである。cse.psu.edu からは 6175 件で、全体の 4% である。このことから正当なアクセス件数は 5% 程度と推定している。

他の統計に寄ると、93% がスパムメールであると主張されている。僕はスパムが多い方だから、93% 説には納得できる。

gTLD 別の統計はサーバーに寄る偏りが大きいと思われる。僕が受け取るメールは僕のサーバーからのものだけではなく、大学の公式メールサーバーからのものもある。明らかにスパムメールの性格が異なる。大学の公式サーバーからのメールは中国語のメールが大きな割合を占める。(印象的には 9 割程)

HELO ホストのタイプ

不正な HELO ホスト

名乗ったホスト名に "." が含まれていない。この件数は 44956 件で、実に 31% に昇る。
例:
ar Oct  9 10:03:46 ehlo from 71.244.192.226 as friend
これはルール違反で smtpd が拒否する。馬鹿なスパマーだ。

IP を名乗るケース

HELO ホストが IP であることが直ちに分かるもの。
例:
ar Oct 10 18:40:36 ehlo from 60.5.0.69 as [60.5.0.69]
ar Oct  7 22:40:52 helo from 222.99.30.59 as 202.250.160.40
このよぅに 2 種類が観測されるが、第一のタイプは 2996 件(2%)、第二のタイプは 11 件である。これらの殆ど全てがスパムである。しかし、第一のタイプには僕がノートパソコンでアクセスした場合が含まれている。また家庭からのアクセスも第一のタイプだ。第二のタイプは全てスパムである。

DHCP による動的 IP の下でメールを出すニーズは存在するので、第一の例はその場合の正式なやり方なのであろう。

正直者のスパマー

HELO ホストが明らかに IP を基にしていると分かるもの。例えば
ar Oct  6 11:24:15 ehlo from 201.246.80.167 as 167-80-246-201.adsl.terra.cl
ar Oct  6 11:25:38 helo from 82.240.245.107 as riq34-1-82-240-245-107.fbx.proxad.net
のようなものである。このタイプは 9915 件(7%)である。

名乗っている HELO ホストは dnsquery によって調べた FQDN と一致しているので、どうやら MUA が自ら dnsquery によって自分の FQDN を調べて、それを HELO ホストに使っているらしい。

term% awk '{print $4}' r2.txt| grep '[^0-9.]*[0-9]+-[0-9]+-[0-9]+-[0-9]+' |wc
   9915    9915  359539
これらの殆ど全てがスパムである。しかし、このタイプは入り口で拒否できないだろう。何故なら、(一般的に言えば、)正当なアクセスを拒否する可能性があるからだ。

注: r2.txt に整理されたデータが入っている。この第 4 フィールドが HELO ホストだ。

FQDN の解析

2007/11/07

動的 FQDN の形式

HELO ホストは自己申告である。しかし IP を基に dnsquery によって得られた FQDN は(DNS がスパマーの手中に無い限り)そうではない。
そこで FQDN を分析する。

IP から自動生成される動的 FQDN の形式は統一されていない。いくつかの例を挙げる。

IP アドレスを構成する4つの数字が率直に現れるもの

167-80-246-201.adsl.terra.cl	([167-80-246-201])
riq34-1-82-240-245-107.fbx.proxad.net	([82-240-245-107])
殆どはこのタイプである。

変形されたもの

64.97-224-89.dsl.completel.net 	([89.224.97.64])
adsl-dyn9.91-127-15.t-com.sk 	([91.127.15.9])
host46-15-dynamic.11-87-r.retail.telecomitalia.it 	([87.11.15.46])

全ての数字が現れないもの

wschod-114.tp.unicity.pl 	([217.98.25.114])

16 進数で表現されたもの

5ac607fd.bb.sky.com 	([90.198.7.253])

動的 IP のクライアントからのアクセス統計

ISP が動的 IP のクライアントに与えた FQDN には統一した規則が存在しない。規則は ISP に任せられているのが現状である。そのために IP アドレスが FQDN に埋め込まれているか否かの確実な判定は難しい。しかし次のようにすれば大筋の判定ができる。
  1. FQDN から "-" と "." を消去した文字列 S を作る。
    例えば 64.97-224-89.dsl.completel.net から S="649722489dslcompletelnet" を作る。
  2. S の中に数字が 5 つ以上連続して並んでいれば動的 FQDN であると判断する。
    5 と言う数字を選んだのは、静的 FQDN に大きな数字が使われているとは考えにくい事、また動的 FQDN の殆どは 5 つ以上の数字が並ぶ事からである。(動的 FQDN の一部を見逃す事はあろうが、その件数は少ない)
  3. 5つの数字が並ばなかった場合には、S の中に IP アドレスの16進数表現が含まれているか否かをさらに検査する。含まれていれば動的 FQDN と判定する。
この判定法で、FQDN を持たないケース、動的 FQDN からのアクセスを調べると 115588 件であり、これは全アクセス数(SPAM でないメールを含む)の 80% を占める。これらの殆ど全てがスパムである。

スパム対策

2007/11/07
2008/02/11 追加

現状

大学の公式サーバーはスパム対策にベイズフィルターを使っているようだ。スパムメールには表題に "[spam]" のタグが張られるが信頼性は低い。また大量に配信される中国語のスパムメールに対しては全く無力である。僕の結論は「ベイズフィルターは役に立たない」だ。

他方僕のサーバではホワイトリストに存在しないアドレスからのメールを単に

450 mailbox busy, try again later
と一旦拒否する方式をとっていた。これ自体かなり効果はあったのだが、
ので、放っておくとホワイトリストがどんどん大きくなり(殆どはスパマーの IP アドレス)、効果がなくなる。

ポリシー

何をスパムと看做すかは個人差があろう。僕はメールの内容に関わらず以下の特徴の1つ以上を備えたメールをスパムと看做して基本的に排除する。
但し、僕が出したメール、僕がメールを出したことのある相手からのメール、および僕が許した相手(あるいは MTA)からのメールに関してはこの限りではない。

つまり僕はメールの内容を問題にしないのだ。企業からのメールや正当な配送ルートを通ったメールは静的 FQDN を持っておりテキストメールである限り排除されない。しかし「fukubiki.com」のようにブラックリストの中で個別に対応しなくてはならない相手があるが、それらは少ない。

以上の方法は1週間程の実施試験をみる限り非常に旨く働いているようであるが、説得力のあるデータは一年程経過しないと出せないであろう。

注: これまでの間に SPAM にしたくないメールが 3 件ばかりスパム扱いになった。
いずれもチャンとした DNS 名を持っていないメールサーバで運営しているのが原因である。プロバイダともあろう所がねぇー...
ビジネスをやっているのだから、身なりを整えて欲しいね...
(2008/02/11)

ISP に何を望むか

現在 ISP に最も望まれる事は動的 FQDN である事がはっきり分かる DNS の運用である。動的 FQDN からのスパムは ISP の MTA をバイパスしているので、ISP としても対策を採り難く、クレームが来るまで放置する以外にはなかろう。結局メールを受け取る側が防衛するしかない。

他方パソコンからの直接アクセスを機械的に拒否する事はできない。正当なユーザー(僕自身)が巻き添えになるからである。しかし現在では SMTP 認証が普及しつつあるので、認証されていない動的 FQDN によるアクセスは拒否して構わない状況にある。もしも動的 FQDN の確かな判定ができれば、MTA のレベルで殆どのスパムを刎ねる事も可能である。これがやれないのは単に動的 FQDN であることの確信が持てないからである。

以上の考察から社会的レベルでのスパム退治の第一歩は

から始めたらよいことが分かる。これによって個人ベースのスパムは ISP の MTA を通さざるを得なくなり、スパム行為は非常にやり難くなるはずである注1

注1: 僕はスパムを法律に寄って退治するのが良いとも思っていない。本当に必要なケースに対してだけ法律が作られれば良いのだ。

企業ベースのスパムは以上の方法では対応できない。しかしそのような企業は限られているので個別の対応でやっていけるであろう。

現状ではスパムと通常のメールとの境界線は明確ではない。従ってメールボックスに投函される時に、表題に "[spam]" のタグを張るぐらいであろう。

動的 FQDN である事が不明朗な FQDN を与えている ISP からのメールは丸ごと拒否し、その名前を公表するのが良いかも知れない。

スパムの流通ルートが ISP の MTA 経由に限られてしまえば、ISP はスパムに責任を持てるようになる。スパムの巣窟となっている ISP は公表し、メールの受取を拒否するのが良いであろう。

追記: Outbound Port 25 Blocking

2008/03/05 追加

僕は Outbound Port 25 Blocking は過激であり、他の弊害をもたらすと思っていたが、次の記事を見て考え方を変えた。

但しもう少しインフラの整備が必要かとは思う。