仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング

Slides:



Advertisements
Similar presentations
九州工業大学 塩田裕司 光来健一.  仮想マシンは必要なときだけ動かす使い方が一般 的 ◦ 一台の計算機上に複数の計算機を仮想的に作成できる ◦ デスクトップ  異なる OS を使用するため作成 ◦ サーバ  最大負荷に合わせた数の仮想マシンを作成  長期間使わない仮想マシンも存在する VM.
Advertisements

プロセスの依存関係に基づく 分散システムのセキュリティ機構
ファイルキャッシュを考慮したディスク監視のオフロード
最新ファイルの提供を保証する代理FTPサーバの開発
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
クラウド上の仮想マシンの安全なリモート監視機構
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
クラウドにおけるライブラリOSを用いた インスタンス構成の動的最適化
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
XenによるゲストOSの解析に 基づくパケットフィルタリング
ファイルシステムキャッシュを 考慮したIDSオフロード
ネストした仮想化を用いた VMの安全な帯域外リモート管理
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
VMマイグレーションを可能にするIDSオフロード機構
クラウドの内部攻撃者に対する安全なリモートVM監視機構
アスペクト指向プログラミングを用いたIDSオフロード
型付きアセンブリ言語を用いた安全なカーネル拡張
SAccessor : デスクトップPCのための安全なファイルアクセス制御システム
踏み台攻撃だけを抑制できる VMMレベル・パケットフィルタ
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
7. セキュリティネットワーク (ファイアウォール)
仮想マシン間にまたがる プロセススケジューリング
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
Xenによる ゲストOSの監視に基づく パケットフィルタリング
セキュリティ機構のオフロードを考慮した 仮想マシンのスケジューリング
セキュリティ(6) 05A2013 大川内 斉.
分散IDSの実行環境の分離 による安全性の向上
仮想マシンモニタによる きめ細かい パケットフィルタリング
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
VM専用仮想メモリとの連携による VMマイグレーションの高速化
IaaS型クラウドにおける インスタンス構成の動的最適化手法
仮想マシン間プロセススケジューリングの 実環境への適用にむけて
リモートホストの異常を検知するための GPUとの直接通信機構
シャドウデバイスを用いた 帯域外リモート管理を継続可能なVMマイグレーション
インターネットにおける真に プライベートなネットワークの構築
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
クラウドにおけるVMリダイレクト攻撃を防ぐためのリモート管理機構
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
複数のオーバレイネットワークを制御するためのプライベートなネットワーク環境
インターネットにおける パーソナルネットワークの構築
アスペクト指向言語のための 独立性の高いパッケージシステム
仮想マシンを用いた 既存IDSのオフロード
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
セキュリティ機構のオフロード時の 性能分離
VMMのソフトウェア若化を考慮した クラスタ性能の比較
信頼できないクラウドにおける仮想化システムの監視機構
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
仮想環境を用いた 侵入検知システムの安全な構成法
IDSとFirewallの連携によるネットワーク構築
Cell/B.E. のSPE上で動作する 安全なOS監視システム
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
強制パススルー機構を用いた VMの安全な帯域外リモート管理
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
特定ユーザーのみが利用可能な仮想プライベート・ネットワーク
Virtual Machine Introspectionを可能にするVMCryptの拡張 田所秀和 光来健一 (九州工業大学)
強制パススルー機構を用いた VMの安全な帯域外リモート管理
管理VMへの キーボード入力情報漏洩の防止
Presentation transcript:

仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング 安積武志  田所秀和  光来健一  千葉滋 東京工業大学

仮想マシンを用いたホスティング データセンタが仮想マシンを貸し出し ユーザが管理する仮想マシ ンは攻撃を受けやすい ユーザが自由にOSをインストール ユーザがOSを管理する必要 従来はデータセンタが管理 ユーザが管理する仮想マシ ンは攻撃を受けやすい 適切な設定やパッチの適用が必要 ユーザのスキルが低いと脆弱性 データセンタ OS VM OS VM OS VM

データセンタで 攻撃に対処すべき 仮想マシンのユーザは信頼できない 問題が起きたときデータセンタも責任を問われる可能性 フルタイムで管理できるとは限らない 即座に対処できない スキル不足だと問題の解決に時間がかかる 問題が起きたときデータセンタも責任を問われる可能性 踏み台攻撃で外部に被害 踏み台攻撃 攻撃ホスト 攻撃対象 ホスト 侵入 踏み台攻撃 データセンタ 仮想マシン 仮想マシン 仮想マシン

例:メールサーバに侵入されて25番ポートを使って踏み台攻撃 仮想マシンの サービス可用性が低下 データセンタ側では大雑把な通信制御しかできない 問題のある仮想マシンからの通信を全て遮断 全てのアプリケーションが外部のサービスを使えない 外部の特定のポートへの通信を遮断 外部の特定のサービスは使えない 例:メールサーバに侵入されて25番ポートを使って踏み台攻撃 データセンタ 攻撃を 行っている ユーザ 攻撃を行っている通信 仮想     マシン    fw 25 X send mail 25 X 22 X 外部

