メールの送信元を完璧になりすます「Mailsploit」は何が危険か

Mozillaの「Thunderbird」や、macOSおよびiOSに標準搭載の「Apple Mail.app」など、多数のメールクライアントにおいて、受信されたメールの送信元を詐称することが可能な脆弱性「Mailsploit」が5日、公開されました。日本語の情報がまだ出回っていないため、自分用のメモも兼ねてまとめました。

今回発覚したこの脆弱性の影響を受けるメールクライアントは非常に多く、先述の「Thunderbird」「Apple Mail.app」だけでなく、Microsoftの「メール」アプリ、「Outlook 2016」、Webメールでは「Yahoo!メール(英語版)」など、世界中でリリースされているほぼ全てのメールクライアントが該当しています。

Mailsploitのサイトでは、実際にそのデモを試すことができます。

Mailsploitのデモ
Mailsploitのデモ

送信先の欄に自分のメールアドレスを入力し、その次の欄で送信元のメールアドレスを入力します。これは自由に決めることができ、デフォルトではトランプ大統領からのメールになっています。

実際の結果が以下になります。見かけだけではなく「メールアドレスをコピー」を行っても、詐称されたメールアドレスがクリップボードにコピーされてしまいます。

この仕組みは、25年以上も前に策定された RFC-1342 を使ったトリックで、非ASCII文字をメールヘッダー内で用いるためにQuoted-printableBase64でエンコードされた文字列を、ほとんどのメールクライアントはデコードする際にサニタイズしないため、ヌルバイト文字や改行文字などをここに混入させることで攻撃が可能になっています。

例えば、現在iOSのメールアプリではヌルバイト文字を混入させることで、それ以降の文字列は無視され、それ以前の文字列のみが表示されるという問題があります。

"From: =?utf-8?b?".base64_encode('[email protected]')."[email protected]"

これが次のような文字列に変換されます。

From: =?utf-8?b?cG90dXNAd2hpdGVob3VzZS5nb3Y=[email protected]

iOSのMail.appではこれが次のようにデコードされます。

From: [email protected]\0@mailsploit.com

ヌルバイト文字列が混入した結果、差出人は “[email protected]” と表示され、攻撃が成功します。

アンチスパムでは防げない

メールの送信元を詐称すること自体はとても簡単な話で、たとえばプログラムでメールを送信する際にはヘッダーの「From」が自由に設定でき、それが送信元のメールアドレスとして表示されます。
しかしこのようなやり方では、スパムメールを防止するために開発された「DMARC」などの仕組みによって、発信元のサーバーとそのメールアドレスのドメインが許可したサーバーが一致するかどうかが検証されます。多くのメールサービスやクライアントはこのほかにも「SPF」「DKIM」などの仕組みでスパムメールを予防しています。

ところが、これらのスパムメール防止機能でもMailsploitの問題を防ぐことはできません。その理由は、DMARCではメールの検証時にドメインのDNSレコードを参照しますが、その参照するドメインは詐称したメールアドレスのドメインではなく、元のメールアドレスのドメインからDNSレコードを参照して検証を行うためです。

つまり、GmailなどのDMARCが設定されているのドメインからの送信ならば、実質的に検証をバイパスしたうえで、さらにメーラー内で「有効な検証である」とお墨付きを得て、ターゲットにフィッシング詐欺や標的型攻撃のメールなどを送りつけることが可能となってしまいます。

*「SPF」および「DKIM」の検証をパスすることができると書いていましたが、どちらもMailsploitを用いらずともパスできます。

メールサービスによっては、XSS(クロスサイトスクリプティング)攻撃(Hushmail、現在は修正済み)、クライアントではローカルファイルに書き込みを行う脆弱性も見つかっています。ただ、どのサービス・ソフトも日本国内でのシェアは低いとみられます。

Mailsploitによって詐称されたメールかどうか確認するには、Thunderbirdであればメールの「ソースを表示」から、ヘッダーの「From:」を見て、正しいドメインからの送信であるかを確認するという方法しか、現在のところありません。

修正パッチの配布状況

Yahoo!(英語版)、ProtonMail、Hushmailなど一部のメールサービスではこの問題はすでに修正されていますが、Apple、Microsoftからはまだ修正プログラムは配布されていません。さらに「Thunderbird」「Opera Mail」ではこれらの問題はメールサーバー側にあるとし、修正プログラムの配布は行われないもようです。そのほかのメールアプリ・サービスの修正状況についてはこちらから見ることができます。
なお、私が個人的に確認したところでは、日本語版の「Yahoo!メール(PC版)」には影響はありませんでした。ほかの国産のメーラー「Becky!」などについては検証できていないため、影響の程度についてはわかりません。

参考:
‘Mailsploit’ Lets Hackers Forge Perfect Email Spoofs | WIRED
https://www.wired.com/story/mailsploit-lets-hackers-forge-perfect-email-spoofs/?mbid=social_twitter_onsiteshare

投稿をシェア

“メールの送信元を完璧になりすます「Mailsploit」は何が危険か” への7件の返信

  1. payloadをall itemにして「Becky!」2.65で試してみた。(最新ではない。スマン。
    期待値は差出人が「[email protected]」になる事だろうけど
    受信したメールは差出人が
    [email protected] @mailsploit.comとか
    “”test” ” とか
    “BEGIN / (|)||@|,|;|:|\|”|/|[|]|?|.|= / END” とか
    微妙にオカシイメールばかりだった。以上

    1. ありがとうございます。 “@mailsploit.com” の部分が見えなかったり、メールアドレスをコピーしても詐称されたものではないのであれば、攻撃は成功しなかったと判断してよさそうです(コードインジェクションなどの問題が残っているおそれはありますが)。

  2. 届いたメールに対して返信メール作成の画面を出して、
    送信先メールアドレスを確認するという手もいいんじゃないでしょうか?

    1. それをごまかすために、Reply-Toヘッダ(返信先)にメールアドレスを設定するという手法も、Mailsploitのサイトでは紹介されています。

コメントを残す

メールアドレスが公開されることはありません。