正解は イ
DNSキャッシュポイズニング攻撃は、DNSキャッシュサーバに偽のドメイン名とIPアドレスの対応情報を覚え込ませ、利用者を偽のサイトへ誘導する攻撃です。攻撃者は、キャッシュサーバが正規の権威DNSサーバからの応答を待っている間に、偽の応答を送り込んで先に受け入れさせようとします。このとき、キャッシュサーバが偽応答を本物と誤認してしまうかどうかは、DNSメッセージの問合せ識別子(DNSヘッダ内のID、トランザクションID)が一致するかどうかなどで判定されます。そこで、DNS問合せに使用するこのIDを固定せず、毎回ランダムに変更すれば、攻撃者がIDを推測して偽応答を一致させることが難しくなり、攻撃の成功確率を大きく下げられます。選択肢bの「DNS問合せに使用するDNSヘッダ内のIDを固定せずにランダムに変更する」が、有効な対策として正しく、正解です。問合せIDのランダム化に加え、送信元ポート番号のランダム化を併用すると、攻撃者が推測すべき値の組合せが増え、さらに耐性が高まります。DNSSECによる応答の正当性検証も根本的な対策として知られています。
DNSキャッシュポイズニング対策=問合せID(トランザクションID)のランダム化(+送信元ポートのランダム化で推測を困難に)、DNSSECによる応答の正当性検証。偽応答を本物と誤認させない仕組みが要点。