記事一覧へ戻る 本の順番で続きを読む

DNSの仕組みとDNSキャッシュポイズニングとは?わかりやすく解説

初級エンジニア想定レベル | 2026/03/15 14:04

DNSとは? — ドメイン名をIPアドレスに変換する仕組み

DNS(Domain Name System)は、kurutann.comのようなドメイン名を163.44.99.209のようなIPアドレスに変換する仕組みです。電話帳に例えると「名前から电話番号を探す」役割です。

DNS名前解決の流れ
Step 1 ブラウザが リゾルバ(フルサービスリゾルバ) に問い合わせ
まずキャッシュを確認→なければStep2へ
Step 2 リゾルバ → ルートDNSサーバ に問い合わせ → 「.comのサーバはここ」
Step 3 リゾルバ → .com TLDサーバ に問い合わせ → 「kurutann.comのサーバはここ」
Step 4 リゾルバ → 権威DNSサーバ に問い合わせ → IPアドレスを取得!
Step 5 結果をキャッシュして、ブラウザに返答(TTL期間中はキャッシュから返す)

DNSキャッシュポイズニング攻撃

攻撃者がリゾルバのキャッシュに偽のIPアドレスを注入する攻撃です。正規のサイトに見せかけて偽サイトへ誘導できます。

キャッシュポイズニング攻撃の流れ
攻撃準備 攻撃者は偽のIPアドレスを含む大量の偽DNS応答を用意
Step 1 リゾルバが権威DNSサーバに問い合わせるタイミングで攻撃者も偽応答を送りつける
Step 2 リゾルバがトランザクションIDの一致する偽応答を先に受け取ってしまうとキャッシュが汚染される
結果 ユーザーがbank.example.comを開くと攻撃者のサーバへ誘導される(フィッシング・盗聴)

対策

DNSSEC
DNS応答にデジタル署名を付与。偽応答は署名検証で弾かれる。最も有効な根本対策
ランダムポート / トランザクションID
問い合わせのたびにポート番号とIDをランダム化してポイズニングを難しくする
DNS over HTTPS (DoH)
DNS通信をHTTPS(443)で暗号化。盗聴・改ざんを防ぐ
TTL設計
TTLを短くすることで汚染されたキャッシュが早く消える

試験ポイントまとめ

DNSキャッシュポイズニング = リゾルバのキャッシュに偽IPを注入する攻撃
対策の中心はDNSSEC(デジタル署名による検証)
DNSが使用するポートは UDP/53(通常クエリ)
読んだ内容を10問練習と実技で確認

記事で理解した用語を、StudyQuestの演習とクラウド実技ラボで定着させます。

10問練習 実技ラボ

関連する学習記事