クローリングを通じてI2Pのウェブ構造を明らかにした論文の紹介

お知らせ
Table of Contents

はじめに

本記事ではUnveiling the I2P web structure: a connectivity analysisの解説を行います。
まず本研究の目的と方法を説明し、研究に用いるc4i2pの説明、分析結果について述べ、最後にまとめます。

本研究の目的と方法

本研究の目的は、インターネットの95%を占めるといわれるダークウェブを構成する、The Invisible Internet Project:通称I2Pのコンテンツと構造を明らかにすることである。

これまでに、I2PのWebサイトであるeepsitesの構造と接続性を分析する、クロールとスクレイピングができるc4i2p (Crawling for I2P)というツールが開発された。
3ヶ月に渡る実験は、異なる場所にある異なるノードで構成される分散環境において実施された。
その結果、eepsites全体の約1.5%かつ小規模でシンプルな、数ページで構成されるサイトしか観測されなかった。
またeepsites全体の約66%は他から孤立していることが判明し、I2Pダークネットは、(完全に平等に接続されたわけではない)異種分散型のネットワークと見ることができる。
その中には、いくつかの人気なサイトも存在し、I2Pネットワーク内に長期にわたって存在することが特徴である。
一方 それ以外のサイトは、ランダムに現れたり消えたりしていることも判明した。

c4i2pの説明

まずc4i2pは以下の図のように構成される。

以下では、各モジュールの説明を行う。

Management
ツールのワークフロー全体を制御する役割を担っている。システムを構成する残りの手順や要素間の相互作用を管理する。Managementモジュールはユーザーによって管理される。

Discovery
観察されたeepsiteがアクティブであるかどうかを確認する。

Crawling
クローリングのタスクを実行すること、および、検索とI2P eepsitesから特定の情報をスクレイピングする。

Data Storage
データストレージのサービスを提供するためのモジュールで、すべての情報を管理する。

Source
I2Pからのeepsiteアドレスである。これらは3つの異なるソースから取得することができる。

SEED
実験開始時の初期seedリスト(seeds.txt)から取得される。これらはI2Pのeepsiteの検索から選ばれた、人為的なものである。
いわゆる老舗のeepsiteなどが選ばれている。

FLOODFILL
Floodfillルーターから発見されたものである。
なおFloodfillルーターが、ルーターの連絡先情報(RouterInfos)と目的地の連絡先情報(LeaseSets)の2種類のデータだけを格納するnetDbを保守している。目的地の情報は暗号化されておらず、接続性確認のために誰でも使うことができる。

DISCOVERED
クローリングによって、つまり、各スクレイピングされたeepsiteから得られたリンクから発見されたもの。

Manager
Management module の主要なパーツで、Manager はツール全体の頭脳であり核となるもの。残りの要素を調整、編成し、eepsiteの状態とライフサイクルを追跡する役割を担う。

Discoverers
Discoveryモジュールの主要なパーツとして、主要機能を実装する。各Discovererは、eepsiteがアクティブかどうか(到達可能かどうか、動作可能かどうか)をチェックする役割を担う。Discovererの数および起動時間は、Discoveryモジュールによって制御される。

Spiders
Spiderはそれぞれ個別に、特定のeepsiteのCrawlingプロセスを実行する責任を負う。Spiderはすべてのページに再帰的に潜り込み、必要な情報を抽出する。あるサイトが発見されるとすぐに起動される。

Database
deepsiteから抽出された情報や、システム自体の固有データを順序立てて格納する。

I2P network
I2Pネットワークには、情報を抽出するためのエンティティであるeepsiteがホストされている。

I2P router.
I2Pルーターはc4i2pがI2Pネットワークと通信することを可能にする。

c4i2pのライフサイクルの間、eepsiteはいくつかの状態を経る。
以下の図は、これらの状態とその間の遷移を示す。

DISCOVERING
c4i2pがソースリストから新しいeepsiteを取得し、そのeepsiteの接続に成功したとき、そのeepsiteは発見されたことになる。これは観測されたすべてのeepsiteの初期状態である。

