マルチホーム(複数のアドレス)、複数のインターフェースを持つホストを安全に利用するセキュリティ モデルです。
Windows Vista から導入されており、ネットワークの挙動が大きく変化しています。次項から変更点を簡潔に述べます。
作成 2010.02.22
更新 2015.12.24
更新 2015.12.24
Strong Host Routing Model について
概要
ありえない送信元から受け取らない
Windows XP, Windows Server 2003 R2 以前は来るはずのない送信元のアドレスも受け取っていました。
![](http://www.upken.jp/data/strong_host_routing/loopback-2003.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
Windows Vista, Windows Server 2008 以降は受け取りません。
![](http://www.upken.jp/data/strong_host_routing/loopback-2003.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
Windows Vista, Windows Server 2008 以降は受け取りません。
![](http://www.upken.jp/data/strong_host_routing/loopback-2008.png)
送信元の詐称によるルーティング攻撃を防ぐ
ループバックアドレスの詐称以外にも以下のような攻撃が可能でした。
![](http://www.upken.jp/data/strong_host_routing/multihome-spoof-2003.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
Windows Vista, Windows Server 2008 以降はデフォルトで攻撃を防ぐことができます。
![](http://www.upken.jp/data/strong_host_routing/multihome-spoof-2003.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
Windows Vista, Windows Server 2008 以降はデフォルトで攻撃を防ぐことができます。
![](http://www.upken.jp/data/strong_host_routing/multihome-spoof-2008.png)
受け取ったIPアドレスで応答する
Windows XP, Windows Server 2003 R2 以前はルーティングのコストが同じなら、優先IPアドレスから応答していました。
![](http://www.upken.jp/data/strong_host_routing/multihome-2003.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
Windows Vista, Windows Server 2008 以降は受信したIPで応答します。
![](http://www.upken.jp/data/strong_host_routing/multihome-2003.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
Windows Vista, Windows Server 2008 以降は受信したIPで応答します。
![](http://www.upken.jp/data/strong_host_routing/multihome-2008.png)
応答パケットの送信元確認
Windows XP, Windows Server 2003 R2 以前は送信元IPアドレスしか確認していませんでした。
そのため、応答パケットのシーケンスを推測することでセッション乗っ取りが可能でした。
![](http://www.upken.jp/data/strong_host_routing/spoof-2003.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
Windows Vista, Windows Server 2008 以降はデフォルトで攻撃を防ぐことができます。
そのため、応答パケットのシーケンスを推測することでセッション乗っ取りが可能でした。
![](http://www.upken.jp/data/strong_host_routing/spoof-2003.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
Windows Vista, Windows Server 2008 以降はデフォルトで攻撃を防ぐことができます。
![](http://www.upken.jp/data/strong_host_routing/spoof-2008.png)
問題点
ネットワークを長く運用していると、以下の様にゲートウェイが複数ある環境になることがあります。
クライアント(10.0.1.200)が10.0.1.2経由でサーバー(10.0.2.10)へ接続するシナリオです。
![](http://www.upken.jp/data/strong_host_routing/routing-1.png)
Windows XP, Windows Server 2003 R2 以前は特に問題なく通信出来ていました。
![](http://www.upken.jp/data/strong_host_routing/routing-2.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
Windows Vista, Windows Server 2008 以降では、返信元のMACアドレスが異なるため攻撃と判断し、受信しません。
![](http://www.upken.jp/data/strong_host_routing/routing-3.png)
この場合は、以下の対策が考えられます。
対策案1 ルーティングを是正する
最も妥当な対策です。ただし、変更範囲が多岐にわたることがあり、現実的ではないかもしれません。
対策案2 Strong Host Routing を無効化する
セキュリティと利便性のトレードオフとなります。以下のコマンドで無効化出来ます。
クライアント(10.0.1.200)が10.0.1.2経由でサーバー(10.0.2.10)へ接続するシナリオです。
![](http://www.upken.jp/data/strong_host_routing/routing-1.png)
Windows XP, Windows Server 2003 R2 以前は特に問題なく通信出来ていました。
![](http://www.upken.jp/data/strong_host_routing/routing-2.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
![](http://www.upken.jp/data/strong_host_routing/sita.png)
Windows Vista, Windows Server 2008 以降では、返信元のMACアドレスが異なるため攻撃と判断し、受信しません。
![](http://www.upken.jp/data/strong_host_routing/routing-3.png)
この場合は、以下の対策が考えられます。
対策案1 ルーティングを是正する
最も妥当な対策です。ただし、変更範囲が多岐にわたることがあり、現実的ではないかもしれません。
対策案2 Strong Host Routing を無効化する
セキュリティと利便性のトレードオフとなります。以下のコマンドで無効化出来ます。
netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostsend=enabled netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostreceive=enabled netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostsend=enabled netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostreceive=enabled元に戻すには
netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostsend=disabled netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostreceive=disabled netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostsend=disabled netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostreceive=disabled
参考
The Cable Guy: Strong and Weak Host Models
Application Compatibility: Networking: IPv6
RFC 1122 Requirements for Internet Hosts -- Communication Layers
RFC 3484 Default Address Selection for Internet Protocol version 6 (IPv6)
Windows Vista および Windows Server 2008 以降の OS で、IP アドレスの変更時に送信される ARP リクエストにより、他の機器の ARP テーブルが更新されずに通信が失敗する
Application Compatibility: Networking: IPv6
RFC 1122 Requirements for Internet Hosts -- Communication Layers
RFC 3484 Default Address Selection for Internet Protocol version 6 (IPv6)
Windows Vista および Windows Server 2008 以降の OS で、IP アドレスの変更時に送信される ARP リクエストにより、他の機器の ARP テーブルが更新されずに通信が失敗する
タグ: Windows