情報処理学会創立 50周年記念(第 72回)全国大会 セッション名:情報爆発時代における分散処理と運用技術 講演番号:2ZP-4 会場:ZP会場 3月9日(火)15:30~17:30 i-Pathルータのフロー情報を用いた DoS攻撃検知法 野上晋平 下田晃弘 後藤滋樹 早稲田大学 基幹理工学研究科 情報理工学専攻 1 研究背景 従来のインターネット エンドノードからネットワーク内部の情報が 直接得られない ネットワークの多様化 情報開示を求める声の高まり 2 ネットワークの多様化 ネットワークの利用形態が多様化 ブロードバンド モバイル P2P ネットワークアプリケーションの最適化、 障害時の原因究明などで困難に直面 3 情報開示を求める声 ネットワーク中立性の観点から情報開示を 求める声が高まっている 米連邦通信委員会(FCC) 情報開示の重要性を指摘 「ISP は正当な理由があればサービスの規制 を行えるが、その場合はネットワークの管理情 報を開示しなければならない」 4 研究概要 本研究ではこれまで注目されてない ルータが持つ情報を活用する ルータを通過するフロー情報を用いて DoS攻撃を検知 複数のルータを使用してDoS攻撃の 送信元を識別する ※フロー:宛先と送信元のIPアドレス、ポート番号が 同一のパケット 5 i-Pathルータ 小林克志(産業技術総合研究所)が開発 FreeBSDのカーネルをSIRENSに入れ替え実装 ネットワーク内部の可視化が目的 エンドノードが通信経路の情報を取得できる 取得できる情報の例 ネットワーク帯域、輻輳状態、遅延、パケットロス 6 可視化の例 可用帯域 [%] ネットワーク帯域 [bps] 32% 1G 33% 1G 17% 500M 59% 2G 68% 10G 2% 100M 43% 3G 48% 1G 35% 700M 34% 2G 41% 2G 7 SHIMヘッダ IPヘッダとTCP/UDPヘッダの間にルータの 持つ情報を書き込むSHIMヘッダを挿入 イーサ ネット ヘッダ IP ヘッダ TCP/ UDP ヘッダ イーサ ネット ヘッダ IP ヘッダ SHIM ヘッダ データ TCP/ UDP ヘッダ データ イーサ ネット トレイラ イーサ ネット トレイラ IPヘッダとTCP/UDPヘッダの間にSHIMヘッダを挿入 8 DoS攻撃 サービス不能(Denial of Service)攻撃 大量のパケットを送りつけ、サーバの資源やネッ トワーク帯域を占有してサービスを妨害する 攻撃の送信元の識別が困難 DoS攻撃の種類 SYN Flood(TCP), Connection Flood(TCP), ・・・ UDP Flood, ICMP Flood, ・・・ 9 従来のDoS攻撃の検知 ? ? DoS攻撃の経路情報が得られない 10 実証実験 i-Pathルータが実現する機能を確認する i-Pathルータの機能をLinuxで実装 1. nf_conntrackでフロー情報を取得 ルータでの 処理 2. MIB(SNMP)に情報を書き込む 3. ルータを観測して得られたフロー情報をもと にDoS攻撃を検知(検知プログラム) 定常状態から外れた場合に検知 複数のルータからDoS攻撃の経路を識別 11 実証実験 DoS攻撃 通常のトラフィック 各ルータで同時にDoS攻撃の検知を行う 12 SYN Flood攻撃 SYN Flood攻撃とは TCP 接続のスリーウェイハンドシェイクにおいて、 接続要求(SYNパケット)を大量に送りつける攻撃 送信元アドレスの偽装が容易 検知法 内部状態がSYN_RECVのフロー数で判定 SYNフラグとACKフラグ が立っている 13 実験結果(SYN Flood) フロー数 フロー数 フロー数 フロー数 14 実験結果(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 15 Connection Flood攻撃 Connection Flood攻撃とは TCP による接続を大量に確立させる攻撃 検知法 内部状態がESTABLISHEDのフロー数で判定 TCPコネクションが 確立している 16 実験結果(Connection Flood) フロー数 フロー数 フロー数 フロー数 17 実験結果(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 18 UDP Flood攻撃 UDP Flood攻撃とは UDP パケットを大量に送りつける攻撃 送信元アドレスの偽装が容易 検知法 UDPのフロー数で判定 19 実験結果(UDP Flood) フロー数 フロー数 フロー数 フロー数 20 実験結果(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 21 ICMP Flood攻撃 ICMP Flood攻撃とは ICMP パケットを大量に送りつける攻撃 送信元アドレスの偽装が容易 検知法 ICMPのフロー数で判定 22 実験結果(ICMP Flood) フロー数 フロー数 フロー数 フロー数 23 実験結果(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 24 まとめ ネットワーク可視化の重要性が高まる中で、 ルータが持つ情報に着目した 実証実験でルータのフロー情報を用いて DoS攻撃の検知を行った 複数のルータを監視することでDoS攻撃の 経路を識別できる 25 ご清聴ありがとうございました 26 i-Pathプロジェクト 情報通信研究機構の委託を受け、産業技術 総合研究所、早稲田大学後藤滋樹研究室の 共同研究 FreeBSDのカーネルをSIRENSに 入れ替え実装 i-Path Project: http://i-path.goto.info.waseda.ac.jp/trac/i-Path/ 27 実験環境 Polling 観測用ホスト 28 i-PathルータとSNMP i-Pathルータ End-to-End原理にもとづいて、エンドノードへの 情報提供を目的とする ルータで情報が開示されれば、どのホストでも 等しく情報が得られる SNMP Managerにより、ホストの集中管理を行う 外部のホストのアクセスは制限される 情報の取得に加えて、一部の設定も行える 29 End-to-End原理 パケットの再送やQoS などの複雑な機能は可 能な限りエンドノードで行うべきだという考え インターネットの基本的な設計原理 TCPにおける再送制御などがこれにあたる 30 nf_conntrack フローを追跡して情報を保持する (Linuxの持つConnection Tracking機能) 通信中のフローについての情報 プロトコル コネクションの状態、数 送信元と宛先のIPアドレス・ポート番号 パケット数、トラフィック量 31 例: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 32 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) 33 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 34 今後の課題 実運用のトラフィックに近い環境で評価を 行い説得力を高める 今回使用しなかったパラメータを使用して 検知の精度を高める 35 DoS攻撃の種類 SYN Flood攻撃 TCP で接続の最初に行われるスリーウェイハンドシェイクにおいて、攻 撃者が接続要求(SYNパケット)を大量に送りつける攻撃 Connection Flood攻撃 TCP による接続を大量に確立させる攻撃 UDP Flood攻撃 送信元アドレスの 偽装が可能 UDP パケットを大量に送りつける攻撃 ICMP Flood攻撃 ICMP echo request パケットを大量に送りつける攻撃 36 DoS攻撃の検知法 SYN Flood攻撃 SYNフラグとACKフラグ が立っている 内部状態がSYN_RECVのフロー数で判定 Connection Flood攻撃 内部状態がESTABLISHEDのフロー数で判定 UDP Flood攻撃 UDPのフロー数で判定 TCPコネクションが 確立している ICMP Flood攻撃 ICMPのフロー数で判定 37
© Copyright 2024 ExpyDoc