Kaminsky Attackの全て. Kaminsky Attack解説と対策(前編). DNS DAY ∼利用者を守れ∼. Internet Week 2008. 民田雅人. 株式会社日本レジストリサービス
https://www.nic.ad.jp/ja/materials/iw/2008/proceedings/H3/IW2008-H3-07.pdf
(いろいろ間違いがあるが、記録としての価値がある。)
1. スライド19--20
Kaminsky型の毒入れ攻撃手法 Kaminsky型の毒入れ攻撃 • 攻撃者がキャッシュサーバに、攻撃対象レコードと同じドメインの存在しない名前を検索させ、 <<追加セクションに攻撃対象レコードを設定>>した偽装応答をIDを変化させながら大量に送る (偽装応答型の一種)
スライド20番にある攻撃例: (ほぼ100%成功する、とある)
- no0000.example.jp の A レコードを問い合わせて、 返事には
;;回答セクション no000.example.jp. A 192.0.2.1 ;;権威セクション example.jp. NS www.example.jp ;;追加セクション www.example.jp. A 192.0.2.10
を送りつける。キャッシュは偽レコードを受け取り、キャッシュする。[注:スライドの説明である]
Additional Section (Aレコード)による毒盛が成立するとの説明である。
2. この例はKaminskyのものとは異なる
「回答セクション」におまけで「権威セクション」と「追加セクション」がある形になっていて、 DNS/毒盛/Kaminsky講演/スライド(18)とは異なっている。
- 異なる理由はKaminskyのスライドの小修正では毒盛できなかったからだろうと推測できる。
3. これでも不十分だ
毒盛できる条件が書いてない。
- 回答セクションがある返答では、回答セクション以外のものはおまけである。 効率以外の影響はないので、 防衛のためには無視してもかまわない。 (テストしたものはそうではないのだろう。)
キャッシュにすでに存在する情報を上書きするという、問題のある動作を仮定しなければならない。
- bindではかなり古い版でもキャッシュ情報の上書きは検査されている。(十分ではないのだろう)
スライド23
キャッシュ済みのレコードはKaminsky型の攻撃で上書きできるのか
4. Kaminskyスライドの違い
民田スライドの方が簡単である。対策も容易だ。 Kaminsky のスライドでは NS レコードは移譲の形になっているので、無視していいかどうか。
- 付加節の A レコードはglueではないので、無視してもよい。 (bindの版に依存する?)
5. bind の不良ではないか
(対策前の)BINDキャッシュがこういう動作をしていたのであれば、非常に簡単に毒盛りされる。
Kaminsky はこの不良を発見したが、そのことはあからさまには指摘せず、 逆に
特定のサーバを攻撃する場合に「TTLの制約を迂回する」ことが可能である。
ことに目をむけさせることで、bindの不良から目をそらせた。/Gabriel-fix
BINDにはこのような弱点があるのだろう。
- delegation(移譲)でもなく、glue でもないレコードを
- 管理区域内の名前である
「glue を区別して扱う」という提案が無視されてきたのも頷ける。
6. 2009年末の修正
2009年末になって、やっと修正が施された版が公開された。
- しかし、これもDNSSECが関係しているかのように書かれていて、不良隠蔽の意図が見える。
日本ではこのことは誰も指摘してこなかった。 -- ToshinoriMaeno 2011-08-18 03:33:59
7. BIND 修正
いつからかはよくわからないが、2011年ころのBINDはここの手法による毒は受け入れない。 -- ToshinoriMaeno 2018-12-29 23:05:50
- 条件がはっきりしないのだが。