図 Winnyパソコンはポートを開けていなくてもアップロードする<br>LAN内にいるWinnyパソコンから送られたキーに含まれるIPアドレスを外部のWinnyパソコンが書き換えるしくみを備えている。これにより,LAN内のWinnyパソコンもファイルを公開する。
図 Winnyパソコンはポートを開けていなくてもアップロードする<br>LAN内にいるWinnyパソコンから送られたキーに含まれるIPアドレスを外部のWinnyパソコンが書き換えるしくみを備えている。これにより,LAN内のWinnyパソコンもファイルを公開する。
[画像のクリックで拡大表示]

 外部のWinnyパソコンに内側からアクセスしてしまうので防げません。

 Winnyに限らず,ファイルを公開するということはインターネットからのアクセスに対してファイルを送出するということです。では,ブロードバンド・ルーターなどでWinnyの待ち受けポートを閉じて,外部からのアクセスを受け付けないようにしておけば漏えいは防げるのでしょうか。答えはノーです。Winnyは,ポートを開けていなくてもファイルを公開してしまいます。

 ブロードバンド・ルーターなどを介してインターネットにつなぎ,待ち受けポートを開いていないWinnyパソコンは,「Port0ノード」と呼ばれます。Port0ノードは,通常プライベートIPアドレスが割り当てられています。一方,グローバルIPアドレスでインターネットに直接接続しているWinnyパソコンをRAW(生という意味)ノードと呼びます。

 Port0ノードがファイルを公開し(図の1),RAWノードにリンクを張ってWinnyネットワークにつながると,Port0ノードはRAWノードからの要求によって自分が公開しているファイルの情報(「キー」と呼びます)を拡散します(2)。このとき,RAWノードはキーにプライベートIPアドレスが入っているので,これを自分のグローバルIPアドレスに書き換えてほかのWinnyパソコンに渡します(3)。

 このキーを受け取ったほかのWinnyパソコンがファイルをダウンロードしたくなった場合は,RAWノードに対してファイルの送信を要求します(4)。するとRAWノードは,本当の持ち主であるPort0ノードに対して,要求があったWinnyパソコンと接続してファイルを送信するように通知します(5)。同時に,要求元のWinnyパソコンに対してPort0から接続要求が届くことも通知します(6)。最後にPort0ノードが要求元のWinnyパソコンに対してリンクを張り,ファイルを転送します(7)。

 こうしたしくみがあるので,一般的なサーバー・ソフトとは異なり,Winnyはポートが開いていない状態でもファイルを公開してしまうのです。


本記事は,日経NETWORK2006年5月号特集1『徹底解明 Winny&暴露ウイルス』に掲載した内容の一部をITpro向けに編集したものです