1. DNS/返答/NXDOMAIN/毒盛対策
RFC 2308 否定返答を使った毒見の提案
- zone cutsの非存在を推定できる。
- CNAMEレコードの非存在を推定する。
2. 心配事
偽のNXDOMAIN返答を返すことで、サービス不能攻撃ができる。
なやましい。-- ToshinoriMaeno 2017-10-20 03:21:20
3. Name Error 返答
3 - Negative Answers from Authoritative Servers
Name servers authoritative for a zone MUST include the SOA record of the zone in the authority section of the response when reporting an NXDOMAIN or indicating that no data of the requested type exists.
ゾーンに「権威」を持つ権威サーバはゾーンのSOAレコードをAuthority Sectionに含めなくてはならない。(must)
SOAレコードのラベルはquery nameが「存在しない」ことを保証するゾーンを示している。
- ただし、広く使われている間違った返答ではquery nameに対するレコードが存在しないことを示すに過ぎない。
だが、そこは重要ではない。
4. negative caching
NXDOMAIN返答でなにがキャッシュに保持されているのだろうか。それが問題だ。
- 多くのリゾルバーでは問い合わせた名前/タイプのレコードが存在しないことだけが記録されるらしい。
それではもったいない、というのが出発点だ。
5. 毒盛対策
Kaminsky型攻撃でNXDOMAIN返答が返ってきたとしよう。
- qmail.jpゾーンサーバにx.y.z.ns.qmail.jp を問い合わせたとする。
- 以下の返事が返る。
$ dnsq a x.y.z.qmail.jp a.ns.qmail.jp
1 x.y.z.qmail.jp: 86 bytes, 1+0+1+0 records, response, authoritative, nxdomain query: 1 x.y.z.qmail.jp authority: qmail.jp 2560 SOA a.ns.qmail.jp hostmaster.m.qmail.jp 1454758295 16384 2048 1048576 2560
- これから分かることはx.y.z.qmail.jpがqmail.jpゾーンにレコードを持たないということだけだろうか。
-- ToshinoriMaeno 2016-03-14 01:41:50
6. co.jp
co.jp へのNS毒盛は簡単なのだろうか。w
$ dnsq a x.y.z.co.jp a.dns.jp
1 x.y.z.co.jp: 76 bytes, 1+0+1+0 records, response, authoritative, nxdomain query: 1 x.y.z.co.jp authority: jp 900 SOA z.dns.jp root.dns.jp 1457919902 3600 900 1814400 900
7. SOA だけのゾーン?
www.sony.jp を名前解決しようとして、ここにぶつかった。
- SOAしかもたない名前には毒盛しやすいだろう。
$ dig wpc.omicroncdn.net
; <<>> DiG 9.9.5-3ubuntu0.8-Ubuntu <<>> wpc.omicroncdn.net ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26811 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1220 ;; QUESTION SECTION: ;wpc.omicroncdn.net. IN A ;; AUTHORITY SECTION: wpc.omicroncdn.net. 559 IN SOA ns1.omicroncdn.net. noc.edgecast.com. 2006030100 3600 600 604800 600 ;; Query time: 0 msec ;; SERVER: 127.0.0.2#53(127.0.0.2) ;; WHEN: Mon Mar 14 11:05:18 JST 2016 ;; MSG SIZE rcvd: 103
$ dnsq a xyz.wpc.omicroncdn.net a.gtld-servers.net
1 xyz.wpc.omicroncdn.net: 164 bytes, 1+0+2+4 records, response, noerror query: 1 xyz.wpc.omicroncdn.net authority: omicroncdn.net 172800 NS ns1.omicroncdn.net authority: omicroncdn.net 172800 NS ns2.omicroncdn.net additional: ns1.omicroncdn.net 172800 28 &\006(\000\000\001\000\000\000\000\000\000\000\000\000\005 additional: ns1.omicroncdn.net 172800 A 72.21.80.5 additional: ns2.omicroncdn.net 172800 28 &\006(\000\000\001\000\000\000\000\000\000\000\000\000\006 additional: ns2.omicroncdn.net 172800 A 72.21.80.6
$ dnsq a xyz.wpc.omicroncdn.net ns1.omicroncdn.net
1 xyz.wpc.omicroncdn.net: 96 bytes, 1+0+1+0 records, response, authoritative, nxdomain query: 1 xyz.wpc.omicroncdn.net authority: wpc.omicroncdn.net 600 SOA ns1.omicroncdn.net noc.edgecast.com 2006030100 3600 600 604800 600
8. きっかけ
%dnsq a www.sony.jp asia4.akam.net
1 www.sony.jp: 67 bytes, 1+1+0+0 records, response, authoritative, noerror query: 1 www.sony.jp answer: www.sony.jp 300 CNAME cs328.wpc.omicroncdn.net