1. DNS/qname-minimisation/毒盛対策
Mueller流のNS毒盛攻撃への対策は簡単に実装できることを示す。-- ToshinoriMaeno 2018-06-18 00:55:55
- 実装されているリゾルバーは知らない。
1.1. zone cut直下のNS
qname minimisationを採用していると、
- 問い合わせ中にco.jpドメイン名はNSレコードを持たないことが分かるため、
Mueller型の攻撃が行われても、毒であることは容易に判別できる。
例えば、xxx.co.jpに対する問い合わせを行った場合を考えてみる。
- delegation返答があって、co.jpを指す返事があったとしても、 すでにNSを持たないことはキャッシュにある(はず)。
- jp直下のドメイン名であって、NSを持たないことは明らか。 もしNSを持つのであれば、zone cutとして登録されていなければおかしい。
qname minimisationを採用しているリゾルバーであれば、co.jpがゾーンでないことは事前に分っているはずだ。
これらの理由でco.jpへの毒盛は成功しないのだが、残念ながら、 Knot resolver 1.3.0 ではどちらの検査も実装されていない。
簡単な修正で対応させられるか、検討する。
-- ToshinoriMaeno 2017-06-22 05:42:04
1.2. zone cut 直下ではないNS毒
$random.xxx.co.jp によるxxx.co.jp NS 毒は受け入れる可能性が少し残る。
- これは別途対策が必要である。(現在はTCPを使うことで回避) 先行する否定返答中のSOAレコードを利用するのが確実だが、簡単な改造ではすまない。
ただし、NSが存在するノードであれば、JP NSからのdelegationが(先に)返るので、
- 毒の可能性は考慮しなくてもよいだろう。
-- ToshinoriMaeno 2017-06-22 06:46:07
NSを持たないノードが2段以上続くドメイン名もある。
- 現状ではこれらを防衛するには否定返答を使う方法が簡単だが、実装が存在するかは知らない。
ゾーン(サーバー)側で対応できる話なので、当面は静観する。-- ToshinoriMaeno 2017-06-22 13:20:47
1.3. 都道府県型ドメイン名
$ dnsq ns tokyo.jp a.dns.jp 2 tokyo.jp: 73 bytes, 1+0+1+0 records, response, authoritative, noerror query: 2 tokyo.jp authority: jp 900 SOA z.dns.jp root.dns.jp 1498116602 3600 900 1814400 900 $ dnsq ns nerima.tokyo.jp a.dns.jp 2 nerima.tokyo.jp: 80 bytes, 1+0+1+0 records, response, authoritative, noerror query: 2 nerima.tokyo.jp authority: jp 900 SOA z.dns.jp root.dns.jp 1498116602 3600 900 1814400 900
1.4. www.ana.co.jp
akamai CDNを使っていると、ゾーンでない名前が多段になっていることがよくある。
これらの防衛にも否定返答を使うのがよさそう。watchWWW/ana.co.jp
-- ToshinoriMaeno 2017-06-22 07:40:44