The Cable Guy強力なホスト モデルと弱いホスト モデル

Joseph Davies

ますます一般的になっているネットワーク ホストの構成は、複数のネットワーク インターフェイスによってマルチホーム化された構成です。マルチホーム ホストでは、イントラネットやインターネットなどの複数のネットワークに同時に接続できるため、強化された接続が提供されます。ただし、イントラネットと

インターネットの両方に接続できるため、マルチホーム ホストで実行されているサービスは、攻撃を受けやすくなる可能性があります。この記事では、それらの攻撃からコンピュータを保護し、マルチホーム ホストで IP トラフィックがどのように処理されるかについて理解するために、マルチホーム ホストの弱いホスト モデルと強力なホスト モデルについて説明し、その後、これらのモデルが Windows® でどのようにサポートされているかについて説明します。

RFC 1122 は、ルーターとして機能せずにユニキャスト IP トラフィックの送受信のみを行うマルチホーム ホストの 2 つのモデルについて記述した仕様です。これらのモデルは、強力なホストと弱いホストといい、送受信されるユニキャスト トラフィックが、経由するネットワーク インターフェイスに関連付けられている必要があるかどうかを指定しています。これらのモデルによって、ホストがパケットを送受信する方法と、そのホストで実行されているサービスの脆弱性にもたらされる影響が決まります。

RFC 1122 では IPv4 用のモデルが定義されていますが、これらのモデルは IPv6 にも適用されます。IPv6 のマルチホーム ホストの例としては、イントラネットに接続されるネットワーク アダプタと IPv6 トンネリング インターフェイスを持ち、IPv4 と IPv6 の両方を使用するコンピュータがあります。

弱いホスト モデル

弱いホスト モデルでは、IP ホスト (IPv4 または IPv6) は、送信パケットに指定された送信元 IP アドレスが割り当てられていないインターフェイスで、それらのパケットを送信できます。これを、弱いホストの送信動作といいます。また、IP ホストは、受信パケットに指定された送信先 IP アドレスが割り当てられていないインターフェイスで、それらのパケットを受信できます。これを、弱いホストの受信動作といいます。

複数のインターフェイスを持つマルチホーム IP ホストを使用している場合、インターフェイスで弱いホストの受信動作を有効にすると、そのホストはマルチホーム攻撃を受けやすくなることがあります。たとえば、図 1 は、インターネットとイントラネットの両方に接続されるホスト A を示しています。ホスト A のインターネット インターフェイスにはパブリック IPv4 アドレス 131.107.89.211 が割り当てられ、イントラネット インターフェイスにはプライベート IPv4 アドレス 192.168.17.48 が割り当てられています。

図 1 マルチホーム コンピュータの例

図 1** マルチホーム コンピュータの例 **

インターネット インターフェイスとイントラネット インターフェイスの両方で、弱いホストの送信動作が有効になっている場合、ホスト A は、131.107.89.211 と 192.168.17.48 からのパケットを、インターネット インターフェイスとイントラネット インターフェイスのどちらで送信することもできます。

また、弱いホストの受信動作が有効になっている場合、ホスト A は、131.107.89.211 と 192.168.17.48 へのパケットを、インターネット インターフェイスとイントラネット インターフェイスのどちらで受信することもできます (ホストのファイアウォール規則で受信トラフィックが許可されていることを前提とします)。

弱いホストの受信動作を有効にすると、インターネット上の悪意のあるユーザーは、ホスト A のインターネット インターフェイスにパケットを送信することによって、ホスト A からイントラネット上のホストのみに提供されているサービスを攻撃することができます。このような攻撃は、インターネット インフラストラクチャで、192.168.17.48 に送信されたパケットをホスト A のインターネット インターフェイスに転送する動作がサポートされている場合に発生する可能性があります。このような攻撃からコンピュータを保護するには、ホスト A のインターネット インターフェイスに適切なファイアウォール規則を設定します。ただし、適切なファイアウォール規則を設定しても、ホスト A からイントラネット クライアントに提供されているサービスが攻撃を受ける可能性はあります。

強力なホスト モデル

強力なホスト モデルでは、異なる送受信の動作が使用されます。強力なホストの送信動作では、ホストは、送信パケットに指定された送信元 IP アドレスが割り当てられているインターフェイスでのみ、そのパケットを送信できます。また、強力なホストの受信動作では、ホストは、受信パケットに指定された送信先 IP アドレスが割り当てられているインターフェイスでのみ、そのパケットを受信できます。

