前回の日記で、「Winnyネットワークに対して、ランダムなIPアドレスをソースノードとした偽キーの散布が、目的不明ながら、何者かによって断続的に実施されている」と書いた件、ランダムIPアドレスキーの発生源を特定した。
クローラ「WinnyWalker」の接続履歴から、接続時の未発見ノード検出率が98%を超えるノードについて、ブラウザ「Nyzilla」でひとつひとつ接続して閲覧してみたところ、1つだけ異常な振る舞いをするノードが見つかった。
図1のように、そのノードに接続すると、次々とキーが送られてきて、(送られてきたキーに書かれたソースアドレスから集計した)「他のノード」リストに表示されるノードの数は、見る見るうちに増えて、17分ほどの間に11万個にも達した。通常のWinnyではこの数はあり得ない。リストに並ぶIPアドレスのほとんどが逆引きできないもの(中には偶然逆引きできるアドレスも含まれている)であり、見るからに異常なアドレスも散見される。
クローラのこのノードへの接続履歴を調べてみたところ、2009年4月29日に最初のランダムアドレス散布としてこのノードが記録されており、その後、ノード数の異常が見られた期間に必ずこのノードが現れていた。
てっきり、偽キー散布ボットがあちこちへ接続してキーを注入して廻っているのだとばかり思っていたが、そうではなく、接続を待ち受けて偽キーを排出しているようだ*1。クラスタワードを時々変えているようで、そのワードに近いクラスタのノードからの接続を待って、受動的にランダムIPアドレスを散布しているようだ。この方法ではダウンロードの阻止には全くなっていないと思われる*2。
このノードのIPアドレスはネットエージェントにも知らせておいた。
ちなみに、クローラでこのノードを無視するようにしても、このノードに接続する他のWinnyノードがいる限り、そこ経由でランダムIPアドレスが流れてくるため、ノード数への影響は排除できない。
なお、前回の日記で示した、ノイズを取り除いたノード数の集計は、クローラでリアルタイムに計算するようにした。
*1 別の者がこのノードに集中的にもの凄い勢いで高速に偽キーを注入し続けているという可能性(つまりこのノードが通常のWinnyである可能性)も考えられなくもないが、こちらからNyzillaで閲覧したときに常に異なるIPアドレスのキーが返ってくるほど、高速に注入され続けているというのは、ちょっと考えにくいのではないか。
これを見て、何がしたいのかよくわからなかった。特定のファイルのダウンロードを阻止したいのなら、特定のファイルID(ハッシュ)について集中的に偽キーを出すはずのところ、そうではなかったし、Winnyネットワーク全体に対してダウンロードしにくくする妨害目的にしては、この程度の偽キー注入では影響がない。偽キーを注入したノードの利用者に対して妨害効果があったかもしれない(その効果があったのかどうかは、そのノードの利用者に聞いてみないとわからない)が、そうだとしても、偽キーのソースIPアドレスをランダムにする必然性がない。
Winnyネットワーク等への偽キーの注入(インデックスポイゾニング)は、正当な目的で、いくつかの大学や企業等で何年も前から研究として行われてきた*7し、特定ファイルのダウンロード阻止は、商用のサービスとして実用的に実施されてきた*8わけだが、普通は、実在する問題のないIPアドレスを用いて行うものであって、こんなふうに、ランダムIPアドレスを注入するという乱暴な方法が実施されたことは(少なくとも大規模には)なかったと思う。
ランダムなIPアドレスを散布すれば、そのIPアドレスが実在した場合には、そこにいくらかの迷惑が及ぶことになるのだから、正当な目的のものであっても、倫理的に不適切な行為だと思う。何人かの知り合いに聞いてみたが、「うちじゃない」とのことだった。どこかの研究新規参入者が、教授や上司に相談せずに実施しているものか、あるいは個人によるものなのかもしれない。
高木浩光@自宅の日記 より
『ランダムIPアドレスの発生源を特定』
できるそうです
さすがです