pen2 の日記

Twitterには長くて書けないことを書きます^^

【事故報告】 迷惑メール送信時の誘導URLを間違えてしまった

こんにちは。前回のエントリでは多くの反響をいただき、ありがとうございます。今後も役に立つ?メールネタがあれば投稿していきますー。

# はてな は依然としてSPF対応はされていないようですね。書き方が分からないのではあれば、連絡ください!>はてなさん

今回は、私のハニーポット携帯(!)に着信した迷惑メールから、ちょっと面白いモノをご紹介します。

最近の携帯電話の迷惑メールフィルタリングの一つに「本文中のURL」を利用した迷惑メール判定、と言うモノがあります。URLのデータはキャリア側で持っている場合もありますが「ネットスター」などのURLレピュテーションを専門に扱う事業者のものを利用している場合もあります。私もこれを有効にしているのですが、たまにこのフィルターをすり抜けてくる迷惑メールがあります。

「ネットスターのURLデータベースがしょぼいのかなぁ」とも思ったんですが、どうやらそうでもないようで・・・

Subject: 千佳子様専用窓口
From: tousen_happyou_now@yahoo.com
Date: 2009/06/18 21:02

おめでとう御座います!
貴方のお住まいの地域にて、対象者18,232人の中で抽選を行ったところ、見事当選となりました!
下記の【千佳子様専用窓口】にて現金100万円を千佳子様からお受取下さい!
http://fcc.free-free-s.netokanemochi_mx/

トップレベルドメインが ".netokanemochi_mx" になってます。これじゃあ、折角届いても誘導はできないでしょうね。

もう一つの例。

Subject: SEXお相手女性様 個人情報取得済み
From: soku_deai_soku_hotel_soku_sex@yahoo.ca
Date: 2009/06/20 21:11

下記あなた様専用URLより、SEXお相手女性様の【ご本人証明写真】【ご本人証明ヌード写真】
【携帯電話番号】【携帯電話アドレス】を取得して下さい。

■あなた様専用URL
┗ http://{DOMAIN}/k-koukai_jyo_0/

"{DOMAIN}"って・・・。
たぶん、テンプレートエンジンを使って誘導URLの自動挿入をしたかったのでしょう。おそらく、"${DOMAIN}" にすると、上手くいくんじゃないかなぁ・・・?

スパマーも新入社員の季節なのでしょうか?社会の底辺の方々、せいぜいスキル向上頑張ってくださいね。

※ちなみに、今回のエントリが迷惑メール送信者の利益になることはないでしょう。理由は言わずもがな、ですよね^^;

hatena は今すぐSPF宣言しましょう。

どうやら hatena は SPF宣言してないみたい・・・!!

「え?SPF?なにそれ?何のこと?」ってな方が多いとおもいます。
紫外線から守ってくれる奴ではありません。

SPFとは電子メールの送信ドメイン認証のひとつで、「このドメインからはこのIPアドレスでメール送るよ!」とDNSに書いておく方法です。yahooメールやgmailなどのSPF認証に対応した受信サーバではメールを受信すると、"Envelope From"のドメインでDNS TXTレコードを引きます。ここに送信サーバのIPが列挙してあるので、そことセッションIPを比較すれば、なりすましたメールかどうかを簡単に見分けられると言う技術です。

http://ja.wikipedia.org/wiki/Sender_Policy_Framework

これを宣言していないと「なりすましメール」かどうかの判定ができません。今はまだそれほど問題にはなりませんが、携帯各社はすでにSPFを利用したなりすましメールの判定機能を提供しています。最悪、「なりすましているかどうか分からないメールは捨てる」というロジックを組み込んできてもおかしくありません。

DNSにTXTレコード書くだけなので、送信ドメイン認証のなかでは一番簡単です。今どき、メール送る事業者はSPF設定は必須だといえます。

hatena.com ドメインの gmailでの認証結果ですが、これは「受信ヘッダ」をみるとわかるようになってます。(これをラベリングといいます)

Received-SPF: neutral (google.com: 59.106.108.66 is neither permitted nor denied by best guess record for domain of m@hatena.com) client-ip=59.106.108.66;

こんな感じに "neutral" になってしまいます。TXTレコード無いから認証できなかったよ・・・と言う意味です。
TXTレコードがあるかないかは、hostコマンドでも簡単に確認できます。

[kazuya@ariel ~] $ host -t txt hatena.com
hatena.com has no TXT record
[kazuya@ariel ~] $ host -t txt hatena.ne.jp
hatena.ne.jp has no TXT record

ちなみに、当たり前ですが Yahoo!メールとかgmailなんかは ちゃんと宣言してます。

[kazuya@ariel ~]$ host -t txt yahoo.co.jp
yahoo.co.jp descriptive text "v=spf1 include:spf.yahoo.co.jp ~all"
[kazuya@ariel ~]$ host -t txt spf.yahoo.co.jp
spf.yahoo.co.jp descriptive text "v=spf1 include:spf01.yahoo.co.jp include:spf02.yahoo.co.jp include:spf03.yahoo.co.jp include:bulk-spf.yahoo.co.jp ~all"

ただ、ここでちょっとマジックがあります。
実は、先ほどレコードがなかった hatena.ne.jp をgmailで受信すると、なぜか認証が成功(pass)します。

Received-SPF: pass (google.com: best guess record for domain of unknown@hatena.ne.jp designates 59.106.108.66 as permitted sender) client-ip=59.106.108.66;

ぁえ?

これは best guess というSPFのオプション機能で、接続してきたSMTPサーバのセッションIP(59.106.108.66)で逆引きした結果のPTRレコードに、送信元のドメインが含まれていれば 「便宜的に認証成功として取り扱おう」という仕組みです。逆引きIPを設定できるということはそのドメインの所有者の可能性が高いということを利用してるんですね。

この仕組み、gmail ではONになっていますが、Yahoo!メールではOFFになっているようです。SPFを拡大解釈するか否かなので、どっちでも良いと思いますが。

しかし、これだと はてなから来るメールが「認証成功」したり「認証対象外」だったりすると言うことになります。これでは、受信ルールをつくるユーザーは混乱してしまいますよね。

とにかく、SPFさえ設定してくれればはっきりするわけです。
ホッテントリに入ったら対応してくれるんだろうか?どうなんだろ・・・。
うーん。早く設定してください、はてなさ〜ん。