はじめに
現職でユーザに外部のメールサーバ、独自ドメインでメールをできるようにしております。
ある日、ユーザからメールは送っていないものの、Mail Delivery Subsystemというタイトルのメールが何通も来ているとお問い合わせがありました。
最初、そのお問合せを聞いた時は、??と思ってしまいました。ユーザがメールを送ったことを忘れていたのでは?と思っていたのですが、外部で使用しているメールサーバの会社に問い合わせたところ、ユーザから送信した履歴がないとのことでしたため、調査しました。また、メールの仕組みについてあまり知識がなかっため、学習しました。
Mail Delivery Subsystemとは
上記のエラーは宛先のアドレス間違いや受信者のメールボックスの容量がなかった場合などに発生するエラーです。
以下記事にもエラーの詳細が書かれていますが、身に覚えのないメールは成りすましメールの可能性もあることを知りました。
悪意のある人がユーザのメールアカウントに不正アクセスして、誤った宛先にメールを送っている可能性もあります。
もしなりすましが行われているとしたら、メールサーバの送信履歴が残っているはずですが、それが残っていないということは別の可能性があるのでは?と思いました。
メールヘッダーを確認
メールにはメールヘッダーというどのメールサーバを経由したのか、メールソフトは何を使用していたのかなどの詳細な情報を見ることができます。
GmailやYahooなどのメールソフトからでも簡単に見ることができます。
送信元のメールサーバに関する情報を知りたかったため、Receivedを確認しました。
Received: from 送信したパソコン名またはホスト名など (右記のIPアドレスのホスト名[送信したコンピュータのIPアドレス])
by 受け取ったサーバ名 with SMTPなどの転送方法 id 転送時のID番号
for 宛先のメールアドレス; 処理時刻
引用元: メールヘッダ情報の確認方法
メールサーバのIPアドレスを確認したところ、中国であることがわかりました。日本ではない。
また、Fromの情報を見たところ、「〇〇銀行株式会社」となっており、明らかにお客様の企業名ではありませんでした。
明らかに別の会社がユーザになりすまして、メールを送っていることがわかりました。
でも、どうやってなりすましているのだろうか?
調べたところ、Gmailのようなメールソフトでも簡単に他人のメールアドレスをFromに指定できるようです。
今回もおそらく悪意のある第三者がユーザのアドレスを使用して、スパムメールを大量に送りつけていたと推測されます。
そして、無作為に送ったメールの中には誤ったアドレスもあり、その送信エラーメールがユーザに届いていたと思われます。
対応方法
メールのドメインを変えてもまた変更後のメールアドレスで成りすましをされてしまうイタチごっこになってしまう可能性があるため、ユーザのメールサーバ側で差出人がエラーメール(MAILER-DAEMON@〜)だったものをブロックするようにしました。
エラーメールはゴミ箱に保存されるため、最悪ユーザがメールを送る際にアドレスを間違ってしまった場合や受信側のメールサーバの容量がいっぱいだった場合などにエラーメールはゴミ箱に保存されます。ユーザからメールが送れなかった場合にはエラーメールがすぐに見れないという欠点がありますので、もっと良い方法がありそうな気がしますが、他の方法がチームでも思いづかずでした。
今後
今回の問い合わせ対応でメールに関する基本的な知識が足りないことを痛感して、以下の書籍も読みました。専門的な用語についても平易に書かれており、図も用いて説明されていてとても分かりやすかったです。
実務で使える メール技術の教科書 基本のしくみからプロトコル・サーバー構築・送信ドメイン認証・添付ファイル・暗号化・セキュリティ対策まで
今後は実際にメールサーバをAmazon SESで構築したり、Route53でSPFレコードやDKIMレコードを設定することでよりメールに関する理解を深めていきたいと思いました。