1. DNS/FCP
DNSSECだけに目を向けているのでは危ない。 /JPRS
1.1. Fragmentation Considered Poisonous
Contents
Fragmentation Considered Poisonous: Amir Herzberg and Haya Shulman を検討する。/考察
-- ToshinoriMaeno 2018-11-20 23:46:05
https://u.cs.biu.ac.il/~herzbea/security/13-03-frag.pdf
https://ieeexplore.ieee.org/document/6682711
FreeBSD : /net.inet.ip.random_id
Arnir Herzber,Haya Shulman: 2013 IEEE Conference on Communications and Network Security (CNS) Fragmentation Considered Poisonous, or: one-domain-to-rule-them-all\.org
The maximum safe UDP payload is 508 bytes. /UDPpayload
https://stackoverflow.com/questions/1098897/what-is-the-largest-safe-udp-packet-size-on-the-internet
「第一フラグメント便乗攻撃」という呼び方は攻撃手法の一部しか示していない。 重要なのは返答パケットを分割送信させる部分だろうと思う。 分割させられれば、偽返答とすり替えることは簡単だから。
(防御としては、分割されたパケットは捨てるのが有効だ。) 13:30 - 2019年2月25日
第一フラグメント便乗攻撃(アイコラ攻撃)こやね (@xkoyane) http://www.convivial.ne.jp/dns/extra2019/aikora.pdf
部分差し替えができただけでは十分ではない。よくまとまっているスライドだ。
1.2. なぜ
2018年になって、偽サーバー証明書が取得できたという発表があった。(/Brandt_abstract 公開)
原論文(2013) 見直しにより、脆弱な実装が複数あることが指摘された。(tss_ontap)
- Unboundは修正ずみ、PowerDNS recursorは次の版で対応する。
1.3. 手がかり
https://twitter.com/OrangeMorishita/status/1039451291934646274
PowerDNS Blog September 10, 2018 Spoofing DNS with fragments
https://blog.powerdns.com/2018/09/10/spoofing-dns-with-fragments/
https://lists.dns-oarc.net/pipermail/dns-operations/2018-September/017959.html
https://lists.dns-oarc.net/pipermail/dns-operations/2018-September/017950.html
it being communicated clearly and widely as early as 2008
/Let's_Encrypt の対応もあった。
/Path_MTU_Discovery /IPv4 /フラグメント処理 /kresd
https://www.slideshare.net/MenandMice/dns-fragmentationattacks-slides
フラグメント・ストーム警報: https://twitter.com/takasugi_mbsjk/status/1064349010041815040
https://twitter.com/takasugi_mbsjk/status/1064202022197424132
DNS message fragments draft-muks-dns-message-fragments-00 https://tools.ietf.org/id/draft-muks-dns-message-fragments-00.html
1.4. 2013
/毒の例 /Let's_Encrypt dns-operations /2013
dns-operations ML: /haya
DNSSEC mistake:
- In retrospect, not signing delegations and glue was a huge mistake.
https://lists.dns-oarc.net/pipermail/dns-operations/2013-September/010678.html
Fragmentation Considered Poisonous: Amir Herzberg and Haya Shulman
https://arxiv.org/pdf/1205.4011.pdf /abstract (Submitted on 17 May 2012)
https://tools.ietf.org/id/draft-muks-dns-message-fragments-00.xml
DNSSEC, the time has come! https://www.ietf.org/proceedings/87/slides/slides-87-saag-3.pdf
関連: IP Fragmentation Considered Fragile R. Bonica https://tools.ietf.org/id/draft-ietf-intarea-frag-fragile-00.html https://tools.ietf.org/id/draft-ietf-intarea-frag-fragile-02.xml
J. Heffner IPv4 Reassembly Errors at High Data Rates July 2007 https://tools.ietf.org/html/rfc4963
1.5. [dns-operations]
/2018 にも。
DNS Attack over UDP fragmentation
Ondřej Surý ondrej.sury at nic.cz Wed Sep 4 13:08:55 UTC 2013 https://lists.dns-oarc.net/pipermail/dns-operations/2013-September/010627.html
Haya Shulman haya.shulman at gmail.com Fri Sep 6 01:02:59 UTC 2013 https://lists.dns-oarc.net/pipermail/dns-operations/2013-September/010681.html
Aaron Campbell July 2007 https://lists.dns-oarc.net/pipermail/dns-operations/2013-September/010679.html
http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-87-3.pdf
Fragmentation Considered Harmful Christopher A. Kent Jeffrey C. Mogul December, 1987
d i g i t a l Western Research Laboratory /長大返答 /BIND /root-dnskey /edns_size
https://lists.dns-oarc.net/pipermail/dns-operations/2013-September/010719.html On Tue, Sep 10, 2013 at 07:14:04PM +0300,
Haya Shulman <haya.shulman at gmail.com> wrote a message of 187 lines which said:
> > the trouble with randomizing the IPID is that this would require > > kernel-level patches (as opposed to just DNS server software > > upgrade), I believe. This makes it somewhat harder to deploy.
https://lists.dns-oarc.net/pipermail/dns-operations/2013-September/010659.html
- DNSSECで解決できるのに、というPaulの意見; DNSSECにどれほどの費用をかければということは考察したのか。
-- ToshinoriMaeno 2018-11-17 14:56:29
http://www.circleid.com/posts/20130913_on_the_time_value_of_security_features_in_dns/
この論文に気づかなかった。(検証、追認の論文が見当たらない)
- 原文に注釈をつけながら、読むことにする。
最近では、以下の記事があった。DNS/Bert
September 10, 2018 Spoofing DNS with fragments https://blog.powerdns.com/2018/09/10/spoofing-dns-with-fragments/ -- ToshinoriMaeno 2018-11-06 02:31:02
1.6. 対策
/対策 /Let's_Encryptはフラグメント化を避ける。(2018)
2012年頃か2013年か。最初の論文 https://ieeexplore.ieee.org/document/6682711
- port random化により、DNS返答のエントロビーが少し大きくなったので、こちらの攻撃の方が成功しやすいと言える。
当初は長い返答の場合に危ない。(だからDNSSECを使うように、と言っていた)
- Fragmentation の置換を狙う攻撃:長い返事にはDNSSEC関係レコードが有効
だが、DNSSECを使うと返答が長くなって、セグメント化が当たり前になる。(??)
- そして、NSEC3が危ないという話に進化している。(マッチポンプのような気もするが。)
NSEC3が防御の妨げになるということのようだ。否定的返答に現れる。 /nic.cz
- DNSSEC採用でも、肯定的返答は短いことが多い。(と、主張も変化)
第2フラグメント以降に含まれるレコードをNSレコードで置換えてしまう攻撃が可能となる。
それを受け入れるのはリゾルバー側の問題だと考えるが。-- ToshinoriMaeno 2018-11-05 01:03:52
delegation返答が返るケース(DNSSECは関係しない?)、親子同居の場合はどうか。
IP Fragmentation Attack https://www.incapsula.com/ddos/attack-glossary/ip-fragmentation-attack-teardrop.html
Contents
https://blog.powerdns.com/2018/09/10/spoofing-dns-with-fragments/
IP fragmentation attack on DNS https://ripe67.ripe.net/presentations/240-ipfragattack.pdf
https://jprs.jp/related-info/event/2013/0910IETF.html
1.7. DNS返答を分割させないために
/Let's_Encrypt Unbound conf edns-buffer-size: 512 にしている。
EDNS sizeを 1220 に制限する。超えるならTCPで再問合せさせる。
BIND9
- options {
- edns-udp-size 1220;
MTUを小さくさせる攻撃も存在するので、EDNS size 512 ! にするのが安全とか言うひともいる。
- これを超える大きさの返答はTC onを返して、TCP queryしなおしてもらうというものです。
そんな心配をするなら、当初からTCPだけを使うのがよさそう。-- ToshinoriMaeno 2018-11-11 00:34:13
共用リゾルバーが送ってくるqueryのEDNSサイズがいくらになっているか、調べてみたい。
- pythonサーバーでやれるか。
-- ToshinoriMaeno 2018-11-11 00:36:56
Broken packets: IP fragmentation is flawed 18 Aug 2017 by Marek Majkowski. https://blog.cloudflare.com/ip-fragmentation-is-broken/
ICMP blackhole check