インターネット インターフェイスとイントラネット インターフェイスの両方で、強力なホストの送信動作が有効になっている場合、図 1 のホスト A は、131.107.89.211 からのパケットをインターネット インターフェイスで送信し、192.168.17.48 からのパケットをイントラネット インターフェイスで送信することのみが可能です。

また、強力なホストの受信動作が有効になっている場合、ホスト A は、131.107.89.211 へのパケットをインターネット インターフェイスで受信し、192.168.17.48 へのパケットをイントラネット インターフェイスで受信することのみが可能です。

強力なホスト モデルを使用した場合、図 1 のホスト A では、192.168.17.48 へのパケットがインターネット インターフェイスですべて破棄されるため、ファイアウォール規則を構成する必要はありません。これは、ホスト A のイントラネット インターフェイスがインターネットから実質的に分離されるためです。

強力なホスト モデルを選択する場合は、それによって、弱いホストの動作用に設計されたいくつかの種類の接続が影響を受ける可能性があることに注意してください。たとえば、一部の負荷分散の実装は、弱いホストの受信動作を使用して、任意のインターフェイスでパケットを受信してから、内部で適切なインターフェイスにそのパケットをルーティングします。また、弱いホストの送信動作を使用して、高速接続に対応したインターフェイスで任意の送信元アドレスからのトラフィックを送信するホストも、影響を受ける可能性があります。

強力なホストの送受信

次に、強力なホストの送受信動作をインターフェイスごとに有効または無効にした場合、一般的なホストで IPv4 または IPv6 の送受信処理がどのように実行されるかについて説明します。

まず IP は、送信パケットに送信元アドレスが指定されているどうかを確認します。送信元アドレスが指定されていない場合、IP は、ルーティング テーブルに対して、パケットの送信先アドレスの制約のない参照を実行します。制約のない参照では、ルーティング テーブルのすべてのルートが対象になります。IP は、選択された送信先のルートに基づいて、次ホップ インターフェイス (リンク層へのパケットの配置に使用されるインターフェイス) と次ホップ アドレスを決定します。また、次ホップ インターフェイスを基に、必要に応じて RFC 3484 で定義されているアドレスの選択処理を使用して、最適な送信元アドレスを決定します。これで、IP がパケットを送信するために必要な、送信元アドレス、送信先アドレス、次ホップ インターフェイス、および次ホップ アドレスが確定します。

送信元アドレスが指定されている場合は、送信元インターフェイスを特定できます。これは、送信元インターフェイスに、この送信元アドレスが割り当てられているためです。その後、IP は、強力なホストの送信動作が送信元インターフェイスで有効になっているかどうかを確認します。

強力なホストの送信動作が無効になっている場合、IP は、ルーティング テーブルに対して、パケットの送信先アドレスの制約のない参照を実行します。IP は、送信先に最も適したルートに基づいて、次ホップ インターフェイスと次ホップ アドレスを決定します。これで、送信元アドレス、送信先アドレス、次ホップ インターフェイス、および次ホップ アドレスが確定します。強力なホストの送信動作が送信元インターフェイスで無効になっていると、その送信元インターフェイスが次ホップ インターフェイスとして指定されない場合があることに注意してください。

送信元インターフェイスで強力なホストの送信動作が有効になっている場合、IP は、ルーティング テーブルに対して、パケットの送信先アドレスの制約付きの参照を実行します。制約付きの参照では、送信元インターフェイスの次ホップ インターフェイスが指定されているルートのみが対象となります。IP は、送信先用に選択されたルートに基づいて、次ホップ アドレスを決定します。これで、送信元アドレス、送信先アドレス、次ホップ インターフェイス、および次ホップ アドレスが確定します。強力なホストの送信動作が送信元インターフェイスで有効になっている場合、常にその送信元インターフェイスが次ホップ インターフェイスとして指定されます。図 2 は、一般的な IP 送信ホストの処理を示しています。

図 2 一般的な IP 送信ホストの処理

図 2** 一般的な IP 送信ホストの処理 **(画像を拡大するには、ここをクリックします)

送信元アドレスが指定されている場合、制約付きのルートの参照は、ルーティング テーブルに記録されている、送信先に適した複数のルートから、よりメトリックの高いルートを選択できます。たとえば、図 1 のホスト A には 2 つの既定のルートがあります。1 つはメトリックが 10 のインターネット用のルート、もう 1 つはメトリックが 20 のイントラネット用のルートです。どちらの LAN インターフェイスでも、強力なホストの動作が有効になっています。

