MoinQ:

1. DNS/毒盛/対策/NXDOMAIN返答活用

../CNAME毒対策

1.1. NS毒対策

NXDomain返答にあるSOAレコードを使うことで、不在が演繹できるzone cutsがある。

不在が分かったノードに対するNSレコード(Authority Section)は毒である。

1.1.1. zone cuts 不在の情報

qname minimisation を実装しているKnot resolverはzone cutsの存在を記録している。

だが、後者ではzone cutsが存在しないノードの情報は利用していない。

SOAレコードのownerは問い合わせに対するもっと近いゾーンを示すことになっているので、
 問い合わせ名までのノードにzone cuts が存在しないことが分かる。
 このことを使えば、排除することができる委譲返答を増やせる。

同居でなければ、delegation返答が返る場面だから。(それを狙った攻撃に対抗するために)

SOAのownerドメインに対してのNSがキャッシュにないときは問い合わせてキャッシュしておくべきだ。

こういうdraftも出ていた。(DNSSECは使わないので、読んでいない) https://datatracker.ietf.org/doc/draft-fujiwara-dnsop-nsec-aggressiveuse/?include_text=1

Negative cachingの現状 https://indico.dns-oarc.net/event/21/contribution/4/material/slides/0.p

1.1.2. NSレコードをもたないノード

co.jpなどを狙う委譲毒への対策としては、

co.jpはzone cut (jp)の直下のラベルなので、すでにNS問い合わせが行われているはずで、

これにより、委譲毒は防げそうだ。

-- ToshinoriMaeno 2015-10-15 13:00:28

dnscache であれば、servers directoryにサーバのIPアドレスを指定するという方法もある。

-- ToshinoriMaeno 2015-10-15 15:12:49

1.2. ゾーンが存在しないという情報

SOAレコードのownerからは「問い合わせた名前を管理しているゾーン」が分かる。

/ゾーン不在情報

1.3. ゾーンが存在するという情報

SOA ownerから分かるゾーンのNSがキャッシュにない場合には毒盛されるおそれがあるので、(系列同居)

1.4. SOA毒対策

NXDOMAIN返答中のSOAレコード(ラベル)にも毒が盛られているかもしれないので、

問い合わせたサーバが管理しているゾーンのサブドメインが返ってきたときに受け入れるかどうか。

-- ToshinoriMaeno 2016-03-21 01:47:54

1.5. 直系ゾーン同居

ゾーン同居の場合、SOAで返るのは問い合わせにもっとも近い世代のゾーンである。

これではゾーン不在情報を利用することで簡単になったとは言えないのではないか。

1.6. 単純なやり方

二つの原則

  1. delegation返答をもらったら、nonceつきでNSを問い合わせなおす。
    • これでdelegation毒は排除できる。
  2. answer sectionありの返答ではanswer sectionだけ受け取り、他は捨てる。

これでNS毒は実用上十分に排除できる。

-- ToshinoriMaeno 2016-04-06 16:02:41