Document

仮想環境を用いた
侵入検知システムの
安全な構成法
光来健一* 廣津登志夫** 佐藤孝治**
明石修** 福田健介** 菅原俊治** 千葉滋*
*東京工業大学
**NTT未来ねっと研究所
侵入検知システム(IDS)

ホストへの攻撃の徴候を検出・報告する
 ホストやネットワークの監視を続けなければなら
ない

ホスト型IDS(HIDS)
 ユーザの挙動、ファイルなどを監視

ネットワーク型IDS(NIDS)
 ネットワーク上を流れるパケットを監視
従来のIDS構成

ホスト型IDS
 IDSがサーバプロセスと同じ実行環境下で動く

ネットワーク型IDS
 IDSは同一ネットワーク上の別ホストで動かせる
 管理用のサーバプロセスを動かすとホスト型IDS
と同じ構成
HIDS httpd
NIDS
sshd
攻撃によるIDSの停止

IDSの停止
 IDSプロセスの停止
 IDSのルールを変更
 IDSのルール漏洩

攻撃方法
 サーバプロセスの通信チャネルから侵入
 IDSの利用する通信チャネルから侵入
 管理者になりすまして侵入
アップデート時のIDSの停止

IDSの停止
 アップデート時の不手際
 新しいIDSの不具合

綿密なテストが必要
 別個に同じ環境を作るのは大変
 既存の環境で共存させるのは危険

ディレクトリやネットワークポートを変更
新しいIDS構成法

IDSを仮想環境の中で動かす
 IDSを攻撃から守る
 アップデートを安全に行う

構成要素
ホスト
サーバ用
ポートスペース
サーバ
監視用
ポートスペース
IDS
 監視用ポートスペース

IDSを動かす
 サーバ用ポートスペース

サーバプログラムを動かす
ファイル
システム
ベース環境
 ベース環境
ベースネットワーク
ポートスペース [光来ら’03]

仮想的な実行環境
 ファイルシステム空間

ベース環境のファイルシステムを継承できる

一から構築しなくてよい
 ネットワーク空間

ベース環境と同じIPアドレスが使える

専用のIPアドレスが必要ない
 プロセス空間

シグナルの送信を制限できる
プロセス
ネットワーク
スタック
監視用ポートスペース

サーバ用ポートスペー
スを監視できる

 他の監視用ポートス
 ファイルシステム
 ネットワークインタフェー
ス
サーバ用
ポートスペース
VPNのみを利用する
監視
ペースと通信できる
 閉じたネットワークを形
成する
IDS
監視用
ポートスペース
VPN
サーバ用ポートスペース

ベースネットワークを利用する
サーバ用
ポートスペース
 インターネットからアクセスできる
 サーバプロセス宛てのパケットを
サーバ
サーバ
転送する


ベース環境とサーバ用ポートスペー
スの間
転送
複数のサーバ用ポートスペー
スを使える
ベース環境
インターネットへ
ベースネットワーク
IDSの保護

サーバ用ポートスペースから
はアクセスできない
 ファイル、ネットワーク、プロセス
131.112.40.1
IDS
監視用
ポートスペース
のいずれにも
 サーバプロセス経由で侵入され
ても大丈夫

インターネットから直接アクセ
スできない
 VPNが必要
131.112.40.1
サーバ用
ポートスペース
IDSの多重化

複数の監視用ポートスペース
でそれぞれIDSを動かす
 万一の場合でも監視を続けるこ
とができる
 IDS同士の衝突を防ぐことがで
きる

同じIDSを同じ設定で使うこともで
きる
監視用
ポートスペース
IDS
サーバ用
ポートスペース
サーバ
監視
IDS
IDSの安全なアップデート

別々の監視用ポートスペースの中で古いIDSと新し
いIDSを同時に動かす
 アップデートが完了したら古いポートスペースは破棄
 分散IDSも一括してアップデートできる
新しいIDS
新しいIDS
サーバ
サーバ
古いIDS
古いIDS
継承を用いたアップデート

