CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合
description
Transcript of CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合
![Page 1: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/1.jpg)
CacheShadow ファイルシステム:仮想ディスクと VM 内キャッシュの統合
土田 賢太朗(九州工業大学)光来 健一(九州工業大学 /JST CREST )
![Page 2: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/2.jpg)
侵入検知システム( IDS)IDS はサーバへの攻撃者の侵入を検知するため
に用いられる例:ディスクを監視してファイルの改竄を検知する
攻撃者はまず IDS を攻撃するようになってきたIDS が侵入を検知できなくなる
攻撃者IDS
監視
攻撃者
検知
![Page 3: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/3.jpg)
VM を用いた IDS オフロードサーバを仮想マシン (VM) で動かし, IDS だけ
を別の仮想マシンで動かす手法オフロードした IDS が仮想ディスクを監視IDS が攻撃の影響を受けにくくなる
サーバ VM では IDS は動いていないIDS VM では不要なサービスを動かさないので侵入されに
くいIDS VM サーバ VM
IDS
仮想ディスク
IDSオフロード
監視
![Page 4: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/4.jpg)
不完全なファイル監視ディスクに書き戻されていないキャッシュ上の
ファイルを監視できないアクセス高速化のためキャッシュが生成される一定時間たつとキャッシュはディスクに書き戻される
メモリをディスクとして使うファイルシステム(tmpfs) を監視できない書き戻されることがない
仮想ディスク
IDS VM
サーバ VM
キャッシュ
IDS監視
![Page 5: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/5.jpg)
キャッシュを利用した攻撃キャッシュからディスクへの書き戻しまでの時
間を長くする例: pdflush の起動間隔を長く設定する( Linux )キャッシュ上にファイルを不正に作成または改竄され
ても検知できない
IDS VM
サーバ VM
キャッシュ
IDS
web サーバ
仮想ディスク
監視
改竄されたweb ページ
webページ
閲覧者改竄されたweb ページ
webページ
![Page 6: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/6.jpg)
CacheShadow ファイルシステム仮想ディスクとキャッシュを統合して監視を行
えるようにするファイルシステムサーバ VM のメモリを解析し、キャッシュ情報を取得3 種類のキャッシュを考慮
CacheShadowファイルシステム 仮想ディスク
キャッシュIDS VMサーバ VM
IDS
ページキャッシュディレクトリキャッシュ
メタデータキャッシュ
![Page 7: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/7.jpg)
ページキャッシュファイル内容をメモリページ単位でキャッシュ
ファイルの更新時にはまずキャッシュを書き換え
考えられる攻撃キャッシュ上でだけ実行ファイルの中身を置き換えキャッシュ上でだけファイルにウィルスを埋め込み
仮想ディスク
ページキャッシュ
![Page 8: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/8.jpg)
ページキャッシュの解析すべてのページの管理情報を解析
ページの用途から消去法でページキャッシュとして使われているページを見つけるダーティなページキャッシュだけを選別
書き換えられたファイルのどの部分がどのページにあるかの対応表を作成
メモリ ・・・page 構造体
ファイルとページの対応表
![Page 9: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/9.jpg)
ページキャッシュの統合ファイルの書き換えられた部分をページキャッ
シュから読み込むread システムコールで統合ページサイズごとにファイルを対応表で調べる
見つかればキャッシュ上のデータを使う見つからなければディスクから読み込む
CacheShadowファイルシステム
仮想ディスク
ページキャッシュ
対応表
![Page 10: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/10.jpg)
ディレクトリキャッシュアクセスしたディレクトリの情報をキャッシュ
追加・削除されたファイルの情報も保持
考えられる攻撃キャッシュ上にだけマルウェアをインストールキャッシュ上でだけ特定のファイルを別のファイルに
置き換え
/bin usr
file1 src
file2
仮想ディスクディレクトリ
キャッシュ/
bin /bin usr
file1
src
file2
![Page 11: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/11.jpg)
ディレクトリキャッシュの解析ルートディレクトリから深さ優先探索
init プロセスからルートの dentry 構造体を取得子の dentry がなくなるまで再帰的に探索
自分の子となる dentry がリンク同じ親の dentry 同士もリンク
ディレクトリキャッシュinit プロセス
の構造体ルートの
dentry 構造体
![Page 12: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/12.jpg)
ディレクトリキャッシュの統合ディレクトリキャッシュ上で追加・削除された
ファイルを反映readdir システムコールで統合ディレクトリキャッシュ上のエントリを取得
削除マークのついているエントリは無視ディスク上のエントリを重複しないように取得
キャッシュで削除マークのついているエントリは無視
CacheShadowファイルシステム
仮想ディスク
file1 file3
ディレクトリキャッシュ
file1 file3
/home/user/
*file2 file1 file2
/home/user/
![Page 13: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/13.jpg)
メタデータキャッシュファイルサイズやアクセス権限のキャッシュ
ディレクトリキャッシュのエントリに対応して作成
考えられる攻撃キャッシュ上でだけ実行属性をつけて実行可能にするキャッシュ上でファイルサイズを小さくし、ファイル
末尾のウィルスの検知を逃れるinode 構造体
更新時刻
アクセス保護
所有者の UID
ファイルサイズ
ディレクトリキャッシュ
仮想ディスク
/bin
filedentry 構造体
![Page 14: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/14.jpg)
メタデータキャッシュの解析・統合キャッシュがあればその情報を返す
ディレクトリキャッシュをたどり dentry を見つける見つかれば dentry から inode 構造体を取得
見つからなければディスク上のファイル情報を返す
仮想ディスク
1024KBrwx------
1124KBrwxrwxrwx
メタデータキャッシュ
CacheShadowファイルシステムディレクトリキャッシュ
![Page 15: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/15.jpg)
サーバ VM のメモリ解析サーバ VM のメモリを解析するにはアドレス変
換が必要サーバ VM の仮想アドレスから物理アドレスサーバ VM 内のページテーブルを引くのに時間がかか
る
アドレス変換のキャッシュを作成一度変換したアドレスは再利用サーバ VMIDS VM
ページテーブル
CacheShadowファイルシステム
アドレス変換のキャッシュ
![Page 16: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/16.jpg)
VM のメモリとディスクのスナップショットをとって解析・統合メモリの解析中や解析した情報を使う前に更新が行わ
れるのを防ぐ現在の実装ではサーバ VM を停止している
VM のスナップショットを対象
IDS VM
サーバ VM のスナップショット サーバ VM
仮想ディスク
メモリ
CacheShadowファイルシステム
![Page 17: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/17.jpg)
実験実験内容
ページキャッシュを利用した攻撃の確認ページキャッシュの解析時間の測定ファイルの読み込み性能の測定
実験環境Xen 4.1.2IDS VM/ サーバ VM のカーネル: Linux 2.6.39CPU : Intel Xeon 3.60GHzメモリ: 16GBHDD : SATA 500GB
![Page 18: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/18.jpg)
キャッシュを利用した攻撃が実際に可能であることを確かめたキャッシュの書き戻しまでの時間を長く設定VM 内でファイルの追加、変更、実行権限の変更
ディスクを見ただけでは検知できず
キャッシュを利用した攻撃の確認
仮想ディスク
IDS VM
サーバ VM
rwx------
rwxrwxrwx
rwx------
![Page 19: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/19.jpg)
ページキャッシュの解析時間 (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 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/20.jpg)
ページキャッシュの解析時間 (2/2)4KB の小さいファイル( 1〜 10万個)の解析
時間を測定解析時間はファイルの個数に比例すべてのファイルについて個別に解析を行うのでアド
レス変換のキャッシュの効果はない
0 30000 60000 90000 1200000
5
10
15
20
25
30
ページキャッシュの数
解析時間
[s]
![Page 21: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/21.jpg)
ファイルの読み込み性能4MB のファイルのハッシュ値の計算時間を測定
CacheShadow ファイルシステムでは従来システムの実行時間の 1.3倍
ページサイズごとに処理を行うことによるオーバーヘッド
従来システム CacheShadow ファイルシステム0
20
40
60
80
100
120
140
89.4
114.6
計算時間
[ms]
![Page 22: CacheShadow ファイルシステム: 仮想ディスクと VM 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/22.jpg)
関連研究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 内キャッシュの統合](https://reader033.fdocument.pub/reader033/viewer/2022061607/56813a38550346895da22201/html5/thumbnails/23.jpg)
まとめCacheShadow ファイルシステムを提案
ファイルシステムキャッシュと仮想ディスクを統合して監視が行える
サーバ VM のメモリを解析してぺージキャッシュ,ディレクトリキャッシュ,メタデータキャッシュを取得
今後の課題実際の IDS を用いた評価読み込みのオーバーヘッドを減らす