2006年5月10日に当ページを開設し、ダミーメールアドレスをトップページに公開しておりましたが、約一ヶ月後の6月11日に、第一通目の迷惑メールが届きました。
それから翌日の6月12日の午前中までに合計38通の迷惑メールを受信しました。これらのメールを分析した結果を以下に示します。
◎迷惑メール収集ロボット対策の効果
受信した迷惑メールのヘッダに含まれているメールアドレスから、どの対策を施したアドレスがメールアドレス収集ロボットによって収集されたのかを調べてみました。その結果を表2に示します。
なお、その本文やヘッダの特徴から、受信した38通の迷惑メールが2種類存在することがわかりました。そこで、この2種類のメールは別々の迷惑メール送信者によって送られたものだと仮定して分析しています。
この2種類の送信者[5]と送信者[6]の送信してきたメールの特徴については後述します。
表2.実際に受信した迷惑メール
| mailto | 本文中 | アドレス収集ソフト対策 | 送信者[5] | 送信者[6] |
(a) | あり | あり | なし | ○ | ○ |
(b) | あり | なし | なし | ○ | ○ |
(c) | あり | なし | @に数値文字参照を利用(@) | - | - |
(d) | あり | なし | javascriptで別ファイルから読み込む | - | - |
(e) | あり | なし | mailto:に数値文字参照を利用 | ○ | - |
(f) | あり | なし | ?subject=dummyを付加 | ○ | ○ |
(g) | あり | なし | ?subject=ダミーを付加 | ○ | ○ |
(h) | あり | なし | 改行を挟む | - | - |
(i) | あり | あり | なし | ○ | ○ |
(j) | なし | あり | なし | ○ | - |
(k) | なし | あり | @に数値文字参照を利用(@) | - | - |
(l) | なし | あり | javascriptで別ファイルから読み込む | - | - |
(m) | なし | あり | 文字の置換え(全角@を使用) | - | - |
(n) | なし | あり | 文字の置換え("あっとまーく"を使用) | - | - |
(o) | なし | あり | タグで分断する | - | - |
(p) | あり | あり | なし | ○ | ○ |
(q) | なし | あり | @を画像化 | - | - |
(r) | なし | あり | アドレス全体を画像化 | - | - |
(s) | あり | なし | アドレス暗号化(javascript使用) | - | - |
"○" = 迷惑メールのヘッダ中(ToもしくはDelivered-Toフィールド)に存在を確認
この結果から、以下のことが推測できます。
送信者[5]はアットマークを手掛かりにしており、数値文字参照非対応、javascript非対応
送信者[6]はmailtoリンクを手掛かりにしており、数値文字参照非対応、javascript非対応、mailto内改行非対応
送信者[5]は事前調査で用いた「メールアドレス収集ソフト1の体験版(結果[3])」と同じ機能を持ったメールアドレス収集ロボットを用いたと考えられます。
一方、送信者[6]は事前調査で用いた「メールアドレス収集ソフト2の体験版(結果[4])」に近い機能を持ったロボットを使ったです。ただし(h)のmailto内改行を行ったメールアドレスの収集には失敗していますので、「メールアドレス収集ソフト2の体験版」よりは機能が低いロボットのようです。
◎迷惑メールの本文とヘッダの解析
受け取った38通の迷惑メールが2種類の送信者によるものと考えられることを前項で述べましたが、この2種類の送信者によるメールは、それぞれ以下の特徴を持ちます。
・送信者[5]のメール(合計32通)
(5a)英語の広告メール(内容はまちまち)
(5b)固定IPアドレスのメールサーバではなく動的IPアドレスのPCから送信されている(送信元IPアドレスはまちまち)
(5c)メールヘッダに書かれている発信時刻がすべて「Date: Wed, 26 Apr 2006 12:44:51 +0400」である(こちらのメールサーバが受け取った時刻はまちまち)
(5d)メールヘッダに記述されている項目がすべて同じ
(5e)ホームページへのリンクが掲載されている
・送信者[6]のメール(合計6通)
(6a)日本語の広告メール(内容は同一)
(6b)同一のIPアドレスのPCから送信されている
(6d)同一の時刻に発信され、こちらのサーバでもほぼ同じ時刻に受信している
(6e)メールヘッダに記述されている項目もすべて同じ
このような点から、32通は送信者[5]という迷惑メール送信者が送ったメールで、6通は送信者[6]が送ってきたものと考えました。
今回の調査は迷惑メール収集ロボット対策の効果を実測することにあるのですが、送信者[5]と送信者[6]のメールを分析していると、興味深いことが分かってきました。
まず、送信者[6]についてですが、こちらは本文もヘッダも全て同一メールを、当サイトのトップページから取得できた(a)、(b)、(f)、(g)、(i)、(p)の6つのアドレス宛てに一斉に送信してきました。このため、合計数が6通になっています。
これは非常にシンプルな送信方法で、私が当初抱いていた典型的な迷惑メール送信者と一致していました。
一方、送信者[5]は当サイトのトップページから(a)、(b)、(e)、(f)、(g)、(i)、(j)、(p)の8つのメールアドレスの収集に成功していますが、送信者[6]とは違い、同じメールをこれらのアドレスに一斉に送信してきてはいません。
表3に送信者[5]から届いたメールの情報をまとめてみました。
表3.実際に受信した迷惑メール
Index | To | Delivered-To | From | Received: from | Subject: |
1 | (e) | (e) | tkueller(*) | 68-119-(*) | cheap oem(*) |
2 | (f) | (f) | tkwvrobinson(*) | 61-231-(*) | Understanding(*) |
3 | (g) | (g) | tkysf(*) | 80-193-(*) | Learn to (*) |
4 | (a) | (a) | tkuehnert(*) | arennes-356(*) | save up to 7O%(*) |
5 | (a) | (b) | tkuehnert(*) | arennes-356(*) | save up to 7O%(*) |
6 | (f) | (a) | tkrushnn(*) | pc-23-10(*) | Cialis for (*) |
7 | (f) | (b) | tkrushnn(*) | pc-23-10(*) | Cialis for (*) |
8 | (f) | (a) | tkrushnn(*) | pc-23-10(*) | Cialis for (*) |
9 | (a) | (a) | tkwxtpruahxdoaxfkra(*) | cpe-67-10(*) | ALL MAJOR(*) |
10 | (a) | (b) | tkwxtpruahxdoaxfkra(*) | cpe-67-10(*) | ALL MAJOR(*) |
11 | (f) | (f) | tkutilek(*) | 248.fib.(*) | 0ver 3OO(*) |
12 | (g) | (g) | tkuehnert(*) | c4178-123(*) | 0ver 3OO(*) |
13 | (a) | (a) | tkuenzlen(*) | 201-13-(*) | cheap oem(*) |
14 | (a) | (b) | tkuenzlen(*) | 201-13-(*) | cheap oem(*) |
15 | (g) | (g) | tkrebsbach(*) | 170.147.(*) | 75% Off for(*) |
16 | (e) | (e) | tknowles(*) | adsl196-246(*) | U want to(*) |
17 | (f) | (f) | tkrause(*) | cpc3-cosh6(*) | Software Compatibility(*) |
18 | (f) | (f) | tkownh(*) | 201-1-(*) | cheap oem(*) |
19 | (e) | (e) | tkuczura(*) | 230.red-(*) | Learn to (*) |
20 | (i) | (i) | tknor(*) | 211-56-(*) | Best software(*) |
21 | (i) | (j) | tknor(*) | 211-56-(*) | Best software(*) |
22 | (f) | (f) | tkropp(*) | 28.red-(*) | No Forms(*) |
23 | (g) | (g) | tlab(*) | 80.178.(*) | Check out (*) |
24 | (j) | (j) | tkowallek(*) | 82-43-(*) | 75% off Regular(*) |
25 | (i) | (i) | tkreckler(*) | adsl196-171-(*) | /iagra at(*) |
26 | (p) | (p) | tkopchynski(*) | softbank219(*) | V1agr@ letter(*) |
27 | (a) | (a) | tkricken(*) | 200-215-(*) | A Rolex (*) |
28 | (a) | (b) | tkricken(*) | 200-215-(*) | A Rolex (*) |
29 | (e) | (e) | tkudary(*) | rtr.seba(*) | save 90%%% on watches(*) |
30 | (g) | (g) | tkycxelptrqul(*) | 201-13-(*) | Beautiful quartz(*) |
31 | (j) | (j) | tkthompson(*) | c-69-245(*) | replica watches(*) |
32 | (i) | (i) | tkrueger(*) | 68-188-(*) | High Quality Rolex(*) |
(*)メールアドレス、ドメイン名、サブジェクトを省略しています
・メールヘッダ情報がメール毎にばらばらである点から分かること
表を見るとまず分かるように、送信者[5]は複数の送信元メールアドレス、送信元IPアドレスを使い分け、様々なサブジェクトのメールを送信しています。(5c)の共通点が無ければ同一の送信者であることに気づかなかったかもしれません。
送信元メールアドレスが複数ありますが、Fromフィールドには実際に存在しないアドレスを書き込んでも問題ありませんので、送信者にとってここはそれほど手間ではないでしょう。しかし送信元IPアドレスが複数ある点から、送信者[5]はインターネットに接続している複数のPCからメールを送信可能であることが分かります。複数の人物が協力して迷惑メール送信を行っているのかもしれませんし、単独の人物がボットネットを利用しているのかもしれません。
・ときどき同じメールが送信されている点から分かること
表の色分けしている部分を見ると分かるように、送信者、送信元IPアドレス、サブジェクトが同一のメールが一部あります。しかし、取得した8つのアドレスに同時に送信するようなことはしていません。このことから、送信者[5]は収集したメールアドレスのリストからランダムにサブリストを生成して、一種類の迷惑メールを送信する際にはそのサブリストの一つを使っていると考えられます。こうすることで、全てのメールアドレスに送信しないようにしているわけです。その理由ですが、迷惑メール対策技術を回避するためだと考えられます。最近の迷惑メール対策技術の多くはおとりメールアドレスへ届いたメールを迷惑メールと判断して、そのメールとのパターンマッチングで防御したり、迷惑メール送信元IPアドレスからのSMTP通信を遮断したりするため、単純に全てのメールアドレスに対して同じIPアドレスから同じ内容のメールを送信すると、フィルタリングされてしまう可能性が高いのです。
メールindex "4,5"、"6,7,8"、"9,10"、"13,14"、"20,21"、"27,28"の組は、それぞれ同じ内容のメールが同じ送信者メールアドレス、同じIPアドレスから送信されてきています。一方、"11,12"は同じ内容のメールですが、別々の送信者メールアドレス、IPアドレスから送られてきています。これは、送信者がある一種類の迷惑メールをばら撒く際に、複数の(おそらくボットに感染した)PCを利用しており、それぞれのPCには別々のメールアドレスサブリストを渡しているためだと考えられます。
・奇妙な点
ここでちょっと不思議な点を列挙しておきます。メールindex "4,5"、 "6,7,8"、 "9,10"、 "13,14"、 "20,21"、 "27,28"の組は同じPCから送信されてきていると考えられますが、なぜかToフィールドが同一でDelivered-Toがばらばらになっています。実際の送信先はDelivered-Toになり、Toの部分は書き換える必要がないため、送信プログラムの手抜きかもしれません。同様に(5c)のように送信時刻が常に同一である点も、手抜きかもしれません。また、送信元アドレスを自動生成しているようですが、その先頭が必ず"t"で始まっている点も気になります。
・サブジェクトを良く見ると分かること
ここではサブジェクトを省略して書いていますが、実はサブジェクトを良く見ると、新しい事実が分かります。index27〜32のメールのサブジェクトは一見バラバラのものに見えますが、中身を読むと全て時計の話題を扱っています。つまりこれらのメールは全て時計(の中古販売か模造品販売?)の広告メールなのです。表の中には示していませんが、こちらのメールサーバでの受信時刻を見てみると、6月12日の3:00〜3:30の間に届いています。
同様にindex22〜26は有名な薬品の広告であることが分かります。受信時刻を見ても6月12日の1:50〜2:20の間に送られてきています。
このサブジェクトと受信時刻の観点から32通のメールを分類すると、index1〜3、 index4〜8、index9〜12、 index13〜17、 index18〜21、 index22〜26、 index27〜32というグループ分けができます。このグループが送信者[5]のメール送信単位であると考えられます。単純なメール送信者であれば同じサブジェクトで送信するところですが、迷惑メール対策技術を回避するために複数のサブジェクトを使っているのだと考えられます。
以上が6月11日から12日の間に届いた迷惑メールの分析結果です。