サイバー戦争の手引き:詐欺メール防衛戦

弛まずHackを続けるサイバー空間 LdLuS へようこそ

サイバー戦争の手引き詐欺メール防衛戦 > 詐欺メールの見分け方 上級編

更新日:2024/8/2

詐欺メール防衛戦
詐欺メールの見分け方 上級編

個人的なメールアドレスにせよ、会社で使っているメールアドレスにせよ、どこから嗅ぎつけるのやらいつの間にか不審メールが届くようになるのはもはや日常風景。そしてそれは大企業も中小企業もあまり大きな差異はない。そして、こうした不審メールや詐欺メールと呼ばれるものが、攻撃の入り口となるケースが7割から8割に登ると言われており、決して甘く見てはいけないものとなっている。騙されてしまった時には然るべき対処を素早く行うことが何よりも大事である。

今回は上級編ということで、システムエンジニアなど専門家向けの内容となっている。当研究所で実施しているDMARC施策も織り交ぜながら解説させていただく。

メールヘッダーによる見分け方

普段メールを見ているときには表示されていないが、このメールがどういう経路で届けられたのかが記載されているメールヘッダーという情報を裏で保持している。例えばxxxx@ldlus.orgからxxxx@gmail.comに送付すると以下のようなメールヘッダーになっている。メールヘッダーの確認方法はメールソフトによって異なるため、お使いのメールソフトでどう確認するのかは各自調べていただきたい。

		Delivered-To: xxxx@gmail.com
		Received: by 2002:a05:7000:6516:0:0:0:0 with SMTP id c22csp1617321mal;
		        Sat, 11 Dec 2021 20:53:34 -0800 (PST)
		X-Google-Smtp-Source: ABdhPJzNT45c/Vc3pkiKQgqpBEGb+J5vbTBRlb+e3AQGNp671UW3DJ91vTotkfDwdmymZt4iyQ/O
		X-Received: by 2002:a17:902:ecca:b0:141:e920:3b71 with SMTP id a10-20020a170902ecca00b00141e9203b71mr84679551plh.10.1639284814594;
		        Sat, 11 Dec 2021 20:53:34 -0800 (PST)
		ARC-Seal: i=1; a=rsa-sha256; t=1639284814; cv=none;
		        d=google.com; s=arc-20160816;
		        b=j2nzhm2Rawn0EpbftassFlbooG2h5ovVa8WRRgtU2KelhYCbojbLviSwIbYdcogZqk
		         qFo45EbgentkqIdF8cFQfuxxW96z6DT+a8w/z7Rdy2T7pbkXBkR6C20rqlv8OUefv7+G
		         /2OAdvvpvpml+Gcjmc4/kxtp85q4w9zbsIiqWLxCc5Ykkm0pjlJfpQ01mKW/2Txu+xbB
		         4iE4tD2PUMWf8wUG4I3OKNdgm+XTcR+f0CCqModIKonrjU/cq1XXM+I4yEbeTpRVAlDZ
		         2yrnZJVLP2ctwd0STpjJSFJr3UHQX11UcNzo7uHTFJ3BqiACp1xGXo0wyJAohF1/j+B1
		         +S/w==
		ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
		        h=content-transfer-encoding:organization:subject:from:to
		         :content-language:user-agent:mime-version:date:message-id;
		        bh=ZVizbqUhFXy132jURMOira1PoPmZ9Wrxs8phrj2oPvk=;
		        b=tPvlw+IE64GXrMp/fOCP+HK0rr6EWr2h3nKgPHzbPViJkiqOjca3U/D9YZLpitVY4e
		         ETJDE/NJ4635qkuRI7O1G+M3KEurGS6RPAzpfVW/pfEDCj5NW9OF2zCdXebfjeOTE7LQ
		         pd55KryrpaVm3i1Bon75PrwMDYjyQ662IGIjdJC2vF0x/ZxCIVYmizYJqdocllkoQTnl
		         il1qrPtbtQ+fOskModUISwMwu1D3TdyZeWYZMSQ7rwiyHlBtwqt7LuiZ96wW0vnVmAgq
		         bt1/gCpIW816tR4spltUunKEwxmD5WVKhGpdp1YymtOf/VenIZlafIse2rO4pHaEZKWJ
		         Jw7g==
		ARC-Authentication-Results: i=1; mx.google.com;
		       spf=pass (google.com: domain of xxxx@ldlus.org designates 157.112.187.84 as permitted sender) smtp.mailfrom=xxxx@ldlus.org;
		       dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=ldlus.org
		Return-Path: <xxxx@ldlus.org>
		Received: from sv63.star.ne.jp (sv63.star.ne.jp. [157.112.187.84])
		        by mx.google.com with ESMTPS id ot10si6226426pjb.19.2021.12.11.20.53.33
		        for <xxxx@gmail.com>
		        (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
		        Sat, 11 Dec 2021 20:53:34 -0800 (PST)
		Received-SPF: pass (google.com: domain of xxxx@ldlus.org designates 157.112.187.84 as permitted sender) client-ip=157.112.187.84;
		Authentication-Results: mx.google.com;
		       spf=pass (google.com: domain of xxxx@ldlus.org designates 157.112.187.84 as permitted sender) smtp.mailfrom=xxxx@ldlus.org;
		       dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=ldlus.org
		Received: from virusgw1.netowl.jp (virusgw1.netowl.jp [157.112.191.243])
			by sv63.star.ne.jp (Postfix) with ESMTP id C1B4F8BC3AEFF
			for <xxxx@gmail.com> Sun, 12 Dec 2021 13:53:32 +0900 (JST)
		Received: from sv63.star.ne.jp (157.112.187.84)
		 by virusgw1.netowl.jp (F-Secure/fsigk_smtp/521/virusgw1.netowl.jp);
		 Sun, 12 Dec 2021 13:53:32 +0900 (JST)
		X-Virus-Status: clean(F-Secure/fsigk_smtp/521/virusgw1.netowl.jp)
		Received: from [192.168.XX.XX] (XX-XX-XX-XX.XX.XX.XX.XX.jp [XX.XX.XX.XX])
			by sv63.star.ne.jp (Postfix) with ESMTPSA id A2AF28BC3AEFE
			for <xxxx@gmail.com> Sun, 12 Dec 2021 13:53:32 +0900 (JST)
		Message-ID: <fdfd8ee1-fa21-5170-c599-8096c24840dd@ldlus.org>
		Date: Sun, 12 Dec 2021 13:53:33 +0900
		MIME-Version: 1.0
		User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
		 Thunderbird/91.4.0
		Content-Language: en-US
		To: xxxx@gmail.com
		From: =?UTF-8?B?5bKp55SwIOWSjOW9pg==?= <xxxx@ldlus.org>
		Subject: =?UTF-8?B?44GT44GT44GM44K/44Kk44OI44Or44Gn44GZ44KI?=
		Organization: =?UTF-8?B?5pyo5rOi44OP44OD44Kt44Oz44Kw56CU56m25omA?=
		Content-Type: text/plain; charset=UTF-8; format=flowed
		Content-Transfer-Encoding: 8bit
	

なかなかこの文字列を見せられても、なるほどそういうことか!とはならないと思うので、こちらのGoogleのツールとか、こちらのMicrosoftのツールを使うと見やすく表示できる。Microsoftのツールであれば、Received headersの項を見るとメールが配送されてきた順序がHopの番号順にまとめられている。今回はPCにインストールしているThunderbirdからGmailに向けて送信しているのだが、Hop1ではPCから送信元メールサーバであるsv63.star.ne.jpに行っていることが分かる。Hop2やHop3はメールサーバ内でのやり取り(ネットオウルという会社のスターサーバを使っている)で、Hop4でGoogleに届けられている。

メールの配送経路はプロバイダによって様々であるが、送信者に近いグローバルIPのどれかが送信元メールサーバのIPであり、このIPを中心に詐欺メールなのか否かを判断していくことになる。CiscoのTalosというサイトではメールサーバとしてのレピュテーションを確認することができ、評価の低い判定が出ていれば詐欺メールの可能性が疑われることになる。また、後述するSPFにおいてはこのIPが正規のメールサーバと一致するかを確認することになる。

SPFによる見分け方

SPFとは「送信ドメイン認証」と呼ばれる技術のひとつで、なりすましメールを機械的に判別することができる。本当にこのメールは@ldlus.orgから送られたメールなの?という判断をしてくれるものである。とはいえ、残念ながらすべてのなりすましメールを判別できるほど万能ではない。DNS情報に登録された送信元メールサーバの情報をもとに、正規の送信元か否かを判別する。

メールヘッダー情報にSPFがpass(本物判定)なのかfail(偽物判定)なのか、という情報も出ているのでそちらも判断材料にする。こちらのGoogleのツールにメールヘッダーをコピペすることで見やすく表示することもできる。

手動で確認する必要がある場合は、まずメールヘッダー情報から送信元メールサーバと思われるグローバルIPを前項で説明したように割り出しておく。digコマンドでDNSに登録された正規の送信元メールサーバを確認し、メールヘッダーに記載された送信元メールサーバと一致するか確認する。以下は@ldlus.orgのメールの送信元メールサーバの情報を確認している例。15行目にDNSに登録されている情報が記載されている。「ldlus.org」か「sv63.star.ne.jp」か「157.112.187.84」であれば本物という意味になっている。

		$ dig -t TXT ldlus.org
		
		; <<>> DiG 9.16.1-Ubuntu <<>> -t TXT ldlus.org
		;; global options: +cmd
		;; Got answer:
		;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51088
		;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

		;; OPT PSEUDOSECTION:
		; EDNS: version: 0, flags:; udp: 512
		;; QUESTION SECTION:
		;ldlus.org.                     IN      TXT

		;; ANSWER SECTION:
		ldlus.org.              3600    IN      TXT     "v=spf1 +a:ldlus.org +a:sv63.star.ne.jp +a:157.112.187.84 +mx -all"

		;; Query time: 18 msec
		;; SERVER: 192.168.10.1#53(192.168.10.1)
		;; WHEN: Mon Nov 29 15:47:27 JST 2021
		;; MSG SIZE  rcvd: 116
	

SPFの弱点は、上記で登録しているsv63.star.ne.jp(スターサーバのドメイン)や157.112.187.84(スターサーバのIP)である。攻撃者が我々と同じようにスターサーバで契約して、同じようにメールサーバを立ててしまえば、送信元サーバが同じものになるため、SPFはpass(本物判定)してしまうだろう。

DMARCによる見分け方

DMARCとは、簡単に言うとSPFの強化版である。同じく、なりすましメールを機械的に判別することができる。やはり、すべてのなりすましメールを判別できるほど万能ではないものの、DMARCを導入することでそれまでの7割のなりすましメールを弾くことができたという事例も報告されている。

DMARCではSPFとは別の送信ドメイン認証であるDKIMと組み合わせて使うこともできる。DKIMでは送信元メールサーバに秘密鍵を保持しておき、DNSに公開鍵の情報を記載することで電子署名を使った認証を実現している。秘密鍵を奪い取らない限り、なりすますのが難しい認証ということになる。

SPFとDMARCには改竄検知機能もあるが、改竄検知の対象項目が異なる。SPFはエンベロープFROM(メールヘッダー情報を見ないと分からない領域)の改竄有無をチェックする。DMARCはヘッダーFROM(メールソフトで送信元として表示される情報)を含め、ヘッダー全体およびメール本文の改竄有無をチェックする。メールを見ていて普段目にする送信元の項目等もチェック対象なので、DMARCの導入により信頼性を向上させることができる。

DMARCでは偽物判定が出た場合にどのようにメールを処理するかDNSで定義することができる。以下はdigコマンドやnslookupコマンドで@ldlus.orgのDMARC設定を確認したもの。①-15行目や②-8行目に設定が記載されており、p=rejectのところがどう処理するかを定義しているところである。reject(受信拒否)は最も厳しい設定であるが、もう少しゆるめたquarantine(迷惑メールフォルダへ配信)やnone(そのまま配信)を指定することもできる。

①digコマンドでの確認。

		$ dig +norec -t TXT _dmarc.ldlus.org

		; <<>> DiG 9.18.1-1ubuntu1.2-Ubuntu <<>> +norec -t TXT _dmarc.ldlus.org
		;; global options: +cmd
		;; Got answer:
		;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3706
		;; flags: qr ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

		;; OPT PSEUDOSECTION:
		; EDNS: version: 0, flags:; udp: 512
		;; QUESTION SECTION:
		;_dmarc.ldlus.org.              IN      TXT

		;; ANSWER SECTION:
		_dmarc.ldlus.org.       3364    IN      TXT     "v=DMARC1;p=reject;rua=mailto:xxxx@ldlus.org;ruf=mailto:xxxx@ldlus.org;rf=afrf;fo=1;pct=100"

		;; Query time: 19 msec
		;; SERVER: 192.168.10.1#53(192.168.10.1) (UDP)
		;; WHEN: Mon Dec 05 21:38:09 JST 2022
		;; MSG SIZE  rcvd: 150
	

②nslookupコマンドでの確認。こっちの方が成功率高いかも...。

		$ nslookup
		> set type=txt
		> _dmarc.ldlus.org
		Server:         192.168.10.1
		Address:        192.168.10.1#53

		Non-authoritative answer:
		_dmarc.ldlus.org        text = "v=DMARC1;p=reject;rua=mailto:xxxx@ldlus.org;ruf=mailto:xxxx@ldlus.org;rf=afrf;fo=1;pct=100"

		Authoritative answers can be found from:
		>
	

rejectにせよnoneにせよ偽物判定されたものは記録され、受信側メールサーバからレポートを送ってもらうことができる。もちろんこれはDMARCに対応しているメールサーバからのみである。現時点ではGmailやYahooメールからレポートが届いているのみといった状況である。上記①-13行目、もしくは②-8行目にrua=メールアドレス、ruf=メールアドレスの記載があるが、ここで指定したメールアドレス宛にレポートが送付される。ruaは集計レポート、rufは認証失敗レポート。集計レポートは多くて1日1回、認証失敗レポートは即時届くようである。認証失敗レポートは度々届いているが、集計レポートについては件数が少ないからと思われるが今のところ届いたことはない。Google先生から送っていただいた認証失敗レポートのサンプルを以下に紹介する。ご覧の通りXMLファイルとなっており、加工しないと可読性が低いものとなっている。

		
		
		  
			google.com
			noreply-dmarc-support@google.com
			https://support.google.com/a/answer/2466580
			12818945801854570383
			
			  1637625600
			  1637711999
			
		  
		  
			ldlus.org
			r
			r
			

reject

reject 100
103.168.64.145 1 reject fail fail ldlus.org bhjtvnunheudcyl.org none

DMARCはこのように強力な技術であるが、それでも対処できない詐欺メールが存在する。1つには、ドメインをなりすましていないケース。ちゃんとGmailのアカウントを取得して、正しくGmailからなりすましメールを送ってしまえば当然認証は成功してしまう。また1つには、なりすましているものの類似ドメインを使っているケース。Amazonであれば、arnazon.co.jpというドメインを取得して、no-reply@arnazon.co.jpというようなメールアドレスを用意して、arnazon.co.jpのドメインでちゃんとSPFやDKIMの設定をしてしまえば認証成功することだろう。もちろん準備が大変なので攻撃側も手軽にはできないだろうが、標的型攻撃などコストをかけてでもどうしても狙いたいターゲットがいる場合には十分ありうる。

【参考】送信ドメイン認証技術導入マニュアル:https://www.dekyo.or.jp/soudan/aspc/report.html#dam

【参考】我らかく戦えり 第3回「銀の弾丸を追い求めず、あの手この手を駆使してなりすまし対策を」:https://scan.netsecurity.ne.jp/article/2021/09/01/46227.html

まとめ

セキュリティというのはどうしても攻撃者とのイタチごっこになってしまうし、全てを解決させるにはコストがかかり過ぎる。とはいえ、対策をしなければ弱いところから狙われてしまう。どうか油断せずに組織のメンバーを守っていただきたい。

詐欺メールに引っかかってしまったメンバーがいた際は、こちらを参考に必要な対処を実施いただくようお願いする。

関連ページ

詐欺メール防衛戦一覧

# タイトル 概要 主な対象者
1 詐欺メールの見分け方 初級編 不審メールの種類、メールの外見で分かる範囲での見分け方 全員
2 詐欺メールの見分け方 中級編 ドメイン、Google検索、仮想ブラウザによる見分け方 中小企業のIT担当者
3 詐欺メールの見分け方 上級編 ←イマココ メールヘッダー、SPF、DMARCによる見分け方 SOCやCSIRTのメンバー、メールシステム担当者
4 詐欺メールに引っかかってしまった場合のリカバリ方法 パスワード変更やカード再発行などの案内 全員
- the end of this article -