結論(DMARC集計レポート送信先)
DMARC集計レポート送信先とは、_dmarcのTXTレコードのruaタグで指定する、受信事業者が作成するDMARC集計レポート(Aggregate Report)の受け取り先です。値はカンマ区切りのURIリストで、受信側に対応が必須なのはmailto:です。ruaがないと、自組織名義のなりすましメールの規模も、正規システムの認証失敗も把握できず、p=quarantine/rejectへの強化が止まりやすくなります。
この記事のポイント
- ruaは集計レポートの送り先を指定するタグで、書式は rua=mailto:アドレス(複数はカンマ区切り)です。
- 集計レポートは送信元IP・通数・SPF/DKIM/DMARCの結果をまとめたXMLで、メール本文や宛先は含みません。
- 自ドメイン以外の送信先には、RFC 9990 第4節の承諾レコード(_report._dmarc)が必要です。
- ruaは監視のための設定で、なりすましを止めるのは p=quarantine/p=reject の役割です。
- セキュリティAIチェッカーは、DMARCがあってruaにmailto:があれば○、なければ△、DMARC自体がなければ対象外と判定します。
| 診断項目名 | DMARC集計レポート送信先 |
|---|---|
| 項目ID | dns.dmarc-rua |
| 分類 | DNS・メールのなりすまし対策 |
| 重大度・配点の重み | 低(low) 重み 1 |
| 関連する標準・ガイドライン | RFC 9989(DMARC本体。2026年5月にProposed Standardとして公開され、RFC 7489とRFC 9091を廃止)第4.7節の rua タグ定義、RFC 9990(DMARC集計レポート。第4節で外部送信先の検証手順を規定)、RFC 7489(旧Informational版DMARC。既存の解説資料の多くはこちらを参照) |
DMARC集計レポート送信先(rua)とは
DMARC集計レポート送信先とは、DMARCレコードの rua タグで指定する、**集計レポート(Aggregate Report)**の受け取り先です。集計レポートは、受信側(Gmail、Microsoft、国内ISPなど)が作成し、「どのIPアドレスから、自ドメインを名乗るメールが何通届き、SPF/DKIM/DMARCの結果がどうだったか」をXML形式でまとめたものです。
_dmarc.city.example.lg.jp. 3600 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-report@city.example.lg.jp"
DMARC(Domain-based Message Authentication, Reporting, and Conformance)は、メールの差出人ドメイン(ヘッダーFrom)が正当な送信元から送られたかを、SPF・DKIMの結果と「ドメインの整合(アライメント)」によって受信側が判定する仕組みです。ドメイン所有者は _dmarc.ドメイン のTXTレコードに方針を公開し、受信側はそれに従って隔離・拒否などの処理を行います。
rua がないと、ドメイン所有者は自組織名義のなりすましメールの規模も、自組織の正規システム(庁内メール、メルマガ配信、防災メール、委託先の予約システム等)の認証失敗も把握できません。この項目は、DMARCレコードが存在する場合に、その中に rua による集計レポートの受信先が設定されているかを確認します。
DMARCレコードそのものの有無は「DMARCレコード」、p=quarantine/p=reject への強化は「DMARC強制ポリシー」で別に確認します。このページは、レポートの送り先である rua に絞って解説します。
ruaタグの書式(RFC 9989)
DMARCレコードは「タグ=値」をセミコロンで区切った文字列です。
ruaの値はカンマ区切りの「DMARC報告URI」のリストで、受信側はmailto:URIへの対応が必須とされています。- RFC 9989の構文では、
=の前後に空白(WSP)を置くことが許容されています(equals = *WSP "=" *WSP)。したがってrua = mailto:...も有効です。 - RFC 7489では
mailto:addr!10mのようにサイズ上限を付ける記法がありましたが、RFC 9989では廃止された記法(obs-dmarc-uri)という位置付けになり、レポート送信側はサイズ指定を無視するものとされています。既存レコードに残っていても直ちに無効にはなりませんが、新規設定では付けないでください。 - RFC 7489にあった
ri(レポート間隔)、pct、rfタグはRFC 9989で削除されました。集計レポートは実運用上おおむね1日単位で送られますが、RFC 9990は「daily(またはそれ以上の頻度)」という性格を説明するにとどまり、送信間隔を厳密に義務付けてはいません。
集計レポートには何が書かれているか
集計レポートはXMLで、概ね次の情報を含みます(形式はRFC 9990で定義)。
| 要素 | 内容 | 活用方法 |
|---|---|---|
| report_metadata | 送信した受信事業者名、レポートID、対象期間 | どの事業者の観測かを把握 |
| policy_published | 受信側が取得したDMARCレコードの内容 | 公開したつもりの方針が正しく読まれているか確認 |
| record / row | 送信元IP、通数、適用結果(none/quarantine/reject) | 送信元ごとの量と処理結果 |
| auth_results | SPF・DKIMの検証結果とドメイン | 正規システムの認証漏れの特定 |
個々のメール本文や宛先は含まれないため、集計レポートは失敗レポートに比べて個人情報の扱いが軽いのが特徴です。それでも送信元IPや通数は運用情報であり、取扱いのルールを決めておく必要があります。
DMARC集計レポート送信先はなぜ必要か
外部ドメインを送信先にする場合の承諾レコード(RFC 9990 第4節)
rua に自ドメイン以外のアドレス(例: 委託先のDMARC分析サービス)を指定する場合、受信側は「その外部ドメインが本当にレポート受領を承諾しているか」を確認します。RFC 9990 第4節(Verifying External Destinations)では、送信先ドメイン側に次の形式のTXTレコードを置くことで承諾を示します。
city.example.lg.jp._report._dmarc.dmarc-vendor.example. IN TXT "v=DMARC1"
このレコードがないと、受信側はその送信先へのレポート送付を省略することがあり、「ruaは書いてあるのにレポートが届かない」原因になります。これは第三者にレポートを大量送付する迷惑行為を防ぐための仕組みです。
DMARC集計レポート送信先についてよくある誤解
- 「ruaを設定するとなりすましが止まる」:ruaは監視のための設定であり、メールの受け取り拒否は
p=quarantine/p=rejectの役割です。ruaは、その強化を安全に進めるための「目」にあたります。 - 「ruaは個人の受信箱で受ければよい」:大手受信事業者から毎日XML(多くはZIPやgzip圧縮)が届くため、個人の受信箱はすぐ埋もれます。専用アドレスや分析サービスを用意するのが一般的です。
- 「ruf(失敗レポート)も必須」:失敗レポート(RFC 9991)は個別メールの情報を含むためプライバシー上の配慮から送らない受信事業者も多く、本項目の対象外です。
DMARC集計レポート送信先の診断基準(セキュリティAIチェッカー)
取得方法
- 診断の最終URL(リダイレクト追跡後)のホスト名から先頭の
www.を取り除いたものを「メールドメイン」とみなします(例:www.city.example.lg.jp→city.example.lg.jp)。 - Google Public DNSのDNS over HTTPS(JSON API,
https://dns.google/resolve)で_dmarc.メールドメインのTXTレコードを照会します。通信失敗・非2xx応答時は短い待機を挟んで最大3回試行します。 - TXTの値のうち、先頭が
v=DMARC1で直後が;または末尾であるもの(=前後の空白を許容。値DMARC1は大文字小文字を区別するためv=dmarc1は対象外)を有効なDMARCレコードとみなします。有効なレコードがちょうど1件のときだけ採用します。RFC 9989は、同じ名前に複数のDMARCレコードがある場合はすべて破棄すると定めているためです。 - 対象ドメインに有効なレコードが1件もなく、メール受信設定(MX)があり、
_dmarcの照会自体は成功している場合は、RFC 9989 第4.10節のDNS Tree Walkにならって親ドメインの_dmarcを最大7件たどり、組織ドメイン(無ければpsd=yを宣言した公開サフィックスドメイン)のレコードを採用します。親側でも、有効なレコードがちょうど1件の階層だけを候補にします。 - 採用したレコードに有効な
p(none/quarantine/reject)もruaのmailto:もない場合は、受信側で処理されないレコードとして「DMARCなし」と扱います。
判定条件
| 判定 | 条件 | 得点への影響 |
|---|---|---|
| ○ 問題なし(pass) | 採用したレコードの rua= の値(カンマ区切りのURIリスト)のどこかに mailto: がある(= 前後の空白を許容、大小文字を区別しない)。根拠欄は「ruaを確認しました。」 | 重み1 × 1.00 |
| △ 要確認(warn) | 有効な p を持つDMARCレコードはあるが、rua がない、または rua に mailto: が1つもない。根拠欄は「ruaを確認できません。」 | 重み1 × 0.45 |
| 対象外(na) | 採用できるDMARCレコードがない(対象ドメインにも親にもレコードがない、対象ドメインに2件以上ある、_dmarc の照会に失敗した、有効な p も rua の mailto: もない)。根拠欄は「DMARC未設定です。」 | 計算から除外(DMARC自体の欠如・重複は「DMARCレコード」で評価) |
スコアはpass=1.00、warn=0.45、fail=0.00の重み付き平均で、naは分母から除外されます。本項目に × 要改善(fail)はありません。DMARCがない状態を二重に減点しないよう、DMARC未設定は対象外としています。
判定しないこと
- 親ドメインをたどるのは、対象ドメインにMXがある場合だけです。MXのないサブドメインのサイトで、親の組織ドメインにだけDMARCがある場合は対象外になります。
ruaにmailto:が1つもない場合(例:https:のURIだけ)は △ になります。受信側に対応が義務付けられているのはmailto:だけです。先頭がhttps:でも後続にmailto:があれば ○ です。- 外部送信先の承諾レコード(
_report._dmarc)の有無は確認しません。外部の分析サービスを使っている場合は、レポートが実際に届いているかを運用側で確認してください。 - レポートが実際に読まれているか、どのような頻度で確認しているかは公開情報からは分かりません。
自治体サイトでの判定例
| DMARCレコード | 判定 |
|---|---|
v=DMARC1; p=reject; rua=mailto:dmarc-rua@example-isac.jp,mailto:dmarc@city.example.lg.jp | ○(複数の送信先指定も可) |
v=DMARC1; p=none; rua=https://report.example/dmarc,mailto:dmarc@city.example.lg.jp | ○(リストの途中に mailto: がある) |
v=DMARC1; p=none | △(監視なしの p=none は実質的に効果を確認できない状態) |
MXのある mail.city.example.lg.jp にレコードがなく、親の city.example.lg.jp に v=DMARC1; p=quarantine; rua=mailto:… がある | 親のレコードを採用して ○ |
| 対象ドメインにも親にもレコードがない | 対象外(メール受信設定のあるドメインでは「DMARCレコード」側で ×) |
DMARC集計レポート送信先がないとどんなリスクがあるか
- なりすましの放置:自治体名義のフィッシングメール(「給付金のお知らせ」「税の還付」等)が大量に送られていても、レポートがなければ発生規模や送信元IPを把握できず、住民への注意喚起や関係機関への通報が遅れます。
- 強化の停滞:
p=noneからp=quarantine/p=rejectへ強化する際、正規の送信システム(委託先のメール配信、施設予約システム、防災メール等)がSPF/DKIMで整合しているかをレポートで確認するのが一般的な進め方です。レポートがないと「強化すると正規メールが届かなくなるかもしれない」という不安からp=noneのまま止まりやすくなります。 - 委託先システムの認証不備の見逃し:外部サービスが自治体ドメインを名乗って送信している場合、その認証失敗はレポートでしか気づけないことが多くあります。
なお、個別の自治体での被害事例は公開情報で確認できたもののみを扱う方針のため、ここでは一般的な攻撃シナリオにとどめます。
DMARC集計レポート送信先の設定方法と運用
1. 受信体制を決める
- 専用アドレス(例:
dmarc-report@メールドメイン)を作成し、担当課と委託事業者が確認できるようにします。 - 量が多い場合はDMARCレポート分析サービス(XMLを集計・可視化するもの)を利用します。
2. DNSレコードを更新する
; 自ドメインで受ける場合
_dmarc.city.example.lg.jp. 3600 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-report@city.example.lg.jp"
; 分析サービスと自組織の両方に送る場合(カンマ区切り)
_dmarc.city.example.lg.jp. 3600 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-report@city.example.lg.jp,mailto:abc123@dmarc-vendor.example"
外部の分析サービスを指定する場合、多くのサービスは自社側で _report._dmarc の承諾レコードを用意していますが、念のためサービスの案内を確認してください。
3. 段階的に導入する
p=none+ruaで2〜4週間程度レポートを収集し、正規の送信元を洗い出す。- SPFへの送信元追加、DKIM署名の設定を正規送信元すべてに行う。
p=quarantineへ移行し、レポートで正規メールの失敗がないことを確認する。p=rejectへ移行する。移行後もruaは残し、監視を続ける。
4. 設定後の確認方法
# Linux/macOS
dig +short TXT _dmarc.city.example.lg.jp
# Windows
nslookup -type=TXT _dmarc.city.example.lg.jp
# DoHで確認(本診断と同じ取得経路)
curl -s "https://dns.google/resolve?name=_dmarc.city.example.lg.jp&type=TXT"
設定を変えたら、セキュリティAIチェッカーで再診断し、根拠欄が「ruaを確認しました。」になっていることを確認します。
5. 運用のチェックポイント
- 週1回程度、レポートの送信元IP一覧を確認し、「知らない送信元で認証成功しているもの」「既知の送信元で認証失敗しているもの」を洗い出す。
- 委託先や新システムの導入時に、送信元をSPF/DKIMに追加する手続きを調達仕様書・チェックリストに組み込む。
- 担当者の異動に備え、受信アドレスは個人ではなく共有の役割アドレスにする。
設定時の注意点(ガードレール)
_dmarcのTXTレコードは1つだけにします。複数あるとDMARCの方針が適用されません。既存レコードを編集し、追記で2本目を作らないでください。- セミコロンとカンマの区切りを誤ると、
ruaが無視されたりレコード全体が無効と扱われたりします。設定後に上記コマンドで文字列を確認してください。 - TXTが255文字を超える場合、DNS上は複数の文字列に分割されます。DNS事業者の管理画面の仕様に従ってください。
- レポートにはIPアドレスや送信量などの情報が含まれます。受け取ったレポートの保存期間・閲覧者を決めておきます。
よくある質問(FAQ)
DMARCのruaには何を書けばよいですか?
rua=mailto:dmarc-report@自ドメイン のように、集計レポートを受け取るメールアドレスをmailto:のURIで書きます。複数の送信先はカンマで区切って並べられます。個人ではなく、担当課と委託事業者が確認できる共有の専用アドレスにするのが一般的です。
ruaを設定したのにDMARCレポートが届かないのはなぜですか?
自ドメイン以外のアドレスを指定している場合、送信先ドメイン側に「自ドメイン._report._dmarc.送信先ドメイン」というTXTレコード(v=DMARC1)がないと、受信側がレポート送付を省略することがあります。また、セミコロンとカンマの区切り誤りでruaが無視されている可能性もあるため、digやnslookupで文字列を確認してください。
ruaを設定すればなりすましメールは止まりますか?
止まりません。ruaは集計レポートを受け取って監視するための設定です。なりすましメールの隔離・拒否は p=quarantine/p=reject の役割で、ruaはその強化を安全に進めるための「目」にあたります。
rua=mailto:addr!10m のようなサイズ指定は使えますか?
RFC 7489にあった記法ですが、RFC 9989では廃止された記法(obs-dmarc-uri)という位置付けで、レポート送信側はサイズ指定を無視するものとされています。既存レコードに残っていても直ちに無効にはなりませんが、新規設定では付けないでください。
ruf(失敗レポート)も設定する必要がありますか?
必須ではありません。失敗レポート(RFC 9991)は個別メールの情報を含むため、プライバシー上の配慮から送らない受信事業者も多く、セキュリティAIチェッカーのこの項目でも対象外です。
セキュリティAIチェッカーでruaが「△ 要確認」になるのはどんな場合ですか?
有効なpを持つDMARCレコードはあるが、ruaがない、またはruaにmailto:が1つもない場合です(例: https:のURIだけ)。根拠欄には「ruaを確認できません。」と表示されます。DMARCレコード自体がない場合は二重減点を避けるため対象外です。
この項目を含む127項目を、URLを入れるだけで無料診断します。
参考資料
- RFC 9989 Domain-Based Message Authentication, Reporting, and Conformance (DMARC)
- RFC 9990 Domain-Based Message Authentication, Reporting, and Conformance (DMARC) Aggregate Reporting
- RFC 7489 Domain-based Message Authentication, Reporting, and Conformance (DMARC)
- DMARCbis(RFC 9989)の経緯(IETF Datatracker)
- JSON API for DNS over HTTPS (DoH)(Google Public DNS)
- @IT「RPKI」「DNSSEC」「DMARC」のガイドライン策定に込められた思い