DMARCメール認証運用Web 担当者

DMARC sp タグでサブドメインを守る

ドメイン番人5 分で読めます
目次

この記事でわかること

  • DMARCのspタグ(Subdomain Policy)が果たす役割と、pタグとの違い
  • spを省略した場合に発生するサブドメイン経由のなりすましリスク
  • 親ドメインの状況別に見るspの推奨設定パターン
  • DMARCbisドラフトで追加されるnpタグ(存在しないサブドメイン用ポリシー)の動向

sp タグは「サブドメイン専用のポリシー」

DMARC(ディーマーク)レコードは親ドメインに1本書くだけで、その配下のサブドメインにも自動で適用されます。ところが、親ドメインとサブドメインで送信元・運用形態が異なる場合は、同じポリシーで縛ると配信事故につながります。この問題を解決するのがspタグです。

spSubdomain Policy の略で、親ドメインのpタグとは別に、サブドメインだけに適用するポリシーを指定できます。値はpと同じくnone / quarantine / rejectの3択です。

DMARCタグ全体の役割はタグ完全リファレンスを参照。本記事ではspに絞って深掘りします。

v=DMARC1; p=reject; sp=quarantine; rua=mailto:[email protected]

上記の例では、親ドメイン宛のなりすましはreject(拒否)、サブドメイン宛のなりすましはquarantine(隔離)として扱われます。

sp を省略するとどうなるか

spを書かなかった場合、RFC 7489の仕様では 親ドメインのpの値がそのままサブドメインにも適用される と決まっています。一見便利ですが、ここに落とし穴があります。

たとえば次のレコードを設定したとします。

v=DMARC1; p=reject; rua=mailto:[email protected]

このとき、mail.example.co.jpinfo.example.co.jpなどのサブドメイン経由で送信されているメールがあると、すべてrejectの対象になります。マーケティング配信SaaS、予約システム、社内ツールが*.example.co.jpを差出人にしている場合、それらが一斉に拒否されてしまいます。

逆に、サブドメインを使った攻撃シナリオもあります。p=noneしか書かれていない親ドメインで、攻撃者がaccounting.example.co.jpという存在しないサブドメインを名乗ってフィッシングメールを送ると、DMARC側で歯止めが効きません。spを明示しておかないと、こうした「サブドメイン経由のなりすまし」に隙ができます。

sp タグなし vs sp タグありの差分

親ドメインの状況別に見る推奨パターン

実運用では、親ドメインのポリシーとサブドメインの送信実態を組み合わせてspを決めます。代表的な4パターンを整理します。

パターン1: 親ドメインから直接送信、サブドメインからは送らない

経理・営業など自社サーバーから@example.co.jpで送るだけで、サブドメインを差出人に使う運用がない場合です。この場合は親ドメインをp=rejectまで上げたうえで、sp=rejectも明示しておくのが安全です。明示することで、設定意図が運用ドキュメントとしても残ります。

v=DMARC1; p=reject; sp=reject; rua=mailto:[email protected]

パターン2: サブドメインから配信SaaSで送信している

mail.example.co.jpから配信ツールで一斉送信、notify.example.co.jpからシステム通知、といった構成です。この場合は親ドメインをrejectにしつつ、サブドメインだけ段階的に強化します。最初はsp=noneで観察し、レポートで送信元を把握できたらsp=quarantine、最終的にsp=rejectへ進めます。

レポートの読み方はDMARCレポートの見方で詳しく扱っています。

パターン3: 親ドメインを移行中で p=none

p=noneの段階では、サブドメイン宛にも保護がかかっていない状態です。攻撃者にとっては「親ドメインを名乗るより、見覚えのないサブドメインを名乗ったほうが疑われにくい」ため、sp=quarantineを先に明示する選択肢があります。親ドメインの観察を続けつつ、サブドメインだけ先回りでガードする運用です。

パターン4: 多数のサブドメインを業務で運用している

部門ごと・拠点ごとにサブドメインを切っている企業では、サブドメインの送信実態を把握しきれないことが多いです。この場合は無理にspを厳しくせず、sp=noneにしてレポートを集めるところから始めます。

親 p=reject に対する sp の挙動 4 パターン

設定ミスで起きる典型的なトラブル

spの値を誤ると、次のような実害が発生します。

  • 配信SaaSのメールが全停止: 親ドメインをp=rejectにしたら、sp未指定のためサブドメイン送信も同時に拒否対象になり、予約確認メールが届かなくなった
  • なりすまし対策の穴: 親ドメインだけp=rejectsp=noneのままにしていたら、攻撃者がbilling.example.co.jpを名乗る請求書詐欺メールを送ってきた
  • 委任先と意図がずれる: 子会社や代理店にサブドメインを貸している場合、sp=rejectを明示せずにいると相手側のSPF/DKIM整備が追いつかずメールが落ちる

サブドメインの基礎も参考になります。設定変更前に、社内で*.example.co.jpを差出人に使うシステムを棚卸しするのが事故防止の近道です。

DMARCbis で追加される np タグ

現行のRFC 7489(2015年)ではspしか定義されていませんが、IETFで策定中のDMARCbisドラフトでは新たにnpタグ(Non-existent Subdomain Policy)が追加される予定です。

npは「DNSに存在しないサブドメイン」を名乗ったメールに対するポリシーを指定します。攻撃者は意図的に存在しないサブドメインを使うことが多いため、np=rejectを明示すれば、その経路を一気に塞げます。

v=DMARC1; p=reject; sp=quarantine; np=reject; rua=mailto:[email protected]

DMARCbisの正式公開はこれからですが、Gmail・Microsoft 365 など大手プロバイダはすでにnpタグを認識する方向で実装を進めています。運用ドメインを棚卸ししたうえでspnpをセットで設計しておくと、将来の仕様変更にも対応しやすくなります。ポリシー強化の全体像はDMARCポリシー強化の進め方で扱っています。

自社の状況を確認してみませんか

設定状況がわからない方は、無料のドメイン診断で現状をチェックできます。 DMARC・SPF・DKIM・SSL の状態が数十秒でレポートされます。 判断に迷う場合はお問い合わせからご相談ください。専門家がわかりやすくサポートいたします。

次の一歩は無料診断から。