MoinQ:

DNS/毒盛/対策/肯定返答について、ここに記述してください。


結論:

Answer Sectionだけ受け取るのが安全である。

Authority Sectionを受け入れることもできる場合があるが、 条件が複雑で、判断を間違い易いので、やめた方がよい。

https://twitter.com/beyondDNS/status/715298593041551360?lang=ja


以下は検討の時に考えたことだ。-- ToshinoriMaeno 2016-04-04 13:46:14

1. 肯定返答が得られた場合

問い合わせたサーバの管理するゾーン内にqnameが属することが分かる。

Authority SectionにNSレコードが存在する場合はそのOwnerを見る。(黙って捨てるのでもよい)

Authority Sectionがなければ、問い合わせたサーバが管理するゾーンだと推定してよい。

1.1. 系列ゾーンが同居している場合の考察が必要だ

親ゾーンのサーバが子ゾーンのサーバとして振る舞うことがある。

この構成の場合、子ゾーン内のレコードの問い合わせに親ゾーンサーバが返答をする。

watchNS/gov.au gov.au のように au ccTLDと同居しているばあい、

-- ToshinoriMaeno 2016-04-03 04:45:33

親子ゾーン同居の場合、子ゾーンのNSは毒かどうかに関係なく、受け取らなくても問題ない。
 (仮説の段階ですが) なぜなら、 zone cuts の有無はわからなくても、名前解決の障害にならない。

1.2. 中抜き三世代同居

直系の同居であるが、中間ノードが別ゾーン・別サーバになっているケースもありえる。

問い合わせ名から区別できる可能性がある。

Authority SectionのNSのOwnerを見る。

2. まとめ

zone cutsが存在しないことが確実な否定返答はもちろんだが、 不明な肯定返答においてもdelegation返答が返ることがないことが明らかなケースがある。

delegation返答は毒を疑って捨てるのがよい。(queryをどう始末するかは課題)


細かくケース分けすることは手順を複雑にするのでやめる

ワイルドカードを使うようなドメインを毒盛から防御するかどうかは実装の手間の大きさで判断することになるだろう。

3. 検討のきっかけ

https://twitter.com/_so4/status/715233790168211457?lang=ja

ワイルドカードの時はAUTHORITYで返ってくるNSに着目すればいいと考えたのですが、 そのゾーンに子ゾーンがいた場合、 zone cutがないと決めつけるのは問題になるので非存在と決めつけることはできない。と考えました