前号: No 391 / 次号: No 393 / 一覧(note.com)へ / ブログページに戻る

メールマガジン「がんばりすぎないセキュリティ」No392 (25/02/10)

(かなり)確実にフィッシング詐欺メールを見抜く方法(392号)


今もフィッシング詐欺メールはたくさん来ます。ひっかかる人が多いのでしょうね。

というわけで、今回はズバリ「確実にフィッシングメールを見抜く方法」です。

そんなこと可能なのか!?と驚かれるでしょうが、技術的には可能です。

今回はそのお話をします。


1. ホントにフィッシングメールを見抜けるのか?

いろいろと条件はありますが、結論から言うと可能です。 ですが、世間ではこの話が表に出てくることはほとんどありません。 となると、うさん臭い裏技みたいですよね。    ですが、実際には今回のお話はメールシステムのごく常識レベルのお話で裏技でもなんでもありません。 ただですね、今回の方法を使って確実な判断をするには、広範なメールシステムやネットワークの知識が必要なのですよ。 今回お話するのは基本的な部分だけです。特定パターンにしか適用できません。網羅度を高めようとすると今回の数倍の記事になってしまいます。 つまり、今回の情報だけで確実な識別はできませんし、してはいけないということです。 逃げ口上となってしまって恐縮ですが、今回の内容だけで「これはフィッシングメールだ!」「これはフィッシングメールじゃないぞ!」と判断することは危険です。 フィッシングメールを正規のメールと誤認してフィッシングサイトにアクセスするのは問題外ですし、正当なメールをフィッシングメールと判断して無視する方がマシとはいえ、リスクのある話です。 「どうもフィッシングメールではなさそう」と思った場合でも、ぜひ発信元に電話で問い合わるなど、裏を取るようにしてください。 一方で「これはフィッシングメールだな」と思った場合はアクセスしなければOKです。アクセスしなければ被害は受けませんから。

2. フィッシング詐欺メール

というわけで、フィッシングメール(フィッシング詐欺メール)の話です。 今どき、フィッシングメールを受けたことがないという人は少数派ではないでしょうか。 筆者が「フィッシングメール来ます?」と聞いて「そんなの来ないですよ」と答えた方はほとんどおられません。 怪しげなメールは開くな、知らない人からのメールの添付は開くな/実行するな、メールのリンクはクリックするな、と言われます。 どれも間違っていないのですが、それでもやっちまうのがヒトというものです。 こういった失敗を避けるには安全かどうかの判断基準がたくさんある方が有利ですよね。 そういった判断基準の一つに「このメールはどこのサーバからやって来たのか?」があります。これを活用してフィッシングメールの判断材料を増やそうというのが今回の主旨になります。 でも、どこのサーバから来たかがわかったら、フィッシングメールがわかるってどういう意味でしょうか?

3. フィッシングメールはどこから来るのか?

まず、メールの基本的な仕組みですが、メールというのは以下の順で送信されます。  (1)送信したい人の端末(パソコン、スマホ)    ↓(送信)  (2)送信したい人が契約しているメールサーバ(キャリア、ISPなど)    ↓(送信)  (3)受信先の人が契約しているメールサーバ(キャリア、ISPなど)    ↓(送信)  (4)受信先の人の端末(パソコン、スマホ) 意外に思う方がおられるかもしれませんが、全てのメールはサーバを経由して送信されています。端末から端末に直接メールを送っているわけではないんですね。 この手順は全てのメールで共通で、フィッシングメールを送付する場合も例外ではなく、必ず(2)に該当するサーバが必要です。 送信したい側のメールサーバ(2)から来たメールデータは、受信先のメールサーバ(3)が受け取った時にいつどのサーバから受け取ったかという情報を追記して、メールとして保存します。 さて、正当なメールの場合はともかく、フィッシングメールを出したい場合、この手順はちょっと困るわけです。自分達の発信するメールは正当なサーバから出せないからです。 そりゃそうです。amazonを騙るメールを出したくても、amazon.co.jpが管理するサーバからは勝手にメールを出せません。amazonが許すはずないですから。 フィッシングメールの発信元(上図の2)は非正規のメールサーバからしか送れません。 ということはですよ、メールの発信元のサーバがわかれば、正当なサーバから送信されたかどうかがわかるはずです。 今回の見抜き方のキモはここです。 発信元のサーバを正確に見極められれば、正規のサービスから送られてきたメールかそうでないかを判断できるはずだ、というわけです。

4. メールの構造

メールデータは基本的に全てテキスト(文字)情報で、大きく分けてヘッダ部とボディ部の2パートに分かれています。 ヘッダ部には、メールのタイトルや発信者名、発信日時といった管理情報が入っています。 ボディ部には、皆さんがメーラ(メールソフト)で見ている本文が入っています。 添付ファイルもボディ部に格納されています。 ヘッダ部の一部、例えばタイトルや送信者名はメールソフト上にも表示されます。 ヘッダ部にはそれ以外の情報もたくさん含まれているのですが、大半はメールソフト向けの情報なので、画面上には表示されません。 その中に、上述の発信元のサーバ情報が含まれているのです。 例えば以下はフィッシングメールのメールヘッダです。(一部抜粋。一部伏せ字)  From - Mon Nov 11 18:31:56 2024  Delivered-To: toshi@negibozu.info  Received: from eplus.my (unknown [202.95.213.38])   by xxxxxxx.xxxx (Postfix) with ESMTP id A89771A16B0   for <toshi@xxxxxxxx.xxxx>; Mon, 28 Oct 2024 23:53:49 +0900 (JST)  Sender: admin@eplus.my  Message-ID: <85F566A8EE231BD8B41462E2DCB8109B@pokpfzoad>  From: eplus <no_noreply@email.eplus.co.jp>  To: toshi <toshi@negibozu.info>  Subject: =?utf-8?B?44CQZSvjgojjgorjgJHkuI3mraPliKnnlKjjgYvjgonlrojjgovjgZ/jgoHjga7jgrnjg4bjg4M=?=  Date: Mon, 28 Oct 2024 22:52:06 +0800  MIME-Version: 1.0  Content-Type: multipart/alternative;   boundary="----=_001_0487a6b37634997e_=----" うげっ、てなりそうなくらいよくわからない文字列のオンパレードですが、以下に書きますが、大半は無視して大丈夫です。ご安心を。

