DNSリバインディングとは

DNSリバインディングとは、ドメイン名解決を操作する手法で、コンピュータ攻撃の一種としてよく使用されます。この攻撃では、悪意のあるWebページが、ネットワークの他の場所でマシンを攻撃するクライアント側スクリプトを実行するよう、閲覧者を誘導します。

DNSリバインディングはブラウザを介して、攻撃者のサーバと内部ネットワーク上のWebアプリケーション間の通信を確立します。この仕組みを説明するために、まず同一オリジン ポリシー(SOP)とキャッシュ有効時間(TTL)という2つの概念について見てみましょう。

関連するビデオ

攻撃者がDNSを使用してデータを盗む方法

同一オリジン ポリシー(SOP)とは

Webブラウザは、同一オリジン ポリシー(SOP)を防御メカニズムとして使用し、1つのオリジンからロードされたWebサイトがその他のオリジンと対話する方法を制限します。Webサイトのオリジンは、プロトコル(例: http://)、ドメイン(例: paloaltonetworks.com)、およびポート(例: :80)により定義されます。例えば、URL AとURL Bは同じオリジンを持ちますが、URL Cは異なるオリジンを持つとします。

  • A: http://www[.]yourname[.]com/index[.]html

  • B: http://www[.]yourname[.]com/news[.]html

  • C: https:///www[.]yourname[.]com/index[.]html (異なるプロトコル)

同一オリジン ポリシーが設定されたWebサイトでは、クロス オリジンの対話が制限されます。http://www[.]badactor[.]com/home.htmlをオリジンとし、http://www[.]yourname[.]com/news[.]htmlにHTTPリクエストを送信するコード(JavaScriptなど)は、制限されます。

キャッシュ有効期間(TTL)とは

DNSシステムでは、キャッシュ有効期間(TTL)は、Webサーバが応答を求めてDNSネームサーバに再度クエリを送信するまでに、レコードをキャッシュに保持できる時間(秒単位)を定義します。例えば、300秒のTTLは、5分間レコードを保持します。その後は、レコードは古くなり、使用されなくなります。TTLは通常、ドメインの権威ネームサーバにより設定されます。

DNSリバインディング攻撃はどのように同一オリジン ポリシーを回避するか

DNSリバインディング攻撃の目標は、SOPの制限を回避することです。攻撃者はドメイン「http://www[.]badactor[.]com」を登録し、それを自らが制御するDNSサーバに委任します。例えば、Yourname Inc.社という企業がファイアウォールの背後でイントラネットをホストしており、従業員はIPが60.6.6.60である会社のWebサーバ上にあるアプリケーションにアクセスできると仮定します。そして、Yourname Inc.社のある従業員が、企業のネットワーク内のノートPCかタブレットでネットサーフィンをしていて、www[.]badactor[.]comをクリックしたとしましょう。

攻撃者によって制御されるDNSサーバは従業員のリクエストに対して正しいIPアドレスを送信しますが、応答がキャッシュされることを防ぐため、非常に短いTTLを設定しています。TTLポリシーを設定するのはそのDNSサーバであることを思い出してください。従業員のブラウザは悪意のあるコードを含むページをダウンロードし、そのコードはローカルIPアドレスを攻撃者のDNSサーバにバインドします。ドメイン「www[.]badactor[.]com」は現在「60.6.6.60」をポイントしており、このIPは同じオリジンであるため、攻撃者のコードはこの企業の情報と機密データを窃取することができます。

DNSリバインディング攻撃に対する最善の緩和策は、DNSレイヤーです。詳しくは、https://www.paloaltonetworks.jp/network-security/advanced-dns-securityをご覧ください。