320 likes | 432 Views
i -Path ルータのフロー情報を用いた DoS 攻撃検知法. 情報理工学専攻 後藤研究室 5108B096-1 野上晋平. 研究背景. 従来のインターネット エンドノードから ネットワーク内部 の情報が 得られない( ICMP を用いて間接的に得る ). ネットワークの多様化 情報開示を求める声の高まり. ネットワークの可視化. 研究概要. 本研究ではこれまで注目されてない ルータ が持つ情報を活用する. ルータを通過するフロー情報 を用いて DoS 攻撃を検知 複数のルータ を使用して DoS 攻撃の 送信元を絞り込む. i -Path ルータ.
E N D
i-Pathルータのフロー情報を用いたDoS攻撃検知法i-Pathルータのフロー情報を用いたDoS攻撃検知法 情報理工学専攻 後藤研究室 5108B096-1 野上晋平
研究背景 • 従来のインターネット • エンドノードからネットワーク内部の情報が 得られない(ICMPを用いて間接的に得る) ネットワークの多様化 情報開示を求める声の高まり ネットワークの可視化
研究概要 本研究ではこれまで注目されてない ルータが持つ情報を活用する • ルータを通過するフロー情報を用いて DoS攻撃を検知 • 複数のルータを使用してDoS攻撃の 送信元を絞り込む
i-Pathルータ • 産業技術総合研究所の小林克志氏が開発 • ネットワーク内部の可視化が目的 • エンドノードが通信経路の情報を取得できる • 取得できる情報の例 • ネットワーク帯域 • 輻輳状態 • 遅延 • パケットロス
可視化の例 30% 1G 20% 500M 60% 10G 40% 3G 40% 2G 30% 1G 60% 2G 1% 100M 50% 1G 30% 700M 40% 2G
SHIMヘッダ • IPヘッダとTCP/UDPヘッダの間にルータの持つ情報を書き込むSHIMヘッダを挿入 イーサネットヘッダ IP ヘッダ TCP/ UDP ヘッダ データ イーサネット トレイラ イーサネットヘッダ IP ヘッダ SHIMヘッダ TCP/ UDP ヘッダ データ イーサネット トレイラ IPヘッダとTCP/UDPヘッダの間にSHIMヘッダを挿入
DoS攻撃 • サービス不能(Denial of Service)攻撃 • 大量のパケットを送りつけ、サーバの資源(CPU、メモリなど)やネットワーク帯域を占有してサービスを妨害する • DoS攻撃の種類 • SYN Flood(TCP), Connection Flood(TCP), ・・・ • UDP Flood, ICMP Flood, ・・・ • 分散型(DDoS)、反射型(DRDoS)
実証実験 i-Pathルータが実現する機能を確認する • i-Pathルータの機能をLinuxで実装 • nf_conntrackでフロー情報を取得 • MIB(SNMP)に情報を書き込む • 観測用ホストがSNMPで得たフロー情報を もとにDoS攻撃の検知を行う • 定常状態から外れた場合に検知 • 複数のルータからDoS攻撃の経路を絞り込む ルータでの処理
DoS攻撃の検知法 SYNフラグとACKフラグが立っている • SYN Flood攻撃 • 内部状態がSYN_RECVのフロー数で判定 • Connection Flood攻撃 • 内部状態がESTABLISHEDのフロー数で判定 • UDP Flood攻撃 • UDPのフロー数で判定 • ICMP Flood攻撃 • ICMPのフロー数で判定 TCPコネクションが 確立している
実験環境 Polling 観測用ホスト
実験 DoS攻撃 通常のトラフィック 各ルータでDoS攻撃の検知を行う
実験結果(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
実験結果(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 Router4: Invalid Data SNMPでデータが取得できなかった
実験結果(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
実験結果(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
まとめ • ルータのフロー情報を用いてDoS攻撃の検知を行った • 複数のルータを監視することでDoS攻撃の経路を絞り込めた
End-to-End原理 • パケットの再送やQoSなどの複雑な機能は可能な限りエンドノードで行うべきだという考え • インターネットの基本的な設計原理 • TCPにおける再送制御などがこれにあたる
i-PathルータとSNMP • i-Pathルータ • End-to-End原理にもとづいて、エンドノードへの情報提供を目的とする • ルータで情報が開示されれば、どのホストでも等しく情報が得られる • SNMP • Managerにより、ホストの集中管理を行う • 外部のホストのアクセスは制限される • 情報の取得に加えて、一部の設定も行える
ネットワークの多様化 • ブロードバンドの普及 • モバイル機器によるインターネットの利用 • P2P など新たな形態のネットワーク →多様化と格差の拡大 • ネットワークアプリケーションの最適化、 障害時の原因究明などで困難に直面
情報開示を求める声 • ネットワーク中立性の観点から情報開示を求める声が高まっている • 米連邦通信委員会(FCC) • 規則の制定を目指す • 「ISP は正当な理由があればサービスの規制を行えるが、その場合はネットワークの管理情報を開示しなければならない」
nf_conntrack • フローを追跡して情報を保持する (Linuxの持つConnection Tracking機能) • 通信中のフローについての情報 • プロトコル • コネクションの状態、数 • 送信元と宛先のIPアドレス・ポート番号 • パケット数、トラフィック量
例: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 コネクションの確立状態
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)
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
i-Pathプロジェクト • 情報通信研究機構の委託を受け、産業技術総合研究所、三菱総合研究所、早稲田大学後藤滋樹研究室の共同研究 • FreeBSDのカーネルをSIRENSに入れ替え実装 • i-Path Project: http://i-path.goto.info.waseda.ac.jp/trac/i-Path/
DoS攻撃の説明 • SYN Flood攻撃 • TCP で接続の最初に行われるスリーウェイハンドシェイクにおいて、攻撃者が接続要求(SYNパケット)を大量に送りつける攻撃 • Connection Flood攻撃 • TCP による接続を大量に確立させる攻撃 • UDP Flood攻撃 • UDP パケットを大量に送りつける攻撃 • ICMP Flood攻撃 • ICMP echo request パケットを大量に送りつける攻撃
今後の課題 • 実運用のトラフィックに近い環境で評価を行い説得力を高める • 今回使用しなかったパラメータを使用して 検知の精度を高める