ホスト A の送信側アプリケーションによって送信元アドレスが指定されなかった場合、ルートの参照の結果、メトリックが最も低い既定のルートが選択されます。この場合、ホスト A は、常にインターネット インターフェイスから、送信元アドレス 131.107.89.211 でトラフィックを送信します。しかし、ホスト A の送信側アプリケーションによって送信元アドレス 131.107.89.211 が指定された場合、ルート参照の結果、インターネット インターフェイスの既定のルートが選択されます。この場合、ホスト A は、インターネット インターフェイスからトラフィックを送信します。ホスト A の送信側アプリケーションによって送信元アドレス 192.168.17.48 が指定された場合、ルートの参照の結果、イントラネット インターフェイスの既定のルートが選択されます。この場合、ホスト A は、イントラネット インターフェイスからトラフィックを送信します。制約付きのルートの参照を使用した場合、IP は、メトリックが高いほうの既定のルートを使用し、送信元アドレス 192.168.17.48 でトラフィックを送信します。

受信トラフィックの場合、まず IP は、そのトラフィックの送信先がホストであるかどうかを確認します。ホストはルーターとして機能していないため、送信先がホストではない場合、IP はそのパケットを確認なしで破棄します。次に IP は、受信インターフェイス (パケットを受信するインターフェイス) で強力なホストの受信動作が有効になっているかどうかを確認します。無効になっている場合、IP はそのパケットを処理します。有効になっている場合は、パケットの送信先アドレスが受信インターフェイスに割り当てられているかどうかを確認します。割り当てられている場合、IP はそのパケットを処理します。割り当てられていない場合、IP はそのパケットを確認なしで破棄します。図 3 は、一般的な受信ホストの処理を示しています。

図 3 受信ホストの処理

図 3** 受信ホストの処理 **

Windows における弱いホストと強力なホストの動作

Windows XP と Windows Server® 2003 では、すべての IPv4 インターフェイスでの送受信に弱いホスト モデルが使用され、すべての IPv6 インターフェイスでの送受信に強力なホスト モデルが使用されます。この動作を構成することはできません。Windows Vista と Windows Server 2008 の次世代の TCP/IP スタックでは、Teredo ホスト固有のリレーに使用される Teredo トンネリング インターフェイスを除くすべてのインターフェイスで、IPv4 と IPv6 の両方に対して、強力なホストの送受信動作がサポートされます。図 4 は、インターフェイスごとに IPv4 と IPv6 の送受信動作を構成するために使用できるコマンドの一覧です。InterfaceNameOrIndex には、ネットワーク接続フォルダに表示されるインターフェイスの名前か、そのインターフェイス インデックスを指定してください。インターフェイスのインターフェイス インデックスは、次のコマンドを実行して表示されたインターフェイスの一覧で確認できます。

Figure 4 強力なホストと弱いホストの送受信動作を構成するためのコマンド

• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled
• netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
• netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled
• netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
 
netsh interface ipv6 show interface

弱いホストの動作と強力なホストの動作と RFC 3484

RFC 3484 では、接続に使用する送信元と送信先の IPv6 アドレスと IPv4 アドレスを選択するための標準化された方法を提供するために、2 つのアルゴリズムを定義しています。1 つは、特定の送信先アドレスと共に使用するのに最も適した送信元アドレスを選択する、送信元アドレス選択アルゴリズムです。もう 1 つは、利用可能な送信先アドレスの一覧を優先順に並べ替える、送信先アドレス選択アルゴリズムです。

強力なホストと弱いホストの動作は、特定の送信先アドレスと共に使用する送信元アドレスの候補の一覧を決定するとき、および最終的に送信先アドレスの一覧を並べ替えるときに影響を与えます。強力なホストの送信動作の場合、送信元アドレスの候補の一覧には、その送信先に使用される送信インターフェイスに割り当てられたユニキャスト アドレスが列挙されます。弱いホストの送信動作の場合、候補の一覧には、弱いホストの送信動作が有効になっているインターフェイスに割り当てられたアドレスが列挙されます。送信元アドレスと送信先アドレスの選択については、microsoft.com/technet/community/columns/cableguy/cg0206.mspx を参照してください。