PENDING
あるeepsiteへの接続に成功すると、つまり到達可能で利用できるようになると、保留状態になり、クロールされるのを待つようになる。

ONGOING
eepsiteはクロールされている。

ERROR
クロール中にエラーが発生した場合、eepsiteはERROR状態になる。クローリング中に想定外のエラーが発生するのを避けるため、eepsiteが再び発見されるよう提案されるまで、アプリケーションは一定数のクローリングプロセスを許可する。

FINISHED
ノードにFINISHEDというラベルが貼られるのは、それがクロールに成功したことを表す。

DISCARDED
検出の試行回数が一定回数に達したとき、または事前に定義された検出時間を超過したとき、この状態になる。

分析結果

結論

実験は、2019年6月7日に始まり、9月26日に終わる、合計111日間を要した。この間、合計54,974件のI2P URLを管理したが、そのほとんどはフラッドフィルルーターのリースセットから取得したものだった。これらは、ウェブ関連(eepsites)であるかどうかに関わらず、サービスに対応している。実際、そのうちの787件だけがeepsitesであり、それらは正常にクロールされた。以下の図は、実験期間中に毎日観測されたサービスの数を示している。
発見されたeepsiteの数(図中の緑の点)は,ダークネットで観測された全サービスの数(図中の青の十字)よりもはるかに少ないことがわかる。
図5では、eepsiteの総数の詳細とその累積和(図中の青い点)を示している。また、発見・クローリングプロセスの傾向を見るために、5日間のSMA(単純移動平均)を計算した(両図ともオレンジ色の連続線)。

先の図からわかるように、新しいI2Pサービスは毎日発見されている。実際、実験終了時には1日平均約500サービスが発見されている。同様に、eepsiteはほぼ毎日クロールされ、その結果、平均約5件となり、図5(青い点)に示すように、実験の初期から発見されたeepsiteの数が直線的に増加していることが分かる。初日に観測されたeepsiteの数が多いのは、サービス総数に対する初期システムの貢献によるものである。これらのeepsiteは、seed、floodfill、discoveredのソースから得られている。さらに、SMA値によると、サービス全体とeepsitesの両方について有意なトレンドは見られない。
観測されたサービスの状態とソースの分析から、いくつかの興味深い結論も得られた。

上の図6は,観測されたサービスのうち,特定の状態にあるものの割合をソース別に並べたものである。
これらの結果から、最終的にクロールされた(終了した)eepsiteと比較して、廃棄されたeepsiteの数が非常に多いことが分かる。さらに、完成したeepsiteの数は,ダークネットで観測された全サービスの約1.5% (787)に過ぎない。サービスのほとんどはfloodfillルーターから取得され(50,784)、発見されたサービスの数は非常に少ない(292)ことも明らかである。この最後の値は、最終的にクロールされたeepsitesの数が少ないことに起因していることは明らかである。しかし、割合としては、他のeepsiteをクロールして得られた最終的なeepsiteの数(発見されたもの)は、フラッドフィル・ルーターから得られたものよりも多くなってる。さらに、予想通り、発見されたeepsiteの数は、floodfillソースから得られたものの方が多い。
最後に、シード関連ソースからのサービスの96.66%が破棄された。シードの初期リストは以前の作業から手動で選択されたが、結果が示すように、ほとんどのeepsitesが現在利用できないため、情報が更新されていない可能性がある。その結果、I2Pネットワークを構成するeepsiteの数は時間とともに変化し、ネットワークから消えていくものもあれば、新たに生まれるものもあると結論付けることができる。

また、完成したeepsiteに対して消費された発見試行回数の分布を見るのも興味深い。

これは上の図に示されている。この結果を詳しく見ると、最終的にクロールされるまでに1回の試行を必要としたeepsiteは、全体の約20%に過ぎないことが分かる。このことから、I2Pネットワークにおけるeepsiteの可用性は低いと結論付けることができる。もう一つの興味深い結果は、他のノードが例外的に多くのクロールを必要としたという事実だ。

サイズの分析

