正答2
解説
正解は2です。
この問題は、DNSキャッシュサーバに対するキャッシュポイズニング攻撃への対策を問うています。
キャッシュポイズニングは、キャッシュサーバに偽のDNS応答を受け取らせ、誤った名前解決の情報をキャッシュさせる攻撃です。
外部の誰からでも再帰的な問合せを受け付けるキャッシュサーバ(オープンリゾルバ)は、攻撃者が問合せのタイミングを作れるため狙われやすくなります。
【選択肢別解説】
1:× コンテンツサーバにキャッシュサーバを兼ねさせ、外部からの再帰的な問合せにも応答させると、攻撃者が自由に問合せを送れる状態になり、かえって危険です。
コンテンツサーバとキャッシュサーバは分離するのが望ましいです。
2:○ 再帰的な問合せを内部ネットワークからのものだけに限れば、外部の攻撃者がキャッシュサーバに問合せをさせて偽の応答を差し込む機会を減らせます。
3:× 送信元ポート番号を固定すると、攻撃者は偽の応答を作るときにポート番号を推測する必要がなくなり、攻撃が成功しやすくなります。
対策としては、ポート番号をランダムにします。
4:× トランザクションIDを固定すると、偽の応答に正しいIDを付けることが容易になり、攻撃が成功しやすくなります。
トランザクションIDもランダムにする必要があります。
【ポイント】
キャッシュポイズニングの代表的な対策は、オープンリゾルバをなくすこと、送信元ポートとトランザクションIDのランダム化、DNSSEC(DNS Security Extensions)による応答の検証です。