1. DNS/毒盛/対策/SOA/キャッシュ

NXDomainあるいはNoData返答を前提にしている。

2. SOAから分かること

ownerは問い合わせた名前qname(ドメイン名)にたいするqtypeレコードが 存在しないことを保証するzoneの根元のノード名である。

(例) a.b.c.d.jp を JP NSに問い合わせて、NXDomain返答が返り、

これにより、d.jp というゾーンはjp下には存在しないことが分かる。

-- ToshinoriMaeno 2016-05-06 07:44:06

3. SOA レコードを毒見に利用する

SOAレコードをキャッシュするときに、否定返答を返した問い合わせ名も一緒に 保存しておく。

委譲返答が得られた場合には、その返答を返したzone cutのSOAレコードを調べる。

  1. SOAがなければ、毒ではないとする。(問い合わせ直すのがよい)
  2. SOAを返したときのquery name と委譲返答を返しているquery nameを比較する。

    NXDOMAIN SOAのqname : nonexist.co.jp
    referral返答のqname : jprs.co.jp

    NXDOMAIN SOAのqname : nonexist.co.jp
    referral返答のqname : co.jp

 

-- ToshinoriMaeno 2016-05-06 07:44:06

4. キャッシュ容量

Kaminsky流攻撃を考慮すると、問い合わせ名をそのまま残した形で保存するのでは、 キャッシュ容量を簡単に越えてしまいそうだ。圧縮のための工夫が必要だ。

-- ToshinoriMaeno 2016-05-06 22:52:29

毒盛被害の大きさを考えるとownerの直下のサブドメインのゾーン不在を記録するだけでも いいかもしれない。とすると、qname minimisation型で十分か。w

なんだか、PSLに似てきていないか。 :-) https://publicsuffix.org/list/