## page was renamed from DNS/毒盛/フラグメントすり替え ## page was copied from DNS/毒盛/フラグメント == DNS/毒盛/フラグメントすり替え == <> <> KSKロールオーバーとかDNS flag dayとかで、EDNSサポートを奨励するのがいいのだろうか。  長いUDPパケットにはこんな脆弱性がある、という話だ。-- ToshinoriMaeno <> == tssさんの指摘 == http://www.e-ontap.com/blog/20181031.html をきっかけにUnboundでの脆弱性を意識するようになった。    すでに対策されたものもあるが、他にもあるかもしれない。 {{{ RFC 2308 は否定応答の SOA レコードに NS や A が付随することを許している 否定応答の SOA レコードに付随する NS や A をキャッシュする実装が存在する }}} == powerDNS blog == 取り上げたが、ソフトの対応にはつながっていない。  DNS flag day との関連は? == Let's Encryptが動いた == Let's Encryptの対応が現状では妥当だと思える。 https://community.letsencrypt.org/t/edns-buffer-size-changing-to-512-bytes/77945  EDNS Buffer Size Changing to 512 Bytes   As of November 15th, 2018 our DNS resolvers (both staging and production) advertise an EDNS reassembly buffer size of 512 bytes. Testing your Resolver for DNS Reply Size Issues Anand Buddhdev — Dec 2009 https://labs.ripe.net/Members/anandb/content-testing-your-resolver-dns-reply-size-issues https://www.dns-oarc.net/oarc/services/replysizetest How to test your resolver for DNS reply-size issues https://www.zdnet.com/article/how-to-test-your-resolver-for-dns-reply-size-issues/ ---- https://twitter.com/beyondDNS/status/1065614544423157760 https://twitter.com/beyondDNS/status/1065418868049342464 == フラグメントすり替え == UDP返答が複数フラグメントに分割されるときには、第二フラグメント以降をすり替え易い。 DNS関連ホットトピックス 2014年2月1日 IPv6 Summit in SAPPORO 2014 https://www.iajapan.org/ipv6/summit/SAPPORO2014/pdf/JPRS_SAPPORO2014.pdf   第一フラグメント便乗攻撃 (返答パケットがフラグメント化されたときの危険性) これを利用した毒盛が可能であることが示唆されているが、実行可能な例は公表されていない。 そこで、どういう場合が可能であるか、考えてみることにする。  2018年に議論が再開されて、2013年にすでに指摘されていることを認識した。-- ToshinoriMaeno <> == 長い返答 == 長い返答を返させるには * DNSSEC フラグ RRSIGがつくだろう。NSEC3も * 問い合わせ(名)を長くするのが簡単である。 NSレコードを多数(Additional)もつ名前を狙うとかもありそう。 -- ToshinoriMaeno <>  Aレコードがたくさんあるもので毒盛できるとは思わなかったが。[[/危ない例]] -- ToshinoriMaeno <> {{{ $ dig -t ns +dnssec abcdefghijklmnopqrstuvwxyz.abcdefghijklmnopqrstuvwxyz.abcdefghijklmnopqrstuvwxyz.abcdefghijklmnopqrstuvwxyz.iij.ad.jp @a.dns.jp ; <<>> DiG 9.9.5-3ubuntu0.11-Ubuntu <<>> -t ns +dnssec abcdefghijklmnopqrstuvwxyz.abcdefghijklmnopqrstuvwxyz.abcdefghijklmnopqrstuvwxyz.abcdefghijklmnopqrstuvwxyz.iij.ad.jp @a.dns.jp ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60283 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 5, ADDITIONAL: 5 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;abcdefghijklmnopqrstuvwxyz.abcdefghijklmnopqrstuvwxyz.abcdefghijklmnopqrstuvwxyz.abcdefghijklmnopqrstuvwxyz.iij.ad.jp. IN NS ;; AUTHORITY SECTION: iij.ad.jp. 86400 IN NS dns1.iij.ad.jp. iij.ad.jp. 86400 IN NS dns0.iij.ad.jp. iij.ad.jp. 7200 IN DS 24274 8 1 D395DF01232AA0DF04F85FD4C70E11CA1EC47BBF iij.ad.jp. 7200 IN DS 24274 8 2 37FB8689A6FA58D28FC8F1C9F3BF70B91FD02BF66C0E1E30A2779D47 F5BC4BD3 iij.ad.jp. 7200 IN RRSIG DS 8 3 7200 20170220174502 20170121174502 10785 jp. FWccU+vqV5lXF0eFtwdefVOB4A7WQ2qT25iRy/KpoYwGSX3jqLGi+zwU tuBrOnXvcn9SbPPVxt8zIJGO3s4hUkDg7B+Lsj6yLDnEUA1/8wFcRAZQ vruY5Lsja83RUx3rioHZm0D4doLY+VJXWg6cB8xmUJvnTNDZ5fdX2JJn cyg= ;; ADDITIONAL SECTION: dns0.iij.ad.jp. 86400 IN A 210.130.0.5 dns1.iij.ad.jp. 86400 IN A 210.130.1.5 dns0.iij.ad.jp. 86400 IN AAAA 2001:240::105 dns1.iij.ad.jp. 86400 IN AAAA 2001:240::115 ;; Query time: 6 msec ;; SERVER: 203.119.1.1#53(203.119.1.1) ;; WHEN: Sat Jan 28 12:56:09 JST 2017 ;; MSG SIZE rcvd: 518 }}} == DNSSEC 検証なし == 検証つきのレコードには毒はいれづらい。 検証なし設定なら可能に。 delegation返答はRRSIGが付かないことを利用する。 -- ToshinoriMaeno <> == すり替えの難易度 == checksum合わせは難しくないことが多い。(説明は省略) == 問合せ == ここがポイントだが、対策が普及するまでは説明しない。 -- ToshinoriMaeno <>