基本情報技術者 2012年 秋期 午前(科目A) 問37
問題文
DNSキャッシュポイズニングに分類される攻撃内容はどれか。
選択肢
ア:DNSサーバのソフトウェアのバージョン情報を入手して、DNSサーバのセキュリティホールを特定する。
イ:PCが参照するDNSサーバに誤ったドメイン情報を注入して、偽装されたWebサーバにPCの利用者を誘導する。(正解)
ウ:攻撃対象のサービスを妨害するために、攻撃者がDNSサーバを踏み台に利用して再帰的な問合せを大量に行う。
エ:内部情報を入手するために、DNSサーバが保存するゾーン情報をまとめて転送させる。
DNSキャッシュポイズニングに分類される攻撃内容はどれか。【午前2 解説】
要点まとめ
- 結論→ DNSキャッシュポイズニングはDNSのキャッシュに誤った名前解決結果を注入して利用者を偽サイトへ誘導する攻撃で、選択肢イが該当します。
- 根拠→ 本攻撃は正規のDNS応答を偽装してリゾルバのキャッシュに保存させる点が本質であり、ゾーン転送や脆弱性の列挙、DDoSとは目的や手法が異なります。
- 差がつくポイント→ 「応答の注入・改ざんで利用者を誘導するか」「大量問合せで妨害するか」「情報取得か」を明確に区別できるかが得点差を生みます。
正解の理由
選択肢イは、PCが参照するDNSサーバ(リゾルバ)のキャッシュに誤ったドメイン情報を注入して、利用者を攻撃者が用意した偽装Webサーバへ誘導する、まさにDNSキャッシュポイズニングの定義に合致します。攻撃者は偽の応答を送ってトランザクションIDやポート番号などを突き合わせ、リゾルバがその偽応答を正当な応答と判断してキャッシュに保存すると、その後の問い合わせで偽アドレスが返されます。これにより正規サイトへアクセスしようとした利用者が偽サイトへリダイレクトされ、情報窃取やフィッシングが行われます。
よくある誤解
- 「DNSキャッシュポイズニング=サーバの脆弱性攻撃」:脆弱性調査(ア)は侵入や脆弱性特定であり、キャッシュに誤った応答を注入する目的とは異なります。
- 「再帰的な大量問合せもキャッシュ汚染だ」:大量問合せはDDoSやリフレクション(ウ)に該当し、キャッシュの内容を改ざんする攻撃とは別です。
- 「ゾーン転送でキャッシュが汚染される」:ゾーン転送(エ)はゾーンデータの取得(情報漏えい)であり、リゾルバのキャッシュ書換とは目的が違います。
解法ステップ
- 問題文から「キャッシュに誤ったドメイン情報を注入」とあるかを確認する。
- 「利用者を偽装Webサーバへ誘導する」という記述があればキャッシュ改ざん・偽応答を想定する。
- 他の選択肢が「脆弱性探索」「大量問合せ(DDoS)」「ゾーン転送(情報取得)」であれば目的が異なるので除外する。
- 該当する選択肢を選ぶ(本問はイ)。
選択肢別の誤答解説
- ア: DNSサーバのソフトウェアのバージョン情報を入手して、DNSサーバのセキュリティホールを特定する。
→ 説明:これは攻撃前の情報収集・脆弱性探査に相当し、キャッシュに偽情報を注入する行為ではありません。 - イ: PCが参照するDNSサーバに誤ったドメイン情報を注入して、偽装されたWebサーバにPCの利用者を誘導する。
→ 説明:正解。DNS応答を偽装してリゾルバのキャッシュを書換し、利用者を偽サイトへ誘導する典型的なキャッシュポイズニングです。 - ウ: 攻撃対象のサービスを妨害するために、攻撃者がDNSサーバを踏み台に利用して再帰的な問合せを大量に行う。
→ 説明:これはDDoSやリフレクション/再帰濫用に該当し、キャッシュの内容を書換する攻撃とは性質が異なります。 - エ: 内部情報を入手するために、DNSサーバが保存するゾーン情報をまとめて転送させる。
→ 説明:ゾーン転送(AXFR)は情報漏えい手法であって、キャッシュ応答を偽装する行為ではありません。
補足コラム
DNSキャッシュポイズニングの代表的手法には、トランザクションIDやソースポートの推測/衝突を狙うものがあり、古い実装ではこれらが予測可能であったため成功しやすかった歴史があります。対策としてはDNSSEC(応答にデジタル署名を付与して改ざんを検出)、ソースポートのランダム化、トランザクションIDのランダム化、キャッシュの厳格なTTL管理、最新のリゾルバソフトへの更新等が有効です。また、キャッシュ汚染とDNSベースのDDoS(再帰的問合せの濫用、反射増幅)は違う攻撃カテゴリなので、対策も分けて考える必要があります。
FAQ
Q1: DNSキャッシュポイズニングとDNSスプーフィングの違いは?
A1: 用語の使われ方は重なることが多いですが、一般にキャッシュポイズニングは「リゾルバのキャッシュを書換する攻撃」を指し、スプーフィングは「送信元や応答を偽装する行為」を広く指します。実務ではほぼ同義で扱われる場合もあります。
A1: 用語の使われ方は重なることが多いですが、一般にキャッシュポイズニングは「リゾルバのキャッシュを書換する攻撃」を指し、スプーフィングは「送信元や応答を偽装する行為」を広く指します。実務ではほぼ同義で扱われる場合もあります。
Q2: DNSSECがあれば完全に安全ですか?
A2: DNSSECは応答の正当性を検証できる強力な対策ですが、導入されていないゾーンやリゾルバが存在するため、完全な普及までは他の対策(ソフト更新やポートランダム化)も重要です。
A2: DNSSECは応答の正当性を検証できる強力な対策ですが、導入されていないゾーンやリゾルバが存在するため、完全な普及までは他の対策(ソフト更新やポートランダム化)も重要です。
Q3: キャッシュポイズニングで被害を受けたらどう対処すべきですか?
A3: まず該当リゾルバのキャッシュをクリアし、問題の偽レコードがTTL切れで消えるのを待つとともに、ログ解析で侵入経路や手法を特定し、再発防止策(パッチ適用、設定見直し、DNSSEC導入)を実施します。
A3: まず該当リゾルバのキャッシュをクリアし、問題の偽レコードがTTL切れで消えるのを待つとともに、ログ解析で侵入経路や手法を特定し、再発防止策(パッチ適用、設定見直し、DNSSEC導入)を実施します。
関連キーワード: DNS、DNSキャッシュポイズニング、キャッシュ汚染、DNSSEC、ゾーン転送、DNSリダイレクト

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

