DNSリバインディング攻撃とは、ドメイン名(FQDN)に対応するIPアドレスを短時間に変更することにより、罠サイトに仕掛けたJavaScriptから、攻撃対象サイトに対して同一生成元ポリシーの範囲で攻撃を仕掛ける技法である。

 DNSリバインディングは特殊な攻撃であり、認証を回避したりセッションを乗っ取ることができるわけではない。このため、インターネット上のサイトがこの手法で攻撃されることはあまりなく、ファイアウォールの内側のサーバーで、かつパスワードが分かっているもの(デフォルトパスワードを変更していないルーターなど)が典型的な攻撃対象だった。

 しかしIPアドレスをなりすます目的には、DNSリバインディング攻撃が悪用可能だ。攻撃者は図5のように罠のページを用意して、被害者が閲覧するのを待つ。被害者が罠のページを閲覧すると、以下の仕組みが動き出す。

図5●DNSリバインディングの仕組み
[画像のクリックで拡大表示]
(1)DNSサーバーのAレコードを操作して、evil.example.comがIPアドレス203.0.113.22(攻撃対象サイトのIPアドレス)を指すようにする
(2) TTL=5秒と短いのでDNSキャッシュサーバーに保持されたAレコードは5秒後にクリアされる
(3)罠を閲覧後30秒後にJavaScriptからevil.example.comにアクセスする

 JavaScriptからHTTPリクエストするXHRには同一生成元ポリシーの制限があるため、evil.exmaple.comから読み出したHTMLページからは、同じevil.exmaple.com上のURLのみにアクセスできる。DNSリバインディングは、ホスト名は変えずに、ホストと対応するIPアドレスを変更することにより、同一生成元ポリシーの制限の範囲で他のホストにアクセスする技法である。

 DNSリバインディングの対策はブラウザー側で、ホスト名に対するIPアドレスを一定時間変更しないDNS Pinningという方法が採られているが完全ではなく、ブラウザーによって攻撃に要する時間に差はあるものの、攻撃は成立する。

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら