<前の日記(2009年08月15日) 次の日記(2009年08月22日)> 最新 編集

高木浩光@自宅の日記

はじめに 連絡先:blog@takagi-hiromitsu.jp
訪問者数 本日: 2172   昨日: 4970

2009年08月16日

Winnyの利用形態を視覚化してみた

3年前から稼働させているWinnyネットワーク観測システムで、観測したWinnyキーを記録している*1のだが、そのデータから利用者ひとりひとりがどんな行動をしているか、直感的に読み取れるよう視覚化を試みた。

これを行うためには、長期間にわたり同じ人が使っているノードを見つけ出すことが必要で、一般的には、IPアドレスが頻繁に変わってしまうので、単純には追跡できない*2のだが、今年のゴールデンウィークに観測システムを改良して以来、DNSの逆引きを自動化した関係で、固定のIPアドレスで(しかも固有のドメイン名に割り当てられたアドレスで)稼働させているノードが数十個見つかったので、それについて調べてみたところ、長期にわたって稼働し続けているものがいくつかみつかった。

図1は、2006年8月末から2009年4月末までの間に観測されたキーのうち、「〓.〓〓〓〓〓.org」というホストで稼働していたノードがソースとなっていたキー(そのノードがファイルを提供可能ということを表すキー)*3についてプロットしたものである。横軸は時間であり、縦軸は観測された順に0番から番号を振ったファイル番号である。水平に並んだ点の並びは、同じファイルが何度も(そのタイミングで)観測されたことを表している*4。図1のケースでは、この期間に、1万個あまりのファイルのキーが観測されたことを表している。

グラフ
図1: 「キャッシュ」*5削除の様子がよく現れた事例

ここで、直角三角形を成す塊が見て取れる。これは、「キャッシュ」の削除が行われた様子を表していると考えられる。つまり、図中の矢印が削除のタイミングである。

矢印のタイミングで削除がなされても、一部のファイルが再び右側で観測されているケースも散見されるが、これはおそらく、一旦は削除されたが、再び同じファイルをダウンロードしてしまったケース*6を表しているのだろう。

別のノードのケースを図2に示す。(縦軸のスケールは図毎に異なるので注意。)

グラフ
図2: 早期に「キャッシュ」削除をしている事例

このケースでは、小さな三角形がいくつか見えることから、比較的早期にキャッシュ消しを行っていたと思われる。しかし、ほとんどの期間で三角形は見えない。ここで、三角形の存在しない連続した線は何を意味するのかだが、これは、(即消ししていた場合も含まれているだろうが、それ以外に)何もダウンロードしていないときに送出されるキーが観測されたものと考えられる。

Winnyでは、何もダウンロードしていないときでも、他のノードから入ってくるキーについて、一定の確率で、ソースIPアドレスを自分のアドレスに書き換え(4%の確率で起きると言われる中継のための書き換え)て他ノードに送信するようになっており、それが観測されているのだと考えられる。そうした、ソース書き換えキーは、ランダムに選ばれたファイルに対して発生するので、図2のように、1回しか現れなかったファイルとして、斜めの連続した線として現れているのだと考えられる。

そこで、そうしたソース書き換えキーを排除してプロットすることを試みた。図3は、図2と同じノードについて、2回以下しか現れなかったキーを除いてプロットしたものである*7。ファイルの個数が3万5千個から、500個に減っている。図2のキーはほとんどが空運転時のキーで、実際にダウンロードした数は500個以下だったと考えられる。

グラフ
図3: 図2からソース書き換えキーを排除したもの

このグラフから、いつごろ多くのダウンロードをしていたかがわかる。2007年の2月から9月にかけてはあまりダウンロードしていなかったらしいことがわかる。それでも、図2では連続した線となっていることから、稼働だけはずっとしていたようだ。

次に、図1のノードについて、同じ処理を施したものを図4に示す。ファイルの個数は、1万個から3千個に減っているが、グラフの形状はほとんど変わっていない。これは、常時まんべんなくダウンロードをしていたということを意味すると思われる。自動ダウンロードをし続けていたのだろう。

グラフ
図4: 図1からソース書き換えキーを排除したもの

次に、別のノード www.〓〓〓〓〓.co.jp(有限会社として登録されたドメイン)の事例を図5に示す。元のプロットと、ソース書き換えキー排除後のプロットを続けて示す。

グラフ
グラフ
図5: キャッシュを長期間放置して連続稼働させていた事例
(上:元のデータ、下:ソース書き換えキーを排除したもの)

このケースでは、1年以上キャッシュを消さずに連続稼働させていたが、ダウンロードしない期間もかなりあったと読み取れる。観測開始当初から大量のファイルのキーが一気に出てきていることから、2500個ほどのファイルは、これより以前から集められ、キャッシュに蓄積されて放置されていたものと考えられる。2007年11月中旬に一度、稼働をやめ*8、11月末に再び起動した後、キャッシュをすべて消して、再び何かを500個ほど集めたようである。

他の事例をいくつか示しておく。以下では、ソース書き換えキー排除後のプロットだけを示す。

グラフ
図6: 削除した様子のない事例

図6は、一度もキャッシュ削除が行われていない事例である。これだけ思い切りがよいとなると、いわゆる「UP0パッチ」を適用しているのかもしれない*9と考えられるので、今、このノードに転送リンク接続を試みたところ、正常に接続することができ、コマンド32(転送限界切断要求)が返ってこないことから*10、UP0パッチは適用していないようである。大量のファイルの安定供給源となっていると思われる。

グラフ
図7: 長期にわたり削除した様子のない事例

図7も、一度もキャッシュ削除が行われていない事例で、今接続してみるとコマンド32(転送限界切断要求)が返ってこないことから、大量のファイルの安定供給源となっていると思われる。ここはコンピュータ関係の(従業員数があまり多くなさそうな)株式会社のドメインで、会社概要にはISO27001取得とある。大丈夫だろうか。

グラフ
図8: ダウンロードするときだけ稼働させている事例

図8は、fw.〓〓〓〓〓.co.jp という有限会社内のノードの事例で、連続稼働はしないで、必要なファイルをダウンロードしたら止めるという利用形態で、キャッシュは消さずに放置しているものと読み取れる。

グラフ
図9: 平凡な事例

図9は、個人登録のドメイン(ブログのWebサイトがある)で稼働するノードで、1年近くのブランクがありつつ、キャッシュは数か月消さずに放置するという運用のようである。

グラフ
図10: 長期間にわたり断続的に稼働させている事例

図10は、一度もキャッシュを削除せず、2007年6月からはときどきしか稼働させない運用に変化した事例である。今年2月からは再び活発になっていることが窺える。

グラフ
図11: 長期間にわたり定期的にキャッシュ削除している事例

図11は、1、2か月毎にキャッシュを削除しながら、ずっと使い続けている事例である。(co.jpのドメインであるが、ある小規模マンションで取得したドメインのようなので、居住者によるものと思われる。)

グラフ
図12: 国立大学での事例

図12は、国立大学での事例で、少しだけしか使っていないが、キャッシュを消さずに、3月の卒業までときどき使っていたことを窺わせる。

グラフ
図13: 私立大学での事例

図13は、私立大学の事例で、数日から1週間程度でキャッシュを消しつつ、1月の卒業まで使用していたことが窺える。

以上は、今年のゴールデンウィーク前までの旧観測システムでのデータである。ゴールデンウィーク以降の新観測システムでは、キーの観測密度が大幅に向上したため、旧システムと同列には比較できない。図1のケースについて、両システムでの観測データを同じグラフ上にプロットすると、図14のようになり、急激にファイル数が増えて表示されてしまう。

グラフ
図14: 図1の2009年6月30日までのグラフ

