踏み台攻撃だけを抑制できる VMMレベル・パケットフィルタ 数理・計算科学専攻 学籍番号:08M54012 安積 武志 指導教員 千葉 滋 踏み台攻撃への対処 IaaS型サービスを提供するデータセンタにとって 踏み台攻撃は脅威 ユーザの仮想マシン(VM)に侵入されて外部を攻撃 被害者でありながら加害者になってしまう 攻撃を検出したらその通信を即座に制限すべき できるだけ攻撃パケットだけを制限したい サービスの可用性を保つため 外部 ホスト 大量の パケット VM データセンタ ポート スキャン 一般的な対処法 外部のファイアウォールによる通信制限 ポートやIPアドレス単位で通信を制限 踏み台攻撃でない通信まで制限してしまう 制限が大雑把過ぎる ファイア ウォール port:25 外部 ホスト deny ip A port 25 メールサーバ SMTP スキャン port:25 sendmail データセンタ 従来のきめ細かい対処法 サーバ内部のファイア ウォールで通信制限 OS内部のパケット送信元 の情報も利用 踏み台攻撃を行っている プロセスからのパケットの み制限 攻撃者に通信制限を無効 化される恐れ メールサーバ send mail ファイアウォール OS port:25 管理者権限を取られると ルールを削除できる deny ip A port 25 pid 100 データセンタ SMTP スキャン 外部 ホスト port:25 xFilter 仮想マシンモニタ(VMM)内で動作する きめ細かいパケットフィルタ VM VMMにおける通信制限 すべてのパケットを検査できる VMから隔離されているので安全 ゲストOS内の送信元情報を利用 プロセス ゲスト OS パケット 踏み台攻撃のみを抑制できる VMのメモリを解析して取得 deny ip A port 25 pid 100 情報 xFilter VMM システム構成 xFilterは3つのコンポーネントからなる モジュール、IDSを統括 SMTP スキャン xFilterモジュール ゲストOSに合わせたメモリ解析 メールサーバ xFilterコア ゲスト OS パケット送信元プロセスの特定 パケット パケットをルールと照合 踏み台攻撃を検出 攻撃を防ぐルールを追加 情報 xFilter IDS send mail module core IDS 破棄 VMM 送信 xFilterモジュール 送信元プロセスによるパケットフィルタリング 型情報を用いてメモリ解析 デバッグ情報から取得 denyルールに指定された プロセスを探す 対象パケットを送信した ソケットが見つかれば拒否 ポート、IP アドレスを 取得 sock VM socket fdtable files_struct file task_struct pid、uid を取得 メモリ解析 xFilter deny ip A port 25 pid 100 module core IDS VMM フィルタリング結果のキャッシュ 性能向上のためにxFilterコアがフィルタリング結 果をキャッシュ TCPの同一コネクション内のパケットについては結果 が変わらないことを利用 パケットのTCPヘッダのフラグで判断 SYN:コネクションの確立 フィルタリング結果をキャッシュ FIN:コネクションの終了 packet キャッシュからエントリを削除 xFilter core miss module cache hit xFilterモジュールの開発支援 別VMでxFilterモジュールを動かせる デバッグが容易になる クラッシュしても立ち上げ なおすだけで良い フィルタリング性能は低下 プロセス xFilter module ゲストOS 完成したらVMMに入れる ことができる パケット xFilter xFilter core 変更は不要 破棄 送信 VMM 外部IDSを用いた場合の問題点 VMM内のIDSが踏み台攻撃を検出 パケット送信から検出までのタイムラグを小さくできる 外部のIDSで検出するとタイムラグが長い 送信元プロセスを特定できない可能性を減らす ソケットのクローズ プロセスの終了 VM xFilter 外部 IDS core module VMM IDSによる攻撃元の特定 IDSが攻撃を検出したらパケットの送信元を特定 ゲストOSの全てのソケットを調べる xFilterモジュールの機能を利用 攻撃を検出したら送信元特定フェーズに移行 以降は送信元を記録 常に記録すると性能に影響 VM 誤検知を防ぐ xFilter core module IDS VMM フィルタリングルールの自動登録 検出した攻撃を防ぐルールを自動的に追加 新しいルールの生成 検出した攻撃パケット(群)を包括するルールを生成 既存のルールとの統合 類似の攻撃を遮断できるように 必要に応じてルールをまとめる deny ip A port 22 pid 100 deny ip B port 25 pid 100 deny ip A port 22 pid 100 uid 1000 deny ip B port 22 pid 101 uid 1000 deny ip * port * pid 100 deny ip * port 22 pid * uid 1000 実装 xFilterをXen3.4.2に実装 xFilterコア real driver netback xFilter core ドメイン0内に実装 netfront IDS hypervisor call VMM内に実装 IDS domain U プロセス xFilterモジュール ドメイン0のnetbackと 実ドライバの間に実装 ハイパーコールを使って モジュールを呼び出し domain0 stab 送信 xFilter module Xen VMM 実験 ポートスキャンの検出 実験環境 Intel Core i7 860 Xen 3.4.2 (x86_64) domain0:Linux 2.6.18.8, 7Gbyte domainU:Linux 2.6.18.8, 1Gbyte nmapを用いてドメインUからポートスキャン フィルタリングルールの最適化 アプリケーションの性能への影響 ドメインUでApache 2.0 ApacheBenchで50KBのサイズのHTTPファイルを リクエスト xFilterモジュール、IDSそれぞれについて ポートスキャンの検出 nmapを用いて特定ホストへポートスキャン 1つのプロセスで実験 deny ip xx.xx.xx.xx port * pid 16532 ポートスキャンを検出、遮断 ssh等の他のプロセスからの通信は行える VM forkしながら実験 ポートスキャンを検出、遮断 ルールの統合が行われ、以降の攻撃も遮断 別のユーザからの通信は行える ポート ssh スキャン xFilter deny ip xx.xx.xx.xx port * pid 27904 uid 0 deny ip xx.xx.xx.xx port * pid 28281 uid 0 deny ip xx.xx.xx.xx port * pid * uid 0 VMM 送信 メモリ解析時間 メモリ解析を行うハイ パーコールの実行時間 プロセスのリストのみ解析 ソケット情報まで解析 メモリ解析時間(us) 50 40 us 30 20 10 0 100 結果 プロセス数に比例 1プロセスにつき約28ns ソケット数に比例 300 ソケット数 400 500 4000 5000 メモリ解析時間 1ソケットにつき約41ns 200 150 us 200 100 50 0 1000 2000 3000 プロセス数 プロセス数を変えて測定 IDSは動作していない xFilterなしでは スループット 961req/s レスポンス 1.04ms 結果 キャッシュが有効であれば 500プロセスにつき約2.5% キャッシュが無効であれば 500プロセスにつき約15% 1000 800 600 400 no cache cache on 200 0 1000 2000 3000 4000 プロセス数 5000 5 レスポンス(ms) スループット(req/s) フィルタリングによる性能低下 no cache cache on 4 3 2 1 0 1000 2000 3000 プロセス数 4000 5000 IDSによる性能低下 プロセス数を変えて測定 ポートスキャンを検出する IDSを用いて実験 xFilterモジュールは動作し ていない 1000 スループット(req/s) xFilterなしでは スループット 960.82req/s レスポンス 1.041ms 800 600 400 200 0 1000 結果 攻撃検出フェーズでは スループット 950req/s レスポンス 1.05ms 攻撃元特定フェーズでは 500プロセスにつき約3% 3000 4000 プロセス数 5000 2 レスポンス(ms) 2000 1.5 1 0.5 0 1000 2000 3000 プロセス数 4000 5000 関連研究 Amazon EC2 ステートフルインスペクション ドメイン0上で動作するファイアウォール 踏み台攻撃に対応できない SYNパケットはルールベースで、それ以降はステート テーブルでチェック Chorus[Rozierら ‘92]/CAPELA[kouraiら ‘98] カーネルモジュールの開発支援システム プロセスとして実装し、変更なしにカーネルに移植 まとめ VMMレベル・パケットフィルタのxFilterを提案 踏み台攻撃に対して安全かつきめ細かい通信制限が 可能 VMM内のIDSにより、ルール追加を自動化 送信元プロセスの情報を用いてフィルタリング VMのメモリを解析してゲストOS内の情報を取得 ルールの統合を行い、以降の同様の攻撃を防ぐ 今後の課題 ポートスキャン以外の踏み台攻撃用のIDSを追加 成果 論文 DSW08summer@北海道 ソフトウェア科学会 2009@島根 OS研究会 2010@伊東 PRDC 2010@Tokyo (不採録) OS研究会 2011@福岡 ACS論文誌 2011(投稿中) ESORICS 2011@Belgium (執筆中) ポスター Comsys2008@品川 Comsys2010@大阪
© Copyright 2024 ExpyDoc