DNS Cache Poisoning
Why?
●
DNSキャッシュポイズニング攻撃に関する注意喚起
∙ http://www.jpcert.or.jp/at/2014/at140016.html
●
Heartbleedが派手だったのであまり知られてない?
●
ちなみに今日、この...
DNS
●
Domain Name System
●
ホスト名(正確に言うとFQDNかな)とIPアドレスのマッピング
∙ ipc.nagaokaut.ac.jp = 133.44.2.60
●
いわゆる名前解決ってやつですね
名前解決
ipc.nagaokaut.ac.jpってどこよ
キャッシュDNS
※ 身近な例で大学ドメインにしてるけど、学内からは多分こうなりません
  あとスペース足らなくってルートサーバ省略しちゃった
名前解決
ipc.nagaokaut.ac.jpってどこよ
jp権威サーバ
キャッシュDNS
名前解決
nagaokaut.ac.jpに聞いてくれ
jp権威サーバ
キャッシュDNS
名前解決
ipc.nagaokaut.ac.jpってどこよ
nagaokaut.ac.jp
権威サーバ
キャッシュDNS
名前解決
133.44.2.60だわ
nagaokaut.ac.jp
権威サーバ
キャッシュDNS
名前解決
133.44.2.60だわ
DNSサーバ
みんなでワーッてやっても大丈夫
権威サーバ
aaa.nagaokaut.ac.jpって
ddd.nagaokaut.ac.jpって
bbb.nagaokaut.ac.jpって
ccc.nagaokaut.ac.jpって
どこよ(0x39ab)
...
ちょっとまとめ
●
IPアドレスがわからんホストのことは権威サーバに聞く
∙ 他の権威サーバに委任することがある
∙ オーバヘッド回避のためUDPを使う
∙ 権威サーバへの問い合わせには16bitのIDが付いてる
●
名前解決したホスト名は覚え...
で、ポイゾニングとは
ぽいぞぬーん
ipc.nagaokaut.ac.jpってどこよ
xxx.xxx.xxx.xxxだぜ
●
キャッシュしてある対応表が誤った状態
∙ 外部からこの状態をつくり出すことを「DNSキャッシュポイゾニング攻撃」と呼ぶ
おっ!そこは知っとる...
How To 汚染
ipc.nagaokaut.ac.jpってどこよ
キャッシュDNS
How To 汚染
ipc.nagaokaut.ac.jpってどこよ
(ID = 0x1234)
jp権威サーバ
キャッシュDNS
How To 汚染
ipc.nagaokaut.ac.jpってどこよ
(ID = 0x1234)
jp権威サーバ
xxx.xxx.xxx.xxx (0x1871)
xxx.xxx.xxx.xxx (0x1234)
xxx.xxx.xxx.xxx...
You did it!
ipc.nagaokaut.ac.jpってどこよ
(ID = 0x1234)
jp権威サーバ
オラ
オラ
オラ
オラ
オラ
オラ
オラ
オラ
xxx.xxx.xxx.xxx (0x1871)
xxx.xxx.xxx.xx...
なにが起きるのか
●
有害なサイトに誘導される
∙ フィッシング
∙ アドレスバーには自分が入力したものが表示されているので気付きにくい
(ちゃんとhttpsしてれば警告が出る)
●
名前解決できない
∙ DoS攻撃にもなる
●
などなど
どうする
●
TTLを長くしておけばイケるんじゃね?
∙ 外部問い合わせしてる最中に毒入れされる
∙ 外部問い合わせしなければ毒入れされない
∙ ずっとキャッシュしとく
∙ 割とこれで通用してた(現実的に困難とされた)時代もあったそうな
●
オ...
_人人人人人人人人人人人_
> 突然のカミンスキー <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
カミンスキーアタック!
●
Dan Kaminskyさんが発見した効率的なポイズニング法
●
2008年に発表される
●
存在しないホスト名を名前解決させ強制的に外部問い合わせをさせる
応用
●
Bernhard Müllerさん
●
RFC1034の問題点を突いた
∙ 委譲応答が、キャッシュにあるものよりも解決したいホスト名に近い場合
その委譲を信頼して受け入れる
∙ abc.ipc.nagaokaut.ac.jpを問い合わ...
Müllerの手法
abc.ipc.nagaokaut.ac.jpってどこよ
キャッシュDNS
Müllerの手法
abc.ipc.nagaokaut.ac.jpってどこよ
(ID = 0x1234)
jp権威サーバ
キャッシュDNS
Müllerの手法
jp権威サーバ
ipc.nagaokaut.ac.jpに
聞いてくれ
(0x38f1)
(0x1234)
(0xc8c2)
(0x773d)
オラ
オラ
オラ
オラ
オラ
オラ
オラ
オラ
キャッシュDNS
abc.ipc....
Kaminsky型の攻撃
●
毒を盛ることに失敗したら
∙ 存在しない名前を解決しようとしているので正しい応答はNot Found
∙ NXDOMAIN (3)
∙ ネガティブキャッシュされる
●
でも関係ない
∙ 別の架空のホスト名を問い合わ...
どうする
●
Source Port Randomization
∙ 権威サーバへの問い合わせをする際のポートをランダムに変える
∙ デフォルトの53番固定をやめる
∙ IDだけでなくポートも一致しないと毒が入らない
∙ ポートの範囲は 0〜6...
どうする
●
組織外からの問い合わせ要求は無視
∙ 身内から毒を盛られることはないと信じる
∙ 組織の内とか外とか関係なしに名前解決しちゃうやつをオープンレゾルバと呼ぶ
∙ ただし内部にマルウェア感染者がいると...
●
UDPやめてTCP使う...
どうする
●
DNSSEC
∙ 公開鍵暗号方式で応答の正当性を確認する
∙ 対策として効果がない場合があるらしい
●
ここよくわからん
●
DNSCurve
∙ 全てのDNSパケットを楕円曲線暗号方式で暗号化する
∙ クライアントと権威サーバが...
ちゃんと設定出来てるか心配だよね
●
DNSサーバを構築・管理するなら
∙ ポートのランダム化は必須。絶対。マスト
∙ 具体的な設定例はググってください
∙ テストできるツールもある
●
Web-based DNS Randomness Tes...
そろそろ飽きた?
●
またの機会に
∙ 親子同居問題
∙ 第1フラグメント便乗攻撃
∙ もっと深いところ(ボクが理解できたら)
●
質問あったらどうぞ
参考にさせて頂きました
●
JPRS 「JPRS トピックス&コラム No.009」
∙ http://jprs.jp/related-info/guide/009.pdf
●
JPNIC 「インターネット10分講座:DNSキャッシュポイズニン...
参考にさせて頂きました
●
Moinqmail.jp 「DNS」
∙ https://moin.qmail.jp/DNS
●
Geekなページ 「強烈なDNSキャッシュポイズニング手法が公開される」
∙ http://www.geekpage....
Upcoming SlideShare
Loading in …5
×

