Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

10分でわかる幽霊問題-事後資料

3,600 views

Published on

2012年2月25日 dnstudy#03 / qpstudy#09 懇親会(ビアハッシュ)飛び入りライトニングトーク 事後資料

Published in: Entertainment & Humor
  • Be the first to comment

10分でわかる幽霊問題-事後資料

  1. 1. 10分でわかる幽霊問題dnstudy#03 / qpstudy#09 懇親会 LT 2012年2⽉25⽇ 森下 泰宏 @OrangeMorishita Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 1
  2. 2. 「わかった気になる」が正しい! by @tss_ontap 10分でわかる幽霊問題dnstudy#03 / qpstudy#09 懇親会 LT 2012年2⽉25⽇ 森下 泰宏 @OrangeMorishita Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 2
  3. 3. 自⼰紹介 (twitterのプロフィール)• 46歳男性。JPドメイン名の中の⼈。DNS との付き合いも早20年超。「いかにわか りやすく技術情報を伝えるか」が最近の 課題。既婚。修⾏僧(⻘組)。太⽥裕美 さんファン。どんどん深⼊りする因果な 性格。某少⼥マンガの若い⼆⼈の⾏く末 に超やきもき。ツイートは私の個⼈的⾒ 解であり勤務先や関係団体の公式⾒解と は異なることがあります。 Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 3
  4. 4. 幽霊問題(脆弱性)とは?• 2012年2⽉8⽇に中国・清華大学のHaixin Duan (段海新)⽒らのグループによって発表された 論⽂「Ghost Domain Names: Revoked Yet Still Resolvable」で報告 – その前⽇にISCが「BIND 9全部だめぽ」と緊急発表• 親(上位)ゾーンにおける委任情報(NSレコー ド)の削除後も⻑期にわたって、名前解決可能 な状態に仕向けることができる脆弱性• 消える(なくなる)はずのものが残り続ける – Ghost Domain Name(幽霊ドメイン名) Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 4
  5. 5. どんな時に困るか?• フィッシングやボットネットの制御、マルウェ アの伝播など、不正な目的で使われているドメ イン名を強制的に使用不能にするのを妨害され る可能性がある• 不正に使われていたドメイン名を強制的に移転 する際、移転を妨害される可能性がある• ドメイン名を新規登録したら昔誰かが使ってい たので幽霊つきだった(広域で再現させづらい が、可能性としては技術的にあり得る) Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 5
  6. 6. 影響を受ける(幽霊が出る)• 論⽂発表時点におけるすべてのBIND 9• djbdns(dnscache)• Unbound 1.4.7以前• PowerDNS recursor• Windows Server 2008に付属のMS DNS• 数多くの公開DNSキャッシュサービス• 論⽂著者グループが調べた2万弱のオープ ンリゾルバーのうち、約70%以上 – 1週間幽霊をキープできたものの割合 Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 6
  7. 7. 影響を受けない(幽霊が出ない)• Unbound 1.4.8以降• MaraDNS• Windows Server 2008 R2に付属のMS DNS• Google Public DNS Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 7
  8. 8. 幽霊が出る場所• キャッシュDNSサーバーのキャッシュ中• 消えるはずのものが残り続ける – 「亡霊」の⽅が近いかもしれない• 影響を受けるキャッシュDNSサーバーは 「haunted resolver」と名付けられた – haunted house: 幽霊(お化け)屋敷 – haunted resolverは何と訳せばよい?• 権威DNSサーバーには幽霊は出ない – 再帰検索要求の受付をオフにしておくこと! Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 8
  9. 9. 幽霊が出る理由• DNSプロトコルの不備(明確に規定/定 義されていないため、実装依存となって いる部分)を突いたもの – 幽霊が出る実装と出ない実装が存在する• 背景にある重要な⼆つの事項 – NSレコードの信頼度 – キャッシュの更新ポリシー Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 9
  10. 10. NSレコードの信頼度• NSレコードは親・⼦の双⽅に存在する – どちらのNSレコードを優先すべきか?• DNSのプロトコル仕様の明確化について 定めたRFC 2181では、⼦のNSレコード をより⾼い信頼度(trustworthiness)で 取り扱うように規定されている• そのため、現在のキャッシュDNSサー バーの実装では、⼦のNSレコードを優先 的に使用する形が主流となっている Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 10
  11. 11. キャッシュの更新ポリシー• キャッシュDNSサーバーに既にキャッ シュされているデータを置き換える(上 書きする)際の条件・ポリシー• こちらもRFC 2181の「信頼度」が関係• 既にキャッシュされているデータと同じ 信頼度を持っているデータを受け取った 場合、データを置き換える(上書きす る)かどうかは現在のDNSプロトコルで は定められておらず、実装依存となって いる Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 11
  12. 12. 幽霊が出る条件(の⼀例)• 前提1:親の委任情報が消される前に、その ドメイン名が既にキャッシュされている – キャッシュされていない場合、幽霊は出ない• 前提2:攻撃者が委任先ゾーンの制御を握っ ている という前提で… Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 12
  13. 13. 幽霊が出る条件(の⼀例)• そのドメイン名がキャッシュから消える前に 「そのゾーン内の違う名前(Aレコード)」を 検索させるように仕向ける – 新しいNSレコード(下記)の名前にすると確実• ただし、その前にそのゾーンの権威DNSサー バー上のNSレコードを「NSの名前は違うが、 その名前のAレコードのIPアドレスは今のもの と同じ」状態に設定変更しておく• …というのを、NSの名前を変えながら繰り返す• 詳しいことは元の論⽂&最後に紹介する資料を ご欄くださいませ Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 13
  14. 14. 除霊の⽅法• 幽霊を⾒つけ次第キャッシュをクリアする – ISCが推奨 – でもどうやって⾒つけるの?• 定期的にキャッシュをクリアする – 今のところ⼀番よさげ – でもISPとかだと結構大変だよね…• 幽霊が出ない実装/サービスに取り換える – 次ページ参照 Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 14
  15. 15. 幽霊が出ない実装/サービス• Unbound 1.4.8以降 – 最新版を使いましょう• MaraDNS – 「親のNS」を優先するのでお奨めできない – 権威DNSサーバーの引っ越しに悪影響が出る可能性あり• Windows Server 2008 R2に付属のMS DNS – 「DNS cache locking」という技術を使っているらしい – MSのWebにホワイトペーパーがあります• Google Public DNS – Googleに頼るリスク、毒⼊れのリスク、Akamaiがうま くロードバランスしないなど、以前からの未解決の問題 Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 15
  16. 16. Unbound 1.4.8以降では なぜ幽霊が出ないのか• UnboundもBINDと同様、同じ信頼度を持ってい るデータを受け取った場合データを置き換える (上書きする)• ただし、置き換えたレコードのTTL値はそれまで 持っていたものをそのまま使う(置き換えない) – この変更はそもそも「浸透問題」に対するより良い対 策のために、Unbound 1.4.8で導⼊されたもの – TTLは「キャッシュしてよい時間」なので、この動作は RFCに違反していない• ただし、現在のUnboundではunbound.confで prefetch:yesとしていると幽霊が出るので注意 – 発⾒者: @hdais さん(開発元に報告、修正済) – 次回のリリースで修正される予定 Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 16
  17. 17. この問題をもっと知りたい• この問題(幽霊問題)はいわゆる「浸透問題」と同根です• でも、浸透問題が起こる実装と幽霊が出る実装は⼀対⼀対 応ではありません• その理由やしくみを勉強することで、DNSの委任のしくみ や関係する諸問題に関する深い理解が得られます• ぜひ論⽂を読みましょう(平易な英語で読みやすいです) 段海新さんの公式Web: http://netsec.ccert.edu.cn/duanhx/• その前にこれ読むといいかもです(頑張って書きました!) 「ghost domain names(幽霊ドメイン名)」脆弱性について http://jprs.jp/tech/notice/2012-02-17-ghost-domain-names.html• ⾊々適当にツイートしてますので、お気軽にフォローくださいませ – でも、趣味(修⾏)のことや某少⼥漫画のことも遠慮なくつぶやきますw Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 17
  18. 18. ありがとうございました! @OrangeMorishita Copyright © 2012 Yasuhiro Orange Morishita, all rights reserved. 18

×