SPF(Sender Policy Framework)- メールなりすまし対策の第一歩
これは何?
SPF(Sender Policy Framework)は、メール送信元ドメインの正当性を検証するための技術です。DNSのTXTレコードに「このドメインからメールを送信できるサーバーのリスト」を公開することで、受信側がなりすましメールを検出できるようにします。
SPFレコードは、以下のような形式でDNSに設定します:
example.com. IN TXT "v=spf1 ip4:203.0.113.0/24 include:_spf.google.com -all"
この設定は「example.comからのメールは、IP 203.0.113.0/24またはGoogleのメールサーバーから送信される。それ以外は拒否せよ」という意味です。
なぜ重要なのか
SPFレコードが設定されていないと、攻撃者はあなたのドメインを使って自由になりすましメールを送信できます。受信側のメールサーバーは、送信元が本物かどうか判別する手段がないためです。
具体的には以下のようなリスクがあります:
- フィッシング詐欺:
[email protected]を騙るメールで顧客を騙す - ビジネスメール詐欺(BEC): 経営陣を装った送金指示メール
- ブランド毀損: あなたの会社名でスパムメールが大量送信される
- メール到達率の低下: SPFがないと、正規のメールも迷惑メール扱いされやすい
Gmail、Outlook、Yahoo!などの主要メールプロバイダは、SPFレコードがないドメインからのメールを厳しくフィルタリングします。2024年以降、Googleは一定量以上のメールを送信する場合、SPF設定を必須としています。
攻撃の仕組み
SPFがない、または緩い設定の場合、攻撃者は以下の手順でなりすましメールを送信します:
-
標的ドメインのSPFレコードを確認:
dig example.com TXT | grep spf # SPFレコードがない、または「+all」「?all」のような緩い設定 -
自前のメールサーバーからなりすましメールを送信:
MAIL FROM: <[email protected]> From: CEO <[email protected]> To: <[email protected]> Subject: 緊急送金依頼 至急、以下の口座に100万円を送金してください... -
受信側は正当性を検証できない:SPFレコードがないため、受信側は送信元IPが正当かどうか判断できず、メールを受け入れてしまう可能性があります。
実際の被害事例
トヨタ関連企業のBEC被害(2019年)
トヨタグループの欧州拠点が、なりすましメールによる詐欺で約4億円の被害を受けました。攻撃者は経営幹部を装ったメールで送金指示を出し、経理担当者が実行してしまいました。SPF/DMARC設定があれば、このようななりすましメールをより確実に検出できた可能性があります。
日本年金機構の標的型攻撃(2015年)
125万件の個人情報流出につながった標的型攻撃では、厚生労働省を装ったなりすましメールが使われました。当時、多くの政府機関でメール認証技術の導入が遅れており、なりすまし検出が困難でした。
Ubiquiti Networks(2015年)
ネットワーク機器メーカーのUbiquiti Networksは、CFOを装ったなりすましメールにより約47億円の被害を受けました。SPF/DMARC/DKIMの三点セットがあれば、このような攻撃のリスクを大幅に低減できます。
Nyambushでの検出内容
Nyambushは、以下の項目をチェックします:
- SPFレコードの存在: TXTレコードに
v=spf1で始まる記述があるか - SPF構文の正当性: スペルミスや文法エラーがないか
- ポリシーの厳格性:
-all(推奨): SPFに合致しないメールは拒否~all(許容): 失敗したメールはソフトフェイル(迷惑メール扱い)+all(危険): すべてのIPを許可(設定する意味なし)?all(危険): 検証しない(未設定と同じ)
- DNSルックアップ回数: SPF仕様の上限10回を超えていないか
スキャン結果では、設定不備があれば具体的な修正方法を提案します。
対策方法
1. 使用中のメール送信元を特定
まず、あなたのドメインからメールを送信するすべてのサービスをリストアップします:
- 自社メールサーバー(IPアドレス)
- Google Workspace、Microsoft 365などのクラウドメールサービス
- SendGrid、Mailgun、Amazon SESなどのメール配信サービス
- マーケティングツール(Mailchimp、HubSpotなど)
- 問い合わせフォーム、通知システムなど
2. SPFレコードを構築
各サービスのSPF設定をincludeで統合します:
v=spf1 ip4:203.0.113.10 include:_spf.google.com include:sendgrid.net -all
構文の説明:
v=spf1: SPFバージョン1ip4:203.0.113.10: 自社サーバーのIPv4アドレスinclude:_spf.google.com: Google WorkspaceのSPFレコードを参照include:sendgrid.net: SendGridのSPFレコードを参照-all: これら以外からの送信は拒否
3. DNSに設定
お使いのDNSプロバイダの管理画面で、TXTレコードを追加します:
ホスト名: @ (またはドメイン名)
タイプ: TXT
値: v=spf1 include:_spf.google.com include:sendgrid.net -all
TTL: 3600
4. DNS Lookup上限に注意
SPF仕様では、DNSルックアップの回数を10回までに制限しています。includeが多すぎると上限を超えてSPF検証が失敗します:
# SPFルックアップ回数を確認
dig +short _spf.google.com TXT
# これが複数のincludeを含む場合、再帰的にカウントされる
対策として、不要なincludeを削除したり、IPアドレスを直接列挙する方法があります。
5. テストと監視
設定後は必ずテストします:
# SPFレコードを確認
dig example.com TXT
# テストメールを送信して、SPFヘッダーを確認
# 受信メールのヘッダーに以下のような行があればOK
# Received-SPF: pass (google.com: domain of [email protected] designates 203.0.113.10 as permitted sender)
Nyambushの継続監視を有効にすれば、SPF設定の変更や問題を自動検出できます。
まとめ
SPFは、メールなりすまし対策の基本中の基本です。設定は比較的簡単で、DNSにTXTレコードを1行追加するだけです。しかし、その効果は絶大で、フィッシング詐欺やBECのリスクを大幅に低減できます。
ただし、SPF単体では不十分です。次のステップとして、DKIM(メール改ざん検知)とDMARC(ポリシー適用)の設定も行い、三点セットで万全の対策を講じましょう。Nyambushの無料スキャンで、今すぐあなたのドメインのSPF設定を確認してみてください。