既定では、Teredo ホスト固有のリレーに使用される Teredo トンネリング インターフェイスを除くすべてのインターフェイスで、IPv4 と IPv6 の両方に対して、弱いホストの送受信動作が無効になっています。

RFC 3484 の詳細については、補足記事「弱いホストの動作と強力なホストの動作と RFC 3484」を参照してください。

リモート アクセス VPN 接続の既定のルートを無効にする

マルチホーム ホストのもう 1 つの例として、リモート アクセス仮想プライベート ネットワーク (VPN) クライアントがあります。ホストが単一の LAN インターフェイスでインターネットに接続されている場合でも、リモート アクセス VPN クライアントで VPN 接続が完了すると、マルチホーム ホストになります。このマルチホーム ホストでは、2 つのインターフェイスが使用されます。1 つは LAN インターフェイス、もう 1 つは VPN 接続用の Point-to-Point プロトコル (PPP) に基づいたインターフェイスです。また、IPv4 アドレスも 2 つ割り当てられます。1 つはインターネット サービス プロバイダによって LAN インターフェイスに割り当てられ、もう 1 つは VPN サーバーによって PPP ベースのインターフェイスに割り当てられます。

Windows XP と Windows Server 2003 では、VPN クライアントが既定のルートのトラフィックを VPN 接続経由でイントラネットに送信できるように、IPv4 ルーティング テーブルが変更されています。このルーティング テーブルでは、既存の既定のルートのメトリックが引き上げられ、PPP インターフェイスを使用する、メトリックが低い新しい既定のルートが追加されています。この既定の動作により、VPN 接続が確立されている間は、イントラネット上の場所にアクセスでき、インターネット上のほぼすべての場所にアクセスできなくなります。インターネット上の場所とイントラネット上の場所に同時にアクセスできるように、VPN クライアントでスプリット トンネリングを構成することもできます。これを行うには、VPN 接続の既定のルートを追加せず、イントラネットの送信先用の特定のルートを追加します。ただし、スプリット トンネリングを実行する VPN クライアントは、インターネットとイントラネットとの間でパケットをルーティングできるため、この構成は危険を伴います。詳細については、microsoft.com/technet/community/columns/cableguy/cg1003.mspx を参照してください。

Windows XP と Windows Server 2003 における既定の VPN クライアントの動作は、弱いホストの送信動作用に設計されました。このルートの参照では、メトリックが最も低い、VPN 接続の既定のルートが常に使用されます。ただし、強力なホストの送信動作を使用した場合、送信トラフィックに使用される既定のルートは、パケットの送信元 IP アドレスによって異なります。ISP によって割り当てられた IPv4 アドレスから送信されるトラフィックのルートの参照では、LAN インターフェイスを使用する既定のルートが使用されるため、インターネット上のすべての場所にアクセスできます。また、VPN サーバーによって割り当てられた IPv4 アドレスから送信されるトラフィックのルートの参照では、PPP インターフェイスを使用する既定のルートが使用されるため、イントラネット上のすべての場所にアクセスできます。したがって、強力なホストの送信動作を使用すると、IPv4 ルーティング テーブルを直接変更できる管理者レベルの特権が与えられていないアプリケーションを操作する場合でも、スプリット トンネリングが構成されるため、VPN クライアントはインターネットとイントラネットの両方に同時にアクセスできます。

Windows Vista® と Windows Server 2008 の VPN クライアントでは、強力なホストの送信動作によって、スプリット トンネリング構成が既定で作成されないように、VPN 接続の完了時に LAN インターフェイスの既定のルートが自動的に無効になります。この動作により、PPP インターフェイスを使用するアクティブな既定のルートが、ルーティング テーブル内に複数存在しなくなります。また、管理者レベルの特権を与えられていないアプリケーションがスプリット トンネリングを実行できなくなります。

VPN クライアント コンピュータからのトラフィックは、VPN サーバーによって割り当てられた IPv4 アドレスから送信される必要があるため、インターネットとイントラネットの分離が強化されます。VPN 接続が終了すると、無効になっていた既定のルートが有効になります。

この動作は、次のコマンドを使用して制御できます。

netsh interface ipv4 set interface [InterfaceNameOrIndex]
ignoredefaultroutes=enabled|disabled

Joseph Davies は、マイクロソフトのテクニカル ライターとして Windows ネットワークのトピックに関する講義および執筆を 1992 年から行っています。Microsoft Press から 5 冊の書籍を上梓しており、月間の TechNet Cable Guy コラムの執筆者でもあります。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.