CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

23
CacheShadow フフフフフフフフフフフフフフフ VM フフフフフフフフフ フフ フフフ フフフフフフフ () フフ フフフフフフ 一( /JST CREST

description

CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合. 土田 賢太朗(九州工業大学) 光来 健一(九州工業大学 /JST CREST ). 侵入検知システム( IDS). 攻撃者. 攻撃者. 監視. 検知. IDS. IDS はサーバへの攻撃者の侵入を検知するために用いられる 例:ディスク を監視 してファイルの改竄を検知する 攻撃者はまず IDS を攻撃するようになってきた IDS が侵入を検知できなくなる. VM を用いた IDS オフロード. IDS VM. サーバ VM. オフロード. IDS. IDS. 監視. - PowerPoint PPT Presentation

Transcript of CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

Page 1: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

CacheShadow ファイルシステム:仮想ディスクと VM 内キャッシュの統合

土田 賢太朗(九州工業大学)光来 健一(九州工業大学 /JST CREST )

Page 2: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

侵入検知システム( IDS)IDS はサーバへの攻撃者の侵入を検知するため

に用いられる例:ディスクを監視してファイルの改竄を検知する

攻撃者はまず IDS を攻撃するようになってきたIDS が侵入を検知できなくなる

攻撃者IDS

監視

攻撃者

検知

Page 3: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

VM を用いた IDS オフロードサーバを仮想マシン (VM) で動かし, IDS だけ

を別の仮想マシンで動かす手法オフロードした IDS が仮想ディスクを監視IDS が攻撃の影響を受けにくくなる

サーバ VM では IDS は動いていないIDS VM では不要なサービスを動かさないので侵入されに

くいIDS VM サーバ VM

IDS

仮想ディスク

IDSオフロード

監視

Page 4: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

不完全なファイル監視ディスクに書き戻されていないキャッシュ上の

ファイルを監視できないアクセス高速化のためキャッシュが生成される一定時間たつとキャッシュはディスクに書き戻される

メモリをディスクとして使うファイルシステム(tmpfs) を監視できない書き戻されることがない

仮想ディスク

IDS VM

サーバ VM

キャッシュ

IDS監視

Page 5: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

キャッシュを利用した攻撃キャッシュからディスクへの書き戻しまでの時

間を長くする例: pdflush の起動間隔を長く設定する( Linux )キャッシュ上にファイルを不正に作成または改竄され

ても検知できない

IDS VM

サーバ VM

キャッシュ

IDS

web サーバ

仮想ディスク

監視

改竄されたweb ページ

webページ

閲覧者改竄されたweb ページ

webページ

Page 6: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

CacheShadow ファイルシステム仮想ディスクとキャッシュを統合して監視を行

えるようにするファイルシステムサーバ VM のメモリを解析し、キャッシュ情報を取得3 種類のキャッシュを考慮

CacheShadowファイルシステム 仮想ディスク

キャッシュIDS VMサーバ VM

IDS

ページキャッシュディレクトリキャッシュ

メタデータキャッシュ

Page 7: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

ページキャッシュファイル内容をメモリページ単位でキャッシュ

ファイルの更新時にはまずキャッシュを書き換え

考えられる攻撃キャッシュ上でだけ実行ファイルの中身を置き換えキャッシュ上でだけファイルにウィルスを埋め込み

仮想ディスク

ページキャッシュ

Page 8: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

ページキャッシュの解析すべてのページの管理情報を解析

ページの用途から消去法でページキャッシュとして使われているページを見つけるダーティなページキャッシュだけを選別

書き換えられたファイルのどの部分がどのページにあるかの対応表を作成

メモリ ・・・page 構造体

ファイルとページの対応表

Page 9: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

ページキャッシュの統合ファイルの書き換えられた部分をページキャッ

シュから読み込むread システムコールで統合ページサイズごとにファイルを対応表で調べる

見つかればキャッシュ上のデータを使う見つからなければディスクから読み込む

CacheShadowファイルシステム

仮想ディスク

ページキャッシュ

対応表

Page 10: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

ディレクトリキャッシュアクセスしたディレクトリの情報をキャッシュ

追加・削除されたファイルの情報も保持

考えられる攻撃キャッシュ上にだけマルウェアをインストールキャッシュ上でだけ特定のファイルを別のファイルに

置き換え

/bin usr

file1 src

file2

仮想ディスクディレクトリ

キャッシュ/

bin /bin usr

file1

src

file2

Page 11: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

ディレクトリキャッシュの解析ルートディレクトリから深さ優先探索

init プロセスからルートの dentry 構造体を取得子の dentry がなくなるまで再帰的に探索

自分の子となる dentry がリンク同じ親の dentry 同士もリンク

ディレクトリキャッシュinit プロセス

の構造体ルートの

dentry 構造体

Page 12: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

ディレクトリキャッシュの統合ディレクトリキャッシュ上で追加・削除された

ファイルを反映readdir システムコールで統合ディレクトリキャッシュ上のエントリを取得

削除マークのついているエントリは無視ディスク上のエントリを重複しないように取得

キャッシュで削除マークのついているエントリは無視

CacheShadowファイルシステム

仮想ディスク

file1 file3

ディレクトリキャッシュ

file1 file3

/home/user/

*file2 file1 file2

/home/user/

Page 13: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

メタデータキャッシュファイルサイズやアクセス権限のキャッシュ

ディレクトリキャッシュのエントリに対応して作成

考えられる攻撃キャッシュ上でだけ実行属性をつけて実行可能にするキャッシュ上でファイルサイズを小さくし、ファイル

末尾のウィルスの検知を逃れるinode 構造体

更新時刻

アクセス保護

所有者の UID

ファイルサイズ

ディレクトリキャッシュ

仮想ディスク

/bin

filedentry 構造体

Page 14: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

メタデータキャッシュの解析・統合キャッシュがあればその情報を返す

ディレクトリキャッシュをたどり dentry を見つける見つかれば dentry から inode 構造体を取得

見つからなければディスク上のファイル情報を返す

仮想ディスク

1024KBrwx------

1124KBrwxrwxrwx

メタデータキャッシュ

CacheShadowファイルシステムディレクトリキャッシュ

Page 15: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

サーバ VM のメモリ解析サーバ VM のメモリを解析するにはアドレス変

換が必要サーバ VM の仮想アドレスから物理アドレスサーバ VM 内のページテーブルを引くのに時間がかか

アドレス変換のキャッシュを作成一度変換したアドレスは再利用サーバ VMIDS VM

ページテーブル

CacheShadowファイルシステム

アドレス変換のキャッシュ

Page 16: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

VM のメモリとディスクのスナップショットをとって解析・統合メモリの解析中や解析した情報を使う前に更新が行わ

れるのを防ぐ現在の実装ではサーバ VM を停止している

VM のスナップショットを対象

IDS VM

サーバ VM のスナップショット サーバ VM

仮想ディスク

メモリ

CacheShadowファイルシステム

Page 17: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

実験実験内容

ページキャッシュを利用した攻撃の確認ページキャッシュの解析時間の測定ファイルの読み込み性能の測定

実験環境Xen 4.1.2IDS VM/ サーバ VM のカーネル: Linux 2.6.39CPU : Intel Xeon 3.60GHzメモリ: 16GBHDD : SATA 500GB

Page 18: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

キャッシュを利用した攻撃が実際に可能であることを確かめたキャッシュの書き戻しまでの時間を長く設定VM 内でファイルの追加、変更、実行権限の変更

ディスクを見ただけでは検知できず

キャッシュを利用した攻撃の確認

仮想ディスク

IDS VM

サーバ VM

rwx------

rwxrwxrwx

rwx------

Page 19: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

ページキャッシュの解析時間 (1/2)様々なサイズのファイルの解析時間を測定

解析時間はファイルサイズの影響を受けないアドレス変換のキャッシュにより解析時間を短縮

同じファイルでは page 構造体からたどる構造体も同じ

0 50 100 150 200 250 300 350 400 4500

5

10

15

20

25

30

ファイルサイズ [MB]

解析時間

[s]

Page 20: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

ページキャッシュの解析時間 (2/2)4KB の小さいファイル( 1〜 10万個)の解析

時間を測定解析時間はファイルの個数に比例すべてのファイルについて個別に解析を行うのでアド

レス変換のキャッシュの効果はない

0 30000 60000 90000 1200000

5

10

15

20

25

30

ページキャッシュの数

解析時間

[s]

Page 21: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

ファイルの読み込み性能4MB のファイルのハッシュ値の計算時間を測定

CacheShadow ファイルシステムでは従来システムの実行時間の 1.3倍

ページサイズごとに処理を行うことによるオーバーヘッド

従来システム CacheShadow ファイルシステム0

20

40

60

80

100

120

140

89.4

114.6

計算時間

[ms]

Page 22: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

関連研究VMwatcher [Jiang et al. ‘07]

既存のアンチウィルスでサーバ VM を外から監視可能サーバ VM の仮想ディスクを参照するのみ

Volatility[Petroni et al. '06]ダンプしたメモリ上の tmpfs をコピーして監視可能仮想ディスクとキャッシュの統合はできない

HyperSpector [Kourai et al. ‘05] OS の仮想化機能を利用した IDS オフロードIDS VM はサーバ VM とキャッシュを共有

Page 23: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合

まとめCacheShadow ファイルシステムを提案

ファイルシステムキャッシュと仮想ディスクを統合して監視が行える

サーバ VM のメモリを解析してぺージキャッシュ,ディレクトリキャッシュ,メタデータキャッシュを取得

今後の課題実際の IDS を用いた評価読み込みのオーバーヘッドを減らす