レスポンス・ポリシー・ゾーン(RPZ)は、標準的なDNSゾーンに適用ルールをレコードとして保存することで、再帰的リゾルバーがDNS応答にポリシールールを適用できるようにするDNSセキュリティメカニズムです。これにより、管理者は特定のドメインに対するクエリをブロック、リダイレクト、または許可することができ、ゾーン転送を通じてそれらのルールを配布できます。 RPZは、エンドポイントソフトウェアを必要とせずに数千台のデバイスに適用できる、一元化されたポリシーベースのDNSフィルタリングを組織に提供します。既知のマルウェア、フィッシング、またはコマンド&コントロールドメインへの接続を早期に遮断することでセキュリティ上の価値をもたらすと同時に、感染したホストを特定するためのログを生成します。 ただし、RPZはDNSレイヤーでのみ動作し、正当なサービスをブロックしないよう慎重な管理が必要であるほか、直接的なIP接続や外部リゾルバーを使用するクライアントに対しては保護できないため、より広範なネットワークセキュリティ戦略の一層として最も効果を発揮します。
RPZの仕組み
RPZとは、通常のデータではなくポリシーを記述するレコードを持つ、通常のDNSゾーンのことです。このゾーンを使用するように設定されたリゾルバーは、各応答を生成する際にそのルールを確認します。
- ポリシーゾーンの公開:管理者またはフィードプロバイダーがゾーンを作成します。このゾーンでは、所有者名やレコードデータに、トリガーとなるドメイン名や実行すべきアクションなどのルールがエンコードされます。
- リゾルバーへの配布:リゾルバーは標準的なゾーン転送を通じてゾーンをセカンダリとして読み込むため、ルールの更新は再起動や手動での編集を必要とせずにリゾルバーに反映されます。
- クエリの照合:クライアントが名前を要求すると、リゾルバーはクエリ名、および場合によっては返されたアドレスやネームサーバーを、ポリシールールと照合します。
- アクションの適用:ルールに一致した場合、リゾルバーは応答を書き換えます。一般的なアクションには、NXDOMAINを返す、空の応答を返す、リダイレクト先を返す、または応答をそのまま通過させるなどがあります。
- レスポンスを返す:クライアントは変更された、あるいは元の応答を受け取りますが、その結果として生じる動作以外からは、ポリシーが適用されたことを通常は判別できません。
一致の判定は、RPZをサポートし有効にしているリゾルバー上でのみ行われ、複数のポリシーゾーンにまたがってルールの順序を指定することで優先順位を設定できます。また、多くのリゾルバーでは一致した記録をログに記録できるため、セキュリティチームは、どのクライアントがブロックされた名前をクエリしたかの記録を確認できます。
RPZの一般的な問題点
共有ホスティングやコンテンツ配信ドメインなど、範囲が広すぎるフィードエントリは、無関係なサイトをブロックしてヘルプデスクへの問い合わせを引き起こす可能性があります。フィードの手前に配置されたローカルポリシーゾーンで、影響を受ける名前に対してパススルールールを追加してください。
複数のポリシーゾーンが設定されている場合、リゾルバーはリストされた順序でそれらを評価するため、ローカルの許可リストよりも前に配置されたフィードが、その許可リストを上書きする可能性があります。ゾーンの順序が修正されるまで、エンジニアは許可エントリがあるにもかかわらず、その名前が依然としてブロックされているのを目にするでしょう。
TSIGキーの不一致、ファイアウォールルール、または有効期限が切れたアクセスリストが原因で、フィードプロバイダーからのゾーン転送が失敗した場合、リゾルバーは古いゾーンを引き続き提供し続け、新たな脅威がブロックされなくなります。これを検知するには、プライマリゾーンとのゾーンシリアル番号を照合して監視してください。
ポリシーゾーンの規模が非常に大きいと、メモリ使用量や読み込み時間が増加し、転送後の完全な再読み込みにより、クエリ処理が一時的に遅くなる場合があります。症状としては、フィードの更新後にレイテンシの増加やメモリ使用量の増加が見られます。
パブリックリゾルバー、ブラウザのDNS over HTTPS、またはハードコードされたサーバーを使用するクライアントは、ポリシーゾーンを参照することはありません。アウトバウンドDNSが承認されたリゾルバーに限定されるまでは、一部のデバイスではブロックが機能し、他のデバイスでは機能しないように見える場合があります。