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

24
既出のDNS キャッシュポイズニング 2014/09/06 LTDD #07 ねむねむ@nemumupoyo

description

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

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

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

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

2014/09/06 LTDD #07 ねむねむ@nemumupoyo

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

HN:ねむねむ

情報系の学生です

Twitter:@nemumupoyo

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

DNSとは

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

DNSとは?

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

DNSの特徴• 通信にはUDPを用いる(送信元の詐称が可能)

!

• 名前解決(ドメイン名からIPアドレスへの変換)などを行う !

• 近年、外部ネットワークからDNS問い合わせが可能なオープンリゾルバが問題に !

• リクエストに対してリプライのサイズが異常に大きい

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

オープンリゾルバがなぜ悪い?

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

オープンリゾルバがなぜ悪い?

外部ネットワークから身元を詐称して DNS リフレクション攻撃が可能 (理論上49倍の増幅が可能)

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

DNSキャッシュポイズニングとは

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

DNSキャッシュポイズニングとは

• DNSのキャッシュテーブル内に悪意のあるデータを挿入する手法 !

具体例 google.comにアクセスしているつもりが悪意のある第三者のサイトへアクセスしていた など

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

具体例

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

DNSメッセージフォーマット

識別子(2^16 = 65536) で正規リプライと判断

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

代表例

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

代表例

トランザクションIDを総当たりして上位DNSサーバからのレスポンスが返る前に偽のレスポンスを通す (悪意のあるDNSキャッシュを保存させる)

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

対策キャッシュの持ち時間(TTL)を長くして問い合わ

せ回数を減らす

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

対策キャッシュの持ち時間(TTL)を長くして問い合わ

せ回数を減らす

しかしTTL待機は回避可能

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

カミンスキー型攻撃

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

カミンスキー型攻撃

存在しないドメイン名を問い合わせることでTTLに関係なく上位ルーターに

問い合わせさせる

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

カミンスキー型攻撃の対策 (Source port randomization)

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

カミンスキー型攻撃の対策 (Source port randomization)

ソースポートをランダム値にすることにより応答パケットの偽装難易度を上げる

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

最悪オーダーポート番号 × 識別子

= 2^16 × 2^16 = 4,294,967,296 (43億)

!

難易度が跳ね上がる

しかし上位にNAPTルーターを挟む場合は十分な効果を期待できない

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

NAPTによる弊害

• 使用可能な送信元ポートが減る !

• NAPTルーターは処理速度向上のためポート番号を連番にしている事が多い !

• NAPTを通すとランダムなポート番号でも推測が可能に

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

提案されている対策• トランザクション ID を32[bit]にする(不可能)

!

• 問い合わせをTCPにする

!

• 上位ルーターに署名を使う(DNSSEC)

!

• DNSレスポンスの試行回数を制限する

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

まとめ• オープンリゾルバは可能な限り避けるべき !

• DNSSECなどの署名を導入する

!

• NATルーターの連番ポート番号はDNS以外にも弊害が出そう(IPv6を使おう)

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

ご静聴ありがとうございました@nemumupoyo