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