2012年09月04日

NSレコードキャッシュポリシー変更によって対応される2つの問題

まず幽霊ドメイン問題
http://netsec.ccert.edu.cn/duanhx/files/2010/12/ghostdomain-2012-02-08-export-with-build.pdf

次の例では親子どちらが権威をもつ?
example.jp.ゾーンにsub.exmaple.jp.のNSレコードがあった
不法行為が判明しsub.exmaple.jp.のNSレコードは削除された

ユーザーがsub.example.jp.をクエリする

example.jp.の権威サーバは、ネガティブレスポンスを権威ありで返すだろう。NSレコードが無いのだから、そこにはこちらが権威を持っている。
一方、
sub.example.jp.の(元)権威サーバは、自身を指すNSレコードのレスポンスを権威有りで返すだろう。当然権威は持っている。

リゾルバはどちらを信用するべきか?
RFCを文字通り読むと、推奨は先にキャッシュに入っていた方、ということになる。
元権威サーバのキャッシュがあると、そのキャッシュは権威ある用に見える古い権威サーバの情報で更新され続ける。つまり、幽霊ドメインになる。
http://jprs.jp/tech/notice/2012-02-17-ghost-domain-names.html
幽霊ドメインをなるべく速く排除するために、BINDほかリゾルバ実装では、サブゾーンルートのNSレコードがサブゾーンのDNSから得たときは、キャッシュのTTLだけ更新しない(ゾーンのルートに対応する"@ IN NS *" なレコードはTTL延長しない)ことで対処しているようだ。 
http://dnsops.jp/bof/20120425/20120425-DNSOPS.jp-BoF_Ghost_Domain_Names_v02.pdf
確かに、その時点でNSレコードの内容を利用することは権威がある以上どうしようもないが、キャッシュすることは強制ではないので、RFCを逸脱せず親ゾーンのTTLを上限にドメインを削除できる。


これは”浸透いうな不浸透問題”=ネームサーバ移転時の問題と同根でもある
sub.example.jpを消すのではなく、他のDNSサーバに委任する場合、example.jp.の権威サーバは、新しいレスポンスを権威なしで返す。
もし、古い権威サーバの制御ができなくなったら、sub.example.jpの古い権威サーバは古い権威サーバ自身をさす古いNSレコードを権威アリで返す。

同じくRFC推奨に従うと、リゾルバはsub.example.jpの古いDNSからの返答でキャッシュを更新してしまうので、何らかの理由でsub.example.jpにアクセスがあると、何時まで経っても更新されない。=
浸透いうな不浸透問題。
同様に、サブゾーンから返ってくるNSレコードは無視されるので、TTL切れすると親ゾーンの新しいNSれこーどが読み込める。


親ゾーンを優先するようにRFCが書かれていればこんな問題は起きなかった。ただ論文のスライドの最後にもあるけれど、オーバーヘッドは避けられない。当時はサーバーの処理能力的にそんな事やってられなかった、というのが主要因なんだろう。

ネームサーバ移転は本人のミスで片付くが、幽霊DNSは不法なドメインを削除できないというセキュリティ上の問題として扱われているので、対応が進んでいる、はずなんだけれど実体はだいぶ違うらしい。

(編集)
NSの移転問題を”浸透いうな不浸透問題”にしてみました。


posted by ko-zu at 07:09| Comment(0) | TrackBack(0) | セキュリティ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。