セッション追跡型IDSの設計と実装 The Design and Implementation of Session Tracking IDS mizutani@sing (B2) 親:true 背景 「侵入検知システム(IDS)は、コストがかかる非 効率的なセキュリティ対策である。2005年ま でにIDSの導入は廃れるだろう」 「24時間7日間体制で監視の必要があるため、 情報システム担当部門の負担が大きい」 (“Information Security Hype Cycle“ Gartner [U.S.] ) 背景 IDS (Network Based Intrusion Detection System) 攻撃トラフィックのみでアラートを検知 既存IDSのアラートの内訳 攻撃が行われ,成功したアラート. 攻撃が行われ,失敗したアラート. 誤検知 (Positive False) 成功,失敗の判定は行わない 問題点 全てのアラートの成功・失敗を調査 リスクの大小に関わらず調査 IDSの運用には多大なコストが必要 インシデントレスポンスの遅れ インシデントの見逃し 解決手法 セッションの追跡 Attackerの攻撃Traffic Targetの応答Traffic 攻撃の発見&攻撃成功・失敗判別 Ex) Backdoor “root.exe” Nimda Warmが設置 HTTPで ”GET /root.exe” とすることで第三者 が侵入可能 アラート検知 (既存のIDS) GET /root.exe GET /root.exe Target-A Attacker Alert Alert Normal IDS Target-B アラート検知 (セッション追跡IDS) GET /root.exe 200 OK GET /root.exe Target-A Attacker Exploded ! 404 Not Found Failur e Session Tracking IDS Target-B 得られる結果 攻撃の成功を検知 管理者に即座に通知 成功・失敗確認の手間を省く IDSの運用コストを削減 設計(想定される環境) IDS Segment α Mirroring Segment β BackBone Router Segment γ 設計 (IDS Works) Packet Capture Search Flow Not Found Detected Add Flow Search Unit Signature Search Signature Not Found Detected Add Unit Signature 設計(セッション管理機能) 内部ネットワークのノードをキーにして検索 Ex) 198.120.100.1 -> 203.178.143.109 Internal Network Segment Internal Network Nodes 203.178.139.192/26 203.178.143.0 External Network Nodes 203.196.192.168 203.178.143.1 192.120.100.1 203.178.143.0/25 203.178.143.109 203.178.143.127 203.178.143.128/25 203.178.143.128 211.10.16.64 Session Information - Unit Signature - Timestamp 設計 (セッション追跡) Normal Signature Unit Signature Packet Detected Pattern1 動的に生成 Packet Pattern2 Session Detected Packet Pattern2 Pattern3 Packet Pattern3 Normal SignatureからPattern1にマッチするものを検索 Pattern1を検知後,Pattern2から動的にSignatureを生 成(Unit Signature) 以後,当該セッションではUnit Signatureを検索 設計(シグネチャ) tcp IN (title:“Root.exe attempt”; dport=80; flags=AP; payload=“root.exe”;) =[out:7]> (flow=OUT; sport=80; flags=AP; payload!="404";); 基本設定 $Protocol = {tcp, udp, icmp, ip} $Direction = {IN, OUT} 設計(シグネチャ) tcp IN (title:“Root.exe attempt”; dport=80; flags=AP; payload=“root.exe”;) =[out:7]> (flow=OUT; sport=80; flags=AP; payload!="404";); Packet Pattern 複数設定可能 title : アラートの名称 dport / sport : Distenation Port / Source Port flags : TCP Flags payload : TCP Payload or UDP Payload flow : pattern2以降の方向 設計(シグネチャ) tcp IN (title:“Root.exe attempt”; dport=80; flags=AP; payload=“root.exe”;) =[out:7]> (flow=OUT; sport=80; flags=AP; payload!="404";); Keeping Condition 当該セッション中でー out : 外部ネットワーク宛のパケットをN個発見 in : 内部ネットワーク宛のパケットをN個発見 time : N秒経過(タイムアウト) 実装 OS RedHat Linux 9.0 (kernel 2.4.20-8) Debian GNU/Linux 2.3 testing (kernel 2.2.21) C言語 libpcap http://www.sfc.wide.ad.jp/~mizutani/term20 03s/witch-0.0.2.tar.gz デモ root.exeを利用した侵入の例 今後の課題1 さらに高速化 シグネチャの検索方法 データ構造 / flow statusの持ち方 アラート機能の充実 リモートマネージャーへの出力 DBへのログ出力 メールでの通知 今後の課題2 シグネチャの設定項目の追加 Payload offset IP Protocol, IP Datagram size... etc. シグネチャ数の充実 Snortのルール等参考に RG-NETでの実運用 秋学期始まるまで目安に
© Copyright 2024 ExpyDoc