[ DMARCとポリシー ]

複数のDMARCレコード: 影響を受ける名前のレコード セットを修復します

TXTレコード境界を検査した後にポリシー候補をカウントし、正確な所有者名で承認された値を修正し、検出フォールバックを追跡します。

EmailAuth研究チームによる · 6 分で読めます

【ポイント】

  • 個別のTXT文字列、個別のレコード、および異なる所有者名。
  • 現在の候補のフィルタリングとその後の検出をトレースします。
  • 1 つの一貫したポリシーを承認し、レポートとメールを個別に検証します。
このページでは

2 番目を追加する DMARC ポリシーは最初のポリシーを更新する方法ではありません。 2 つの値は結合された命令にはならず、 DNSそれらに対して順序付けされた「最新のポリシーが優先」ルールを提供しません。

修理は完全な状態から始まります TXTレコード 影響を受ける名前に設定されます。現在のバージョンのポリシー候補がいくつ存在するかを特定し、その境界を表示形式から区別し、編集前に所有者の意図したポリシーを調整します。

正確なDNS所有者を検査する

メッセージの差出人アドレスのドメインから開始します。該当する_dmarc名をクエリし、信頼できる関連性のある再帰的回答をタイムスタンプ付きで記録します。

ルート ドメイン ポリシーと明示的なサブドメイン ポリシーは、異なる名前で発行されます。両方が存在するというだけの理由で、それらは重複ではありません。彼らの関係は発見と範囲によって決まります。 サブドメイン ポリシー ガイド その関係を評価する方法を説明します。

同様に、ドメイン ルートのポリシーTXT 、関連する_dmarc名の代わりにはなりません。複数の場所にレコードを追加して、受信者が 1 つを選択することを期待するのではなく、対象の所有者を修復します。

レコードを文字列から区別する

1 つのTXTリソース レコードに複数の文字列を含めることができます。 DMARC 、これらの文字列を順番に連結してから解析します。 RFC 9989 §4.5。文字列の周囲に表示される引用符は、通常、検索ツールの表現です。

この合成ゾーン スタイルのフィクスチャは 1 つのTXTレコードです。

_dmarc.example.com. 300 IN TXT "v=DMARC1; p=none; " "rua=mailto:reports@example.com"

連結された値には、p タグと rua タグの間に区切り文字とスペースが含まれています。これは、これらの文字が文字列内に含まれているためです。リゾルバーは、それらを結合するときに欠落しているセパレーターを作成しません。

対照的に、2 つの別個のTXTリソース レコードは 2 つのレコードです。これらをスプレッドシートやインシデントノートに連結して、その発明された価値を分析しないでください。

ポリシー候補をカウントする前にフィルタリングする

の RFC 9989 §4.10 DNSツリーウォーク 現在のバージョンを識別する v タグで始まらないレコードを破棄します。複数のDMARCポリシー レコードが 1 つのターゲットで返された場合、そのターゲットではすべての DMARC ポリシー レコードが破棄されます。

したがって、同じ名前の無関係なTXT値は、自動的に 2 番目のDMARCポリシーにはなりません。元の各レコードを保存し、定義されたフィルタリングを適用した後、関連する候補をカウントします。

以下は合成フィクスチャであり、ライブ ルックアップ結果ではありません。

  • 1 つのターゲットに設定されたレコード: 1 つの現行バージョンのDMARC候補。調査する解釈: その候補とそのポリシーのセマンティクスを解析します
  • 1 つのターゲットに設定されたレコード: 1 つのDMARC候補と無関係な記述TXT 。調査すべき解釈: 無関係なTXTは 2 番目のDMARCポリシー候補ではありません
  • 1 つのターゲットに設定されたレコード: v=DMARC1;調査すべき解釈: 競合する政策候補。マージや最終レコードの選択はありません
  • 1 つのターゲットに設定されたレコード: 2 つの文字列からなる 1 つのレコード。調査する解釈: 文字列を順番に連結してから解析する

下 RFC 9989 §4.7の場合、バージョン タグは正確な値DMARC1で最初に出現する必要があります。後でそのテキストに言及するだけの文字列は、定義されたレコード ID の代わりにはなりません。

1 つのエラー ラベルを約束するのではなく、結果を追跡する

