マイクロソフトは11月29日,Windows独自の名前解決機能「WINS(Windows Internet Naming Service)」の実装にセキュリティ・ホールがあることを明らかにした。細工が施されたパケットを送信されると,WINSサーバーとして稼働しているマシンが事実上乗っ取られる。影響を受けるのは,WINSを有効にしているWindows 2000 Server/NT 4.0 Server/Server 2003(いずれも,デフォルトでは無効)。修正プログラム(パッチ)は未公開。対策はTCP/UDPポート42番をふさぐことやWINSを無効にすることなど。

 WINSとは,NetBIOS名とIPアドレスの対応付けを管理する機能(サービス/プロトコル)。NetBIOS名とIPアドレスの対応関係を管理するWINSサーバー(WINSを有効にしているWindowsサーバー)に対して,WINSクライアント(Windowsマシン)が必要なNetBIOS名を問い合わせれば,対応するIPアドレスを教えてもらえる。つまり,名前解決できる。

 WINSサーバー同士は,WINSのレプリケーション・プロトコル(パケット)を使って,NetBIOS名とIPアドレスの対応情報を共有する。今回のセキュリティ・ホールは,(WindowsのサーバーOSに含まれる)WINSサーバー・プログラムがレプリケーション・パケットを処理する部分に存在する。このため,細工を施したレプリケーション・パケットを送信されると,パケットに含まれる任意のプログラムを実行させられる。その結果,WINSサーバーとして動作するマシンを乗っ取られる可能性がある。

 ただし,いずれのサーバーOSでも,WINSはデフォルトでは無効になっている。このため,デフォルトのままならば影響を受けない。また,クライアントOSにはWINSサーバー・プログラムは含まれていないので,影響を受けない。WINSを明示的に有効にしているサーバーOSだけが影響を受ける。

 現時点ではパッチは公開されていない。マイクロソフトの情報によると,「通常の更新処理の一環として,この脆弱性に対処するための更新プログラムを作成している」という。パッチが完成して検証が済み次第,Windows Updateなどから提供するとしている。

 回避策の一つは,WINSのレプリケーション・プロトコルが使用するTCP/UDPポート42番をファイアウオールなどでふさぐこと。これらのポートをふさげば,外部ネットワークから(例えば,インターネット経由で)攻撃を受けることはない。ただし,ファイアウオールの内側からは攻撃を受ける可能性がある。

 WINSを無効にすることも回避策となる。ただし,「多くの組織ではWINSが使われているので,WINS の削除がネットワークに及ぼす影響を十分に理解しない限り,WINS を削除しないように」と,マイクロソフトでは警告している。

 IPSecを使用して,信用できない相手からのレプリケーション・パケットを受けないようにすることも,回避策の一つとして挙げている。

◎参考資料
WINS のセキュリティの問題からコンピュータを保護する方法(マイクロソフト)
Microsoft Windows Internet Naming Service (WINS) replication protocol contains a vulnerability(米US-CERT)
Microsoft Windows WINS Replication Packet Handling Vulnerability(デンマークSecunia)

(勝村 幸博=IT Pro)