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

Post on 19-Jun-2015

863 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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

HN:ねむねむ

情報系の学生です

Twitter:@nemumupoyo

DNSとは

DNSとは?

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

!

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

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

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

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

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

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

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

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

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

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

具体例

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

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

代表例

代表例

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

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

せ回数を減らす

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

せ回数を減らす

しかしTTL待機は回避可能

カミンスキー型攻撃

カミンスキー型攻撃

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

問い合わせさせる

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

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

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

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

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

!

難易度が跳ね上がる

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

NAPTによる弊害

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

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

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

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

!

• 問い合わせをTCPにする

!

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

!

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

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

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

!

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

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

top related