i-path ルータのフロー情報を用いた DoS 攻撃検知法 情報理工学専攻後藤研究室 5108B096-1 野上晋平 1
研究背景 従来のインターネット エンドノードからネットワーク内部の情報が得られない (ICMP を用いて間接的に得る ) ネットワークの多様化情報開示を求める声の高まり 2
研究概要 本研究ではこれまで注目されてないルータが持つ情報を活用する ルータを通過するフロー情報を用いて DoS 攻撃を検知 複数のルータを使用して DoS 攻撃の送信元を絞り込む 3
i-path ルータ 産業技術総合研究所の小林克志氏が開発 ネットワーク内部の可視化が目的 エンドノードが通信経路の情報を取得できる 取得できる情報の例 ネットワーク帯域 輻輳状態 遅延 パケットロス 4
可視化の例 30% 1G 20% 500M 60% 10G 40% 3G 40% 2G 30% 1G 60% 2G 1% 100M 50% 1G 30% 700M 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
SYN Flood 攻撃 DoS 攻撃の検知法 内部状態が SYN_RECV のフロー数で判定 Connection Flood 攻撃 内部状態が ESTABLISHED のフロー数で判定 UDP Flood 攻撃 UDP のフロー数で判定 ICMP Flood 攻撃 ICMP のフロー数で判定 SYN フラグと ACK フラグが立っている TCP コネクションが確立している 9
実験環境 Polling 観測用ホスト 10
実験 DoS 攻撃 通常のトラフィック 各ルータで DoS 攻撃の検知を行う 11
実験結果 (SYN Flood) 12
実験結果 (SYN Flood) $./detector output01.csv 02:50:04: Router3: SYN Flood Router4: SYN Flood 02:50:05: Router3: SYN Flood Router4: SYN Flood 02:50:06: Router3: SYN Flood Router4: SYN Flood 02:50:07: Router3: SYN Flood Router4: SYN Flood 13
実験結果 (Connection Flood) 14
実験結果 (Connection Flood) $./detector output02.csv 20:45:59: Router3: Connection Flood Router4: Connection Flood 20:46:04: Router3: Connection Flood Router4: Connection Flood 20:46:07: Router3: Connection Flood Router4: Connection Flood 20:46:08: Router3: Connection Flood SNMP でデータが取得できなかった Router4: Invalid Data 15
実験結果 (UDP Flood) 16
実験結果 (UDP Flood) $./detector output03.csv 21:23:46: Router3: UDP Flood Router4: UDP Flood 21:23:50: Router3: UDP Flood Router4: UDP Flood 21:23:51: Router3: UDP Flood Router4: UDP Flood 21:23:52: Router3: UDP Flood Router4: UDP Flood 17
実験結果 (ICMP Flood) 18
実験結果 (ICMP Flood) $./detector output04.csv 21:49:15: Router3: ICMP Flood Router4: ICMP Flood 21:49:16: Router3: ICMP Flood Router4: ICMP Flood 21:49:17: Router3: ICMP Flood Router4: ICMP Flood 21:49:18: Router3: ICMP Flood Router4: 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