DNS/毒盛再考/多世代ゾーン同居/NS名で分類について、ここに記述してください。
親子ゾーンを同居させているNS(の名前)がどのゾーンに属するかによって分けて、危険性を議論しましょう。
- 同居ということから、NSレコードの指すIPアドレスは同一であるとします。
1. NS レコード名が一致の場合
まずは親子ゾーンのNSレコード値が同一の場合を考えます。
- 両方が外部名の場合
- さくらの共用DNSゾーンサービスなどがあります。
- 両方が内部名の場合
- 両方の内部名に相当するのは子ゾーン内の名前である場合しかありません。 (jp, dns.jp のケース)
- 片方だけが内部名にあたる場合 親ゾーン内の名前を子ゾーンが指定している場合です。
1,2 の場合、子ゾーンのNSがキャッシュされる機会は少ないので、子ゾーンの乗っ取りの危険性が大きくなります。
3 の場合になにが起きるか考える前に、以下の項を先に検討します。
-- ToshinoriMaeno 2014-09-18 01:25:46
2. NS レコード値が異なる場合
IP アドレスは同じでも、別々の名前を付けていたらどうなるでしょうか。(内部名かどうかは問いません)
親ゾーンのNSはさらに上位のゾーンサーバからの委譲返答によりキャッシュされているものとします。 子ゾーンNSは多くの場合にキャッシュされていることはないでしょう。 どういう場合にキャッシュされるでしょうか。(積極的にNSを問い合わせる以外に)
上の状態で、子ゾーン内の(存在しない)名前について問合せを送って、子ゾーンを乗っ取るような攻撃を考えます。
キャッシュサーバは子ゾーン内の名前について、親ゾーンNSに問い合わせているつもりです。
- でも、親ゾーンのNSは同居している子ゾーン内のRRを返答することがあるのが実装(BINDなど)の現状です。
- 存在しない名前ですから、NXDOMAIN返答が返るでしょう。
-- ToshinoriMaeno 2014-09-18 01:30:50
3. 結論
NSレコードがどこを指していようが、親子ゾーンを同じサーバにおくのは毒盛により子ゾーンを乗っ取りされ易くなる。
-- ToshinoriMaeno 2014-09-18 02:05:39
NSレコードを持たないドメイン名に偽NSを持たせるという攻撃も可能です。
しかし、NSレコードを設定していても、攻撃され易いということです。