DNSキャッシュポイゾニングについての話

881
-1

Published on

大学内勉強会資料(4月25日の回)。

事実と異なることで不安を煽りたくないので、
誤った内容や誤解を招く表記がありましたら教えてください。

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
881
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

DNSキャッシュポイゾニングについての話

  1. 1. DNS Cache Poisoning
  2. 2. Why? ● DNSキャッシュポイズニング攻撃に関する注意喚起 ∙ http://www.jpcert.or.jp/at/2014/at140016.html ● Heartbleedが派手だったのであまり知られてない? ● ちなみに今日、このスライドとほぼ同じことを解説したブログが公開されてた ∙ Geekなページ 「DNSキャッシュポイズニングの基本と重要な対策」 ∙ http://www.geekpage.jp/blog/?id=2014/4/25/1 ∙ 確実にボクより詳しい方なので、続編もしっかりチェックしましょう
  3. 3. DNS ● Domain Name System ● ホスト名(正確に言うとFQDNかな)とIPアドレスのマッピング ∙ ipc.nagaokaut.ac.jp = 133.44.2.60 ● いわゆる名前解決ってやつですね
  4. 4. 名前解決 ipc.nagaokaut.ac.jpってどこよ キャッシュDNS ※ 身近な例で大学ドメインにしてるけど、学内からは多分こうなりません   あとスペース足らなくってルートサーバ省略しちゃった
  5. 5. 名前解決 ipc.nagaokaut.ac.jpってどこよ jp権威サーバ キャッシュDNS
  6. 6. 名前解決 nagaokaut.ac.jpに聞いてくれ jp権威サーバ キャッシュDNS
  7. 7. 名前解決 ipc.nagaokaut.ac.jpってどこよ nagaokaut.ac.jp 権威サーバ キャッシュDNS
  8. 8. 名前解決 133.44.2.60だわ nagaokaut.ac.jp 権威サーバ キャッシュDNS
  9. 9. 名前解決 133.44.2.60だわ DNSサーバ
  10. 10. みんなでワーッてやっても大丈夫 権威サーバ aaa.nagaokaut.ac.jpって ddd.nagaokaut.ac.jpって bbb.nagaokaut.ac.jpって ccc.nagaokaut.ac.jpって どこよ(0x39ab) どこよ(0xf2bb) どこよ(0x6c1e) どこよ(0x7703) 問い合わせと同じ問い合わせと同じIDIDを付けてを付けて 応答するからモンダイないのさ応答するからモンダイないのさ キャッシュDNS
  11. 11. ちょっとまとめ ● IPアドレスがわからんホストのことは権威サーバに聞く ∙ 他の権威サーバに委任することがある ∙ オーバヘッド回避のためUDPを使う ∙ 権威サーバへの問い合わせには16bitのIDが付いてる ● 名前解決したホスト名は覚えておく ∙ これがDNSキャッシュ ∙ キャッシュしておく期間(TTL)は権威サーバが指示できる
  12. 12. で、ポイゾニングとは
  13. 13. ぽいぞぬーん ipc.nagaokaut.ac.jpってどこよ xxx.xxx.xxx.xxxだぜ ● キャッシュしてある対応表が誤った状態 ∙ 外部からこの状態をつくり出すことを「DNSキャッシュポイゾニング攻撃」と呼ぶ おっ!そこは知っとるでぇ xxx.xxx.xxx.xxxや! (キリッ キャッシュDNS
  14. 14. How To 汚染 ipc.nagaokaut.ac.jpってどこよ キャッシュDNS
  15. 15. How To 汚染 ipc.nagaokaut.ac.jpってどこよ (ID = 0x1234) jp権威サーバ キャッシュDNS
  16. 16. How To 汚染 ipc.nagaokaut.ac.jpってどこよ (ID = 0x1234) jp権威サーバ xxx.xxx.xxx.xxx (0x1871) xxx.xxx.xxx.xxx (0x1234) xxx.xxx.xxx.xxx (0xc8c2) xxx.xxx.xxx.xxx (0x773d) xxx.xxx.xxx.xxx (0x38f1) オラ オラ オラ オラ オラ オラ オラ オラ キャッシュDNS
  17. 17. You did it! ipc.nagaokaut.ac.jpってどこよ (ID = 0x1234) jp権威サーバ オラ オラ オラ オラ オラ オラ オラ オラ xxx.xxx.xxx.xxx (0x1871) xxx.xxx.xxx.xxx (0x1234) xxx.xxx.xxx.xxx (0xc8c2) xxx.xxx.xxx.xxx (0x773d) xxx.xxx.xxx.xxx (0x38f1) キャッシュDNS
  18. 18. なにが起きるのか ● 有害なサイトに誘導される ∙ フィッシング ∙ アドレスバーには自分が入力したものが表示されているので気付きにくい (ちゃんとhttpsしてれば警告が出る) ● 名前解決できない ∙ DoS攻撃にもなる ● などなど
  19. 19. どうする ● TTLを長くしておけばイケるんじゃね? ∙ 外部問い合わせしてる最中に毒入れされる ∙ 外部問い合わせしなければ毒入れされない ∙ ずっとキャッシュしとく ∙ 割とこれで通用してた(現実的に困難とされた)時代もあったそうな ● オラオラできるほどの通信速度や処理速度がなかった ∙ ちなみに ● ipc.nagaokaut.ac.jpは86400秒(24時間)キャッシュされるっぽい
  20. 20. _人人人人人人人人人人人_ > 突然のカミンスキー <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
  21. 21. カミンスキーアタック! ● Dan Kaminskyさんが発見した効率的なポイズニング法 ● 2008年に発表される ● 存在しないホスト名を名前解決させ強制的に外部問い合わせをさせる
  22. 22. 応用 ● Bernhard Müllerさん ● RFC1034の問題点を突いた ∙ 委譲応答が、キャッシュにあるものよりも解決したいホスト名に近い場合 その委譲を信頼して受け入れる ∙ abc.ipc.nagaokaut.ac.jpを問い合わせたとき、どっちを受け入れるか ● nagaokaut.ac.jpに聞けよ。IPはxxx.xxx.xxx.xxxな。 ● ipc.nagaokaut.ac.jpに聞けよ。IPはxxx.xxx.xxx.xxxな。 ← こっち
  23. 23. Müllerの手法 abc.ipc.nagaokaut.ac.jpってどこよ キャッシュDNS
  24. 24. Müllerの手法 abc.ipc.nagaokaut.ac.jpってどこよ (ID = 0x1234) jp権威サーバ キャッシュDNS
  25. 25. Müllerの手法 jp権威サーバ ipc.nagaokaut.ac.jpに 聞いてくれ (0x38f1) (0x1234) (0xc8c2) (0x773d) オラ オラ オラ オラ オラ オラ オラ オラ キャッシュDNS abc.ipc.nagaokaut.ac.jpってどこよ (ID = 0x1234)
  26. 26. Kaminsky型の攻撃 ● 毒を盛ることに失敗したら ∙ 存在しない名前を解決しようとしているので正しい応答はNot Found ∙ NXDOMAIN (3) ∙ ネガティブキャッシュされる ● でも関係ない ∙ 別の架空のホスト名を問い合わせさせればいい ● $random.ipc.nagaokaut.ac.jp ● TTL切れを待つことなく連続攻撃が可能
  27. 27. どうする ● Source Port Randomization ∙ 権威サーバへの問い合わせをする際のポートをランダムに変える ∙ デフォルトの53番固定をやめる ∙ IDだけでなくポートも一致しないと毒が入らない ∙ ポートの範囲は 0〜65535 ∙ 成功率はぐっと下がる ∙ 攻撃を検知しやすくなるのかな
  28. 28. どうする ● 組織外からの問い合わせ要求は無視 ∙ 身内から毒を盛られることはないと信じる ∙ 組織の内とか外とか関係なしに名前解決しちゃうやつをオープンレゾルバと呼ぶ ∙ ただし内部にマルウェア感染者がいると... ● UDPやめてTCP使う ∙ 応答が偽装されやすいのはUDPを使ってるから ∙ 委譲応答が来たらTCPで再度問い合わせるのも有効だとか ∙ 当然ハンドシェイク等の手間は発生する
  29. 29. どうする ● DNSSEC ∙ 公開鍵暗号方式で応答の正当性を確認する ∙ 対策として効果がない場合があるらしい ● ここよくわからん ● DNSCurve ∙ 全てのDNSパケットを楕円曲線暗号方式で暗号化する ∙ クライアントと権威サーバが直接やり取りする ● DNSSECはキャッシュサーバを介して通信していた ∙ 現行の運用を考えたとき、導入コストが少ない
  30. 30. ちゃんと設定出来てるか心配だよね ● DNSサーバを構築・管理するなら ∙ ポートのランダム化は必須。絶対。マスト ∙ 具体的な設定例はググってください ∙ テストできるツールもある ● Web-based DNS Randomness Test https://www.dns-oarc.net/oarc/services/dnsentropy
  31. 31. そろそろ飽きた? ● またの機会に ∙ 親子同居問題 ∙ 第1フラグメント便乗攻撃 ∙ もっと深いところ(ボクが理解できたら) ● 質問あったらどうぞ
  32. 32. 参考にさせて頂きました ● JPRS 「JPRS トピックス&コラム No.009」 ∙ http://jprs.jp/related-info/guide/009.pdf ● JPNIC 「インターネット10分講座:DNSキャッシュポイズニング」 ∙ https://www.nic.ad.jp/ja/newsletter/No40/0800.html ● Internet Watch 「DNSのUDPメッセージサイズが512バイト以下に制限された背景とは」 ∙ http://internet.watch.impress.co.jp/docs/event/20131202_625963.html
  33. 33. 参考にさせて頂きました ● Moinqmail.jp 「DNS」 ∙ https://moin.qmail.jp/DNS ● Geekなページ 「強烈なDNSキャッシュポイズニング手法が公開される」 ∙ http://www.geekpage.jp/blog/?id=2014/4/16/1 ● Improved DNS Spoofing Using Node Re-delegation ∙ Bernhard Müller, 2008 ∙ http://www.sec-consult.com/fxdata/seccons/prod/downloads/whi tepaper-dns-node-redelegation.pdf

×