情報セキュリティマネジメント試験 令和7年度 公開問題(過去問) 問5 について解説します。
問題
問5 DNSキャッシュサーバでのDNSキャッシュポイズニング攻撃の対策はどれか。
ア DNSサービスの待ち受けポートを53番に固定する。
イ 外部のDNSクライアントからの再帰的問合せを受け付けない設定にする。
ウ 権威DNSサーバへの問合せに使用するトランザクションIDを固定する。
エ 権威DNSサーバへの非再帰的問合せを行う設定にする。
解説・解答
DNSキャッシュポイズニング攻撃とは
DNSキャッシュサーバは、クライアントから受け取った名前解決の問合せに対して、自分が持っているキャッシュに情報があればそれを返します。情報がなければ、権威DNSサーバへ問合せて得た情報をキャッシュに保存し、クライアントへ返します。
DNSキャッシュポイズニング攻撃は、DNSキャッシュサーバのキャッシュに誤った情報(偽のIPアドレスなど)を注入する攻撃です。攻撃者は、キャッシュサーバが権威DNSサーバに問合せを行ったタイミングを狙って、偽の応答パケットを送りつけます。その偽の応答が本物より先にキャッシュサーバに届くと、キャッシュサーバはそれを正しい情報だと思ってキャッシュしてしまい、以降、そのドメイン名に対する問合せでは攻撃者が仕込んだIPアドレス(偽サイト)へ誘導されるようになります。
DNSキャッシュポイズニング攻撃の対策
攻撃者がDNSキャッシュポイズニング攻撃を成功させるには、少なくとも次の条件が必要です。
1. 攻撃対象のDNSキャッシュサーバに問合せを出せること
DNSキャッシュサーバが再帰的問合せを受け付けてくれる必要があります。
2. 偽応答を当てるために宛先IPアドレス・ポート番号(通常は53/UDP)・トランザクションIDなどを正しく推測できること
したがって、代表的な対策は
・外部から自由に再帰的問合せできるようにしない
・トランザクションIDやポート番号をランダム化して推測しにくくする
・DNSSECなどで応答の真正性を検証する
といったものになります。
再帰的問合せについて
クライアントが「○○.com のIPアドレスを教えて」とDNSキャッシュサーバに聞くと、キャッシュサーバが全部の検索を代わりに行い、その結果をクライアントに返すという方式です。
(イメージ図) ※②~④の問合せが非再帰的問合せ(反復問合せ)
[ クライアント ]
|
| ① 再帰的問合せ(example.com のIPアドレスを教えて)
v
ーーーーーーーーーーーーーーーーーー
| DNSキャッシュサーバ(リゾルバ) |
ーーーーーーーーーーーーーーーーーー
|
| ② ルートDNSへ問合せ
v
[ ルートDNS ]
|
| ③ .com DNSの場所を教える
v
[ .com DNS ]
|
| ④ example.com のDNSの場所を教える
v
[ 権威DNS(example.com) ]
|
| ⑤ IPアドレスを返す
v
ーーーーーーーーーーーーーーーーーーーーーー
| DNSキャッシュサーバ(結果をキャッシュ) |
ーーーーーーーーーーーーーーーーーーーーーー
|
| ⑥ クライアントへ結果を返す(example.com のIPアドレスを返す)
v
[ クライアント ]
それぞれの選択肢について確認します。
ア: DNSサービスの待ち受けポートを53番に固定する。
DNSサーバは通常、ポートを53番で待ち受けるのが標準です。ポートを53番に固定しても、攻撃者からするとポート番号が予測しやすいままで、攻撃を防ぐ対策にはなりません。
イ: 外部のDNSクライアントからの再帰的問合せを受け付けない設定にする。
DNSキャッシュポイズニング攻撃をするとき、攻撃者はまず標的となるDNSキャッシュサーバに対して再帰的問合せを投げる必要があります。その問合せに対する応答を偽装して送りつけることで、キャッシュを汚染します。
したがって、再帰的問合せを受け付けるDNSクライアントを社内など信頼済みの範囲に限定し、外部のDNSクライアントからの再帰的問合せを受け付けない設定にすると、インターネット上の攻撃者がそのDNSキャッシュサーバを攻撃対象とすることを難しくできます。
よって、これはDNSキャッシュポイズニング攻撃の対策として有効なので、これが正解となります。
ウ: 権威DNSサーバへの問合せに使用するトランザクションIDを固定する。
トランザクションIDはクエリとレスポンスを対応づけるための識別子で、推測されにくいようにランダムに変化させるべきものです。トランザクションIDを固定すると攻撃者がIDを簡単に予測でき、偽の応答を当てやすくなり、DNSキャッシュポイズニングが成功しやすくなります。よって、攻撃を防ぐ対策ではありません。
エ: 権威DNSサーバへの非再帰的問合せを行う設定にする。
DNSキャッシュサーバが権威DNSサーバへ問合せをするときは、通常は非再帰的(=権威サーバ側では再帰処理しない)問い合わせ、つまり反復問い合わせを行います。この設定は標準的な挙動であり、特にDNSキャッシュポイズニング攻撃の対策として意識的に行うものではありません。また、非再帰的にすることで偽の応答を難しくするわけでもなく、キャッシュに誤情報を入れられないようにする効果もないため、攻撃を防ぐ対策にはなりません。
以上により、この問題の解答は「イ」になります。
