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.

既出のDNS キャッシュポイズニング

1,409 views

Published on

LT駆動開発 #07 で発表したスライドです。

Published in: Software
  • Be the first to comment

既出のDNS キャッシュポイズニング

  1. 1. 既出のDNS キャッシュポイズニング 2014/09/06 LTDD #07 ねむねむ@nemumupoyo
  2. 2. HN:ねむねむ Twitter:@nemumupoyo 情報系の学生です
  3. 3. DNSとは
  4. 4. DNSとは?
  5. 5. DNSの特徴 • 通信にはUDPを用いる(送信元の詐称が可能) ! • 名前解決(ドメイン名からIPアドレスへの変換)などを 行う ! • 近年、外部ネットワークからDNS問い合わせが可能 なオープンリゾルバが問題に ! • リクエストに対してリプライのサイズが異常に大きい
  6. 6. オープンリゾルバがなぜ悪い?
  7. 7. オープンリゾルバがなぜ悪い? 外部ネットワークから身元を詐称して DNS リフレクション攻撃が可能 (理論上49倍の増幅が可能)
  8. 8. DNSキャッシュポイズニングとは
  9. 9. DNSキャッシュポイズニングとは • DNSのキャッシュテーブル内に悪意のある データを挿入する手法 ! 具体例 google.comにアクセスしているつもりが悪意 のある第三者のサイトへアクセスしていた など
  10. 10. 具体例
  11. 11. DNSメッセージフォーマット 識別子(2^16 = 65536) で正規リプライと判断
  12. 12. 代表例
  13. 13. 代表例 トランザクションIDを総当たりして上位DNSサーバ からのレスポンスが返る前に偽のレスポンスを通す (悪意のあるDNSキャッシュを保存させる)
  14. 14. 対策 キャッシュの持ち時間(TTL)を長くして問い合わ せ回数を減らす
  15. 15. 対策 キャッシュの持ち時間(TTL)を長くして問い合わ せ回数を減らす しかしTTL待機は回避可能
  16. 16. カミンスキー型攻撃
  17. 17. カミンスキー型攻撃 存在しないドメイン名を問い合わせること でTTLに関係なく上位ルーターに 問い合わせさせる
  18. 18. カミンスキー型攻撃の対策 (Source port randomization)
  19. 19. カミンスキー型攻撃の対策 (Source port randomization) ソースポートをランダム値にすることにより 応答パケットの偽装難易度を上げる
  20. 20. 最悪オーダー ポート番号 × 識別子 = 2^16 × 2^16 = 4,294,967,296 (43億) ! 難易度が跳ね上がる しかし上位にNAPTルーターを挟む場合は 十分な効果を期待できない
  21. 21. NAPTによる弊害 • 使用可能な送信元ポートが減る ! • NAPTルーターは処理速度向上のためポート 番号を連番にしている事が多い ! • NAPTを通すとランダムなポート番号でも推測 が可能に
  22. 22. 提案されている対策 • トランザクション ID を32[bit]にする(不可能) ! • 問い合わせをTCPにする ! • 上位ルーターに署名を使う(DNSSEC) ! • DNSレスポンスの試行回数を制限する
  23. 23. まとめ • オープンリゾルバは可能な限り避けるべき ! • DNSSECなどの署名を導入する ! • NATルーターの連番ポート番号はDNS以外に も弊害が出そう(IPv6を使おう)
  24. 24. ご静聴ありがとうございました @nemumupoyo

×