仮想マシンを用いた 既存IDSのオフロード

Slides:



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

九州工業大学大学院 情報工学府 情報創成工学専攻 塩田裕司.  仮想マシン( VM )は必要なときだけ動かすこと が多い ◦ クラウドでもデスクトップでも ◦ 長期間使わない VM が存在する  VM の再開時に攻撃を受ける可能性が高くなる ◦ 停止中に OS やアプリケーションの脆弱性が発見されるこ.
ファイルキャッシュを考慮したディスク監視のオフロード
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
クラウド上の仮想マシンの安全なリモート監視機構
クラウドにおける ネストした仮想化を用いた 安全な帯域外リモート管理
Xenを用いたクラウドコンピュー ティングにおける情報漏洩の防止
IaaS 仮想マシン(VM)をネットワーク経由で提供 負荷に応じてVM数や性能を変更できる ハードウェアの導入・管理・維持コストの削減
中村孝介(九州工業大学) 光来健一(九州工業大学/JST CREST)
KVMにおけるIDSオフロードのための仮想マシン監視機構
バックドア(rootkit&rootshell) vs Tripwire
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
メモリ暗号化による Android端末の盗難対策
仮想計算機を用いたファイルアクセス制御の二重化
OSが乗っ取られた場合にも機能するファイルアクセス制御システム
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
XenによるゲストOSの解析に 基づくパケットフィルタリング
大きな仮想マシンの 複数ホストへのマイグレーション
ファイルシステムキャッシュを 考慮したIDSオフロード
ネストした仮想化を用いた VMの安全な帯域外リモート管理
帯域外リモート管理の継続を 実現可能なVMマイグレーション手法
VMマイグレーションを可能にするIDSオフロード機構
クラウドの内部攻撃者に対する安全なリモートVM監視機構
アスペクト指向プログラミングを用いたIDSオフロード
サスペンドした仮想マシンの オフラインアップデート
不正アクセス       ーrootkitについてー              環境情報学部              3年 櫻井美帆.
SAccessor : デスクトップPCのための安全なファイルアクセス制御システム
仮想マシンを用いて既存IDSを オフロードするための実行環境
KVMにおける仮想マシンの 内部監視機構の実装と性能評価
仮想マシン間にまたがる プロセススケジューリング
Xenによる ゲストOSの監視に基づく パケットフィルタリング
仮想計算機を用いて OSを介さずに行う安全な ファイルアクセス制御
セキュリティ機構のオフロードを考慮した 仮想マシンのスケジューリング
分散IDSの実行環境の分離 による安全性の向上
仮想マシンモニタによる きめ細かい パケットフィルタリング
VMのメモリ暗号化によるクラウド管理者への情報漏洩の防止
VMのメモリ暗号化による クラウド管理者への情報漏洩の防止
VM専用仮想メモリとの連携による VMマイグレーションの高速化
リモートホストの異常を検知するための GPUとの直接通信機構
シャドウデバイスを用いた 帯域外リモート管理を継続可能なVMマイグレーション
実行時情報に基づく OSカーネルのコンフィグ最小化
仮想メモリを用いた VMマイグレーションの高速化
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
IaaS環境におけるVMのメモリ暗号化による情報漏洩の防止
クラウドにおけるVMリダイレクト攻撃を防ぐためのリモート管理機構
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
クラウドにおけるVM内コンテナを用いた 低コストで迅速な自動障害復旧
Intel SGXを用いた仮想マシンの 安全な監視機構
軽量な仮想マシンを用いたIoT機器の安全な監視
複数ホストにまたがって動作する仮想マシンの障害対策
セキュリティ機構のオフロード時の 性能分離
VMMのソフトウェア若化を考慮した クラスタ性能の比較
信頼できないクラウドにおける仮想化システムの監視機構
仮想環境を用いた 侵入検知システムの安全な構成法
Cell/B.E.のSPE Isolationモードを用いた監視システム
仮想マシンの監視を継続可能なマイグレーション機構
仮想マシンと物理マシンを一元管理するための仮想AMT
仮想マシンに対する 高いサービス可用性を実現する パケットフィルタリング
Cell/B.E. のSPE上で動作する 安全なOS監視システム
VMリダイレクト攻撃を防ぐための 安全なリモート管理機構
強制パススルー機構を用いた VMの安全な帯域外リモート管理
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
複数ホストにまたがるVMの 高速かつ柔軟な 部分マイグレーション
Virtual Machine Introspectionを可能にするVMCryptの拡張 田所秀和 光来健一 (九州工業大学)
強制パススルー機構を用いた VMの安全な帯域外リモート管理
管理VMへの キーボード入力情報漏洩の防止
Presentation transcript:

仮想マシンを用いた 既存IDSのオフロード 九州工業大学 飯田貴大 九州工業大学/JST CREST 光来健一

