LOG IN

兄弟委譲 (sibling glue) P.23 を読んでみた

by otsuka752

このエントリは「DNS温泉 Advent Calendar 2019」の 12月24日の記事です。

はじめに

IPSJ 情報処理学会 第87回コンピュータセキュリティ研究発表会 (2019 IPSJ CSEC87)にて発表された

"共用DNS 権威サーバの脆弱性" を読みました。論文そのものではなく、その解説スライドの P.23 の理解を取りまとめたので紹介します。論文およびスライドを理解するために、著者の 鈴木常彦 教授にたくさんのヒントをいただきました。ありがとうございます。

論文およびスライドは、下記サイトからアクセスできます。

最初にまとめ

Authority Section の途中でフラグメントされてもされなくても、Additional Section で自由に差し替えできるので、フラグメントされる位置は重要ではない。フラグメントされるかどうかが重要である。

攻撃概要

攻撃の影響を受ける人

  (注) 攻撃者のドメイン名の NS にも sibling glue (nsa.dns.jp) が含まれているけど想定内

攻撃者が利用するドメイン名 : example.jp.

攻撃者が「攻撃者自身が管理するドメイン名」を使う場合もあるし、

攻撃者は「第三者が使用しているドメイン名」を使う場合もある。

いずれの場合も example.jp. として例を挙げます。

$ dig +norec +noall +auth +add example.jp. @a.dns.jp.

;; AUTHORITY SECTION:

example.jp. NS longname1.example.jp.

example.jp. NS longname2.example.jp.

example.jp. NS longname3.example.jp.

example.jp. NS longname4.example.jp.

example.jp. NS nsa.dns.jp.

;; ADDITIONAL SECTION:

longname1.example.jp. A 192.0.2.1

longname2.example.jp. A 192.0.2.2

longname3.example.jp. A 192.0.2.3

longname4.example.jp. A 192.0.2.4

nsa.dns.jp. A 203.119.1.4 ;; 権威サーバが sibling glue を返さない場合はここが空行

攻撃者のパケット構成 

(A) 権威サーバが sibling glue を応答「する」時(NSCOUNT:5 ARCOUNT:5)

$ dig +norec +noall +auth +add example.jp. @a.dns.jp.

;; AUTHORITY SECTION:

example.jp. NS longname1.example.jp.

example.jp. NS longname2.example.jp.

example.jp. NS longname3.example.jp.

example.jp. NS longname4.example.jp.

example.jp. NS nsa.dns.jp.

;; ADDITIONAL SECTION:

longname1.example.jp. A 192.0.2.1

longname2.example.jp. A 192.0.2.2

longname3.example.jp. A 192.0.2.3

longname4.example.jp. A 192.0.2.4

nsa.dns.jp. A x.x.x.x ;; 203.119.1.4 ではなく x.x.x.x

(B) 権威サーバが sibling glue を応答「しない」時(NSCOUNT:5 ARCOUNT:4)

$ dig +norec +noall +auth +add example.jp. @a.dns.jp.

;; AUTHORITY SECTION:

example.jp. NS longname1.example.jp.

example.jp. NS longname2.example.jp.

example.jp. NS longname3.example.jp.

example.jp. NS longname4.example.jp.

example.jp. NS nsa.dns.jp.

;; ADDITIONAL SECTION:

longname1.example.jp. A 192.0.2.1

longname2.example.jp. A 192.0.2.2

longname3.example.jp. A 192.0.2.3

nsa.dns.jp. A x.x.x.x ;; 203.119.1.4 ではなく x.x.x.x

in-bailiwik / in-domain な本当の glue を削って、代わりに偽の nsa.dns.jp. を差し込んでいる。

最後に

「glue レコード」や「sibling domain に対する glue レコード」などの定義までは踏み込めませんでした。この文章はスライドの P.23 のまとめ、とご理解ください。

最終日の明日は、ひろくん さんが「サッポロ クラシック」とかの話をしてくれます。

OTHER SNAPS