5. フィッシングメールの見抜き方

今回のフィッシングメールを見抜くための着目点は、From:で始まる行とReceived: で始まっている行の二つだけです。  Received: from eplus.my (unknown [202.95.213.38])   by xxxxxxx.xxxx (Postfix) with ESMTP id A89771A16B0   for <toshi@xxxxxxxx.xxxx>; Mon, 28 Oct 2024 23:53:49 +0900 (JST)  From: eplus <no_noreply@email.eplus.co.jp> 最初に、From: の行を確認します。  From: eplus <no_noreply@email.eplus.co.jp> ここではメールアドレスの末尾に注目です。 email.eplus.co.jpとなっています。 このドメイン(eplus.co.jp)とメール本文の内容と合っているでしょうか? 今回の例では、eplusからのお知らせという内容でしたから、合致しています。 というわけで、次に Receivced の内容を確認します。 この行(3行に分割されています)はメールがどのサーバから来て、どのサーバが受け取ったかを示しています。 Receivcedの行は次のような構造です。  Received: from 《送信元のサーバ》   by 《受信したサーバ》   for 《メールアドレス》; 《受信した日時》 送信元のサーバ部分は次のように記載されています。  eplus.my (unknown [202.95.213.38]) これは送信元のサーバが(自称)eplus.my であり、DNSの逆引きをしても結果はunknownであり、送信元のIPアドレスが 202.95.213.38 であることを示しています。 と書かれてもさっぱりわからんわ!という方が大半だと思いますが、ここでは先頭のeplus.myに注目です。 このeplus.my は上の eplus.co.jp とは微妙に違います。 ドメインの場合は1文字でも違えば全くの別モノです。 つまり、eplus.co.jpではないドメインからメールが送られてきているということです。 もし、この両者が一致していれば、正しいメールである確率が非常に高いと言えます。 メール内容+メール発信者+メール発信しているサーバの三つが合致していれば、通常は問題ないメールと考えてOKです。 もちろん、それでも発信元に電話確認をすることは良い習慣だと思いますよ。 ただし、この三つが不一致だから、即フィッシングメール認定!とはなりません。 メール配送を他社に依頼している場合、メール配信用に別ドメインを取っている場合などで食い違っても問題ないケースがあるからです。 例えば、以下はamazonからの正しいメールですが、両者のドメインが一致していません。 (一部伏せ字)  Received: from xxx.amazonses.com (xxx.amazonses.com [54.240.24.2])   by xxxxxxxx.xxxx (Postfix) with ESMTP id 48C731A27C4   for <toshi@xxxxxxxx.xxxx Fri, 6 Dec 2024 11:28:04 +0900 (JST)  From: "Amazon.co.jp" <store-news@amazon.co.jp> Received には amazonses.com というドメインが使われ、Fromには amazon.co.jpが使われています。このamazonses.comはメール配信用(と思われる)にamazonが取得した別のドメインです。 ここまで確認しようと思うと、whois(フーイズ)という別サービスの知識が要るのですが、今回は割愛します。 なお、メールによってはReceivcedがいくつも出てくる場合があります。 この場合は、一番上(最初)に出てくるReceived行が正しいものですので、そこに着目してください。 このようにメールヘッダ部を調べることで、かなりの確度でフィッシングメールかどうかをチェックすることができます。 精細なチェックを行うには、上述のwhoisサービスやDNSサービスの知識も必要となりますが、そこまでやれば相当な確度でフィッシングメールかの判定が行えます。

6. ヘッダ部を見る方法

そうそう、肝心のメールヘッダ情報をメールソフトで見る方法を書いていませんでした。 まず、パソコンでメールを見ている場合は、メールソフトのメニューのどこかに「メールのソースを表示」とか「ヘッダ情報の全表示」というのがあるはずです。 それを使えば、メールヘッダ全部を見ることができます。 次にスマホの場合ですが、残念ながらiOSでもAndroidでも標準のメールアプリではヘッダ部を全確認できるオプションなどはないようです。 ただし、Gmailなどのアプリを使えば、メールヘッダを見ることができるケースも多いので、そちらをご利用になるのも良いと思います。

7. まとめ

今回は、フィッシングメールの見抜き方として、メールヘッダを確認する方法をご紹介しました。 メールヘッダというのはメールに必ず付加される情報で、主にメールソフトが参照する情報になります。 ヘッダ部には、メールを発信したサーバの情報が必ず残りますので、それを確認すれば、かなりの確度でフィッシングメール認定が行えます。 ただし、今回の認定方法はごく基本的な部分しか紹介していませんので、これだけを信じての判断は危険です。 もしwhoisやDNSの確認方法などをお知りになりたい方がおられましたら、是非リクエストをお送りください。号外などの形でお届けしたいと思います。 今回の記事が皆さんのフィッシングメール対策に役立てば、とても嬉しいです。 次回もお楽しみに。 (本稿は 2025年2月に作成しました)

前号: No 391 / 次号: No 393 / 一覧(note.com)へ / ブログページに戻る