2011 年度 修士論文
仮想センサを用いたダークネット空間の拡張
提出日: 2012 年 1 月 31 日
指導:後藤滋樹教授
早稲田大学 基幹理工学研究科 情報理工学専攻 学籍番号: 5110B095-0
戸部 和洋
目次
1 序論 5
1.1 研究の背景 . . . 5
1.2 研究の目的 . . . 6
1.3 論文の構成 . . . 7
2 仮想センサ 8 2.1 Virtual Dark IPアドレス . . . 8
2.1.1 VDIPの概要 . . . 8
2.1.2 VDIPの検出アルゴリズム . . . 9
2.1.3 VDIPの誤検出 . . . 9
2.1.4 VDIPの局所観測と広域観測 . . . 11
2.2 Virtual Dark Port . . . 11
2.2.1 VDPの概要 . . . 11
2.2.2 VDPの検出アルゴリズム . . . 12
3 提案手法 14 3.1 仮想センサ検出システムの設計と実装 . . . 14
3.1.1 システムの構成 . . . 14
3.1.2 入力モジュール . . . 14
3.1.3 仮想センサ抽出モジュール . . . 15
3.2 仮想センサ検出にかかる処理時間の短縮法 . . . 16
3.3 仮想センサ誤検出率の制御法 . . . 18
3.4 仮想センサ空間の拡張法. . . 18
3.4.1 時間帯による使用IPアドレス変動の反映法 . . . 18
3.4.2 VDPによる仮想センサ空間の拡張法 . . . 19
目次
4 評価実験 20
4.1 実験環境 . . . 20
4.1.1 データセット . . . 20
4.1.2 使用したマシン . . . 22
4.2 実験1:タイマーチェック間隔が処理時間とVDIP数に与える影響 . . . 22
4.3 実験2:VDIP数と誤検出率のトレードオフ . . . 24
4.4 実験3:時間帯による使用IPアドレス変動の反映 . . . 25
4.5 実験4:VDPによる仮想センサ空間の拡張 . . . 26
4.6 考察:VDIPが多い理由 . . . 27
5 関連研究 29 5.1 未使用IPアドレスの検出 . . . 29
5.1.1 受動的な検出法 . . . 29
5.1.2 能動的な検出法 . . . 30
5.2 ダークネット空間の拡張. . . 30
5.2.1 Darkports . . . 31
5.2.2 DarkFlow . . . 31
5.3 ダークネットを用いた観測 . . . 32
5.3.1 グレーネット . . . 32
5.3.2 DarkPots . . . 32
5.3.3 異種センサ統合型ネットワーク観測プラットフォーム . . . 33
6 結論 34 6.1 まとめ . . . 34
6.2 今後の課題 . . . 34
謝辞 36
参考文献 37
図一覧
2.1 VDIP検出アルゴリズムの状態遷移図 . . . 10
2.2 仮想センサ空間 . . . 12
2.3 VDP検出アルゴリズムの状態遷移図 . . . 13
3.1 仮想センサ検出システムの構成 . . . 15
3.2 第3次元として時間帯を加えた仮想センサ空間 . . . 19
4.1 タイマーチェック間隔を調整したときの1週間にわたるVDIP数変化 . . . 23
4.2 タイマーを調整したときの1週間にわたるVDIP数変化 . . . 25
表一覧
4.1 1週間分の通信データに対するVDIP検出アルゴリズムの実行時間 . . . 23
4.2 タイマーの値を変化させたときの仮想センサ (VDIP)数と誤検出数. . . 24
4.3 VDIP空間とVDP空間の大きさ ([masked].0.0/16) . . . 26
4.4 VDIP空間とVDP空間の大きさ ([masked].0.0/20) . . . 27
4.5 VDIP空間とVDP空間の大きさ ([masked].80.0/20) . . . 27
第 1 章 序論
1.1 研究の背景
インターネットは悪意のあるソフトウェア(マルウェア)の脅威に晒されている.特に,マル ウェアに感染したコンピュータで構成されるボットネット [4, 7, 9, 19, 30, 46, 48]が大きな 脅威となっている.攻撃者はボットネットに指令を送ることで,Distributed Denial of Service (DDoS)攻撃[13, 26]や,スパムメールの大量送信 [24, 48, 53]を行うことができる.スパムメー ルにはマルウェアが添付されていたり [48],悪意のあるウェブサイトへのリンクが掲載されてい たりする [48].このようなウェブサイトへアクセスをすると,Drive-by download攻撃 [38]に よってブラウザやプラグインの脆弱性をついて強制的にマルウェアをダウンロード・実行させら れたり [48],フィッシングサイトへ入力したアカウント情報を盗まれたりする.このように,イ ンターネットにおける脅威の多くがマルウェアに起因しているため,マルウェアへの対策が不可 欠である.
マルウェアの実行ファイルやマルウェアに感染したホストを解析するのは難しい.マルウェア の実行ファイルの解析はデバッガ [67]や逆アセンブラ [64]を用いて行われるが,パッカー [73]
を用いた難読化がされていて解析が困難である [8, 54].マルウェアに感染したホストの解析には ハニーポット [1, 43, 47, 49]や仮想マシン [69, 74]が用いられるが,これらの解析環境に耐性を 持つマルウェアが存在する [8, 56].また,カーネルルートキットが用いられていて検出や解析が 極めて困難なマルウェアも存在する [29, 50].アンパッカー [32, 39, 68]の研究開発や,解析環境 に耐性を持つマルウェアも解析可能な仮想環境 [23, 50]の研究開発がされているが,マルウェア 開発者とマルウェア対策者のイタチごっことなっている.
マルウェアの対策にはネットワーク観測が重要である.インターネットアクセスを行うマル ウェアが多いためである.ボットネットは,感染ホストを増やして規模を拡大するために,
SMB (TCP 445)/RPC (TCP 135), MSSQL (TCP 1433), VNC (TCP 5900) などのネットワー
第 1 章 序論
jwaniら [37]は,システムに対する攻撃の50%はスキャンが先立つと見積もっている.すなわ
ち,ネットワークを観測することで,マルウェアの感染活動を検知/解析できる.そのため,マ ルウェア対策においてネットワーク観測が重要である.
異常な通信を検知する研究が多く行われている [14, 16, 25, 28].しかし,これらの研究では確 率・統計的な手法を用いているため,正常な通信を異常な通信と誤検出してしまったり,異常な 通信を見逃してしまったりする可能性がある.このような手法では,異常な通信だけを大量の通 信から抽出するのは困難である.
組織に配布されているが未使用のIPアドレス (Dark IPアドレス) で構成されるネットワーク
(ダークネット)[2, 3, 12, 55, 61, 62]を観測することで,正常な通信を異常な通信として誤検知 することがなくなる.ダークネットには稼働しているホストが存在しないため,正規の通信は届 かないからである.ダークネットは,スキャン[25],バックスキャター1 [22, 35],ネットワーク 機器の設定ミス[12, 36]によるパケットなど,異常な通信のみが観測できる2.ダークネットの観 測によって,DoS/DDoS攻撃,マルウェアによるスキャンの検知が行われている [10, 17, 31]. ただし,ダークネットは受動的な観測手段であるため,多くの攻撃通信を観測するためには,大 量のIPアドレス空間が必要である.一方で,IANAでは2011年2月にIPv4アドレスが枯渇し ている [20]ため,観測専用の未使用アドレス空間を大規模に確保することは難しい.そのため,
点在するDark IPアドレスを用いてネットワークの観測を行う必要がある.
1.2 研究の目的
IPアドレスとポート番号の使用状況には以下に示す特徴がある.本研究では,これらの特徴 を利用することで,ネットワーク観測に用いられるダークネット空間を拡張する.より大規模な ネットワーク観測を可能にすることで,異常な通信を検知する技術や研究に貢献する.また,そ の空間を自動的に検出するためにかかる時間を短縮する.
• 組織に配布されているが未使用のIPアドレスが多い.一般に,IPアドレスはブロック単 位で組織に配布される.例えば,/16のアドレスブロックには65,536個,/24のアドレ スブロックには256個のIPアドレスが含まれる3.しかし,これらすべてのIPアドレス が実際に使用されている(稼働中のホストに設定されている)ことは少ない.Xue Cai
1送信元IPアドレスが偽装された攻撃通信に対する応答パケットを,バックスキャター(backscatter)パケットと
呼ぶ.DoS/DDoS攻撃が行われる際に,大量のバックスキャターパケットが発生する.
2ダークネットに届く通信は必ずしもすべて悪意を持っている (malicious) とは限らない.前述のように,ネット ワーク機器の設定ミスによるパケットもダークネットに届くためである.そのため,本論文では,異常(anomaly)な 通信/パケットと表現する.
3ネットワークアドレスとブロードキャストアドレスはホストに設定できない.そのため,/16のアドレスブロッ クでは65,534個,/24のアドレスブロックでは254個のIPアドレスだけが実際に使用できる.
第 1 章 序論
ら [6]は,ICMPパケットを用いた調査を行い,/24のアドレスブロックのおよそ5つに 1つは,10%以下のIPアドレスしか使われていないことを示している.
• ホストに動的に設定されるIPアドレスが多い [6, 52].例えば,DHCPを用いて,IPア ドレスをホストに動的に設定することができる.Caiらによると,/24のアドレスブロッ クのおよそ40%は動的に設定されている.
• 特定の時間帯にしか使用されないIPアドレスが存在する.IPアドレスが静的に設定され ていても,特定の時間帯にしか稼働しないホストが存在するためである.例えば,大学の 端末室のマシンは,端末室が開いている時間帯にしか稼働しない.閉室中はシャットダウ ンされるためである。
• ホストが稼働していても,ポート番号の大部分は未使用である.Evan Cookeら [5]は,
ダークネット空間の定義を広げ,ホストの未使用ポート番号もダークネット空間と見なす 提案をしている.David Whyteら[51]は,稼働中のホストの未使用ポート番号空間Dark- portsをネットワーク観測に用いている(第5.2.1節).
1.3 論文の構成
本論文は以下の章により構成される。
第1章 序論
本研究の導入を行う.
第2章 仮想センサ
ダークネット空間としてネットワーク観測に利用可能な仮想センサ技術を紹介する.
第3章 提案手法
本研究の提案手法と,それを実現するシステムの設計と実装について説明する.
第4章 評価実験
提案手法を評価する実験を行い,その結果を考察する.
第5章 関連研究
関連研究を紹介して,本研究の有用性を述べる.
第6章 結論
第 2 章 仮想センサ
本章では,本論文の基礎となる,Virtual Dark IPアドレスとVirtual Dark Portの2種類の 仮想センサ技術について説明する.これらの仮想センサは,ダークネット空間としてネットワー ク観測に使用できる.
2.1 Virtual Dark IP アドレス
本節では,仮想センサ技術のひとつであるVirtual Dark IPアドレス (VDIP) について説 明する.まず,第2.1.1においてVDIPの概要を述べる.次に,第2.1.2においてVDIPの検出ア ルゴリズムを説明する.そして,第2.1.3においてVDIPの誤検出について述べる.最後に,第
2.1.4においてVDIPの局所観測と広域観測に言及する.
2.1.1 VDIPの概要
下田晃弘ら [40]は,組織に配布されているがホストに設定されていないIPアドレス(未使用 のIPアドレス)を動的に検出する方法を提案している.下田らはこのようなIPアドレスをVir-
tual Dark IPアドレス (VDIP)あるいは仮想センサと呼んでいる.下田らのVDIP検出アルゴ
リズムでは,組織内から組織外へ一定時間応答を返さないIPアドレスをVDIPと見なす.
下田らは,早稲田大学の/16ネットワークのゲートウェイで観測を行い,5万〜6万個前後の VDIPの検出に成功している.そして,物理センサWCLSCAN [21]と同様の異常通信が,仮想 センサVDIPでも観測されていることを報告している.また,Dark IPアドレス空間 (ダーク ネット) とも同様の異常通信がVDIP空間でも観測されている [41].VDIPはDark IPアドレ スよりも多くのセンサ空間を確保できるため,VDIP空間はDark IPアドレス空間では観測で きなかった異常通信も観測可能な点で優位である.Dark IPアドレス空間では観測できなかっ たICMPパケットがVDIP空間では観測できる事例が,高橋正綱 [41]によって示されている.
これらの研究から,組織内には未使用のIPアドレスが多く存在し,それらを仮想センサとして
第 2 章 仮想センサ
ネットワーク観測に使用できることが明らかになっている.
2.1.2 VDIPの検出アルゴリズム
下田晃弘ら [40]が提案しているVDIP検出アルゴリズムを図2.1(a)に状態遷移図で示す.下 田らのアルゴリズムでは,観測対象の組織に配布されているIPアドレスのそれぞれに対して,
次の3状態のいずれかを割り当てる.
• VDIP候補 (VDIP candidate)
• VDIP
• 使用中IPアドレス (used IP address)
IPアドレスの初期状態は,VDIP候補である.VDIP候補は,そのIPアドレスを送信元とす る外向き(組織内から組織外方向)の (outgoing) 通信が検出されないまま一定時間 (timer: T1
[秒]) が経過すると,VDIPとなる(遷移A).しかし,VDIP候補を送信元とする外向きの通 信が検出されると,そのIPアドレスは即座に使用中IPアドレスとなる(遷移B).一度VDIP となったIPアドレスも,そのIPアドレスを送信元とする外向きの通信が検出されると,即座に 使用中IPアドレスとなる(遷移C).使用中IPアドレスは,そのIPアドレスを送信元とする 外向きの通信が検出されないまま一定時間 (timer: T2 [秒]) が経過すると,VDIP候補へ戻る
(遷移D).これは,あるときには使用さていたIPアドレスであっても,しばらくすると使用 されなくなる可能性を考慮しているためである.例えば,ホストがシャットダウンされると,そ のホストに設定されていたIPアドレスは使用されなくなる.
なお,下田らはタイマー (timer) T1とT2を同じ値にしているため,本研究でもT1とT2を同 じ値として,T と表記する.すなわち,本研究におけるVDIP検出アルゴリズムの状態遷移図 は図2.1(b)のようになる.
2.1.3 VDIPの誤検出
VDIPとして検出されたIPアドレスが設定されたホストが,実際には検出時に稼働してい る,あるいは,検出後に稼働を始めることがある.これらを下田晃弘 [40]らはVDIPの誤検出 と定義している1.下田らの観測では,時刻ごとの誤検出数には周期性が見られ,平日の日中に
1VDIPとして検出されたIPアドレスが設定されたホストが後から稼働を始めた場合は,本来はVDIPの誤検出 とは言えない.また,この場合はVDIPの検出アルゴリズムには問題がない.それどころか,後から使用され始めた IPアドレスを検出できることは望ましい.そのIPアドレスを即座に観測対象から除外できるためである.しかし,
VDIPとして検出されたIPアドレスが設定されたホストが後から稼働を始めた場合は,VDIPとして検出される以
第 2 章 仮想センサ
(a) 下田ら[40]の提案
(b)本研究で使用
図 2.1: VDIP検出アルゴリズムの状態遷移図
誤検出数が多いという結果が出ている.下田らはこの理由を,夜間や週末には稼働していなかっ たホストが平日の日中に稼働を始めるため,夜間や週末にVDIPとして検出されたIPアドレス が平日の日中に使用されるようになるからであると推測している2.このことから,タイマーの 値を大きくすると,VDIPの誤検出を抑えられると推測できる.タイマーの値を大きくすると,
長時間使用されていないIPアドレスだけがVDIPと見なされるようになるためである.
本論文では,第3.3節において仮想センサの誤検出率をタイマーを用いて制御する方法につい て説明し,第4.3節においてタイマーの値と仮想センサ (VDIP) の誤検出率の関係を定量的に分 析する.
2下田らが観測しているのは大学のネットワークであるため,授業が実施される平日の日中に使用されるマシンが 多い.
第 2 章 仮想センサ
2.1.4 VDIPの局所観測と広域観測
下田晃弘ら [40]は,VDIPの方式を2種類提案している.一つ目の方式は,ネットワークの ゲートウェイでパケットを観測する局所観測である.二つ目の方式は,バックボーンルータを通 過する通信のフロー3を観測する広域観測である.広域観測では,観測地点(ルータ)を経由し て通信を行うネットワーク宛のフローを観測する.本研究では局所観測のみを対象としているた め,第2.1.1項,第2.1.2項, 第2.1.3項では局所観測について説明している.
2.2 Virtual Dark Port
本節では,仮想センサ技術のひとつであるVirtual Dark Port (VDP) について説明する.ま
ず,第2.2.1項においてVDPの概要を述べる.次に,第2.2.2項においてVDPの検出アルゴリ
ズムについて説明する.
2.2.1 VDPの概要
高橋正綱 [42]は,仮想センサ空間を1次元(IPアドレス)から2次元(IPアドレスとポート 番号の組)に拡張している.高橋は,1次元の仮想センサVDIPに対し,2次元の仮想センサを Virtual Dark Port (VDP) と呼んでいる.
図2.2に仮想センサ空間の概念図を示す.この空間は,6つのIPアドレスa1, a2, ..., a6と ポート番号p1, p2, ..., p8の組み合わせで構成されている.図2.2(a)はVDIP,図2.2(b)はVDP がカバーする空間を示す.×印がついているのは,正規の通信に使用されている空間である.図 2.2(a)の例では,(IPアドレス,ポート番号) = (a1, p4),(a1, p8), ...,(a6, p6) が使用されている.
そのため,IPアドレスa1, a3, a6 は使用中であり,VDIPとして検出されない.一方,IPアド レスa2,a4,a5は未使用なので,VDIPとして検出される.
高 橋 は, 実 際 の ネッ ト ワー ク に お け る 通 信 デー タ を 用 い て, ホ ス ト が 稼 働 中 で あ る た め VDIPと し て は 検 出 さ れ な い が, 未 使 用 の ポー ト 番 号 が あ る た めVDPと し て 検 出 さ れ る 仮 想 セ ン サ が 存 在 す る こ と を 示 し て い る. 図2.2(b)の 例 で は, 網 掛 け の 空 間, す な わ ち,
(IPアドレス,ポート番号) = (a1, p1),(a1, p2), ...,(a6, p8) がVDPによって拡張された仮想セン サ空間(VDIPとしては検出されないが,VDPとして検出される仮想センサ空間)である.
3送信元IPアドレス,宛先IPアドレス,送信元ポート番号,宛先ポート番号,プロトコルの組をフローと呼ぶ.
第 2 章 仮想センサ
(a) VDIP空間 (b) VDP空間
図 2.2: 仮想センサ空間 2.2.2 VDPの検出アルゴリズム
本研究で使用するVDP検出アルゴリズムを図2.3に示す.基本的には,VDIP検出アルゴリ ズムにおけるIPアドレスが,ポート番号4になっているだけである.本アルゴリズムでは,観測 対象の組織に配布されているポート番号のそれぞれに対して,次の3状態のいずれかを割り当て る.
• VDP候補 (VDP candidate)
• VDP
• 使用中ポート番号 (used port number)
ポート番号の初期状態は,VDP候補である.VDP候補は,そのポート番号を送信元とする外 向きの (outgoing) 通信が検出されないまま一定時間(timer: T [秒]) が経過すると,VDPとな る(遷移A).しかし,VDP候補を送信元とする外向き(組織内から組織外方向)の通信が検 出されると,そのポート番号は即座に使用中ポート番号となる(遷移B).一度VDPとなった ポート番号も,そのポート番号を送信元とする外向きの通信が検出されると,即座に使用中ポー ト番号となる(遷移C).使用中ポート番号は,そのポート番号を送信元とする外向きの通信が 検出されないまま一定時間 (timer: T [秒]) が経過すると,VDP候補へ戻る(遷移D).これ は,あるときには使用さていたポート番号であっても,しばらくすると使用されなくなる可能性 を考慮しているためである.例えば,TCPコネクションが終了すると,そのホストに割り当て られていたポート番号は使用されなくなる.
4正確には,ポート番号ではなくIPアドレスとポート番号の組である.各ホストのポート番号は独立した空間で あるためである.しかし,本論文では簡単のため,ポート番号と表記する.高橋正綱[42]も本論文と同様にポート番 号と表記している.
第 2 章 仮想センサ
図 2.3: VDP検出アルゴリズムの状態遷移図
第 3 章 提案手法
本章では,第3.1節において仮想センサ検出システムの設計と実装,第3.2節において仮想セン サ検出にかかる処理時間の短縮法,第3.3節において仮想センサ誤検出率の制御法,第3.4節にお いて仮想センサ空間の拡張法について説明する.
3.1 仮想センサ検出システムの設計と実装
本節では,提案手法の評価に用いる仮想センサ検出システムの設計と実装を説明する.まず,
第3.1.1項でシステムの構成を示す.次に,第3.1.2項で入力モジュールについて説明する.最後
に,第3.1.3項で仮想センサ抽出モジュールについて説明する.
3.1.1 システムの構成
仮想センサ検出システムを,プログラミング言語C++を用いて実装した.本システムの構成 を図3.1に示す.本システムは,大きく分けて2つのモジュール,入力モジュール (input mod- ule) と仮想センサ抽出モジュール (virtual sensor extraction module) から構成される.入力モ ジュールは,通信データファイル (traffic data files) を本システムに入力するためのモジュー ルである.仮想センサ検出モジュールは仮想センサリスト (virtual sensor list) を保持する.
外部モジュールは,仮想センサ検出モジュールを経由して,仮想センサリストを取得できる.第
3.1.2項では入力モジュール,第3.1.3項では仮想センサ抽出モジュールの実装を説明する.
3.1.2 入力モジュール
本モジュールは,tcpdump [70]でキャプチャした通信が記録されたファイルの入力を行う.
入力ファイルとして,pcapファイル(*.pcap) [70],pcapファイルをbzip2 [59]で圧縮したファ イル (*.bz2) の2形式を扱うことができる.pcapファイルはlibpcapライブラリ [70]を用い て入力を行う.bz2ファイルは,bzip2を外部コマンドとして実行し,パイプを経由してファイ
第 3 章 提案手法
図 3.1: 仮想センサ検出システムの構成
ルディスクリプタがlibpcapライブラリ [70]へ渡される.tcpdumpには,bz2形式以外にも,
gzip (*.gz) [63]や7-Zip (*.7z) [57]形式でファイルを圧縮するオプションがある.これらの形式 の圧縮ファイルもbz2ファイルと同様の入力方式を実装することで,本システムに入力できるよ うになる.
3.1.3 仮想センサ抽出モジュール
VDIP検出アルゴリズムにおいて,それぞれのIPアドレスは,VDIP候補,VDIP,使用中 IPアドレスのいずれかの状態を持つ.ここでは,パケットが観測されるたびに,その送信元IP アドレスの状態が遷移する可能性がある.また,それぞれのIPアドレスが送信元として最後に 観測された時刻を保持しておき,一定時間観測されない(タイマーが切れる)と,状態が遷移す る.このような状態遷移をプログラムで実装するためには,次の2通りの方法が考えられる.
• 方法1:以下の2種類の対応表を保持する1. – 対応表<IPアドレス, 状態>
– 対応表<IPアドレス, 最後に観測された時刻>
• 方法2:以下の3種類のリスト,1種類の対応表を保持する.
– リスト<VDIP>
– リスト<VDIP候補>
– リスト<使用中IPアドレス>
– 対応表<IPアドレス, 最後に観測された時刻>
1対応表<IPアドレス,組<状態,観測された時刻>>を保持するのは,方法1と本質的に同一である.
第 3 章 提案手法
本研究では,方法2(3種類のリスト,1種類の対応表)で実装を行った.仮想センサの応用
(第5.3節)を考えると,仮想センサのリストを高速に取得できる方法が望ましいためである.
方法2は仮想センサのリストそのものを保持するため,観測対象のネットワーク内の全IPアド レスのリストを保持する方法1よりも,仮想センサのリストを高速に取得できる.
本研究では,VDP検出アルゴリズムにおけるポート番号の状態遷移も,VDIP検出アルゴリ ズムにおけるIPアドレスの状態遷移と同様の方法で実装した.すなわち,VDP検出システム は以下の3種類のリスト,1種類の対応表を保持する.
• リスト<VDP>
• リスト<VDP候補>
• リスト<使用中ポート番号>
• 対応表<使用中ポート番号, 最後に観測された時刻>
3.2 仮想センサ検出にかかる処理時間の短縮法
仮想センサ(VDIP/VDP) 検出アルゴリズムの処理には時間がかかる.VDIP検出アルゴリズ ムの処理時間を短縮するために,高橋正綱 [42]は,ポート番号を限定して観測を行っている.第
3.1.3項で述べたように,VDIP検出アルゴリズムにおけるIPアドレスの状態遷移には2通りの
実装方法がある.しかし,いずれの方法で実装しても,パケットが到着するたびに,その送信元 IPアドレスがどの状態であるか,状態が遷移するか,の2点を調べるために,IPアドレスリス トに対して要素の検索と全要素への逐次アクセスを行うため,処理に時間がかかる.高橋はこれ らの状態を3つのリスト(方法2)で実装している.
仮想センサ検出アルゴリズムの処理時間を短縮するため,本研究では以下の2通りの工夫を 行った.本研究の主な目的は仮想センサ空間を増やすことであるが,高橋が問題視している処理 時間が実装の工夫で改善できることも同時に示す.高橋のようにポート番号を限定して観測を行 うことでも確かに処理時間を抑えられるが,仮想センサ空間も小さくなってしまう.
• 工夫1:タイマーチェック間隔の調整
仮想センサ検出アルゴリズムにおいて,タイマーが切れたIPアドレスは状態が遷移す る.このためには,それぞれのIPアドレスのタイマーの値を随時確認する必要がある.し かし,タイマーの値を確認するたびに,対応表<IPアドレス, 最後に観測された時刻>の全
第 3 章 提案手法
要素へ逐次アクセスする必要がある.そのため,1秒2ごとにタイマーの値を確認すると,
処理に時間がかかってしまう.
そこで,本研究では,タイマーチェック間隔を1秒ではなく,1分や1時間にすること で処理時間の短縮を図る.しかし,タイマーチェック間隔を変化させると,検出される仮 想センサ数が増減する.どのくらいの間隔でタイマーを確認する必要があるか検討するた めに,第4.2節においてタイマーチェック間隔と仮想センサ数の関係を定量的に分析する.
• 工夫2:データ構造の選択
IPv4アドレス空間は32ビットなので,IPアドレスリストはビット列で表現できる3. IPアドレスリストのデータ構造としてビット列を使用する場合,IPアドレスを32ビット の整数値で表現し,i番目のIPアドレスはi番目のビットに割り当てる.i番目のビット が1ならば,i番目のIPアドレスがこのリストに含まれていることを表す.一方,i番目 のビットが0ならば,i番目のIPアドレスはリストに含まれていないことを表す.C++
におけるビット列の実装には,STLのstd::bitset<M>がある.M は格納される要素の 変域のサイズを表す.ビット列は要素の検索,挿入,削除をO(1)の計算量で高速に行え る.しかし,全要素への逐次アクセスにはO(M)の計算量がかかる.格納される要素の変 域のサイズM は,実際に格納される要素数N とは無関係である.本システムが格納する IPアドレス空間は疎である4.ビット列は要素数と無関係に,M/8 [byte] のメモリを必要 とする.そのため,本システムのようにN ¿ M のデータはビット列で表現すると,全要 素への逐次アクセスに時間がかかる上に,メモリを浪費してしまう.
そこで,本研究では,ハッシュテーブルを用いてIPアドレスリストの実装を行った.
C++におけるハッシュテーブルの実装には,Boost [58]のboost::unordered map<K,
V>がある5.ハッシュテーブルはビット列と同様にO(1)の計算量で要素の検索,挿入,削
除を行える.そして,O(N)の計算量で全要素への逐次アクセスを行える.要素の保存に
2本研究で使用する仮想センサ検出システムは,パケットの到着時刻を秒単位で取得している(1秒未満は切り捨 てている)ため,時間の最小単位は秒である.そのため,タイマーチェック間隔を1秒に設定すると,タイマーによ る状態遷移は設定時間通りに誤差なく行われる.
3連結リストで表現することもできるが,要素の検索と削除にO(N),要素の挿入にO(1)あるいはO(N)(実装 依存),全要素への逐次アクセスにO(N)の計算量がかかる.
4本システムで観測対象となるネットワークのIPアドレス空間の大きさは,IPv4アドレス空間全体の大きさ (4,294,967,296)と比較するとかなり小さい./16ネットワークのIPアドレス数は65,536であるため,IPアドレス リストの充填率はたかだか0.15%にすぎない.なお,実際には,65,536個すべてのIPアドレスが1つのIPアドレ スリストへ入るわけではない.VDIP検出アルゴリズムにおいて,IPアドレスには3つの状態があるためである.
そのため,IPアドレスリストの充填率はさらに小さくなる.
5
第 3 章 提案手法
必要なメモリ量は,およそN [byte] である.そのため,本システムのように空間が疎なと きは,boost::unordered map<K, V>はstd::bitset<M>より効率のよいデータ構造で ある.
3.3 仮想センサ誤検出率の制御法
仮想センサ検出アルゴリズムではタイマーの値がパラメータとなっており,タイマーの値を変 化させることで,仮想センサの誤検出率6を調整することができる.しかし,一般的には仮想セ ンサの誤検出率を減らそうとタイマーの値を調整すると,仮想センサ数を減らしてしまう(仮想 センサ空間を小さくしてしまう).すなわち,VDIPの誤検出率と仮想センサ空間の大きさはト レードオフの関係にある.タイマーの値を調整することで,仮想センサ空間の大きさと仮想セン サの誤検出率を制御できる.第4.3節において,タイマーの値を変化させたときの,仮想センサ 空間の大きさ(VDIP数)とVDIPの誤検出率の関係を定量的に分析する.
3.4 仮想センサ空間の拡張法
本節では,仮想センサ空間の拡張法として,第3.4.1項において時間帯による使用IPアドレス 変動の反映,第3.4.2項においてVDPによる仮想センサ空間の拡張について述べる.
3.4.1 時間帯による使用IPアドレス変動の反映法
ある時間帯にしか使用されないIPアドレス/ポート番号空間を仮想センサとして検出する ことができれば,仮想センサ空間を大きくできる.2次元の仮想センサ(第1次元:IPアドレ ス,第2次元:ポート番号)に時間帯(第3次元)を追加することで,時間帯による使用IPア ドレス変動が仮想センサ空間に反映されて,仮想センサ空間が大きくなることが期待される.
3次元の仮想センサ空間の例を図3.2にその様子を示す.この例では,図2.2空間において,1 日を朝 (t1),昼 (t2),夜 (t3) の3つの時間帯に分割している.例えば,ホストa1のポート番号 p4は,夜 (t3) にしか使用されておらず,朝 (t1) と昼 (t2) には仮想センサとして使用できる.
また,ホストa1のポート番号p8は,朝 (t1) と夜 (t3) にしか使用されておらず,昼 (t2) には 仮想センサとして使用できる.つまり,点模様の空間,(IPアドレス,ポート番号,時間帯) = (a1, p4, t1),(a1, p4, t2), ...,(a6, p2, t3)はVDIPとしてもVDPとしても検出されないが,時間帯を 区切ることで仮想センサとして使用できるようになる.
しかし,本研究では,タイマーの値を適切に設定することで,次元を増やさなくても時間帯に よる使用IPアドレス変動を仮想センサ空間に反映できることを示す.仮想センサに新たな次元
6VDIPの誤検出率については,第2.1.3項で説明している.VDPの誤検出率については,第6.2節で言及する.
第 3 章 提案手法
を導入するとメモリ使用量や処理時間が大幅に増加するが,タイマーはもともと仮想センサに含 まれている機能なので,追加のコストをかけずに仮想センサ空間を拡張できる利点がある.そこ で,タイマーの値をどのくらいに設定すると,時間帯による使用IPアドレス変動が仮想センサ 空間に反映されるか,第4.4節の実験で検討する.
図 3.2: 第3次元として時間帯を加えた仮想センサ空間
3.4.2 VDPによる仮想センサ空間の拡張法
観測対象のネットワークにおける全ホストの全ポート番号が同時に使用されるとは考えられ ないため,VDPがVDIP以上の仮想センサ空間を持つことは明らかである.しかし,VDPが VDIPと比較してどれだけ大きな仮想センサ空間を持つか分析した研究はこれまでにない.高橋 正綱 [42]は,VDPによって拡張された仮想センサ空間の例として,あるIPアドレスのTCP 80番ポートをひとつだけ示している.そこで,本研究では,第4.5節において,VDPとVDIP の仮想センサ空間の大きさを定量的に比較する.
第 4 章 評価実験
本章では,実際のネットワークを観測して収集した通信データを用いて,第3章で提案した手 法の評価実験を行う.すなわち,仮想センサ検出にかかる処理時間の短縮法(第3.2節),仮想 センサ誤検出率の制御法(第3.3節),仮想センサ空間の拡張法(第3.4節)を評価する.まず,
第4.2節において,タイマーチェック間隔がVDIP検出アルゴリズムの処理時間とVDIP数に与 える影響を定量的に分析する.次に,第4.3節において,VDIP数とVDIPの誤検出率のトレー ドオフを定量的に分析する.その後,第4.4節において,時間帯による使用IPアドレス変動を 反映するために適切なタイマーの値を決定する.そして,第4.5節において,VDPによって拡 張される仮想センサ空間の大きさを定量的に評価する.最後に,第4.6節において,観測対象の ネットワークからVDIPが直感よりも多く検出される理由を考察する.
4.1 実験環境
4.1.1 データセット早稲田大学のネットワークのゲートウェイに流れる通信を観測用マシンにミラーリングして,
tcpdumpを用いて記録した.ゲートウェイの外側のインタフェースでミラーリングを行ったた
め,ゲートウェイでフィルタリングされる内向き(学外から学内方向)の通信は観測されるが,
ゲートウェイでフィルタリングされる外向き(学内から学外方向)の通信は観測されない.この ネットワークは,/16のIPv4アドレス空間,すなわち,65,536個のIPv4アドレスを持つ.
観測期間は,2011年9月28日から2011年10月31日の約1ヶ月間と2011年11月22日か ら2012年1月2日までの約1.5ヶ月間である.実験にはこのうち2011年10月23日(日曜日)
から2011年10月30日(土曜日)の1週間分の通信データを用いる.曜日による仮想センサ空 間の変化を分析するためには,1週間分の通信データがあれば十分だからである.この1週間を 選択した理由は以下の3つである.
• 理由1:この1週間が含まれる前半の約1ヶ月の方が,後半の約1.5ヶ月よりもキャプチャ
第 4 章 評価実験
時に破棄されたパケットが少ない(後述).
• 理由2:この1週間は授業期間中である1.
• 理由3:この1週間には祝日がない.祝日は平日とは通信の特徴が異なると考えたため,
祝日のない週を選択した.
観測対象の通信は以下のいずれかの条件を満たすパケットである.ただし,IPv6アドレス空 間宛の攻撃はまだ多くない [60, 12]ため,本研究ではIPv6パケットは観測の対象としない.
• SYNフラグまたはRSTフラグがセットされているTCPパケット
• UDPパケット
• ICMPパケット
パケットは先頭38バイトのみを保存した.本研究で必要な情報は以下の6種類だけである.
• タイムスタンプ
• 送信元IPアドレス
• 宛先IPアドレス
• トランスポートプロトコル(TCP, UDP, ICMP2)
• 送信元ポート番号
• 宛先ポート番号
そのため,イーサネットヘッダが14バイト,IPヘッダが20バイト3,トランスポートヘッダが 先頭4バイト4,合計38バイトあれば十分である.
本研究では,パケットキャプチャにおけるパケット破棄率がやや高く,この通信データを用い た分析結果にその影響が少なからず出る可能性がある.前半の約1ヶ月間では4.3%,後半の約 1.5ヶ月間では10%ものパケットが破棄されている.この原因として,次の2点が考えられる.
110月23日は日曜日のため大学の授業がなく,10月30日は土曜日のため実施される授業が少ない.そのため,
この2日間は大学のネットワークの使用者が少なく,10月24日(月曜日)から10月29日(金曜日)よりも通信量 が少ない.
2ICMPはトランスポートプロトコルではないが,TCPやUDPと同様にIPヘッダのプロトコル・フィールド で指定されるため,本研究では便宜上ICMPもトランスポートプロトコルとして扱う.
3IPオプションが使用されていない場合
第 4 章 評価実験
1点目は,tcpdumpの圧縮オプションを用いて,bz2圧縮を行いながらパケットキャプチャを
行っていることである.2点目は,複数の実験者が同じマシンで同時にパケットキャプチャを 行っている時期があることである.破棄されたパケットの中に外向きの通信が含まれていた場 合,そのIPアドレスは使用中IPアドレスに状態が遷移しない.そのため,パケットの破棄に よって解析に誤差が生じ,仮想センサが実際よりも少し多く検出される可能性がある.
4.1.2 使用したマシン
本研究で,ネットワークの観測(tcpdumpを用いたパケットキャプチャ)を行うマシンの ハードウェアのスペックとソフトウェアのバージョンは次の通りである.
• OS: Linux 2.6.32-5-686
• CPU: Intel Geon 3060 2.40GHz (dual core)
• RAM: 3GB
• tcpdump: 4.0.0
• bzip2: 1.0.5
本研究で,仮想センサ検出システムを実行するマシンのハードウェアのスペックとソフトウェ アのバージョンは次の通りである.
• OS: Linux 2.6.32-24-generic
• CPU: Intel Core i7 975 3.33GHz (quad core, 8 threads)
• RAM: 24GB
• g++: 4.4.3
• boost: 1.40.0
4.2 実験 1 :タイマーチェック間隔が処理時間と VDIP 数に与える影響
VDIP検出アルゴリズムのタイマーチェック間隔 (interval) を,1秒 (1s),1分 (1m),1時 間 (1h) に設定したときの1週間分のデータの処理にかかる時間をtimeコマンドで測定した5.
5処理を高速で行うため,プログラムのコンパイル時にGCCの最適化オプション(-O3) を有効にしている.ま た,入力する通信データは,bz2ファイルを展開してpcapファイルにしてある.bz2ファイルのまま入力して展開 しながら処理するよりも事前に展開しておいた方が,展開にかかる時間を考慮しても十分に速くなるためである.
第 4 章 評価実験
その結果を表4.1に示す6.タイマーチェック間隔を1分にすると,1秒にしたときの半分以下の 時間でVDIP検出アルゴリズムの処理が終了する.一方,タイマーチェック間隔を1時間にして も,VDIP検出アルゴリズムの処理にかかる時間は,1分にしたときとほとんど変わらない.
表 4.1: 1週間分の通信データに対するVDIP検出アルゴリズムの実行時間
timer \ interval 1s 1m 1h
real 35分41.829秒 15分40.993秒 14分54.130秒 user 33分08.210秒 12分49.000秒 12分06.110秒 sys 1分24.450秒 1分34.070秒 1分32.660秒
タイマーチェック間隔を,1秒,1分,1時間に設定した (interval=1s, interval=1m, inter-
val=1h) ときの1週間にわたるVDIP数の変化を図4.1に示す.全体的な傾向として,タイマー
チェック間隔を短くするほど,VDIP数は多い.また,どの時点においても,VDIP数 (inter- val=1h) ≤VDIP数 (interval=1m) ≤VDIP数 (interval=1s)となっている.タイマーチェック 間隔が1秒と1分ではVDIP数にほとんど差が出ない (差の平均値:0.569,差の最大値:110) が,タイマーチェック間隔が1分と1時間では1時間とした方がVDIP数が明らかに少ない(差 の平均値:32.8,差の最大値:238).
図 4.1: タイマーチェック間隔を調整したときの1週間にわたるVDIP数変化
以上の結果から,次のことが分かる.タイマーチェック間隔を1分にすると,VDIP数はほと んど減らないまま,VDIPの検出にかかる時間を半分以下にできる.そこで,本研究では,以降 の実験(実験2, 3, 4)において,タイマーチェック間隔を1分に設定する.
第 4 章 評価実験
4.3 実験 2 : VDIP 数と誤検出率のトレードオフ
VDIP検出アルゴリズムのタイマーの値を調整することで,仮想センサ空間(VDIP数)を増 やすことができる.具体的には,タイマーの値を短くすることで,使用されているIPアドレス の時間変動に素早く対応することができるため,VDIP数は増える.一方で,実際には使用され ている空間なのに,VDIPとして誤検出されてしまう確率も上昇してしまう.反対に,タイマー の値を長くすると,VDIP数は減るが誤検出率は減る.このように,仮想センサ空間の大きさと 仮想センサの誤検出率にはトレードオフの関係がある.
1週間分のデータを用いて,このトレードオフを定量的に分析した.タイマーの値を1時間,
3時間,6時間,12時間,24時間,48時間 (1h, 3h, ..., 48h) と変化させた7ときのVDIP数 (#VDIPs) とVDIPの誤検出数 (#errors) を表4.2に示す.VDIP数は,平均値 (avg),0以 外の値の平均値 (avg ifn0),最大値 (max) の3種類を示している.VDIPの誤検出数は,累積 (cumulative),1分あたり8 (#errors/m)の2種類を示している.
表 4.2: タイマーの値を変化させたときの仮想センサ (VDIP)数と誤検出数
#VDIPs #errors
timer avg avg ifn0 max cumulative #error/m 1h 63,779 64,167 64,525 31,337 3.13 3h 62,825 63,974 64,336 9,266 0.93 6h 61,552 63,838 64,185 5,979 0.65 12h 59,086 63,638 64,066 4,434 0.47 24h 54,320 63,380 63,951 1,822 0.22
48h 45,082 63,124 63,365 798 0.17
全体的な傾向として,タイマーの値が小さいほど,仮想センサ (VDIP) 数は多く,誤検出数 も多い.タイマーの値を3時間以上に設定すると,1分あたり(タイマーチェック1回あたり)
の誤検出数が1個を下回る.ただし,第4.1.1項で述べたように,パケットキャプチャ時に破棄 されたパケットによって,誤検出率が低下している可能性がある.パケット破棄率の4.3%は約 1ヶ月間の平均値であるため,実験に使用した1週間分の通信データはそれよりもパケット破棄 率が高い可能性がある.この可能性を考慮して,本研究では,タイマーの値を6時間以上に設定 するとVDIPの誤検出が十分に少なくなると結論づける.そこで,本研究では,以降特に言及が ない場合(実験4:第4.5節)はタイマーの値を6時間に設定する.実験1(第4.2節)でも,タ
7タイマーチェック間隔を1分に設定すると,仮想センサ検出システムにおけるタイマーによる状態遷移のタイミ ングに最大59秒の誤差が生じる.しかし,タイマーの単位は時間(h)なので,この誤差は十分小さく無視できる.
8タイマーチェック1回あたり(タイマーチェック間隔が1分のため)
第 4 章 評価実験
イマーの値を6時間に設定している.なお,下田晃弘ら [40]もタイマーの値を6時間に設定して いる.
4.4 実験 3 :時間帯による使用 IP アドレス変動の反映
本節では,VDIP検出アルゴリズムのタイマーの値をいくつに設定すれば,時間帯による使用 IPアドレス変動が仮想センサ空間(VDIP数)に反映されるか分析する.VDIP検出アルゴリ ズムにおいて,タイマーの値を1時間,3時間,6時間,12時間,24時間,48時間に設定し たとき (timer=1h, timer=3h, ..., timer=48h) の,1週間にわたるVDIP数の変動を図4.2に 示す.タイマーの値が24時間(1日)未満であれば,1日の中でのIPアドレス使用状況の変化 が仮想センサ空間に反映されている.しかし,タイマーの値が24時間(1日)以上になると,1 日の中でのIPアドレス使用状況の変化が,仮想センサ空間に反映されなくなることが示されて いる.そのため,本研究におけるタイマーのデフォルト値(6時間)が設定されていれば,1日 の中でのIPアドレス使用状況の変化が仮想センサ空間に反映されている.実験2(第4.3節)で は,仮想センサ数と仮想センサ空間の関係を分析することでタイマーのデフォルト値を6時間に 設定したが,本実験の結果からもこのデフォルト値がふさわしいことが示されている.
図 4.2: タイマーを調整したときの1週間にわたるVDIP数変化
第 4 章 評価実験
4.5 実験 4 : VDP による仮想センサ空間の拡張
本節では,VDPがVDIPによる仮想センサ空間をどの程度拡張できるか,定量的な分析を 行う.比較の尺度には,仮想センサ空間のカバー率を用いる.IPアドレス1つとポート番号 1つの組で構成される2次元空間の大きさを1としたとき,仮想センサ空間が観測対象のネッ トワークの何パーセントをカバーできるか測定し,VDIPとVDPで比較を行う.例えば,図 2.2では,観測対象のネットワーク空間の大きさは48 (= 6×8),VDIPによる仮想センサ空間
(灰色)の大きさは24 (= 3 × 8),VDPによる仮想空間(灰色+網掛け)の大きさは42 (=
24+18)である.この例では,VDIPによる仮想センサ空間のカバー率は50% (= 24/48×100), VDPによる仮想センサ空間のカバー率は87.5%となる.
1週間分の通信を観測して得られた,/16ネットワークにおけるVDIPとVDPの仮想センサ 空間の大きさ9を表4.3に示す.ただし,IPアドレスの第1,第2オクテットは[masked]と記し て隠してある.本実験では,VDIPは観測対象の/16ネットワーク空間の最大97.94%をカバー するのに対し,VDPは観測対象の/16ネットワーク空間の最大99.98%,ほぼ全空間をカバー できている.すなわち,本実験ではVDPはVDIPによる仮想センサ空間を2.04ポイント拡張 している.
表 4.3: VDIP空間とVDP空間の大きさ ([masked].0.0/16)
avg avg ifn0 max
#VDIPs 4,033,882,535 4,183,716,015 4,206,428,160
#VDPs 4,139,697,080 4,293,460,908 4,294,027,405
%VDIPs 93.92% 97.41% 97.94%
%VDPs 96.38% 99.96% 99.98%
本実験で観測を行った/16ネットワークは,未使用IPアドレスが多く,ネットワーク空間の かなりのIPアドレスがVDIPとして検出される(第4.6節)ため,VDIPでもかなりの空間を カバーできている.
しかし,ほとんどのIPアドレスが使用されていて,あまりVDIPが検出されないネット ワークでは,VDPがVDIPの仮想センサ空間を大きく拡張することになり,VDPの有用性が 増す.そのようなネットワークの例として,[masked].0.0/16の一部である[masked].0.0/20と [masked].80.0/20のそれぞれにおけるVDIP空間とVDP空間の大きさを,表4.4と表4.5に示 す10.[masked].0.0/20では,VDPはVDIPによる仮想センサ空間を6.84ポイント拡張してい る.また,[masked].80.0/20では,VDPはVDIPによる仮想センサ空間を4.19ポイント拡張
9VDIPの仮想センサ空間の大きさは,VDIP数×216(ポート番号の数)となる.
10IPアドレスの第1,第2オクテットは[masked]と記して隠してある.
第 4 章 評価実験
している.
表 4.4: VDIP空間とVDP空間の大きさ ([masked].0.0/20)
avg avg ifn0 max
#VDIPs 239,471,418 248,366,282 249,561,088
#VDPs 258,244,959 267,837,133 267,924,782
%VDIPs 89.21% 92.52% 92.97%
%VDPs 96.20% 99.78% 99.81%
表 4.5: VDIP空間とVDP空間の大きさ ([masked].80.0/20)
avg avg ifn0 max
#VDIPs 244,134,493 253,202,561 257,097,728
#VDPs 258,668,691 268,276,614 268,343,438
%VDIPs 90.95% 94.33% 95.78%
%VDPs 96.36% 99.94% 99.97%
4.6 考察: VDIP が多い理由
本節では,観測対象のネットワーク(早稲田大学のネットワーク)でVDIPが直感よりも多く 検出される理由を考察する.観測対象のネットワークは5万人以上の学生が使用しているにもか かわらず,65,536個中およそ63,000個以上のIPアドレスがVDIPとして検出される.すなわ ち,このネットワークで同時に使用されているIPアドレスは3,000個以下である.
グローバルIPアドレスが割り当てられたホストであっても,申請や許可がない場合はセキュ リティを考慮して,組織内のみでしか通信ができないように,ゲートウェイでフィルタリングを 行っていることがある [71].本研究では,ゲートウェイのWAN側のインタフェースにおいてミ ラーリングを行っているため,学内ネットワークでのみで使用されるIPアドレスを送信元とす る外向きの通信は観測されない.また,学外のネットワークへ通信するためには,プロキシサー バを経由しなければならないように設定されていることがある.NATが使用されていることも ある.そのため,仮想センサ検出アルゴリズムは,組織内で使用されているIPアドレスであっ ても,VDIPとして検出する.これらのIPアドレスに対して,組織の外側から正規のパケット が届くことはないため,仮想センサとして利用できる.すなわち,誤検出ではない.これが,
VDIPが直感よりも多く検出される理由である.
第 4 章 評価実験
(visible) ホスト11に割り当てられていることが知られている [18].65,536個の3.6%はおよそ
2,460個なので,本研究で検出された使用中のIPアドレスの数とおおよそ一致する.よって,本
研究で検出されたVDIP数は妥当である.
11pingに応答するホスト
第 5 章 関連研究
本研究は,ダークネットに関するさまざまな研究の基礎となる.本章では,ダークネットを 用いた研究を紹介して,本研究がそれらの研究に対してどのように貢献できるか説明する.第 5.1節では本研究の基礎となるVDIPと類似の研究,第5.2節では本研究の目的であるダークネッ ト空間の拡張を行っている研究,第5.3節では本研究の応用が考えられるダークネットを用いた 観測について述べる.
5.1 未使用 IP アドレスの検出
本研究で使用した下田晃弘ら [40]のVDIP検出アルゴリズム以外にも,未使用IPアドレスを 検出する研究やツールが存在する.本節では,これらの研究やツールを概観し,本研究の基礎と なるVDIP検出アルゴリズムが類似の研究に対して持つ優位性を説明することで,本研究の有用 性を示す.
5.1.1 受動的な検出法
今間俊介ら [27]は,ネットワーク内の未使用IPアドレスを自動抽出しながら,それらのIP アドレス宛の通信を収集するブリッジを提案している.この観測用ブリッジはARPを用いて未 使用IPアドレスの検出を行う.このブリッジはルータの内側に置かれる.そのルータから観測 ネットワーク内のIPアドレスに対してARPリクエストが送信されたことを検知すると,その IPアドレスの使用状況を確認する.まず,そのIPアドレスの使用状況がキャッシュされている か確認する.キャッシュされていなければ,このブリッジでもARPを用いてそのホストの生存 確認を行う.応答がない場合は,観測用ブリッジのMACアドレスを載せたARP応答をルータ に送信することで,未使用IPアドレス宛の通信を収集できるようにする.
今間らの手法は,ARPを利用しているため観測用ブリッジをルータの内側に配置しなくては
第 5 章 関連研究
め,ルータがいくつも配置されているネットワークには,今間らの手法は不向きである.一方,
本研究が使用しているVDIP検出アルゴリズムは,組織のネットワークのゲートウェイで観測を 行うだけでネットワーク全体の未使用IPアドレスを検出できる.そのため,VDIP検出アルゴ リズムは,今間らのパケット観測用ブリッジを用いた未使用IPアドレス検出法よりも適用範囲 が広い.
また,観測用ブリッジが送信した偽のARP応答がキャッシュされてしまうと,後にそのIP アドレスが設定されたマシンが稼働を始めても,キャッシュが消滅するまでそのマシンにアクセ スできないという問題が指摘されている.この問題への対策として,ARPだけでなくDNSの 逆引きも併用してホストの生存確認を行う手法を今間らは提案している.しかし,生存確認時点 で稼働しているホストを検出できる精度が向上する可能性はあるものの,キャッシュが有効な間 は新たに稼働を始めたホストに対応できない問題は残る.一方,VDIP検出アルゴリズムは新た に稼働を始めたホストにも対応することができる.
5.1.2 能動的な検出法
Nmap [66]などのネットワークスキャンツールを用いることで,ネットワーク内で稼働してい
るホスト(使用されているIPアドレス)を高速に検出できる1.しかし,このような能動的な検 出法では大量にパケットを送信するため,ネットワークに負荷をかける.また,スキャンツール の通信が攻撃と見なされて,侵入検知システムで検知されたり,ファイアウォールでブロックさ れたりする恐れがある.しかも,ホストの稼働状況は刻々と変化するため,定期的にスキャンを 行う必要がある.そのため,ますますネットワークへの負荷が大きくなり,攻撃と見なされる可 能性も高まる.
一方,本研究が使用しているVDIP検出アルゴリズムは,ネットワークの観測による受動的な 検出法である.そのため,ネットワークに負荷をかけず,攻撃と見なされることもない.また,
常にネットワークを観測しているため,ホストの稼働状況の変化(新しく使用されるようになっ たIPアドレスや使用されなくなったIPアドレス)に即座に対応できるという利点がある.
5.2 ダークネット空間の拡張
本研究では,VDIP検出アルゴリズムのパラメータ調整やVDPの導入によって仮想センサ空 間を拡張している(第3.4節)が,観測用の空間を拡張する研究は他にも存在する.本節では,
これらの研究を紹介して,提案手法の優位性を述べることで,本研究の有用性を示す.
1使用されているIPアドレスが検出できれば,検出されなかったIPアドレスはすべて未使用IPアドレスと見な せる.すなわち,使用されているIPアドレスの検出と,未使用IPアドレスの検出は等価である.
第 5 章 関連研究
5.2.1 Darkports
David Whyteら [51]は,稼働中のホストの未使用ポート番号空間をDarkportsとしてネッ トワーク観測に用いている.Darkportsは,未使用ポート番号をネットワーク観測に用いる点 で,本研究のVDPと類似している.しかし,Darkportsは稼働中のホストの未使用ポート番号 だけを観測に用いる.すなわち,観測に用いられるのは図2.2(b)の網掛けの空間だけである.一 方,VDPでは,稼働中のホストの未使用ポート番号(網掛けの空間)に加え,稼働していない ホストの未使用ポート番号(塗りつぶされている空間)も観測に用いられる.そのため,VDP
はDarkportsよりも大規模な空間を観測できる.
5.2.2 DarkFlow
下田晃弘ら [45]は,TCP SYNパケットに対してSYN/ACKパケットが返らないフローの送 信元に対してハニーポットから遅延応答を返すことで,そのフローを仮想センサとして利用す る方法を提案している.下田らはこのフローをDarkFlowと呼んでいる.仮想センサ空間全体の IPアドレスやポート番号を保持し続ける必要があるVDIP/VDPと異なり,DarkFlowは実際 に異常な通信が届いた空間の情報2を一時的に保持するだけでよいため,情報を保持するために 必要なメモリの使用量やリストの操作時間を抑えられる利点がある.そのため,IPv6アドレス 空間のような,空間は広大であるが攻撃が届く範囲は広くない場合に極めて有効な手法である.
しかし,遅延応答までに待つべき時間は,パケットの送信元や宛先のホストのネットワークプ ロトコルスタックの実装や伝送遅延に依存してしまう問題がある.このため,「平均」から大き く外れるネットワークプロトコルスタックの実装を持つホストや通信経路が混在していると,
DarkFlowは例外処理を必要とする.一方,本研究で検出される仮想センサVDIP/VDPは,こ
れらの影響を受けない.ホストのネットワークプロトコルスタックの実装や通信経路を制御する ことは困難なので,それらに依存しないVDIP/VDP検出アルゴリズムの方が,DarkFlowより も多様な攻撃を観測できる.
そして,DarkFlowはTCPパケットのみを対象としているが,UDPを用いた攻撃(例:
TFTP)やICMPを用いたスキャンも存在する.そのため,TCP, UDP, ICMPすべてのパケッ トを観測可能なVDIP/VDPに優位性があり,それらの技術を拡張する本研究は有用である.
2正確には,フローの情報が必要なので,送信元の情報も含まれる.すなわち,送信元IPアドレス,宛先IPア ドレス、送信元ポート番号,宛先ポート番号である.DarkFlowでは,TCPパケットのみを対象(UDP, ICMPパ ケットは対象外)としているため,トランスポートプロトコルの種類(TCP, UDP, ICMP)は保持する必要がない.