侵入検知システム(IDS) IDSは攻撃者の侵入を検知するために用いられる IDSが攻撃を受けると検知できなくなる ファイル、ネットワーク、OSなどを監視 例:chkrootkit 攻撃者によって仕込まれたrootkitを発見 rootkitはファイルの改ざん等を行う攻撃者用ツール IDSが攻撃を受けると検知できなくなる psコマンドが置き換えられるとchkrootkitが騙される 攻撃者 サーバ chkrootkit コマンド群 置換 rootkit

仮想マシンを用いたIDSのオフロード サーバを仮想マシン上で動かし、IDSだけ別の仮想マ シン上で動かす手法 IDSが停止される恐れがない ログが改ざんされる恐れがない IDS-VM サーバVM 攻撃者 サーバ IDS 侵入

IDSをオフロードする際の問題 サーバVMを監視するようにIDSを修正する必要があ る 単純にIDS-VMで動かすだけではIDS-VMの監視を行ってし まう chkrootkitのpsはIDS-VMのプロセス情報を返す VMをまたがって監視を行うには特殊なアクセス方法を用い る必要がある 例:サーバVMのメモリを覗く VMwatcher [Jiang et al.’07] VIX [Hay et al.’08] IDS-VM サーバVM IDS IDS IDS-VMの 監視 サーバVMの 監視

提案:Transcall IDSに修正を加えることなくオフロードを可能にするシ ステム サーバVMの監視を行うための実行環境であるVMシャドウを 提供 VMシャドウ内のIDSはサーバVM内と同様に実行できる サーバVMの情報を安全に取得 VMシャドウ IDS システムコール エミュレータ シャドウ ファイルシステム Transcall サーバVM IDS-VM

システムコール・エミュレータ VMシャドウ内のIDSが発行したシステムコールに対し て必要に応じてサーバVMの情報を返す カーネルについての情報の取得 不必要ならIDS-VMのカーネルにシステムコールを発行 メモリ管理 ネットワーク処理 VMシャドウ IDS システムコール エミュレータ Transcall サーバVM IDS-VM カーネル

例:unameのエミュレーション unameシステムコールが返す情報をサーバVMから 取得 サーバVMのカーネルメモリの中からutsname構造体を発見 カーネル名、ホスト名、バージョン等が格納されている init_task変数からたどることができる unameが返す情報を上書き VMシャドウ IDS システムコール エミュレータ Transcall サーバVM IDS-VM カーネル init_task Linux server-vm 2.6.27.35 task_struct utsname uname

サーバVMのメモリを直接見る必要性 サーバVMのカーネルが改ざんされない限り、正しい 情報を取得できる サーバVMへのRPCは脆弱 OS名を改ざんされるとOSに依存した攻撃を見逃す危険性 Transcall VMシャドウ IDS サーバVM IDS-VM RPC サーバ カーネル 攻撃 uname uname

シャドウファイルシステム VMシャドウ内のIDSからサーバVMで使われている ファイルシステム全体を参照可能 サーバVMの仮想ディスク ファイルシステムの整合性を保つために読み込み専用でマウン ト 特殊なファイルシステム サーバVMを参照して エミュレート proc、sys、dev VMシャドウ IDS シャドウ ファイルシステム カーネル Transcall サーバVM IDS-VM 仮想ディスク

シャドウprocファイルシステム サーバVMのプロセス情報を返すファイルシステム Linuxのprocファイルシステムと同じインタフェースを提供 /proc/PID/statはサーバVM上のプロセス番号PIDのプロセス 情報を返す プロセス情報はサーバVMのカーネルメモリから直接取得 init_task変数から順番にたどれるtask_struct構造体を参照 VMシャドウの/procにマウントする IDS-VM サーバVM カーネル シャドウprocfs Transcall IDS VMシャドウ init_task task_struct /proc/100/stat

psコマンドの実行例 psコマンドは/proc を参照しながら実行 /proc/self をチェック サーバVM上にpsプロセスは存在しない IDS-VMで実行中のpsプロセスの情報を返す(例外処理) /proc 上のディレクトリエントリ一覧を取得 サーバVM上で動いているプロセスのPIDの一覧を返す 各プロセスのディレクトリからstat、statusファイルを読み込 む 実行されている端末、実行時間、コマンド名などを取得 サーバVM カーネル シャドウprocfs Transcall PS IDS-VM VMシャドウ ps

Transcallのポリシファイル VMシャドウ内のIDSがIDS-VM上のファイルを使うこ とを可能にする /boot/vmlinuz /var/log/a.log

