ネットワークの可視化

i-Pathルータのフロー情報を用いた
DoS攻撃検知法
情報理工学専攻 後藤研究室
5108B096-1 野上晋平
1
研究背景
従来のインターネット
エンドノードからネットワーク内部の情報が
得られない(ICMPを用いて間接的に得る)
ネットワークの多様化
情報開示を求める声の高まり
2
研究概要
本研究ではこれまで注目されてない
ルータが持つ情報を活用する
ルータを通過するフロー情報を用いて
DoS攻撃を検知
複数のルータを使用してDoS攻撃の
送信元を絞り込む
3
i-Pathルータ
産業技術総合研究所の小林克志氏が開発
ネットワーク内部の可視化が目的
エンドノードが通信経路の情報を取得できる
取得できる情報の例
ネットワーク帯域
輻輳状態
遅延
パケットロス
4
可視化の例
30%
1G
30%
1G
20%
500M
60%
2G
60%
10G
1%
100M
40%
3G
50%
1G
30%
700M
40%
2G
40%
2G
5
SHIMヘッダ
IPヘッダとTCP/UDPヘッダの間にルータの
持つ情報を書き込むSHIMヘッダを挿入
イーサ
ネット
ヘッダ
IP
ヘッダ
TCP/
UDP
ヘッダ
イーサ
ネット
ヘッダ
IP
ヘッダ
SHIM
ヘッダ
データ
TCP/
UDP
ヘッダ
データ
イーサ
ネット
トレイラ
イーサ
ネット
トレイラ
IPヘッダとTCP/UDPヘッダの間にSHIMヘッダを挿入
6
DoS攻撃
サービス不能(Denial of Service)攻撃
大量のパケットを送りつけ、サーバの資源
(CPU、メモリなど)やネットワーク帯域を占有
してサービスを妨害する
DoS攻撃の種類
SYN Flood(TCP), Connection Flood(TCP), ・・・
UDP Flood, ICMP Flood, ・・・
分散型(DDoS)、反射型(DRDoS)
7
実証実験
i-Pathルータが実現する機能を確認する
 i-Pathルータの機能をLinuxで実装
