1. DNS/毒盛/対策/NXDOMAIN返答活用
Contents
../CNAME毒対策 DNS/RFC/2308/私訳/3章
1.1. NS毒対策
NXDomain返答にあるSOAレコードを使うことで、不在が演繹できるzone cutsがある。
- ただし、直系ゾーンの同居がある場合にはSOAレコードから得られる情報では十分ではない。
不在が分かったノードに対するNSレコード(Authority Section)は毒である。
- Mueller/Kaminsky流攻撃に現れると推定できるもの。
1.1.1. zone cuts 不在の情報
qname minimisation を実装しているKnot resolverはzone cutsの存在を記録している。
また、DNS/返答/NXDOMAINを返されたときには、DNS/1/ネガティブキャッシング される。
だが、後者ではzone cutsが存在しないノードの情報は利用していない。
これを利用しようというアイデアである。-- ToshinoriMaeno 2017-02-08 03:48:28
SOAレコードのownerは問い合わせに対するもっと近いゾーンを示すことになっているので、 問い合わせ名までのノードにzone cuts が存在しないことが分かる。 このことを使えば、排除することができる委譲返答を増やせる。
同居でなければ、delegation返答が返る場面だから。(それを狙った攻撃に対抗するために)
SOAのownerドメインに対してのNSがキャッシュにないときは問い合わせてキャッシュしておくべきだ。
/auでの演習を参照
こういうdraftも出ていた。(DNSSECは使わないので、読んでいない) https://datatracker.ietf.org/doc/draft-fujiwara-dnsop-nsec-aggressiveuse/?include_text=1
- This draft proposes
- the aggressive use of a NSEC/NSEC3 resource record, which is able to express non-existence of a range of names authoritatively.
Negative cachingの現状 https://indico.dns-oarc.net/event/21/contribution/4/material/slides/0.p
1.1.2. NSレコードをもたないノード
co.jpなどを狙う委譲毒への対策としては、
- name minimisationに現れるはずのco.jp NS問い合せの結果(NODATA)をキャッシュしておく。
- もし、co.jp NS delegation を受け取ったら、ネガティブキャッシングの情報と付き合わせて捨てる。
- 最悪でも安全な方法で問い合せしなおす。(TCPを使うのがよい)
- もし、co.jp NS delegation を受け取ったら、ネガティブキャッシングの情報と付き合わせて捨てる。
これにより、委譲毒は防げそうだ。
-- ToshinoriMaeno 2015-10-15 13:00:28
dnscache であれば、servers directoryにサーバのIPアドレスを指定するという方法もある。
- JPサーバのIPアドレスはあまり変化しないので、これでも対抗できるだろう。
-- ToshinoriMaeno 2015-10-15 15:12:49
1.2. ゾーンが存在しないという情報
SOAレコードのownerからは「問い合わせた名前を管理しているゾーン」が分かる。
つまり、それより下位のゾーンは存在しない、ということである。-- ToshinoriMaeno 2016-03-21 01:54:44
1.3. ゾーンが存在するという情報
SOA ownerから分かるゾーンのNSがキャッシュにない場合には毒盛されるおそれがあるので、(系列同居)
- あらかじめNSレコードを問い合わせておくのが安全である。(親ゾーンに問い合わせ、さらに権威ゾーンにも問い合わせる)
1.4. SOA毒対策
NXDOMAIN返答中のSOAレコード(ラベル)にも毒が盛られているかもしれないので、
- どう検査をすべきか、検討するつもりだ。
問い合わせたサーバが管理しているゾーンのサブドメインが返ってきたときに受け入れるかどうか。
-- ToshinoriMaeno 2016-03-21 01:47:54
1.5. 直系ゾーン同居
ゾーン同居の場合、SOAで返るのは問い合わせにもっとも近い世代のゾーンである。
- そのゾーンより下位にはゾーンがないことが分かるが、 そのゾーンを含む上位ゾーンに対するdelegation毒盛攻撃は成立する。
これではゾーン不在情報を利用することで簡単になったとは言えないのではないか。
1.6. 単純なやり方
二つの原則
- delegation返答をもらったら、nonceつきでNSを問い合わせなおす。
- これでdelegation毒は排除できる。
- answer sectionありの返答ではanswer sectionだけ受け取り、他は捨てる。
これでNS毒は実用上十分に排除できる。
-- ToshinoriMaeno 2016-04-06 16:02:41