1. DNS/毒盛/フラグメントすり替え
/条件 |
Contents
長いUDPパケットにはこんな脆弱性がある、という話だ。-- ToshinoriMaeno 2018-12-01 00:23:58
2. tssさんの指摘
http://www.e-ontap.com/blog/20181031.html をきっかけにUnboundでの脆弱性を意識するようになった。
- すでに対策されたものもあるが、他にもあるかもしれない。
RFC 2308 は否定応答の SOA レコードに NS や A が付随することを許している 否定応答の SOA レコードに付随する NS や A をキャッシュする実装が存在する
3. powerDNS blog
取り上げたが、ソフトの対応にはつながっていない。
- DNS flag day との関連は?
4. 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
5. フラグメントすり替え
UDP返答が複数フラグメントに分割されるときには、第二フラグメント以降をすり替え易い。
DNS関連ホットトピックス 2014年2月1日 IPv6 Summit in SAPPORO 2014 https://www.iajapan.org/ipv6/summit/SAPPORO2014/pdf/JPRS_SAPPORO2014.pdf
- 第一フラグメント便乗攻撃 (返答パケットがフラグメント化されたときの危険性)
これを利用した毒盛が可能であることが示唆されているが、実行可能な例は公表されていない。
そこで、どういう場合が可能であるか、考えてみることにする。
2018年に議論が再開されて、2013年にすでに指摘されていることを認識した。-- ToshinoriMaeno 2018-11-30 23:19:05
6. 長い返答
長い返答を返させるには
- DNSSEC フラグ RRSIGがつくだろう。NSEC3も
- 問い合わせ(名)を長くするのが簡単である。
NSレコードを多数(Additional)もつ名前を狙うとかもありそう。 -- ToshinoriMaeno 2017-01-28 04:06:28
Aレコードがたくさんあるもので毒盛できるとは思わなかったが。/危ない例
-- ToshinoriMaeno 2018-11-30 23:19:05
$ 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
7. DNSSEC 検証なし
検証つきのレコードには毒はいれづらい。
検証なし設定なら可能に。
delegation返答はRRSIGが付かないことを利用する。
-- ToshinoriMaeno 2018-11-27 01:52:29
8. すり替えの難易度
checksum合わせは難しくないことが多い。(説明は省略)
9. 問合せ
ここがポイントだが、対策が普及するまでは説明しない。
-- ToshinoriMaeno 2018-11-30 23:19:05