最初の検索時に複数のポリシー候補がその名前に有効なポリシーを残さない可能性があります。下 RFC 9989 §4.10.1、現在の検出は、該当するDNSツリー ウォークを通じて続行される場合があります。他の場所で見つかった使用可能なポリシーがメッセージに影響を与える可能性があります。

たとえば、架空のサブドメイン フィクスチャでは、 _dmarc.alerts.example.comにある 2 つの候補が破棄されます。その後、ディスカバリーによって該当する有効なポリシーが見つかった場合、 組織ドメイン、そのポリシーが適用される可能性があります。完全な検出で何も見つからなかった場合、 DMARCメッセージに適用されません。

すべての重複が同じものを生成することを約束しないでください Authentication-Results 実装間でのラベルまたはSMTP応答。受信者の実際の結果とその適用可能な検出パスを保存します。

DNS変更する前に、承認された 1 つのポリシーを調整します

どの値が意図的なものであるかを判断します。 2 つのレコードは、異なるチーム、古いレポート統合、またはデータを置き換えるのではなく追加した移行によって作成された可能性があります。

1 つの一貫した承認済みの価値を構築します。意図したレポートの宛先を保存して確認する アライメント、サブドメインのスコープとテスト設定。複数の集約受信者が承認されている場合は、次のように定義されたカンマ区切りの rua 宛先リストが使用されます。 RFC 9989 §4.7 1 つのポリシーでそのリクエストを表現できます。複数のポリシーTXTレコードは必要ありません。

必要な外部レポート権限を個別に確認します。 RFC 9990 §4。宛先アドレスを結合しても、制御できない宛先にはアクセス許可が付与されません。

修正を行って確認する

前の状態、完全に承認された後の状態、所有者名、TTL を保存し、承認を変更します。競合する候補を、その名前の目的の単一ポリシーに置き換えます。

次に、権限のあるサーバーで新しいレコード セットを確認し、関連する再帰ビューを調べます。キャッシュされた以前の値はしばらく残る可能性があるため、現在の 1 つの信頼できる回答は、すべての受信者が古いセットを破棄したという証拠ではありません。

代表的なメッセージ テストを実行し、その信頼できる認証とポリシーの結果を検査します。 DNS修正により、有効な構成の依存関係が確立されます。無関係にはならない DKIM署名 アプリケーションのエンベロープ ID を調整または修正します。

使用 記録のワークフロー パブリケーションとメッセージ検証を接続します。

次回の統合時に同じ競合が発生しないようにする

ドメインにポリシー所有者を与え、別のポリシーをやみくもに追加するのではなく、既存のレコードとの差分を提案する統合を要求します。各報告先のビジネス目的とライフサイクルを保持します。

有用な移行ハンドオフでは、誰が古い構成を削除し、誰が結果のレコード セットを検証するかを指定します。永続的な修正は、検出、レポート、および実際のメールの動作が理解された、関連する名前ごとに 1 つの意図的なポリシーです。

決定と証拠を分けて保管する

分割文字列フィクスチャの場合、最初の文字列はセミコロンとスペースで終わるため、これを rua で結合すると 1 つの一貫した値が得られます。表示順序に関係なく、2 つの別々のレコードが 2 つの候補のままになります。完全な検出結果を単一名の欠陥とは区別してください。 RFC 8767 §4 また、TTL の有効期限は、キャッシュされたデータのグローバルな削除期限として保証されていないことも意味します。フィクスチャは公開またはクエリされませんでした。

[ 取り除く ]

個別のTXT文字列、個別のレコード、および異なる所有者名。現在の候補のフィルタリングとその後の検出をトレースします。 1 つの一貫したポリシーを承認し、レポートとメールを個別に検証します。

【役割別】

これがあなたにとって何を意味するか

実際の次のステップに向けて、自分の役割を選択してください。

IT / メール管理者

レコード境界を保持し、検出を追跡します。

TXT表示では、文字列とリソース レコードの違いを隠すことができます。

次のステップ

  1. 完全で信頼できる再帰的な回答を取得します。
  2. カウントする前に現在のバージョンの候補をフィルタリングします。
  3. 修正されたポリシーと実際のメッセージの調整をテストします。

CISO / SecOps

修復中に信頼とレポートの範囲を確認します。

値を結合すると、レコード数以上に変化する可能性があります。

