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