前述した様々な結果と行動の後、次にI2P eepsitesのサイズについて分析を行った。そのために、クロールの過程でページ数に関する情報を抽出する。さらに、ホームページの単語数、文字数、画像数、スクリプト数、主要な言語も推定する。

上の図によると、I2Pダークネットはほとんどが小規模なeepsiteで構成されていることがわかる。実際、全体の約80%のeepsiteが30ページ以下である。しかし、いくつかの例外もある。たとえば、5、6、あるいは11,000ページを持つ並外れた大規模なeepsiteが存在し、最大のものは20,630ページを有している。

ページの大きさについては、上の図に示すように、ほとんどすべてのサイトで、文字数、単語数、画像数、スクリプト数が少ないトップページが構成されていることがわかる。

接続性の分析

この分析では、I2P eepsitesの関係と組織化のパターンを理解し、明らかにする。まず、グラフ理論の概念について簡単に説明する。次に、具体的な結果を示し、詳細に議論する。
G=(V, E)をノードV(eepsites) とエッジE(connections) の集合からなる有向グラフとする。
各辺は一対のノード(u,v)uからvへの直接接続によって結ぶ。このようにして、ノードuからいくつかの他のノードへの辺の数が決定される。(u, v_1), (u, v_2), ..., (u, v_n)のように、ノードuから他のノードへのエッジの数をout-degree値(eepsite outgoing links)と表現する。同様に、ノードuのin-degree(eepsite incoming links)値は、(w_1, u), (w2_, u),..., (w_m, u)のように、いくつかの他のノードからノードuを指すエッジの数に相当する。これに基づいて、4種類のノードを定義できる。
発信リンクのみを持つソースノード、受信リンクのみを持つシンクノード、受信リンクと発信リンクの両方を持つ接続ノード、およびグラフ内の他のノードに接続されていない孤立ノードである。

発信リンクと受信リンクの分布が上の図である。この結果から、ほとんどのノードのout-degree値、in-degree値はあまり大きくないことがわかる。実際、約10%のノードが送信元ノード、約12%のノードがシンクノード、約12%のノードが接続ノードに相当する。最後に、約66%のノードは孤立ノードである。
また、out-degree値とin-degree値の値が異常であると考えられるeepsiteが存在する。
特に、発信リンクの値が合計で385と最も高いノードは、identiguy.i2p eepsiteである。これは動的に更新されるeepsiteのリストを含んでいるが、I2P全体、すなわち隠された部分はカバーしていない。
一方、受信信リンクの値が最も高いノードは、合計58で、forum.i2peepsiteである。
ノード間の数と関係が一貫していない、あるいは多くのeepsiteが無人で頻繁に更新されていないという2つの主な理由によって、in-degree値が最大のノードのほとんどがオフライン(破棄)になっていることは注目に値する。
また、最も高いout-degreeとin- degreeの値はすべてseed sourceから見つけたeepsiteと相関があった。
このことから、いくつかのI2P eepsiteは、eepsite間のネットワーク・バックボーンのようなものを支えており、その存在と存続を確認することができる。しかし、孤立したeepsiteという重要なグループも存在する。

上の図は、上位のI2Pサイト間の関係を示したものである。
図中、ラベルとノードの大きさは、それぞれとout-degree値とin-degree値の値に正比例している。

I2Pネットワークの接続性の全体像は、最後に上の図に示されている。ここでは、少なくとも1つの着信または発信リンクを持つノードのみが描かれている。この図では、ノードidentiguy.i2pの近傍を観察することができ、すべてのノード(色のついたノードとリンク)は、3ホップ以下でidentiguy.i2pにアクセスすることができる。また、他のノードから分離したペアの存在も顕著である。

まとめ

この実験のために作成したツールを用いてi2pのウェブ構造を分析するという論文でした。
様々な分析を行っていて、今後のi2pの研究の土壌作りをした力作だと感じました。

参考文献

ダークウェブを構成する、もう一つの主要なネットワークであるTORについての構造を研究した論文
Structure and Content of the Visible Darknet

グラフとしてのSurface Webの接続性の研究に成功した論文
Graph structure in the web

Floodfillなどi2pネットワークの説明があるサイト

タイトルとURLをコピーしました