セキュリティ実装技術(全74問中30問目)

DNSキャッシュサーバに対して外部から行われるキャッシュポイズニング攻撃への対策のうち,適切なものはどれか。

出典:平成29年春期 問41

  • 外部ネットワークからの再帰的な問合せにも応答できるように,コンテンツサーバにキャッシュサーバを兼ねさせる。
  • 再帰的な問合せに対しては,内部ネットワークからのものだけに応答するように設定する。
  • 再帰的な問合せを行う際の送信元のポート番号を固定する。
  • 再帰的な問合せを行う際のトランザクションIDを固定する。
正解 問題へ
分野:テクノロジ系
中分類:セキュリティ
小分類:セキュリティ実装技術
解説
DNSキャッシュポイズニング攻撃は、DNSキャッシュサーバに偽のDNS情報をキャッシュとして登録させることで、利用者を偽のWebサイトに誘導する攻撃です。

まず設問に登場する「再帰的な問合せ」について確認しておきます。DNSの名前解決はその性質によって「再帰的な問合せ」と「反復(非再帰的)問合せ」に区別されます。
再帰的な問合せ
リゾルバから名前解決要求を受けたDNSサーバが他のDNSサーバに代理して問合せを行い、最終的な結果をリゾルバに返す必要のある問合せのこと
反復問合せ
リゾルバから再帰的問合せを受けたDNSサーバが、それを解決できるまで繰り返し他のDNSサーバに行う問合せのこと
41.png
この2つの問合せの違いを踏まえて、攻撃者がDNSキャッシュサーバに偽のキャッシュ情報を登録させる手順を追ってみます。
  1. 攻撃者は、キャッシュサーバに対して偽の再帰的な問合せを行い反復問合せを強制的に生じさせる。
  2. キャッシュサーバは、コンテンツサーバに対して反復問合せを行う。
  3. 攻撃者は、コンテンツサーバが正規の応答を返すよりも先にキャッシュサーバへ偽の応答を送りつける。
  4. キャッシュサーバは、攻撃者から送られた偽の応答を正規のものと判断しキャッシュに登録する。この時点でDNSクエリは解決済なのでコンテンツサーバから送られた正規の応答は破棄される。
DNSキャッシュポイズニングは、上記のように外部から攻撃目的で送られた再帰的な問合せをキャッシュサーバが処理してしまうことから始まります。再帰的問合せの役割は、内部ネットワークのホストが外部ネットワークに接続する際の名前解決であり、原則として外部からの再帰的な問合せに応じる必要はないはずですから、再帰的な問合せを受け付けるホストを内部ネットワークだけに限定することがキャッシュポイズニング攻撃への対策となります。
また、DNSでは送信元のIPアドレスとポート番号、トランザクションIDの全てが一致しないと、キャッシュサーバはコンテンツサーバからの正しい応答として認めない仕組みを備えています。このためDNSキャッシュポイズニングが成立するためには、反復問合せに対する偽の応答メッセージに含まれる各情報を正規の応答と一致させる必要があります。DNSの設定で、ポート番号やトランザクションIDが固定されていたり推測されやすいものになっていたりすると、パケットの偽装が容易になり攻撃に対して脆弱になってしまいます。
  • キャッシュサーバは外部からの再帰的な問合せに応じない設定にする必要があります。
  • 正しい。
  • 送信元のポート番号を固定しても、外部からの再帰的な問合せに対して効果はありません。
  • トランザクションIDを固定しても、外部からの再帰的な問合せに対して効果はありません。

この問題の出題歴


Pagetop