次のステップ

  1. 結果として得られる調整とサブドメイン ポリシーを承認します。
  2. すべての報告受信者を確認します。
  3. 古い統合構成を明示的に廃止します。

創業者 / 非技術系

1 人の所有者にポリシーの責任を負わせます。

新しい統合では、同じドメインに対して競合する命令を作成しないでください。

次のステップ

  1. ツールをオンボーディングする前に、ポリシーの所有権を割り当てます。
  2. 変更前と変更後を判読できるようにする必要があります。
  3. 重要なメールルートの修正を確認します。

[ よくある質問 ]

よくある質問

2 つのTXT文字列は常に 2 つのDMARCレコードですか?

いいえ。1 つのTXTリソース レコードには複数の文字列を含めることができます。 DMARC 、解析する前にこれらの文字列を順番に結合します。個別のリソース レコードは個別のままです。

RFC 9989 §4.5

DNS最後または最新のDMARCレコードを選択しますか?

そのようなポリシー選択ルールは適用されません。リソース レコードの表示順序に依存したり、競合するポリシーをマージしたりしないでください。

RFC 9989 §4.10

追加のTXTレコードはすべて重複したDMARCポリシーとしてカウントされますか?

いいえ。レコード境界を保持し、現在のバージョンのレコード識別ルールを適用します。関連のないTXTデータは、自動的に 2 番目のポリシー候補にはなりません。

RFC 9989 §4.10

親ドメインとサブドメインはそれぞれ独自のDMARCレコードを持つことができますか?

はい。これらは異なる所有者名であり、検出によってメッセージに適用されるポリシーが決定されます。それらの共存は、1 つの名前で重複するものではありません。

RFC 9989 §4.10.1

ポリシー候補が重複すると、常に同じ永続的なエラーが発生するのでしょうか?

1 つのユニバーサル ラベルまたはSMTP結果を想定しないでください。 RFC 9989ターゲットで複数のポリシー候補を破棄し、残りの検出パスは別のポリシーが使用されるかどうかに影響を与える可能性があります。

RFC 9989 §4.10 RFC 9989 §4.10.1

2 つの宛先にレポートをリクエストするにはどうすればよいですか?

1 つのポリシー内で、承認されたカンマ区切りの rua URI リストを使用します。必要な外部宛先の承認と、関連する宛先ごとに実際の収集を確認します。

RFC 9989 §4.7 RFC 9990 §4

重複レコードを修正すれば、メールがDMARCに合格することが証明されますか?

いいえ。レコードセット修復後に、代表メッセージの実際の ID、認証、および調整を検証します。

RFC 9989 §5.3.5

次のベンダー統合時にこれを回避するにはどうすればよいでしょうか?

ドメインのポリシー所有者に、古い値と宛先の廃止を含む、既存の完全なレコードに対する変更案をレビューするよう要求します。

[ 情報源 ]

情報源

  1. RFC 9989

    セクション §4.5 · §4.7 · §4.10 · §4.10.1 · §5.3.5 · §3.2.6

  2. RFC 9990

    セクション §4

  3. RFC 8767

    セクション §4

[ 用語集 ]

用語集

DMARCポリシーレコード
検証を可能にし、該当するドメインの処理設定とオプションのレポート要求を表現するDNS TXTレコード。

RFC 9989 §3.2.6

TXT文字列
1 つのTXTレコード内の複数の文字列は、 DMARCの順序で連結されます。別々のレコードは結合されません。

RFC 9989 §4.5

企業の来歴

一流の金融機関と政府が選ばれる理由 電子メール セキュリティ ダッシュボードを廃止しました。

従来の電子メール認証プラットフォームはダッシュボードを販売し、エンジニアに作業を依頼します。一か八かの環境では、手動による監視は適用の遅れ、構成のドリフト、および監視されていないシャドウ ドメインを意味します。

EmailAuthは、エージェントの電子メール来歴プラットフォームです。 当社のエージェントが執行します p=reject、サードパーティの送信者を調整し、ドメインを完全に移動します。 RFC 9989 新しいDMARC標準に準拠し、人間による監査機能を備えています。

政府 大企業 ティア1金融機関

SaaS · 専用テナント · エアギャップオンプレミス · BYOK 暗号化

ナレッジベース