なりすましメール対策や第三者中継対策をする必要があります。
電子メールシステム
MTA
MTAとは、メールを送受信するサーバです。
外部にメールを送出したり、外部からのメールを受信、中継するためのプログラムです。
この時に使うプロトコルがSMTPです。
MDA
MDAとは、ローカルメーラーのことで、受信したメールを受信BOXに振り分けます。
MRA
MRAとは、ユーザからメール受信要求によって、メールボックスからメールを取り出してMUAに送信sるうプログラムです。
POP3やIMAPなどのプロトコルを利用して、MUAと通信します。
MUA
MUAとはメーラーのことで、メールを作成するソフトのことです。
メールの送受信に利用する、メールアプリケーションソフトウェアです。
メールボックスのメールを読む時に使うプロトコルがPOP3やIMAPです。
POP3やIMAPを使って、MRAと通信します。
SMTP-AUTH
メール送信時にユーザ認証を行う方法です。
社内から外部にメールを送る場合などに認証をさせます。
メールヘッダ
メールはヘッダーと本文で構成されています。
ヘッダーは、以下のように色々な情報が記載されています。
Recived
Recievedには、送信元・受信先・プロトコル・処理時刻などの情報が記載されます。
転送されるたびに下から上に追記されるので、一番下のRecivedがはじめにメールを送信した時の情報になります。
From
ヘッダに記載されたFromは、送信者のメールアドレスを示します。
自由に設定できるため、他人のメールアドレスでなりすますことも可能です。
別名「ヘッダFrom」とも呼ばれます。
To
ヘッダに記載されたToは、受信者のメールアドレスを示します。
攻撃者は、受信したいメールアドレスを指定します。
別名、「ヘッダTo」とも呼ばれます。
SMTPの通信シーケンス
TCPで通信します。
MAILコマンドは、「MAIL FROM:送信者アドレス」を実行します。
MAILコマンドで指定する送信者アドレスを、エンベロープFromと言います。
エンベロープFromは、何を記載しても良いため、なりすましが可能です。
RCPTコマンドでは、「RCPT TO:受信者アドレス」を実行します。
RCPTコマンドで指定する宛先アドレスを、エンベロープToと言います。
エンべロープToは、本来の宛先を指定します。
エンベロープFromとヘッダFrom、エンベロープToとヘッダToは全く別物として扱います。
そのため、両者が一致している必要はありません。
SMTPで送信する時は、ヘッダアドレスを見ていないんだね。
ヘッダアドレスはメーラー向けなので、送信時には確認しません。
そのため、ヘッダFromに本物のアドレス、エンベロープFromに攻撃用のアドレスを指定することが可能です。
ヘッダを見ただけでは気がつくことができません。
メールサーバでの対策
第三者中継
送信者が外部ユーザで、受信者が外部ユーザ宛のメールを配送・中継すると、
迷惑メールの踏み台として自身のメールサーバを利用されてしまいます。
受信者から見ると、自身の正常なメールサーバから送信されたメールと認識されるため、
迷惑メールに気づかず受信してしまいます。
そのため、自身のメールサーバを踏み台にされないよう、第三者中継を禁止する必要があります。
第三者中継禁止は、別名オープンリレーとも呼ばれます。
送信ドメイン認証
送信ドメイン認証とは、送信元メールアドレスのなりすましを検証することです。
- IPアドレスを利用(SPFの利用)
- ディジタル署名(DKIM)
上記にDMARCを組み合わせることで、検証失敗メールの扱いを通知するレポート送信も行うことができます。
SPF
SPF(Sender Policy Framework)は、メールを配信しているメールサーバのIPアドレスと、エンベロープFromで指定された送信元メールアドレスのドメイン名の対応を、DNSの情報を用いて検証します。
エンベロープFromに記載された送信側サーバのDNSサーバにSPF情報を問い合わせます。
DNSサーバは、SPFレコードを前もって登録しておき、問い合わせがきたら確認します。
SPFレコードは、DNSのゾーンファイル中に記述します。
ゾーンファイルには、IPアドレスとホスト名の対応などドメインの情報が記載されているファイルです。
DNSでの検証の結果、一致しなかった場合の対応は、受信側メールサーバの設定により異なります。
SPFによる送信ドメイン認証を行うには、受信側のメールサーバが送信ドメイン認証を行う設定にしている必要があります。
さらに、なりすまされたサーバのドメイン認証のために、送信側のDNSサーバに事前にSPFレコードが登録されていることも必要です。
なお、DNSサーバにSPFレコードが登録されていない場合、検証に失敗し、迷惑メールを防ぐことができなくなります。
SPFレコードの登録
DNSのゾーンファイルにホスト名とデータを登録します。
IN MX 優先順位の番号 メールサーバのホスト名(FQDN).
IN TXT “v=spf1+ip4:メールサーバのIPアドレス -all”
MXの末尾には、ピリオドが必要です。
DKIM
DKIM送信するメールサーバがメールに署名をつける方法です。
受信したメールサーバは、送信元のDNSサーバにDKIM情報を問い合わせます。
問い合わせを受けたDNSサーバはメールサーバの公開鍵を渡すことで、検証可能になります。
検証で失敗した場合はDMARCにより判定します。