## page was copied from DNS/毒盛 = DNS/毒盛/脆弱性の歴史 = <> DNSについて、ひととおりの知識があることを前提に'''毒盛攻撃'''を説明します。 ゾーンサーバのふりをして、リゾルバーに偽の[[DNS/返答]]を受け取らせることで、 偽情報をリゾルバーのキャッシュに入れ、リゾルバーに嘘の返答をさせます。 毒盛で中心的役割を果たすのは'''NSレコード'''です。([[/NS毒盛]]) [[../索引]] [[../歴史]] [[../対策]] == 毒盛手法の進化 == 実験的に作られた実装にはいろいろな脆弱性がある。 リゾルバーになんらかの「不正な返答を受け取らせる」ことが第一段階です。 ゾーンサーバがおかしな返事をすることは想定されていなかった時代もありました。 リゾルバーになんらかの「偽造返答を受け取らせる」ことが第二段階です。 キャッシュサーバはキャッシュにある情報は通常は問い合わせを送出しません。 Kaminskyはリゾルバーに「次々と」問い合わせを送り出させる攻撃手法を示しました。(2008年) これが第三段階です。 [[DNS/毒盛/Kaminsky手法|Kaminsky流攻撃手法]] どういう返答であれば、有効な毒となりやすいかを考えるのが第四段階です。 あとは誰かがキャッシュにある偽の情報を参照するのを待ちます。 [[DNS/毒盛]]では主に第四段階の毒盛を検討しています。 . Kaminsky-Mueller流攻撃を利用した[[/NS毒盛]]を扱っています。 * 中間者攻撃は扱いません。暗号化されていないUDPパケットは盗聴/偽造し放題ですから。 * DNSSECは使いません。手間がかかりすぎです。(間違いやすい)[[/誤解]] http://nominum.com/ghosts-in-the-dns-machine/ Domain Name System (DNS) Cookies  M. Andrews May 2016 . https://tools.ietf.org/html/rfc7873 これが実装されて、普及すれば毒盛はほぼ無理になる。だが、いつになるだろう。 . 実現までに簡単にやれる対策もある。 リゾルバー側で[[/NS毒盛]]を簡単に十分に防御できる方法を[[/2016]]で説明しています。 . (まだ実装がない)簡単な対策があるのに放置されている。 いまや実装の不良と呼んでもいいでしょう。 . DNSSEC推進の立場のひとはMITM攻撃以外に関心はないのでしょうか。 [[/NS毒盛]]以外の攻略は現在では困難だと考えています。 . 例:Kashupureff型攻撃、CNAME攻撃、[[/移転インジェクション]] /AncillaryDataAttacks == 簡単な歴史 == 初期: ゾーンサーバから送られてくる間違い情報、悪意ある情報の排除 [[DNS/用語/in-bailiwick]] 偽パケット送付: transaction 情報が予測可能などの理由で、偽返答パケットを送りつけることが可能だと指摘される。 DJBDNS: port randomization による偽パケットの排除 虚しきインターネットの宴 http://www.suzuki.sist.chukyo-u.ac.jp/utage.html === 2008 === 2008年のKaminskyの指摘: キャッシュにある情報を問い合わせるのではTTLに制約されて、 . 外部へ問い合わせさせられない。 キャッシュにない名前を問い合わせることで、問い合わせを送り出させて、毒盛の機会を増やす。 . 以降は偽パケットでどういう情報なら送りつけられるかが課題となるはずだったが。 Muellerの指摘などを含め、ほとんど理解されることはなかった。 ポートランダム化などで十分だと思われたのか。 ---- N. Weaver: Comprehensive DNS Resolver Defenses Against Cache Poisoning . [[DNS/毒盛/AncillaryDataAttacks]] が重要だが、Internet-Draftは賞味期限ぎれだ。なぜだ。 . https://tools.ietf.org/html/draft-weaver-dnsext-comprehensive-resolver-00 === 2012 === [[DNS/脆弱性/GhostDomainNames]] リゾルバー実装の欠陥 === 2014 === 2014年 co.jp などの中間ドメイン名には比較的簡単に毒入れすることができると判明した。 . これは単にMueller手法の適用先を見つけたということに過ぎなかったが、影響は大きい。 NS毒盛はこれだけではなかった。鈴木はキャッシュにあるNSが上書きされる脆弱性を指摘した。 . こちらの方がずっと危険だ。[[/移転インジェクション]]  簡単な対策があるのに、なぜBINDでは対策されていないのか。Unboundはoptionがある。 [[/2015]] [[/2014]] [[/2012]] [[/2008]] [[DNS/脆弱性]] [[/NXDOMAIN返答活用]] [[DNS/用語/glue]] [[DNS/毒盛/AncillaryDataAttacks]] . https://tools.ietf.org/id/draft-weaver-dnsext-comprehensive-resolver-00.html . 一番信用ならないのは/AuthoritySection [[/CNAME]] も危ない。 [[/MX返答]] はどうか。[[/SOA]]はどうか。 「キャッシュにあるレコードは書き換えない」という原則を守るのが重要だが、 RFC2181というおかしなRFCが障害になる。 [[DNS/毒盛/2014/移転案内攻撃]] [[DNS/脆弱性/GhostDomainNames]] [[/キャッシュサーバ]]がどのように振る舞うかは実装依存です。 [[/NS毒盛]] では検討します。 [[/部品紹介]] [[/キャッシュサーバ]] [[/成立の要件]] [[/ゾーンサーバの監視]] http://cloud.watch.impress.co.jp/epw/cda/security/2008/08/28/13724.html 「ポートランダム化もすでに破られている」 nicの説明だが、間違いも: https://www.nic.ad.jp/ja/newsletter/No40/0800.html === 2014 年にあらたな展開 === [[/2014]] * Mueller の「委譲毒盛」を使った攻撃の再評価(前野)で、 co.jp などに簡単に毒が入ることがわかった。 * 鈴木は NS が上書きできる実装が多いことを確認した。 (キャッシュされているほぼすべてのNSかも) http://www.e-ontap.com/blog/20140415.html 長年放置されてきた DNS の恐るべき欠陥が明らかに . http://www.e-ontap.com/dns/endofdns.html http://www.e-ontap.com/dns/endofdns2.html [[/委任インジェクション]] はNS毒盛に属する攻撃(の一部)にJPRSがつけた呼び名です。 JPRSは注意喚起を出すはずだったが、Kaminsky流攻撃が増えているとの注意喚起だけでお茶を濁した。 このページも続きが出なかった。http://www.geekpage.jp/blog/?id=2014/4/25/1 === 攻撃手法 === [[/キャッシュ毒盛]] [[/雨だれ攻撃]] [[https://en.wikipedia.org/wiki/DNS_spoofing|DNS_spoofing]] [[/成立の要件]] [[/taxonomy]] [[/poison]] https://moin.qmail.jp/DNS/RFC2181/s5 [[/Guide]] [[/Shmatikov]] https://www.nic.ad.jp/ja/newsletter/No40/0800.html [[/nicの説明]] https://tools.ietf.org/html/rfc5452 [[DNS/攻撃/fragmentation]] UDP 返答パケットで分割を引き起こすとすり替えやすい。 === Kaminsky 攻撃 === * Kaminsky流の攻撃手法により、毒盛の防御にはTTLは役にたたないことが示されました。 [[/Kaminsky手法]] {{{ Kaminsky 手法は「キャッシュされていない名前を問い合わせる」ことにより、「毒を送りつける機会を増やす」ものである。 }}} * どういうレコードをキャッシュさせるか(毒盛するか)は、次の段階の話です。 * Kaminsky が示した例では当時のBINDにすら毒盛できませんでした。 . BIND各バージョンへの毒入れ実験 (Kaminsky Bug の検証) http://www.e-ontap.com/dns/bindmatrix.html . https://www.nic.ad.jp/ja/materials/iw/2008/proceedings/H3/IW2008-H3-07.pdf 民田スライドを参照 * http://unixwiz.net/techtips/iguide-kaminsky-dns-vuln.html glue に毒らしい。 {{{ The authority data may well contain the "real" bankofsteve.com nameserver hostnames, but the glue points those nameservers at badguy IPs. }}} [[DNS/毒盛/Kaminsky手法/JPRS資料]] 2008年に見た資料では一番よかったもの:  DNSにおけるキャッシュ汚染攻撃 http://www.sec-pro.net/spnseminar081025_shio.pdf * しかし、 [[DNS/node_re-delegation]]の報告にあるように「委譲返答」を使った攻撃が有効であると分かっています。 . [[/Mueller手法]] による「委譲返答攻撃」 と呼びます。 === Mueller の委譲返答攻撃 === Mueller は偽委譲返答(NSなど)を送りこむ攻撃が考えられると言っています。 [[DNS/毒盛/Mueller手法]] Mueller paper の指摘では {{{  キャッシュにないレコードを毒として注入します。ここでもTTLは関係しません。(ランキングも) }}} ここまでが2008年に明らかになったことです。(それに世界が気づいていなかったとしたら不思議です。) 問い合わせポートのランダム化である程度の防御ができるからでしょう。 [[DNS/NSレコード/返答中のNS]] === Ghost Domain Names === そして、2012年には[[DNS/GhostDomainNames]]脆弱性が指摘されています。(これもキャッシュへの毒盛です) . (上位サーバで)登録を削除されたはずのドメイン(幽霊)をキャッシュサーバに残す(活かし続ける)というもの。 関連して「[[DNS/共用サービスの危険性]]」を指摘しました。(サブドメイン登録など一部の問題は改善されました。) unbound などのキャッシュサーバ(実装)での対策も追加されていますが、十分利用されているとは言えません。 -- ToshinoriMaeno <> [[DNS/BINDの歴史/場当たり的対応]] <>