## page was renamed from DNS/毒盛/NS毒/NS ## page was renamed from DNS/毒盛/毒NS ## page was copied from DNS/毒盛/返答中のNS ## page was copied from DNS/NSレコード/返答中のNS ## page was renamed from DNS/NSレコード/DNS返答中のNS <> <> = NS毒について = NS RRSet という概念が重要だ。  「浸透いうな!」、「DNSサーバ移転」、「”Ghost Domain Names"脆弱性」、そして Mueller 手法 ... == 返答中のNS == 偽のNSレコードを送りつける攻撃を検討する。 (参考: [[DNS/RFC/2181/s5]] ranking ) DNS query に対応する返答に現れるNSレコードはすくなくとも以下のむっつ(6)の異なる状況で使われている。 1. NS query に対する返答: 現在はNSを問い合わせることはほとんど行われていない 2. [[DNS/委譲|本来の委譲]](委任): [[DNS/委譲返答]] で上位のゾーンサーバが委譲を示すために使う 3. 委譲を確認する: (オレオレ)権威をもつゾーンサーバであることを確認するために返す。 4. NS移転を示す: (オレオレ)権威をもつゾーンサーバがNS移転、追加を示すために返す。 5. 問い合わせ削減用: ゾーンサーバが効率改善のためにおまけとして付ける。 6. 余計なお世話: キャッシュ兼用サーバがキャッシュされた(権威を持たない)データ(多くは上位ゾーン)を返す。 キャッシュ兼用でなくても、root を返すものもあるかもしれない。 1 で Answer sectionに現れる以外は Authority Section に現れる。 1、2 以外は無用な返事であると言える。  これらを受け入れるときには、十分な検査をして、毒の危険性を少なくすること。  受け入れたとしても、どう利用するかという問題もある。 3 はあった方がいいかもしれないが、信用するのは危険。  answer の有無、nxdomain などで分ける必要があるのかも。 -- ToshinoriMaeno <> == 検討 == これらの使い方がどういう文書で裏付けられた根拠をもつのか、それとも実装が勝手にやっているだけなのか。  まずは RFC 1034 から。 NS の移転のケースは想定されていないらしい。 -- ToshinoriMaeno <> ---- 上方参照(余計なお世話)の典型はBINDが標準設定で返すと聞いたルートサーバ情報だ。 (こんなものを受け入れるリゾルバーがいまもあったら見てみたい。) 捨てられだけのものを送るのはネットワーク帯域の無駄使いでしょう。 2008年のKaminsky講演で使われたスライドに現れるNSは「委譲」、「移転」とは別ものだと考える。 民田スライドに現れるものはAnswer section がある返答に「おまけでつけられている NS RRSet」 だから。 「滲透しない」というひとがいるのも一部はDNSゾーンサーバの移転方法が関係している。 これも「移転」返答の処理に不良があるケースかもしれない。 Ghost Domain Names (鬼域名、幽霊ドメイン名)脆弱性は委譲ではなく、 「NSの移転」の処理に脆弱性(不良)があったのを攻撃されたものです。(ISCはDNSの本質的問題だと修正しない態度だった) 委譲(委任)を示す返答中のNS RRSet がもっとも重要であることは言うまでもないでしょう。 毒盛の対象として、一番狙われるものです。(でも、「なにが委譲なのか」はきちんと理解されているかどうかあやしい) == なにがキャッシュされているか == [[../NS毒盛]] 少なくとも以下のみっつの状態を区別して、検討する必要がある。 1. キャッシュには関連NSはない。 1. キャッシュに委譲を示すNSレコードがある。 (root-server からの返答など、 jp NS) 1. キャッシュにゾーンサーバからAnswer として得たNSレコードがある。 === 委譲毒 === キャッシュに関連NSがない状態で、(上位)ゾーンサーバからの委譲を装う毒NSを送りつける。(Mueller手法)  JPRSは「委任インジェクション」と呼んでいる。 [[../手法2014]] co.jp, go.jp などの NSレコードを持たないドメイン名が狙われる。 === 委譲変更毒 === 委譲を示すNSしかない状態で、ゾーンサーバからの返答を装う毒NSを送りつける。  移転インジェクション(tss)とか 移転通知インジェクション(JPRS) とか呼ばれているもの。 毒の可能性を考慮しないキャッシュはRRSetを置き換える。  ただし、Ghost Domain Names 脆弱性対策として、TTLは制限される。 jp などの ccTLD などを調べてみよう。 === 転居毒 === ゾーンサーバからAnswer として得たNSレコードがキャッシュされているにもかかわらず、 ゾーンサーバからの返答を装う毒NSを送りつけると食ってしまうキャッシュサーバがある。(実装の脆弱性)  tssさんは移転インジェクションと区別できていなかったと言う。JPRSの移転通知インジェクションには含まれていない。 毒の可能性を考慮しないほとんどのキャッシュはRRSetを置き換える。(2015年7月現在)  ただし、Ghost Domain Names 脆弱性対策として、TTLは制限される。 -- ToshinoriMaeno <> == 対策 == いずれも対策は単純である。w -- ToshinoriMaeno <> == JPRS == JPRS は転居毒について触れていない。  キャッシュにあるNSが権威あるレコードである場合を無視しているのか、上書きの不良に触れたくないのか。 -- ToshinoriMaeno <>