■ メールの送信元を追う! (2006年07月14日)
常日頃使っている電子メールは本当に便利なツールです。反面、ウィルスメールや迷惑メールに悩まされるハメ
にもなります。そして差出人の情報は、偽装されている可能性もあります。今回はそんなメールの送信元を追跡してみましょう。
なお、下記の説明の中で<Received:の具体例>と<ウイルスメールの例>は、「メールヘッダのReceivedフィールドの読み方」から、ほぼそのまま引用させてもらいました。記して謝辞に代えさせてもらいます。
<Received:の読み方>
メールはその「本文」とともに、送受信の情報「ヘッダー」も送ります。経由したメールサーバーでは、受信の都度
「メールが どのサーバーから 来て どのサーバーで 受け取ったか」
の受信記録を、Received:フィールドとしてヘッダーに付与します。
例えメールアドレスが偽装されていても、このReceived:情報を元に送信元をほぼ推定できます。(100%ではありませんが・・・)
このReceived:フィールドは、下から上に順に追記され、その基本構成は次のようになります。「from」 と
「by」 に注目してください。
Received: from B by C for Z ;日時 (メールサーバーC
が付記する)
Received: from A by B for Z ;日時 (メールサーバーB が付記する)
A, B, C には通過したメールサーバーの名前(あるいはIPアドレス)が記載されます。上記はアドレス Z 宛のメールを、サーバー A からサーバー B
が受け取り、さらにサーバー B からサーバー C
が受け取ったというように、通過経路を下段から上に読みます。日時の基準は、「0000」が英グリニッジ標準時間で、日本は9時間進んでいますから「+0900」となります。
(注) IPアドレスとドメイン名
インターネット上のコンピュータには、「IPアドレス」という識別番号が割り振られており、データのやり取りはこれを目印に行われます。このIPアドレスは
8ビットずつ4つの数値を、「211.9.36.148」などのように表現します。
このIPアドレスは全世界で重複がないように、各国の
NIC (日本はJPNIC:Japan Network Information Center)が管理しています。ただ、
IPアドレスは数字の羅列であり、人間にとって扱いにくいため、覚えやすい別名で「ドメイン名」として運用するようにしています。
このIPアドレスとドメイン名の対応関係は、DNS(Domain
Name
System)サーバーで管理します。このDNSサーバーで、ドメイン名からIPアドレスを調べることを正引き、逆にIPアドレスからドメイン名を調べることを逆引きといいます。
<Received:の具体例>
Received:フィールドの中身を実際に見ていきましょう。下の例はヘッダーの中から、説明に必要な部分として、Received:、From:
および To:
フィールドだけを抜き出したものです。Received:フィールドを見ることによって、メールがどのような経路を通って、自分のパソコンまで配送されて来たかがわかります。
Received: from mx.rei.topic.ad.jp ([202.211.0.xx])
by
mail.ex.tohoku.ac.jp; Wed, 9 Mar 2005 16:29:14 +0900
Received: from
pc1.rei.topic.ad.jp ([202.211.0.yy])
by mx.rei.topic.ad.jp; Wed, 9 Mar
2005 16:29:02 +0900
From: taro@rei.topic.ad.jp
To:
hanako@ex.tohoku.ac.jp