xFilter 仮想マシンモニタでプロセス単位、ユーザ単位のパケットフィルタリングを行うシステム サービス可用性の低下を抑えら れる ゲストOS内部のプロセス情報を取得 取得した情報を用いてパケットのフィルタリング 全てのパケットは仮想マシンモニ タを通過する サービス可用性の低下を抑えら れる 特定のプロセス、ユーザからの 通信のみを遮断できる 仮想マシン プロ セス ゲストOS 参照     仮想マシンモニタ xFilter 物理デバイス

仮想マシンモニタによる プロセス情報の取得 ゲストOSの内部データを覗く 従来は不可能 ゲストOSのデータ構造の知識を利用 取得するプロセスのデータ構造 プロセスの所有者(ユーザID) プロセス名 行っている通信のポート番号とIPアドレスの組 仮想マシン 仮想マシン ユーザA ユーザB プロ セス プロ セス プロ セス 0 192.xxx.xxx.xxx 仮想マシンモニタ 25 192.yyy.yyy.yyy

ユーザ単位の パケットフィルタリング 指定したユーザの通信を拒否 パケットを受信したらそのユーザのプロセス一覧を取得 例:メールサーバに 侵入されて 25番ポートを使って 踏み台攻撃 指定したユーザの通信を拒否 パケットを受信したらそのユーザのプロセス一覧を取得 データセンタ管理者が通信を禁止するユーザを指定 一致する通信があればパケットを破棄 uid=81の通信リスト 仮想マシン vm1:10 host1:25 vm1:14 host2:25 プロセス vm1:8 host3:25 vm1:54 host4:25 vm1:29 host5:25 vm1:63 host6:25        vm1:14         host2:25 vm1:47 host7:25 参照 vm1:39 host8:25 仮想マシンモニタ xFilter 破棄 許可

使用方法 攻撃元ユーザの特定 異常検知された通信から攻撃元を探す プロセス情報一覧を取得 一致する通信を行ったプロセスを見つける そのプロセスIDまたは所有者を攻撃元とする pid = 315, uid = 81 vm1:10 host1:25 vm1:14 host2:25 vm1:8 host3:25 vm1:54 host4:25 pid = 330, uid = 0     vm1:57 host10:25 vm1:30 host40:25 pid = 372, uid = 81 vm1:29 host5:25 vm1:63 host6:25 pid = 397, uid = 0 vm1:79 host23:22

Xenにおける パケットフィルタリング実装 ドメインのOS Linux2.6.18 ドメイン0のiptablesを使用 ドメインUの通信は全てドメイン0を通過 ドメイン0のファイアウォールで制御可能 指定したプロセスやユーザの通信を遮断するルールを自動で追加 定期的にドメインUのメモリを見てルールを更新 ドメイン0 ドメインU 参照 xFilter パケットの流れ Xen VMM

ゲストOSの データ構造の追跡 仮想CPUのGSレジスタからカレントプロセスのtask_struct構造体を取得 sock構造体からポート番号、IPアドレスなどの情報を得る ドメイン0 ドメインU task_struct task_struct file マッピング task_struct sock inode ・・・ 仮想マシンモニタ       仮想CPU task_struct GSレジスタ

ドメイン0による ドメインUのメモリアクセス 必要な型情報はデバッグ情報から取得 gdbを利用 ドメイン0 のメモリ ドメインU のメモリ task_struct struct file* task_struct file struct inode* sock inode inode sock file

実験 ポーリングの間隔を変えてオーバーヘッドを測定 httperfを使って実験 マッチしないルールを設定 実験結果 毎秒150リクエスト 実験環境 CPU: Athlon™ 64Processor3500+ Mem:1Gbyte                (Dom0/DomU 512Mbyte/256Mbyte) ポーリングの間隔を変えてオーバーヘッドを測定 httperfを使って実験 毎秒150リクエスト マッチしないルールを設定 実験結果 ポーリング間隔が短くなると平均処理時間は大きくなった パケット受信ごとに行うとオーバーヘッドはさらに大きくなる

関連研究 Livewire[Garfmkel et al. ‘03] Antfarm [Jones et al. ’06] ゲストOSの内部を見て侵入検知を行う フィルタリングは行わない Antfarm [Jones et al. ’06] 仮想マシンモニタ上からゲストOSの中を見ずにプロセスの情報を取得 取得できる情報はプロセスの状態の変化だけ BSDのipfw uidを指定してフィルタリングを行う ただしOSの中で使う

まとめ xFilterを提案した 仮想マシンモニタでプロセス単位、ユーザ単位のパケットフィルタリング 仮想マシンに対する高いサービス可用性を実現 データセンタ管理者がきめ細かい通信制御 メモリマップを使ってゲストOS内の情報を取得

今後の課題 パケットごとにフィルタリングできるようにする ポーリング間隔の間に張られた通信は素通り 性能向上が実用化の鍵 パケットごとにプロセス情報を取得するとオーバーヘッドが大きい パケットを仮想マシンモニタのキューにためて一括処理することで改善