戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

情報セキュリティマネジメント 2025年 科目A05


問題文

DNSキャッシュサーバでのDNSキャッシュポイズニング攻撃の対策はどれか。

選択肢

DNSサービスの待ち受けポートを53番に固定する。
外部のDNSクライアントからの再帰的問合せを受け付けない設定にする。(正解)
権威DNSサーバへの問合せに使用するトランザクションIDを固定する。
権威DNSサーバへの非再帰的問合せを行う設定にする。

🔒 解説は解答すると表示されます

DNSキャッシュポイズニング対策【情報セキュリティマネジメント解説】

正解の理由

DNS(Domain Name System:ドメイン名をIPアドレスに変換する仕組み)を提供するキャッシュサーバに対する攻撃「DNSキャッシュポイズニング」は、外部から再帰的問合せ(クライアントからの要求を受け取り、必要に応じて他のDNSサーバへ問い合わせを代理で行う動作)を受け付けることで悪用されます。外部の第三者が再帰的問合せを送れると、その応答を偽装してキャッシュに偽の情報を書き込ませる機会が生まれます。
したがって、外部のDNSクライアントからの再帰的問合せを受け付けない設定にする選択肢、すなわち が正解です。受け付けを遮断することで、攻撃者があなたのキャッシュサーバを踏み台にして偽データを注入するリスクを減らせます。

解法ステップ

  1. 「キャッシュポイズニング」が何を狙うかを整理する(キャッシュに偽の名前解決結果を書き込むこと)。
  2. 各選択肢がその攻撃経路にどう影響するかを考える。
  3. 外部からの再帰を許すと攻撃者に利用される点に注目し、これを遮断する選択肢を選ぶ。

選択肢別の誤答解説

  • ア: DNSサービスの待ち受けポートを53番に固定する。
    ポート53はDNSの標準ポートです。ポートを固定しても攻撃自体は防げません。むしろ攻撃者は標準ポートを利用して攻撃を行うため意味がほとんどありません。効果的なのは「ソースポートのランダム化(応答の予測を困難にする)」などです。
  • : 外部のDNSクライアントからの再帰的問合せを受け付けない設定にする。
    正解。外部からの再帰を遮断すると、攻撃者がそのサーバを使って偽応答をキャッシュに注入する経路を断てます。実運用では、許可するネットワーク(社内ネットワークや特定のフォワーダ)だけに再帰を制限します。
  • ウ: 権威DNSサーバへの問合せに使用するトランザクションIDを固定する。
    トランザクションID(問い合わせと応答を対応付ける識別子)はランダムであるべきです。固定すると応答を偽装する攻撃者が簡単に一致させられるため、むしろ危険になります。正しくは「ランダム化」して予測を難しくします。
  • エ: 権威DNSサーバへの非再帰的問合せを行う設定にする。
    権威サーバへの問い合わせを非再帰にするのは通常の挙動であり、キャッシュサーバ側の外部再帰受け入れ設定とは別の話です。外部からの再帰を遮断する方が直接的な対策です。

よくある誤解

  • ポート番号を変えれば安全になる:攻撃者は標準ポートに合わせて動くため、単純なポート変更は有効な防御になりません。防御はプロトコルの振る舞い(再帰の許可範囲や応答のランダム化)で行います。
  • トランザクションIDを固定すれば検証が楽になる:IDを固定すると攻撃者が応答を一致させやすくなり危険です。必ずランダム化します。
  • 「非再帰」にすれば全て解決:非再帰の意味を混同しやすいですが、外部クライアントからの再帰要求を受け付けない設定(allow-recursion制御など)がポイントです。

補足コラム

実務での運用イメージ:
  • 内部の社員や自社システムは社内ネットワークからのみ再帰を許可するACL(アクセス制御)を設定します。外部からの再帰は拒否します。
  • さらに有効な追加対策として、以下があります。
    • DNSソフトウェアのバージョンを最新に保つ(既知の脆弱性修正)。
    • トランザクションIDだけでなく、送信元ポートのランダム化を有効にする。
    • DNSSEC(DNS Security Extensions:DNS応答に電子署名を付ける仕組み)を導入して真正性を検証する。
    • 応答のケースランダマイゼーション(0x20ビット)など、追加のランダム化技術を用いる。
  • BIND(一般的なDNSサーバ)の設定例(簡略):
options {
  recursion yes;
  allow-recursion { 192.168.0.0/16; localhost; };  // 内部のみ許可
  allow-query { any; };  // 問合せは受けるが再帰は内部だけ
};
このようにして、外部からの再帰要求を拒否します。

FAQ

Q. 「外部のDNSクライアント」とは誰ですか?
A. インターネット上の第三者や顧客・取引先の端末など、社内ネットワーク外からの問い合わせを指します。社外からの再帰要求を受けると攻撃に使われる可能性があります。
Q. トランザクションIDって何ですか?
A. トランザクションIDはDNSの問い合わせと応答を対応付ける識別子です。予測されにくいランダムな値にすることが重要です。
Q. DNSSECを導入すれば完全に安全ですか?
A. DNSSECは応答の真正性を保証し、キャッシュポイズニングに強力に有効です。しかし導入・運用の手間や対応が必要です。ACLやランダム化などの他対策と併用するのが現実的です。
Q. 自分のサーバが外部再帰を受け付けるか確認するには?
A. DNSサーバの設定(BINDならallow-recursion、Windows DNSなら「再帰の許可」設定)を確認します。ネットワーク外からテスト用に問合せを送って応答を受けるかを確認することでも判定できます(ただし外部からのテストは管理者権限下で行ってください)。

関連キーワード: DNS、DNSキャッシュポイズニング、再帰的問合せ、トランザクションID、DNSSEC、ランダム化、アクセス制御、キャッシュサーバ運用
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

情報セキュリティマネジメント
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について