上図は、太郎君から花子さんへのメールがどのように配送されたかを示しています。太郎君のパソコン pc1.rei.topic.ad.jp(以下
pc1 と書きます)から発信されたメールは、太郎君が使っているサーバー mx.rei.topic.ad.jp(同様に
mx と書きます)と、花子さんが使っているメールサーバー mail.ex.tohoku.ac.jp (同様に
mail と書きます)を経由して、花子さんに届いています。
まず、下段のReceived:フィールドから見ていきます。
Received: from pc1.rei.topic.ad.jp
([202.211.0.yy])
by mx.rei.topic.ad.jp; Wed, 9 Mar 2005 16:29:02
+0900
このフィールドは、サーバー mx が
3月9日(水)の16時29分02秒に、メールヘッダーに書き込んだもので、上図の矢印(a)に対応する部分のメールの流れを示しています。つまり、「by
…」に書かれているマシン(この例では mx)が、「from …」に書かれているマシン(この例では
pc1)から、このメールを受け取ったことを示しています。
なお、「from
…」には、pc1のIPアドレス([202.211.0.yy])も書かれています。太郎君がプロバイダと契約しており、メールをパソコンpc1からプロバイダのサーバー
mx を経由して送信した場合は、このIPアドレスはプロバイダから与えられるIPアドレスになります。
次に、上段のReceived:フィールドを見てみましょう。
Received: from mx.rei.topic.ad.jp
([202.211.0.xx])
by mail.ex.tohoku.ac.jp; Wed, 9 Mar 2005 16:29:14
+0900
もうお分りのように、「by …」に記されているマシン(この例では
mail)が、16時29分14秒に、このフィールドを付けたことになります。そしてこのフィールドは、「mx → mail 」
というメールの配送を表しており、上図の矢印(b)の部分を示しています。
繰り返しになりますが、大事なことは「by …」にあるマシンが、「from …」
にあるマシンからメールを受け取ったということと、そのフィールドを書いたのは 「by …」 にあるマシンであるということです。
<ウイルスメールの例>
Received:フィールドの読み方がわかったところで、送信元を偽装した例を取り上げてみましょう。次のヘッダーは、Netsky.Q
によるウイルスメールのものです。
Received: from ex.tohoku.ac.jp (pasokon.example.jp
[192.42.103.xx])
by mail.ex.tohoku.ac.jp; Tue, 8 Mar 2005 17:35:12
+0900
From: taro@rei.topic.ad.jp
To: hanako@ex.tohoku.ac.jp
一つしかないこの Received:フィールドは、花子さんのメールサーバ mail が付けたものです。そして、「from
…」のところを見ると、ex.tohoku.ac.jp からこのメールを受け取ったように見えますが、一方(pasokon.example.jp
[192.42.103.xx])
というコメント表示があります。
この括弧内のコメントは、受信サーバーが逆引きDNSで、IPアドレスからドメイン名を調べて、その名前を追記したものです。
即ち、このウイルスメールは 192.42.103.xx というIPアドレスを持ち、ドメイン名がpasokon.example.jp
であるパソコンから発信されたことになります。「from …」の直後の ex.tohoku.ac.jp
は、その感染パソコンが自己申告(偽装)した情報をそのまま記しただけであり、正確なものであるとは限らないのです。
これに対し括弧内のコメントは、サーバー
mail が自分で接続元を調べて記したものであり、且つ、サーバー mail
は花子さんが直接接続しているサーバーですから、括弧内のコメントは正確なものです。
もちろん、あるReceived:フィールド自体が偽装されているという可能性を否定することはできまません。もし偽装によって配送経路をごまかしているならば、「from
…」と「by …」の前後関係に矛盾が生じ、そこに注目すれば偽装を見破ることが可能です。
<対処依頼>
結局のところ、Received:フィールドの中で100%信用できるのは、受信者側(ユーザーが登録しているプロバイダ)のサーバーが付けたものだけです。しかし、昨今のインターネット上のメールは、殆どの場合複雑な経路を通らずに、送信者側のサーバーから受信者側のサーバーに直接配送されます。
そのため、受信者側のサーバーが付けた情報によって、一つ手前のサーバー(即ち、送信者側のサーバー)が分かるので、差出人のメールアドレスが正しいかどうかを確認できる場合が多いのです。
すでに紹介した ヘッダー例
では、一番下のReceived:フィールドは、送信者側の「nifty」が付けたものであり、上の2つは内部処理も含めて、受信者側の「k-opticom」が付けたものであることが分ります。
受信者側のサーバーが付けたIPアドレスは、他の誰も改変することはできません。Webでも
ドメイン/IPアドレス【whois情報検索】 などを利用すれば、
このIPアドレスから本当のドメイン運用者を探すことができます。
ウィルスメールや迷惑メールで手を焼く場合には、メールヘッダー全てをコピーして、送信者側のサーバーを運用するプロバイダに送り、その対処をお願いするといいでしょう。
|