DNSの仕組みと名前解決セキュリティ|キャッシュポイズニング攻撃・カミンスキー攻撃・DNSSEC
名前解決を守るでは、権威DNSとリゾルバ、署名検証と通信暗号化を区別します。用語を覚えるだけでなく、事例の条件に合う対策を選べるように整理しましょう。
科目Aで基本的な意味を確認し、科目Bでは「守る情報・起きた事象・組織のルール・担当者の権限」を読み取ります。本文の確認問題は、考え方を練習するためのオリジナル問題です。
1. DNSの基本構造と名前解決の流れ
DNSは世界中に分散配置されたサーバが木構造(ツリー構造)を形成し、階層的に委任(Delegation)を行うことで巨大な名前空間を管理しています。
DNSサーバの役割 | 正式名称 | 果たすべき機能と責任 | セキュリティ上の管理原則 |
|---|---|---|---|
DNSコンテンツサーバ(権威DNSサーバ) | Authoritative Name Server | 自組織が管理するドメイン(ゾーン)の正式なレコード情報を保持し、外部からの問合せに回答する。 | 外部からの再帰的問合せは「拒否(無効化)」し、自ドメインの情報のみ回答する。 |
DNSキャッシュサーバ(フルサービスリゾルバ) | Recursive Caching Resolver | 社内PCなどのクライアントの代わりにルートDNSから順に反復問合せを行い、結果を一定期間(TTL)キャッシュして高速応答する。 | 社内LANからのみ利用を許可し、インターネット側からの再帰問合せは「遮断(オープンリゾルバ防止)」する。 |
主要なDNSレコード一覧
Aレコード:IPv4アドレス(ホスト名 → 32bit IPv4アドレス)
AAAAレコード:IPv6アドレス(ホスト名 → 128bit IPv6アドレス)
MXレコード:メール配送先(宛先ドメイン宛てのメールを中継するメールサーバのホスト名と優先度)
CNAMEレコード:別名(カノニカルネーム。あるホスト名を別の正式なホスト名に紐付ける)
PTRレコード:逆引き(IPアドレス → ホスト名)
TXTレコード:テキスト情報(SPFレコードによる送信ドメイン認証やドメイン所有権の証明に使用)
2. DNSキャッシュポイズニングとカミンスキー攻撃
DNSキャッシュポイズニングとは、DNSキャッシュサーバに対して偽の名前解決応答を送り込み、キャッシュ内に偽のIPアドレスを記憶させる攻撃です。
攻撃者は、標的のDNSキャッシュサーバに対して「存在しないサブドメイン(例: `12345.example.com`)」の問合せを送信する。
キャッシュサーバは、正規の権威DNSサーバへ反復問合せ(UDP問合せ)を行う。
攻撃者は、正規の権威DNSサーバからの返答が届く前に、偽のIPアドレス(フィッシングサイトのIP等)を記載した「偽の応答パケット」を大量にキャッシュサーバへ送りつける。
偽パケットの「トランザクションID(16bit)」と「問合せポート番号(16bit)」が偶然一致した場合、キャッシュサーバは偽情報を本物と誤認してキャッシュに登録する。
以降、社内PCが `example.com` にアクセスすると、すべて攻撃者の偽サイトへ誘導されてしまう。
DNSキャッシュポイズニングへの対抗策
対策 | 役割 | 限界 |
|---|---|---|
ID・送信元ポートのランダム化 | 偽の応答を照合条件に一致させる攻撃を難しくする | 使用可能な範囲や試行回数で効果が変わる。単純な確率だけで安全を保証しない |
DNSSEC | 署名と信頼の連鎖を検証し、DNSデータの出所と完全性を確認する | 署名済みのゾーンと検証できる構成が前提。通信を暗号化する機能ではない |
3. オープンリゾルバの危険性とDNSアンプ攻撃
【オープンリゾルバとは】インターネット上の不特定多数からの再帰的問合せを受け付けるよう誤設定されたDNSキャッシュサーバ。
攻撃者は送信元IPアドレスを標的企業のサーバに偽装(IPスプーフィング)し、オープンリゾルバへ大きな応答を返す問合せ(ANY問合せ)を送信します。すると、何十倍にも増幅(アンプ)された応答パケットが標的企業へ一斉に集中し、回線をパンクさせる
「DNSアンプ攻撃(DNSリフレクション攻撃)」の踏み台に悪用されます。
4. 科目B形式実戦シナリオ演習
演習1:社内DNSキャッシュサーバのオープンリゾルバ設定不備の是正
〔背景〕部品商社C社では、自社の社内LAN向けにDNSキャッシュサーバを運用している。ある日、プロバイダ(ISP)から「貴社のIPアドレスから外部のサーバに対して大量のDNS応答パケットが送信されており、DDoS攻撃の踏み台として悪用されている疑いがある」との通告を受けた。
〔調査結果〕インフラ担当者がDNSサーバの設定を確認したところ、ファイアウォールでポート53(UDP/TCP)がインターネット全体から制限なく開放されており、DNSサーバソフトウェアが任意のIPアドレスからの再帰問合せを許可する設定(オープンリゾルバ状態)になっていた。
〔設問〕この問題に対する是正策として、最も適切な処置の組み合わせはどれか。
ア:ファイアウォールでポート53のアウトバウンド通信のみを遮断し、インバウンド通信は全開放を維持する。
イ:DNSサーバの設定を変更して社内LANセグメント(プライベートIPアドレス)からの問合せのみを受け付けるようアクセス制御を設定し、ファイアウォールで外部からのポート53宛てアクセスを遮断する。
ウ:DNSサーバのOSを再起動し、IPアドレスを動的DHCPに変更する。
エ:DNSレコードのTTL(Time to Live)を0秒に設定し、キャッシュの保持を完全に禁止する。
【解答と解説】
正解:イ
解説:DNSキャッシュサーバが外部からの再帰問合せに応答する状態(オープンリゾルバ)は、DNSアンプ攻撃の踏み台として悪用される極めて危険な構成です。社内向けのDNSキャッシュサーバは、社内LANのIPアドレス範囲からのみアクセスを許可し、インターネット側からの直接アクセスはファイアウォールで遮断するのが鉄則です。
演習2:DNSSECの導入による名前解決の信頼性保証
〔背景〕ネット銀行D社では、利用者がオンラインバンキングへアクセスする際に、DNSキャッシュポイズニングによって偽のフィッシングサイトへ誘導されるリスクを根本的に排除したいと考えている。
〔設問〕DNSSEC(DNS Security Extensions)を導入することで担保されるセキュリティ効果として、最も適切なものはどれか。
ア:DNSの通信経路がすべてAES-256によって暗号化され、通信内容の盗聴が完全に防止される。
イ:権威DNSサーバが公開鍵暗号によるディジタル署名をDNS応答に付与し、キャッシュDNSサーバがその署名を検証することで、応答データの非改ざん性(完全性)と送信元ドメインの正当性(真正性)が保証される。
ウ:DNSサーバへの過剰な問合せアクセスが自動的に分散され、DDoS攻撃を受けてもサーバが停止しなくなる。
エ:PCとDNSサーバ間の通信速度が従来の10倍に向上する。
【解答と解説】
正解:イ
イが正解です。DNSSECは、署名と信頼の連鎖を使ってDNSデータを検証します。適切に署名・検証できる構成では改ざん等を検出できますが、未署名のゾーンや鍵の管理等も考慮が必要です。DNS通信の機密性や、正規に登録された悪意あるドメインの安全性を保証するものではありません。
5. まとめと試験直前チェックリスト
権威DNS(コンテンツサーバ):自ドメインの情報を持ち外部に回答。再帰問合せは禁止
キャッシュDNS(リゾルバ):社内PCの代理で反復問合せ。社外へのオープンリゾルバ化を厳重禁止
DNSキャッシュポイズニング:偽の応答を割り込ませて偽サイトへ誘導する攻撃
ソースポートランダマイゼーション:問合せポートをランダム化して推測難易度を劇的に向上
DNSSEC:ディジタル署名によってDNS応答の「完全性(改ざん検知)」と「真正性」を保証
出典と仕様を確認する
IPA:情報セキュリティマネジメント試験 シラバス Ver.4.1
RFC 4033:DNSSECの概要と要件
次におすすめの学習
編集・検証について
編集・検証:IT資格ラボ編集部
IPAが公開する試験要綱・シラバス・過去問題と、各技術の公式資料を優先して内容を確認しています。制度変更や誤りを確認した場合は、記事を見直して更新します。
編集方針・情報源・訂正方針を見る