古いIDSの動いているポートスペースを継承
 必要なファイルだけ変更
 アップデート完了時に古いIDSプロセスを停止
新しいIDS
サーバ
継承
古いIDS
実装

FreeBSD 4.7にポートスペースを実装
 ファイルシステムの仮想化
 ネットワークの仮想化
 監視機構
ファイルシステムの仮想化


ベース環境の/.filespace/<id>
を利用
unionマウント
読み出し
書き込み
 継承を実現
 /の上に/.filespace/<id>を重ねる
 /.filespace/<id>には変更の差分
/.filespace/1
だけが保存される

IDSのチェックを容易に
/
unionファイルシステム
ネットワークの仮想化


VPNにはIPsecを用いる
監視用ポートスペース
サーバ用
ポートスペース
監視用
ポートスペース
httpd
IDS1
popd
IDS2
 IPsecのSPIの値でパケットを
分離

サーバ用ポートスペース
 ポート番号でパケットを分離
 外部ホストと通信する時は
動的NAPTのように変換
port=80
非IPsec
port=110 SPI=1
SPI=2
IPsec
ベース環境
ベースネットワーク
ファイルシステムの監視

サーバ用ポートスペースの
ファイルシステムをマウント
 unionマウント
 /.serverfs/<id>でアクセスで
ポートスペース1の
unionファイルシステム
/.filespace/1
監視するための
unionファイルシステム
/
きる
/.serverfs/1
 /.filespace/<id>だけをマウ
ントすることもできる

変更部分のみ
/.filespace/2
/
ポートスペース2の
unionファイルシステム
ネットワークの監視

ベース環境のネットワーク
インタフェースにアクセス
 パケットフィルタ(BPFなど)を
通して
 全てのパケットを取得できる

サーバ用
ポートスペース
監視用
ポートスペース
IDS
BPF
システム全体に対する攻撃も監
視
ベース環境
実験:Tripwire

ファイルの改ざんを監視
チェックにかかる時間
 ベース環境にて
サーバ用ポートスペース

全てのファイルをチェック
 ファイルに変更はなし

オーバヘッド
80
時間(秒)
 監視用ポートスペースから
100
60
40
20
0
ベース環境
ポートスペース
 15%

変更部分だけチェックすれば
高速化できる
PentiumIII-S 1.4GHz
メモリ 512MB
実験:Snort

ネットワークパケットを監視
パケットドロップ率
10
 監視用ポートスペースにて

UDPパケットを大量に送信
 2,200パケット/秒

オーバヘッド
ドロップ率(%)
 ベース環境にて
8
6
4
2
0
ベース環境
ポートスペース
 0.9%多くとりこぼした
100baseT スイッチ
NIC Intel Pro/100+
実験:thttpdウェブサーバ
サーバ用ポートスペース
のオーバヘッド測定
 ApacheBench

オーバヘッド
 継承なし:
9.5%
 継承あり: 4.3%
thttpdの性能
リクエスト数/秒

6000
4000
2000
0
1 2
3 4 5 6
並行度
7 8
ベース環境
サーバ用ポートスペース
サーバ用ポートスペース+継承
関連研究(1)

IDSをカーネル内で動かす
 ホストに侵入されても停止させられにくい
 制御用のシステムコール経由の攻撃
 専用のIDSが必要

IDSを別のホストで動かす
 サーバホストの影響を受けにくい
 アップデートで多重化がしやすい
 ネットワーク型IDSのみ対応できる
関連研究(2)

VMI [Garfinkel et al.’03]
ホスト
 サーバプロセスを仮想マシンの中で動かす


IDSは仮想マシンの外で動かす
IDSはサーバプロセス経由で攻撃されない
仮想マシン
サーバ
 IDSが直接攻撃を受ける
 仮想マシン越しにサーバプロセスを監視す
監視
るために専用のIDSが必要
IDS
まとめ

IDSをポートスペースの中で動作させるIDS
構成法を提案
 IDSの安全性を確保
 IDSのアップデート時に監視を継続

今後の課題
 IDSに対するDoS攻撃への対処
 IDSを多重化させた時の負荷対策