MoinQ:

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

RFC 2308 否定返答を使った毒見の提案

  1. zone cutsの非存在を推定できる。
  2. CNAMEレコードの非存在を推定する。

2. 心配事

偽のNXDOMAIN返答を返すことで、サービス不能攻撃ができる。

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が「存在しない」ことを保証するゾーンを示している。

だが、そこは重要ではない。

4. negative caching

NXDOMAIN返答でなにがキャッシュに保持されているのだろうか。それが問題だ。

それではもったいない、というのが出発点だ。

5. 毒盛対策

Kaminsky型攻撃でNXDOMAIN返答が返ってきたとしよう。

$ 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

-- 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 を名前解決しようとして、ここにぶつかった。

$ 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

watchNS/omicroncdn.net