DNS201
DNSキャッシュポイズニングを図と演習で理解する
DNS101 で名前解決の基礎を掴んだあとに続けて読む、DNS セキュリティの follow-up コースです。「共有リゾルバの cache に偽の答えが残ると何が起こるか」を軸に、transaction ID・source port・bailiwick・TTL・DNSSEC を順に整理します。
防御・観測視点
全 42 問
ブラウザ内採点
localStorage 保存
所要
3〜4 時間
問題数
全 42 問
形式
7 章 + 小問 + ケース演習
費用
無料
注意: このコースは防御・診断目的の知識コースです。実環境への攻撃手順やツール作成は扱いません。
最初に持ちたい図
| 登場人物 | 役割 |
|---|---|
| 利用者 / browser | 名前を引く側。resolver の答えを信じる。 |
| shared recursive resolver | ここに cache がある。複数利用者で共有される。 |
| authoritative servers | 各ゾーンの正規データを持つ。 |
誤った RRset が shared recursive resolver の cache に残ると、その resolver を使う利用者全体へ同じ誤答が配られます。
このコースの特徴
1. 高レベルの仕組み理解
実環境への攻撃手順ではなく、なぜ shared cache が危険なのか、防御側は何を見るべきかに絞っています。
2. bailiwick / race を模型で確認
in-bailiwick glue、out-of-bailiwick additional、entropy と試行回数の関係を小さな模型で触れます。
3. DNSSEC の守備範囲を誤解しない
origin authentication と integrity を得る代わりに、confidentiality は別物であること、last hop の trust 問題が残ることを押さえます。
4. 最後はケース問題
split-horizon、negative caching、NAT、AD bit など、現場で混同しやすい論点を 8 問のケースでまとめます。
このコースで繰り返し使う 5 つの見方
1. どの層の cache か
browser / OS / recursive resolver / authoritative を混同しない。
2. どの条件で応答を受理するか
question, ID, address, port が一致して初めて同じ transaction と見なされます。
3. その追加情報はどこまで信じてよいか
glue / referral / final answer を分け、bailiwick を意識します。
4. 成功確率に効くのは何か
entropy の広さと attempts の多さを分けて考えます。
5. DNSSEC と運用の境界
署名で守れる部分と、stub / recursive / channel の trust 問題を分けて考えます。
章構成
1 導入 — DNSキャッシュポイズニングとは何か
5 問。共有リゾルバが偽の RRset を覚えると、利用者全員が同じ誤答を見る構図を掴みます。
2 キャッシュと bailiwick — どこまでを信じてよいか
5 問。referral・glue・bailiwick を分け、どこまでを cache に入れてよいか整理します。
3 受理条件とレース — ID / port / TTL / time window
6 問。応答受理条件と race window を、ID / source port / TTL の数字で捉えます。
4 2008 の教訓 — 並行問い合わせと短期対策
5 問。2008 年に広く知られた問題を、高レベルの攻撃発想と短期対策として理解します。
5 DNSSEC と多層防御 — 何を守り、何が残るか
6 問。DNSSEC の守備範囲と last-hop の限界を押さえ、多層防御を組み立てます。
6 観測と運用 — dig / ログ / 典型的な誤診
7 問。dig・ログ・negative caching から、疑わしい挙動と誤診を見分けます。ログから poisoning 兆候を拾うパターンも扱います。
7 総合演習と全問レビュー
8 問。ケース問題で全体をつなぎ、split-horizon / NAT / AD bit など混同しやすい論点を整理します。
受講のコツ
- 「どの層の cache か」を先に固定してから問題を読んでください。
- 数値問題は暗算で飛ばさず、TTL と経過時間を秒で書き出してください。
- 第 2 章の bailiwick、第 3 章の entropy、第 5 章の DNSSEC は式と数字で確認してください。
- 総合演習のあと、未正解だけのレビューでもう 1 周すると定着しやすいです。
開始前の前提
- DNS101 相当の基礎知識(再帰問い合わせ、権威サーバ、TTL)があると入りやすいです。
- deep な暗号理論は不要です。必要な範囲だけ DNSSEC を扱います。
参考
- RFC 5452: Measures for Making DNS More Resilient against Forged Answers
- RFC 4033: DNS Security Introduction and Requirements
- RFC 2308: Negative Caching of DNS Queries
- RFC 4035: Protocol Modifications for the DNS Security Extensions
- Unbound documentation (glue / DNSSEC hardening の実装例)
- JVNVU#800113: 複数の DNS 実装にキャッシュポイズニングの脆弱性