しかし、これに、ソース書き換えキー排除の処理を施すと、図15のようになり、ファイルの増え具合は普通になっている。つまり、ダウンロードの様子は概ね正しく視覚化できているのだと推定できる。

グラフ
図15: 図4の2009年6月30日までのグラフ

*1 こうした調査は(プライバシーに関わるものにはなり得ても)通信の秘密に抵触するものではないと認識している。ISPなどの通信インフラ上で調査しているわけではなく、通信の当事者である私のコンピュータで行っているものであり、(ユーザ単位のアクセス制限があるわけではない)ファイル共有ソフトは不特定多数に向けた公開サービスであって、Webのクローラが(無断リンク禁止の隠しページも含めて)全てのページを拾っていくのと同列だからである。

*2 追跡する方法はいろいろ考えられるところで、それは今後やってみたい課題の一つだ。

*3 そのようなキーには、直接そのノードに接続したときに観測したものと、他のノードに出回っているキーを観測したものの、2つのケースがあるが、図1では、後者のキーだけをプロットしている。本来は両方を合わせてプロットすべきところ、集計方法に考慮不足があったため、前者を集計しそびれたもので、再計算に時間がかかるので今回はそのままとした。なお、前者を集計しそびれているのは、当該ノードがNATノードである場合であり、RAWノードの場合には、前者と後者の両方が合わせて集計されている。この点については後日再検討したい。

*4 プロットは、1日単位で離散化している。つまり、同じ日のうちに何度も観測された複数キーを1個の点で表すようにしている。これは、同じファイルのキーが短時間に多量に観測されることがあって、それが起きる原因は偶然っぽいので、それがプロットの濃さに影響しないようにするためのもの。

*5 Winnyが「Cache」と称しているものは、コンピュータ用語としてのcacheの本来的意味から外れたものである(2004年9月12日の日記参照)が、ここでは便宜的に「キャッシュ」と呼ぶ。

*6 Winny利用者の間には、「地曳き」と俗称される、キーワード指定の自動運転ダウンロード機能がの使用が広く浸透しているため、不必要なファイルまでダウンロードしてしまうことがよくあると思われる。キーワードによっては、頻繁にひっかかりやすいファイルがあるようである。

*7 1回以下という設定が自然であるが、たまたま2回現れることもいくらかありそうなので、この設定にした。

*8 2007年6月上旬に空白の期間があるが、これはこちらのシステムが観測を中断していた時期である。

*9 「UP0パッチ」を適用しても、キーは流れてくる。

*10 Winnyのメモリ上の変数を書き換えて、UP数を0にする方式では、転送リンク接続をすると即座にコマンド32(転送限界切断要求)が応答してくる。

本日のTrackBacks(全1件) [TrackBack URL: http://takagi-hiromitsu.jp/diary/tb.rb/20090816]

今日の気になった記事。

Security関連

* チェックしておきたいぜい弱性情報<2009.08.17>
* 相変わらず多い。それだけ今のプログラムが「機能」にばかり注目して、「安全性」の優先順位を下げていると言うことなのだろうか?

検索

<前の日記(2009年08月15日) 次の日記(2009年08月22日)> 最新 編集

最近のタイトル

2012年09月23日

2012年09月22日

2012年08月30日

2012年08月28日

2012年08月26日

2012年08月22日

2012年08月18日

2012年07月22日

2012年07月15日

2012年07月03日

2012年06月30日

2012年06月23日

2012年06月16日

2012年06月08日

2012年05月27日

2012年05月08日

2012年05月04日

2012年04月29日

2012年04月21日

2012年04月08日

2012年03月03日

2012年02月27日

2012年02月26日

2012年02月18日

2011年12月29日

2000|01|
2003|05|
2004|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|05|06|07|08|09|10|11|12|
2012|02|03|04|05|06|07|08|09|
<前の日記(2009年08月15日) 次の日記(2009年08月22日)> 最新 編集