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がない、または緩い設定の場合、攻撃者は以下の手順でなりすましメールを送信します:

  1. 標的ドメインのSPFレコードを確認

    dig example.com TXT | grep spf
    # SPFレコードがない、または「+all」「?all」のような緩い設定
    
  2. 自前のメールサーバーからなりすましメールを送信

    MAIL FROM: <[email protected]>
    From: CEO <[email protected]>
    To: <[email protected]>
    Subject: 緊急送金依頼
    
    至急、以下の口座に100万円を送金してください...
    
  3. 受信側は正当性を検証できない:SPFレコードがないため、受信側は送信元IPが正当かどうか判断できず、メールを受け入れてしまう可能性があります。

実際の被害事例

トヨタ関連企業のBEC被害(2019年)

トヨタグループの欧州拠点が、なりすましメールによる詐欺で約4億円の被害を受けました。攻撃者は経営幹部を装ったメールで送金指示を出し、経理担当者が実行してしまいました。SPF/DMARC設定があれば、このようななりすましメールをより確実に検出できた可能性があります。

日本年金機構の標的型攻撃(2015年)

125万件の個人情報流出につながった標的型攻撃では、厚生労働省を装ったなりすましメールが使われました。当時、多くの政府機関でメール認証技術の導入が遅れており、なりすまし検出が困難でした。

Ubiquiti Networks(2015年)

ネットワーク機器メーカーのUbiquiti Networksは、CFOを装ったなりすましメールにより約47億円の被害を受けました。SPF/DMARC/DKIMの三点セットがあれば、このような攻撃のリスクを大幅に低減できます。

Nyambushでの検出内容

Nyambushは、以下の項目をチェックします:

  1. SPFレコードの存在: TXTレコードにv=spf1で始まる記述があるか
  2. SPF構文の正当性: スペルミスや文法エラーがないか
  3. ポリシーの厳格性:
    • -all(推奨): SPFに合致しないメールは拒否
    • ~all(許容): 失敗したメールはソフトフェイル(迷惑メール扱い)
    • +all(危険): すべてのIPを許可(設定する意味なし)
    • ?all(危険): 検証しない(未設定と同じ)
  4. 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バージョン1
  • ip4: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設定を確認してみてください。

この記事をシェア:Xでポスト

あなたのドメインは安全ですか?

Nyambushで今すぐ無料スキャンして、セキュリティリスクをチェックしましょう。