有用なDNS履歴は、意図と観察の両方を説明します。変更チケットには、オペレーターが公開しようとした内容が記載されています。信頼できる回答は、特定の時点でクエリされたサーバーが何を返したかを示します。再帰的な応答は、リゾルバーがキャッシュから返したものを示します。認証インシデントを再構築するときは、3 つすべてを維持してください。どれだけでも完全な物語を語ることはできません。
正確なオブジェクトとソースを記録する
すべての観測について、UTC 時間、クエリされた所有者名、タイプ、サーバー アドレス、トランスポート、応答コード、関連フラグ、TTL、および完全な応答が保持されます。生の出力またはワイヤデータと正規化されたビューを保存します。監視が権威サーバー、再帰リゾルバー、またはコントロール パネルのエクスポートからのものであるかどうかを記録します。 RFC 1034 権限とキャッシングの違いについて説明します。
ポリシー変更の場合は、以前の値と意図した値、承認者、ビジネス上の理由、影響を受ける送信者、ロールバック条件を保持します。その後のスクリーンショットでは、以前のDNS状態を証明できません。歴史が記録されていない場合は、そう言ってください。受動的な観察やレポートのメタデータは手がかりを提供しますが、完全な信頼できる変更ログとして提示されるべきではありません。
レコードを比較するときにセマンティクスを維持する
慎重に正規化してください。 DNS名は大文字と小文字を区別しませんが、すべてのTXTコンテンツを無差別に変換すると証拠が損なわれる可能性があります。 TXT RDATA には複数の文字列を含めることができます。プレゼンテーションの引用は、複数の独立したリソース レコードと同じではありません。元の構造を保持し、アプリケーションに意味のある値を個別に比較します。のために SPF、複数のポリシー レコードは意味の問題であり、無害な形式ではありません。
ポリシー値の変更を、TTL 変更、委任変更、およびリゾルバー キャッシュ移行から分離します。否定的な応答は、次の否定的なキャッシュ ルールに従って持続することができます。 RFC 2308。新しい正式な値は、すべての受信者がそれをすぐに使用したことを証明するものではありません。 1 回の成功したルックアップから普遍的な伝播完了時間を導き出すことは避けてください。
編集時間を作らずに 2 つの観測値を読み取る
10:00 に許可された権限のあるクエリが古いポリシーを示しているとします。 10:05 で、同じ権限が新しいポリシーを返しますが、再帰リゾルバは引き続きキャッシュ有効期間が残っている古い値を返します。どちらの観測結果も、それぞれの情報源に対して正確である可能性があります。どちらも、他のすべてのサーバーまたは受信者が新しい値を持つことを確立しません。
これは仮説的なタイムラインであり、保持されたパケットや実行されたDNSラボではありません。プロバイダー監査イベントが利用できない場合、正確な変更の瞬間は不明です。問い合わせられた権威者における単一の遷移という既述の仮定の下では、観察結果は、その権威者の目に見える答えが変化したときに拘束されます。正確な発行時期や世界的な収束を証明するものではありません。推測されたタイムスタンプを入力するのではなく、欠落している監査イベントを記録します。
履歴をメッセージ証拠に結び付ける
障害を確認するときは、メッセージのタイムスタンプ、 DNS観察、署名セレクター、キューの遅延、およびレポートの観察間隔を調整します。 RFC 9990 は集計レポート コンテキストを提供しますが、レポートはDNS編集のトランザクション ログではありません。認証結果には評価が記述されます。原因となった正確なリゾルバー キャッシュの内容が明らかにならない可能性があります。
承認されたアクセスおよび保持ポリシーに基づいて証拠を保持します。ハッシュは変更されたバイトの検出に役立ちますが、署名されていないローカル マニフェストは改ざん防止の来歴ではありません。ソースとコレクションのコンテキストをダイジェストで保持します。見晴らしの良い場所や未記録の期間など、ギャップを明確にします。目標は、防御可能な再構築と、より安全な次の変更であり、すべての受信者のビューについて誤った確信を持つことではありません。