DMARCのXMLレポートは、あるドメインで送信された電子メールの認証結果に関する情報を提供します。これによりドメイン所有者は、メールがどのように扱われ、どの送信元からのメールがDMARCポリシーに従っているか、または従っていないかを確認することができます。
それでは、DMARC XMLレポートの主要な要素について詳しく見ていきましょう。
RUAアドレス宛に届くXMLレポート
下記は実際のDMARCレポートのXMLファイルです。Netflixから@ezweb.ne.jp宛に送信され@brandkpper.netへ転送されたメールのレポートです。転送メールなのでSPF認証は失敗、DKIM認証が成功しています。
Netflix.comのDMARCレコード
v=DMARC1; p=reject; fo=1; rua=mailto:netflix@rua.netcraft.com,mailto:dmarcreports@netflix.com,mailto:dmarc_agg@dmarc.250ok.net;ruf=mailto:netflix@ruf.netcraft.com,mailto:dmarcreports@netflix.com,mailto:dmarc_fr@dmarc.250ok.net
Netflixでは下記のDMARC設定になっているようです。
項目 | 値 | 説明 |
---|---|---|
policy | reject | DMARC認証に失敗したメールは受信拒否 |
fo | 1 | rufレポートの送信オプション。1はメールがSPFまたはDKIMのアライメントに失敗した場合に失敗レポートが送信される。 |
rua送信先メールアドレス | mailto:netflix@rua.netcraft.com,mailto:dmarcreports@netflix.com,mailto:dmarc_agg@dmarc.250ok.net | 集約レポートの送信先。3個のメールアドレスへ送信 |
ruf送信先メールアドレス | mailto:netflix@ruf.netcraft.com,mailto:dmarcreports@netflix.com,mailto:dmarc_fr@dmarc.250ok.net | 失敗レポートの送信先。3個のメールアドレスへ送信 |
DMARCレポートは受信側の@brandkeeper.netからNetflinxのDMARCレコード内のRUAメールアドレス宛にGz形式で圧縮された添付メールが送信されています。
XMLデータの各項目の説明
このGZファイルを解凍すると、下記のXMLファイルが現れました。ぱっと見た感じわかりずらいですが、非常にシンプルなデータ構造になっています。それでは、このXMLデータの各項目を解説していきましょう。
<?xml version="1.0" encoding="UTF-8" ?>
<feedback>
<report_metadata>
<org_name>CVH</org_name>
<email>dmarc@brandkeeper.net</email>
<report_id>netflix.com.1691593200.1691593200</report_id>
<date_range>
<begin>1691593200</begin>
<end>1691593200</end>
</date_range>
</report_metadata>
<policy_published>
<domain>netflix.com</domain>
<adkim>r</adkim>
<aspf>r</aspf>
<p>reject</p>
<sp>none</sp>
<pct>100</pct>
</policy_published>
<record>
<row>
<source_ip>27.89.248.243</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>members.netflix.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>members.netflix.com</domain>
<result>pass</result>
</dkim><dkim>
<domain>amazonses.com</domain>
<result>pass</result>
</dkim>
<spf>
<domain>mailer.members.netflix.com</domain>
<result>softfail</result>
</spf>
</auth_results>
</record>
</feedback>
レポートメータデータ(3~11行目)
レポートを送信した組織、レポートの対象となるドメイン、レポートの期間、レポートのIDなどの情報が含まれます。
- org_name: レポートを提供する組織またはISPの名前。
- email: 問い合わせ先やフィードバックのメールアドレス。
- report_id: レポートの一意の識別子。
- date_range: レポートの期間を示す開始日と終了日(UNIXタイムスタンプ UTC時間)。
公開されているDMARCポリシーの情報(12~19行目)
ドメイン所有者が設定したDMARCポリシー、サブドメインに対するポリシー、失敗時の処理方法などの情報が含まれます。
パラメータ | 説明 |
---|---|
domain | レポートが報告する対象ドメイン。 |
adkim | DKIMの認証モード (r=リラックス, s=ストリクト) |
aspf | SPFの認証モード (r=リラックス, s=ストリクト) |
p | メインのDMARCポリシー (none, quarantine, reject) |
sp | サブドメインに適用されるDMARCポリシー |
pct | ポリシーが適用されるメールトラフィックのパーセンテージ。 |
report_metadata
セクション- domain: レポートが報告する対象ドメイン。
- adkim: DKIMの認証モード (r=リラックス, s=ストリクト)。
- aspf: SPFの認証モード (r=リラックス, s=ストリクト)。
- p: メインのDMARCポリシー (none, quarantine, reject)。
- sp: サブドメインに適用されるDMARCポリシー。
- pct: ポリシーが適用されるメールトラフィックのパーセンテージ。
レコードセクション(29~46行目)
ドメインから送信された各電子メールに関する詳細な情報が含まれます。 これには、送信元IPアドレス、カウント、SPFとDKIMの結果、DMARCの結果、受信者が実行したアクションなどが含まれます。
row | source_ip | |
count | ||
policy_evaluated | disposition | |
dkim | ||
spf | ||
identifiers | headers_from | |
auth_results | dkim | domain |
result | ||
spf | domain | |
result |
- row: このセクションは、特定の送信元IPに関連する情報を提供します。
- source_ip: メールを送信したIPアドレス。IPv4またはIPv6の形式で表されたIPアドレスの値が含まれます。上記XMLの例ではIPは27.89.248.243、これは逆引きするとfwd01003.au.comとなり、KDDIのメールサーバーとなります。
- count: 受信サーバーから見てそのIPからの送信されたメールの総数。RUAレポートはIPアドレス毎の集計レポートなので、1つのアドレスから送信されたメールの総数が記載されます。
- policy_evaluated: 適用されたポリシー評価(
disposition
,dkim
,spf
)。- Disposition
受信側で行ったアクションが記載されます。上記Netflixの例では、25行目でnoneとなっているので、受信側では何もせずにメールを受信したということになります。 - dkim
none, pass, fail, neutral, temperror, permerrorのどれか - spf
none, pass, fail, softfail, neutral, temperror, permerrorのどれか
- Disposition
- identifiers: メールの
envelope from
やheader from
情報。 - auth_results: 認証結果。ここにはDKIM署名やSPF結果が含まれる。
これらの情報を利用して、ドメイン所有者は以下を行うことができます:
- 認証に失敗した送信元IPアドレスの特定。
- 認証に成功した送信元の確認。
- DMARCポリシーの微調整や強化。
レポートはXML形式であるため、可読性のための解析ツールを使用してデータを理解するのが一般的です。