ドメイン ネーム システム (DNS) の動的更新機能によって、DNS クライアント コンピュータでは、自身のネットワーク アドレスやホスト名を変更するたびに、各自のリソース レコードを DNS サーバーに登録し、動的に更新することが可能になります。これにより、ゾーン レコードを手動で管理する必要性が少なくなります。しかし便利さの一方で、承認済みのクライアントが、未使用のホスト名であれば特定のアプリケーションにとって特別な意味を持つホスト名でも自由に登録できるというリスクを伴います。このため、悪意のあるユーザーが特別な名前を乗っ取り、特定の種類のネットワーク トラフィックを自分のコンピュータに誘導するおそれがあります。
一般に展開されているプロトコルのうち、特にこのような乗っ取りを受けやすいものとして、Web Proxy Automatic Discovery (WPAD) と Intra-site Automatic Tunnel Addressing Protocol (ISATAP) の 2 つが挙げられます。ネットワークでこれらのプロトコルが展開されていなくても、クライアントがこれらのプロトコルを使用するよう構成されている場合、クライアントは DNS の動的更新時に乗っ取りを受けやすくなります。こうした乗っ取りを防ぐため、Windows Server 2008 の DNS サーバーの役割にはグローバル クエリ禁止リストが組み込まれています。このリストは、悪意のあるユーザーが特別な意味を持つ DNS 名を乗っ取ることを防ぐのに役立ちます。
大部分の Web ブラウザは、WPAD を使用して、Web ブラウザがネットワーク プロキシ サーバーを使用できるようにするための構成設定を検索および適用します。これらの構成設定は、サーバー上のファイルに保存されています。ブラウザは動的ホスト構成プロトコル (DHCP) サーバーでネットワークの WPAD サーバーの URL を照会し、このサーバーを検索します。照会できなかった場合は、ブラウザは標準の DNS 名前解決クエリを使用して WPAD サーバーの検索を試みます。
たとえば、Web ブラウザが laptop.acctg.corp.contoso.com という名前の Windows ベースのコンピュータで実行されている場合、ブラウザは次の URL を検索することにより、WPAD 構成ファイルの検索を試みます。
-
http://wpad.acctg.corp.contoso.com/wpad.dat
-
http://wpad.corp.contoso.com/wpad.dat
-
http://wpad.contoso.com/wpad.dat
ブラウザが wpad.dat ファイルをいずれかの場所で見つけると、ブラウザはファイルの内容を読み取り、その後ファイル内の設定に従ってブラウザの構成が行われます。
この自動検出処理をセキュリティで保護することはできません。ファイルの設定によりクライアントが偽のプロキシ サーバーを使用するようになっている場合 (クライアントの Web ブラウザを偽造 Web サイトにアクセスさせる場合など) でも、wpad という名前で DNS ゾーンに登録されているコンピュータは、WPAD 構成をネットワーク上のクライアントに適用することができます。DNS の動的更新機能により、悪意のあるユーザーは DNS システム管理者による作業がなくても、コンピュータに wpad という名前を設定してこのコンピュータをネットワークに接続するだけで、この処理を行うことができます。ゾーンに同じ名前のコンピュータがなければ、悪意のあるユーザーのコンピュータによりゾーンに対して権限を持つ DNS サーバーにそのコンピュータ名を登録し、すべての WPAD クエリをそのコンピュータに誘導することができます。
Windows Server 2008 の DNS サーバーの役割で使用できる禁止リスト機能を使用すると、WPAD が禁止リストから除外されていない限り WPAD サーバーの照会が必ず失敗するため、WPAD の乗っ取りを防ぐことができます。
ISATAP では、IP バージョン 4 (IPv4) に準拠するネットワークと新しい IP バージョン 6 (IPv6) だけに準拠するネットワークの間の移行ができます。ISATAP では、トンネリングにより IPv6 トラフィックを IPv4 インフラストラクチャで伝送することにより、この移行を実現しています。つまり、ISATAP は IPv6 パケットを IPv4 ヘッダーでカプセル化し、IPv6 パケットを単一の ISATAP ルーターを経由して ISATAP 対応ホスト間で伝送できるようにします。この伝送は、ホストの場所が IPv6 対応サブネット上か IPv4 専用ネットワーク上であるかを問わず、ホストがネットワーク上に存在すれば行われます。
ISATAP はルーターの自動検出に対応していません。その代わり、ISATAP ホストは利用可能なルーター一覧 (PRL) を使用して、利用可能な ISATAP ルーターを検出します。多くの場合、ISATAP ホストは DNS を使用してローカル ドメイン上の isatap という名前のホストを検索し、PRL を構築しています。たとえば、ローカル ドメインが corp.contoso.com の場合、ISATAP 対応ホストは DNS を照会して isatap.corp.contoso.com という名前のホストの IPv4 アドレスを取得します。
そのため、悪意のあるユーザーは WPAD サーバーをスプーフィングするのと同じ方法で ISATAP ルーターをスプーフィングすることができます。悪意のあるユーザーは動的更新を使用して自分のコンピュータを偽装 ISATAP ルーターとして登録し、ネットワーク上の ISATAP 対応コンピュータ間のトラフィックを自分のコンピュータに誘導することができます。これを防ぐため、既定では、Windows Server 2008 の DNS サーバー サービスは isatap ホストの名前解決を禁止するよう設定されています。
Windows Server 2008 の DNS サーバー サービスの既定の構成には名前のリストが含まれています。サーバーが権限を持つゾーンの名前を解決するためのクエリをこのサービスで受信した場合、このリストにある名前は無視されます。具体的には、DNS サーバー サービスは、最初にクエリをリストに照らしてチェックします。名前の最初の部分がリスト内の名前と一致した場合、DNS サーバー サービスは、たとえ名前に対応するホスト (A または AAAA) リソース レコードがゾーン内に存在しても、あたかもリソース レコードが存在しないかのようにクエリに応答します。その結果、禁止されている名前でホストが自分自身を動的更新により登録したためにホスト(A または AAAA) リソース レコードがゾーンに存在する場合、DNS サーバー サービスはこの名前を解決しません。
禁止リストは、サーバーが権限を持つすべてのゾーンに対して自動的に適用されます。たとえば、 DNS サーバーが contoso.com および europe.contoso.com に対して権限を持つ場合、wpad.contoso.com と wpad.europe.contoso.com に対するクエリは無視されます。しかし、DNS サーバー サービスが権限を持たないゾーンの名前に対するクエリは無視されません。特に、フォワーダまたはスタブ ゾーン経由で受信するクエリや、通常の再帰または転送の結果として受信するクエリは無視されません。禁止リストにより、ゾーンに存在するリソース レコードに対する要求を DNS サーバー サービスが無視した場合、その理由を示すイベントがログに記録されます。このイベントは、DNS サーバーの再起動後に 1 回だけログに記録されます。これにより、サービス拒否攻撃を受けた場合にログがあふれないようにすることができます。
重要 |
|
禁止リスト内の名前を解決するクエリがクライアントから送信されたときに常に同じ結果となるためには、あるゾーンに対して権限のあるすべての DNS サーバーが Windows Server 2008 を実行していて、同じ禁止リストを使用して構成されている必要があります。禁止リストはサーバーごとに設定され、サーバー間でのレプリケートは行われません。 |
DNS サーバー サービスはホスト (A または AAAA) リソース レコードだけではなくすべてのリソース レコードに対して禁止リストを適用するため、メール エクスチェンジャ (MX) リソース レコードやサービス ロケータ (SRV) リソース レコードなどの種類のリソース レコードは無視されます。しかし、DNS サーバーはゾーン名自体には禁止リストを適用しないため、管理者は wpad.contoso.com などのゾーン名を作成して、ホスト リソース レコードをそのゾーンに追加することができます。この場合、DNS サーバー サービスは wpad.contoso.com ゾーンのホスト名を引き続き解決します。
禁止リストの初期の内容は、DNS サーバーの役割を Windows Server 2008 の既存の展開に追加したとき、または DNS サーバー サービスを実行している以前のバージョンの Windows Server をアップグレードしたときに、WPAD または ISATAP が既に展開されていたかどうかによって異なります。このタスクの手順に従って、グローバル クエリ禁止リストの内容を表示または更新できます。また、グローバル クエリ禁止リストを有効または無効にすることもできです。
このタスクを完了するには、次の手順を実行します。