DMARC sp タグでサブドメインを守る
目次
この記事でわかること
- DMARCの
spタグ(Subdomain Policy)が果たす役割と、pタグとの違い spを省略した場合に発生するサブドメイン経由のなりすましリスク- 親ドメインの状況別に見る
spの推奨設定パターン - DMARCbisドラフトで追加される
npタグ(存在しないサブドメイン用ポリシー)の動向
sp タグは「サブドメイン専用のポリシー」
DMARC(ディーマーク)レコードは親ドメインに1本書くだけで、その配下のサブドメインにも自動で適用されます。ところが、親ドメインとサブドメインで送信元・運用形態が異なる場合は、同じポリシーで縛ると配信事故につながります。この問題を解決するのがspタグです。
spは Subdomain 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.jpやinfo.example.co.jpなどのサブドメイン経由で送信されているメールがあると、すべてrejectの対象になります。マーケティング配信SaaS、予約システム、社内ツールが*.example.co.jpを差出人にしている場合、それらが一斉に拒否されてしまいます。
逆に、サブドメインを使った攻撃シナリオもあります。p=noneしか書かれていない親ドメインで、攻撃者がaccounting.example.co.jpという存在しないサブドメインを名乗ってフィッシングメールを送ると、DMARC側で歯止めが効きません。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にしてレポートを集めるところから始めます。
設定ミスで起きる典型的なトラブル
spの値を誤ると、次のような実害が発生します。
- 配信SaaSのメールが全停止: 親ドメインを
p=rejectにしたら、sp未指定のためサブドメイン送信も同時に拒否対象になり、予約確認メールが届かなくなった - なりすまし対策の穴: 親ドメインだけ
p=reject、sp=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タグを認識する方向で実装を進めています。運用ドメインを棚卸ししたうえでspとnpをセットで設計しておくと、将来の仕様変更にも対応しやすくなります。ポリシー強化の全体像はDMARCポリシー強化の進め方で扱っています。
自社の状況を確認してみませんか
設定状況がわからない方は、無料のドメイン診断で現状をチェックできます。 DMARC・SPF・DKIM・SSL の状態が数十秒でレポートされます。 判断に迷う場合はお問い合わせからご相談ください。専門家がわかりやすくサポートいたします。