ポリシファイルの記述例 IDSがアクセスするパスとIDS-VM上のパスの対応を 記述 Tripwireの例 TripwireのポリシファイルはサーバVMごとに異なるパスに置く サイトキーは共通のパスに置く ログはサーバVMごとに異なるパスに保存 それ以外のファイルはサーバVMを参照 /etc/tripwire/tw.pol /etc/tripwire/VM1/tw.pol /etc/tripwire /etc/tripwire /var/lib/tripwire /var/lib/tripwire/VM1

実装 Xenを使ってIDSのオフロードを実現 Transcallはカーネルを変更せずに実現 ドメイン0をIDS-VM、ドメインUをサーバVMとする Transcallはカーネルを変更せずに実現 システムコールエミュレータの子プロセスとしてIDSを実行 FUSEを用いてシャドウprocファイルシステムを実装 IDS Linux ドメインU ドメイン0 FUSE シャドウ procfs カーネル システムコール エミュレータ Transcall カーネル

システムコールのトラップ ptraceシステムコールを用いてシステムコールのト ラップを行う エミュレートするシステムコールの場合 uname 引数が指すメモリの内容を書き換える ファイル関連のシステムコールの場合 open,stat 引数のパス名を置換する ポリシ /proc / IDS uname(buf) open("/proc") システムコール エミュレータ

サーバVMのカーネル情報の取得 カーネルの内部データ構造を基にメモリを解析 あらかじめカーネルの型情報やシンボル情報を取得しておく デバッグ情報やSystem.mapを利用 サーバVMのメモリページをIDS-VMにマップしてアクセス 仮想アドレス→疑似物理アドレス→マシンアドレスへの変換 1 Transcall ページ テーブル 3 2 ターゲット VMM P2Mテーブル

実験:Transcallの性能 VMシャドウ内で動かしたpsコマンドの実行時間を測 定 サーバVMで直接動かした場合の3.3倍 原因はptraceおよびFUSEを用いたことによるオーバヘッド サーバVMからの情報取得のオーバヘッドは含まれない VMシャドウの作成時に取得しているため 平均実行時間 (ミリ秒) ps(サーバVM) 20 Transcall+ps (IDS-VM) 66 表1 実行速度比較 実験環境 CPU Intel Quad 2.83GHz メモリ 4GB Xen3.4.0 ドメイン0Linux2.6.18.8 ドメインU Linux2.6.27.35

実験:隠しプロセスの発見 Transcallを用いて隠しプロセスの発見ができるかど うかの実験を行った VMシャドウ内とサーバVM上でのpsの実行結果を比較 サーバVMではinitプロセスを隠蔽するpsコマンドを実行 隠蔽されたinitプロセスの発見を行えた

関連研究(1/2) HyperSpector [Kourai et al.’05] IDS-VMからサーバVMを監視するシステム シャドウファイルシステム、シャドウプロセスを提供 既存のIDSが利用可能だが、設定の変更は必要 OSの仮想化機能を利用 名前空間の操作だけでサーバVMの情報を参照できる Transcallはシステムレベルの仮想化を前提 サーバVMの情報を取得するのは容易ではない

関連研究(2/2) VIX [Hay et al.’08] VMwatcher [Jiang et al.’07] IDS-VMからサーバVMの情報を取得するコマンド群を提供 提供されているコマンドを使わないIDSは修正が必要 VMwatcher [Jiang et al.’07] IDS-VMで既存のアンチウィルスを動かすことができる サーバVMのファイルシステムを参照するのみ スキャンするパスをマウント先に変更する必要がある Proxos [Ta-min et al.’06] 機密情報を扱うプロセスを別のVMで実行 ポリシファイルに従ってシステムコールのRPCを行う 元のVMのカーネルの修正が必要

まとめ 既存のIDSを変更することなく、VMを用いてオフロー ドできるようにするシステムTranscallを提案 VMシャドウ内でIDSを動作させる IDS-VMからサーバVMを監視するための実行環境 Transcallの構成 システムコール・エミュレータ シャドウファイルシステム シャドウprocファイルシステム ポリシファイル 既存のpsを動作させて隠しプロセスを見つけられた

今後の課題 シャドウprocファイルシステムを完成させる 既存のIDSをオフロードできるようにする 取得できる情報がまだ不完全 実行中のプログラムのパス名が取得できない 既存のIDSをオフロードできるようにする Tripwire ポリシファイルの実装を完成させる必要がある chkrootkit netstatコマンドもオフロードできるようにする必要がある Transcallのオーバヘッドを削減する

仮想ディスクのマウント 仮想ディスクがLVMを使っている場合 仮想ディスクに使われているループバックデバイスを探す /dev/loop1 見つかったループバックデバイスに対してデバイスマップを 作成 LVMでなければ作成したデバイスを直接マウント可能 物理ボリュームを探してから、論理ボリュームを探す 物理ボリューム名が一意である必要 /dev/VolGroupXen00/LogVol00 論理ボリュームをアクティブにしてマウント