1. nf_conntrackでフロー情報を取得
ルータでの
処理
2. MIB(SNMP)に情報を書き込む
3. 観測用ホストがSNMPで得たフロー情報を
もとにDoS攻撃の検知を行う
定常状態から外れた場合に検知
複数のルータからDoS攻撃の経路を絞り込む
8
DoS攻撃の検知法
SYN Flood攻撃
SYNフラグとACKフラグ
が立っている
内部状態がSYN_RECVのフロー数で判定
Connection Flood攻撃
内部状態がESTABLISHEDのフロー数で判定
UDP Flood攻撃
UDPのフロー数で判定
TCPコネクションが
確立している
ICMP Flood攻撃
ICMPのフロー数で判定
9
実験環境
Polling
観測用ホスト
10
実験
DoS攻撃
通常のトラフィック
各ルータでDoS攻撃の検知を行う
11
実験結果(SYN Flood)
12
実験結果(SYN Flood)
$ ./detector
02:50:04:
Router3:
Router4:
02:50:05:
Router3:
Router4:
02:50:06:
Router3:
Router4:
02:50:07:
Router3:
Router4:
output01.csv
SYN Flood
SYN Flood
SYN Flood
SYN Flood
SYN Flood
SYN Flood
SYN Flood
SYN Flood
13
実験結果(Connection Flood)
14
実験結果(Connection Flood)
$ ./detector
20:45:59:
Router3:
Router4:
20:46:04:
Router3:
Router4:
20:46:07:
Router3:
Router4:
20:46:08:
Router3:
Router4:
output02.csv
Connection Flood
Connection Flood
Connection Flood
Connection Flood
Connection Flood
Connection Flood
Connection Flood
Invalid Data
SNMPでデータが取得
できなかった
15
実験結果(UDP Flood)
16
実験結果(UDP Flood)
$ ./detector
21:23:46:
Router3:
Router4:
21:23:50:
Router3:
Router4:
21:23:51:
Router3:
Router4:
21:23:52:
Router3:
Router4:
output03.csv
UDP Flood
UDP Flood
UDP Flood
UDP Flood
UDP Flood
UDP Flood
UDP Flood
UDP Flood
17
実験結果(ICMP Flood)
18
実験結果(ICMP Flood)
$ ./detector
21:49:15:
Router3:
Router4:
21:49:16:
Router3:
Router4:
21:49:17:
Router3:
Router4:
21:49:18:
Router3:
Router4:
output04.csv
ICMP Flood
ICMP Flood
ICMP Flood
ICMP Flood
ICMP Flood
ICMP Flood
ICMP Flood
ICMP Flood
19
まとめ
ルータのフロー情報を用いてDoS攻撃の
検知を行った
複数のルータを監視することでDoS攻撃の
経路を絞り込めた
20
ご清聴ありがとうございました
21
End-to-End原理
パケットの再送やQoS などの複雑な機能は可
能な限りエンドノードで行うべきだという考え
インターネットの基本的な設計原理
TCPにおける再送制御などがこれにあたる
22
i-PathルータとSNMP
i-Pathルータ
End-to-End原理にもとづいて、エンドノードへの
情報提供を目的とする
ルータで情報が開示されれば、どのホストでも
等しく情報が得られる
SNMP
Managerにより、ホストの集中管理を行う
外部のホストのアクセスは制限される
情報の取得に加えて、一部の設定も行える
23
ネットワークの多様化
ブロードバンドの普及
モバイル機器によるインターネットの利用
P2P など新たな形態のネットワーク
→多様化と格差の拡大
ネットワークアプリケーションの最適化、
障害時の原因究明などで困難に直面
24
情報開示を求める声
ネットワーク中立性の観点から情報開示を
求める声が高まっている
米連邦通信委員会(FCC)
規則の制定を目指す
「ISP は正当な理由があればサービスの規制
を行えるが、その場合はネットワークの管理情
報を開示しなければならない」
25
nf_conntrack
フローを追跡して情報を保持する
(Linuxの持つConnection Tracking機能)
通信中のフローについての情報
プロトコル
コネクションの状態、数
送信元と宛先のIPアドレス・ポート番号
パケット数、トラフィック量
26
例:nf_conntrackの情報
内部状態
ipv4 2 tcp 6 299 ESTABLISHED
src=192.168.1.2 dst=192.168.2.2
sport=34711 dport=5001
packets=9736 bytes=14373496
src=192.168.2.2 dst=192.168.1.2 コネクションの確立状態
sport=5001 dport=34711
packets=3687 bytes=192812 [ASSURED]
mark=0 secmark=0 use=2
27
nf_conntrack 補足
The meaning of the states are:
* NONE:
initial state
* SYN_SENT: SYN-only packet seen
* SYN_RECV: SYN-ACK packet seen
* ESTABLISHED: ACK packet seen
* FIN_WAIT: FIN packet seen
* CLOSE_WAIT: ACK seen (after FIN)
* LAST_ACK: FIN seen (after FIN)
* TIME_WAIT: last ACK seen
* CLOSE:
closed connection (RST)
28
nf_conntrack 補足
 それぞれのタイムアウト時間
[TCP_CONNTRACK_SYN_SENT]
= 2 MINS
[TCP_CONNTRACK_SYN_RECV]
= 60 SECS
[TCP_CONNTRACK_ESTABLISHED] = 5 DAYS
[TCP_CONNTRACK_FIN_WAIT]= 2 MINS
[TCP_CONNTRACK_CLOSE_WAIT] = 60 SECS
[TCP_CONNTRACK_LAST_ACK]
= 30 SECS
[TCP_CONNTRACK_TIME_WAIT]
= 2 MINS
[TCP_CONNTRACK_CLOSE]
= 10 SECS
[TCP_CONNTRACK_SYN_SENT2]
= 2 MINS
29
i-Pathプロジェクト
情報通信研究機構の委託を受け、産業技術
総合研究所、三菱総合研究所、早稲田大学
後藤滋樹研究室の共同研究
FreeBSDのカーネルをSIRENSに入れ替え実
装
 i-Path Project: http://i-path.goto.info.waseda.ac.jp/trac/i-Path/
30
DoS攻撃の説明
SYN Flood攻撃
 TCP で接続の最初に行われるスリーウェイハンドシェイクにおいて、攻
撃者が接続要求(SYNパケット)を大量に送りつける攻撃
Connection Flood攻撃
 TCP による接続を大量に確立させる攻撃
UDP Flood攻撃
 UDP パケットを大量に送りつける攻撃
ICMP Flood攻撃
 ICMP echo request パケットを大量に送りつける攻撃
31
今後の課題
実運用のトラフィックに近い環境で評価を
行い説得力を高める
今回使用しなかったパラメータを使用して
検知の精度を高める
32