パーソナルネットワーク: 情報の流れを制御可能なVPN

パーソナルネットワーク:
情報の流れを制御可能なVPN
東京工業大学 情報理工学研究科
数理・計算科学専攻
光来健一
概要
 VPN
 パーソナルネットワーク
 複数のVPN間の情報の流れを制御
 パーソナルネットワークの応用
 監視系と計算系の分離に利用
VPN
専用線によるプライベートネットワーク
 専用線
 2拠点間を物理的なケーブルでつなぐ
 物理的なプライベートネットワークを構築
本社
専用線
支社
専用線のメリット・デメリット
 メリット
 セキュリティが確保できる
 データを盗聴・改ざんされない
 トラフィック情報が漏洩しない
 QoSを保証できる
 デメリット
 高価
 距離に依存
 1対1の接続しかできない
仮想プライベートネットワーク(VPN)
 公衆ネットワーク上に構築された仮想的な通
信路
 インターネット
 電話線
VPN
公衆ネットワーク
VPNで使われる技術
 トンネリング技術
 2地点間を結ぶ仮想的な通信路(トンネル)を構築
 データをカプセル化
 暗号技術
 第三者によるデータの盗聴や改ざんを防ぐ
 送信側で暗号化、受信側で復号
インターネットVPN
 インターネット上を通る仮想的な通信路を構築
 PPTP、IPsec
 SSL、SSHのポートフォワーディング
VPN
VPN
リモートアクセスVPN
IP-VPN
 通信事業者の閉じたIPネットワークを使う
 セキュリティや品質が向上
 ユーザはMPLSで分離
エッジルータ
コアルータ
A社
B社
B社
A社
広域イーサネット
 イーサネット技術をWANに適用
 レイヤ2スイッチで接続
 ユーザはVLANで分離
B社
A社
スイッチ
B社
A社
パーソナルネットワーク
様々なVPN
 ユーザは様々なVPNを必要とするようになっ
てきている
 各組織のネットワークへのリモートアクセス
 大学、企業、ISP、家庭内LAN
 ピア・ツー・ピアネットワーク(P2P)
 音楽配信
複数のVPNを使う利点
 セキュリティの向上
 ユーザ毎に別々のVPN
 同じ組織のユーザでも権限は違う
 各ユーザの活動別のVPN
 仕事のメールの読み書き
 プライベートなメールの読み書き
 オンラインショッピング
VPNによるマルチホーム
 各ホストは複数のネットワークを扱わなければ
ならない
 複数のVPN、LAN
VPN2
ISP
LAN
VPN1
企業
ネットワーク
問題1:機密情報の漏洩
 情報の流れがVPNやLANの間で発生する
 マルチホームホストを介して
 各ネットワークはそれぞれの機密情報を扱う
VPN2
ISP
LAN
VPN1
企業
ネットワーク
ネットワーク層での漏洩
 VPN間でパケットが転送されるかもしれない
 異なるVPNの経路が単一のルーティングテーブル
に入っている
ルーティング
テーブル
192.168.0.0/24
VPN1
転送
ネットワーク層
192.168.1.0/24
VPN2
アプリケーション層での漏洩
 ファイルシステムやプロセスのメモリを介して
データが流れるかもしれない
ファイルシステム
プロセス
VPN1
アプリケーション層
VPN2
問題2:IPアドレスの衝突
 VPNやLANの間で同じIPアドレスが割り当て
られるかもしれない
 特にプライベートアドレス
192.168.0.0/24
ISP
VPN2
192.168.0.1?
LAN
VPN1
企業
ネットワーク
192.168.0.0/24
衝突の回避は難しい
 全てのVPNに異なるIPアドレスを割り当てる
のは非現実的
 各VPNはグローバルに管理されていない
管理サーバ
192.168.0.0/24
192.168.0.1/24
192.168.0.2/24
VPN1
VPN2
VPN3
従来の対策
 各ホストは1つのVPNだけを使える
 インターネットを使う場合もVPN越しに使う
 ネットワーク性能の低下
VPN
インター
ネット
192.168.0.64
企業ネットワーク
(192.168.0.0/24)
パーソナルネットワーク
 ネットワークの仮想化 + ホストの仮想化
 各ホストの実行環境を分離
 機密情報をVPNの中に閉じ込める
実行環境
VPN2
LAN
VPN1
ネットワーク層の分離
 VPN間でのパケットの転送による情報の流れ
を制限できる
ルーティング
テーブル
VPN1
ネットワーク層
VPN2
アプリケーション層の分離
 プロセスやファイルを介した情報の流れを制
限できる
ファイルシステム
プロセス
VPN1
アプリケーション層
VPN2
独立したネットワーク管理
 自由にIPアドレスを割り当てられる
 VPNでもLANでも同じIPアドレスを使うことが可能
VPN2
192.168.0.0/24
LAN
192.168.0.0/24
VPN1
192.168.0.1
192.168.0.0/24
ポートスペース
 VPN毎に分離された仮想的な実行環境
 ネットワーク空間
 ファイルシステム空間
 プロセス空間
ネットワーク空間の多重化
 IP層
 IPアドレス
 ルーティングテーブル
 トランスポート層
ポート80
ウェブ
サーバ
 ポート番号
 VPN
VPN1
ポート80
VPN2
ウェブ
サーバ
ファイルシステム空間の多重化
 各ポートスペースは専用のファ
イルシステムを持つ
 プロセスはポートスペース内の
ファイルにのみアクセスできる
 独自のネットワーク設定ファイル
を用意できる
 resolv.conf, host.conf
ファイル
システム1
ファイル
システム2
プロセス空間の多重化
 プロセス間の通信をポート
スペース内に制限する
 プロセス間通信(IPC)
 シグナルの送信
 共有メモリの利用
 新たに作られたプロセスは
同じポートスペース内で動く
プロセス
共有メモリ
ポートスペースの継承
 子ポートスペースは親ポートス
ペースの状態を引き継げる
 ネットワークサービス
 ファイルシステム
継承
 新しいポートスペースを容易に
作成することができる
 最小限の設定でよい
HTTP
POP
ネットワークサービスの継承
 親ポートスペースのサービスを利用できる
 リクエストを親ポートスペースに転送
子ポートスペース
VPN
ポート80
リクエスト
転送
親ポートスペース
ポート80
ウェブ
サーバ
サービスの隠蔽・上書き
 親ポートスペースのサービスを隠蔽したり、上
書きしたりできる
子ポートスペース
隠蔽
ポート80
子ポートスペース
上書き
ポート80
親ポートスペース
ポート80
ウェブ
サーバ
親ポートスペース
ポート80
ウェブ
サーバ
ファイルシステムの継承
 親ポートスペースから読み、
子ポートスペースに書く
 実行ファイルやライブラリを
共有できる
 親ポートスペースの設定ファイ
ル等を修正できる
 機密ファイルは隠蔽すること
もできる
子ポートスペース
read
write
親ポートスペース
ネットワークサービス継承の問題
 親ポートスペースが複数のパーソナルネット
ワークから使われうる
 親ポートスペースがマルチホームになる
リクエスト
転送
パーソナル
ネットワーク
サーバ
親ポートスペース
意図しない情報の流れ
 パーソナルネットワーク間で情報の流れが発
生する
 親ポートスペースを介して
転送
パーソナル
ネットワーク
情報の流れ
親ポートスペース
チャイニーズウォールモデルの強制
 パーソナルネットワークの構築を制限
 ポートスペースの持つ情報がパーソナルネット
ワークの持つ情報と衝突しなければOK
 情報の流れが発生するパーソナルネットワーク同士
は衝突しない情報しか扱えない
参加
継承
Chinese
Wall
現実的?
 サービスを継承するのは主にサーバ
 サーバは1つの組織の機密情報を扱う
 そのサーバを含む全てのパーソナルネットワーク
はその組織の情報のみを扱うべき
サーバ
組織
サーバの共有
 一般的な情報を提供するだけのサーバは
パーソナルネットワーク間で共有したい
 公開ウェブサーバ
 DNSサーバ
 しかし万一、サーバプロセスに情報を保存でき
ると機密情報を受け渡せてしまう
 サーバの設定ミス
 サーバの脆弱性の利用
情報の流れ
プロセスクリーニングによる解決
 サーバプロセスがリクエストを処理し終わる度
にプロセスをクリーンアップする
 リクエストを受け付ける前の状態を保存
 リクエスト処理後にその状態を復元
保存したプロセスの状態
機密かもしれない情報
復元
リクエスト処理中
リクエスト処理後
プロセスクリーニングの実装
 保存・復元するプロセスの状態




レジスタ(プログラムカウンタ)
メモリ(スタック、ヒープ、環境変数)
シグナルハンドラ
ファイルハンドラ・ソケット
実験:パーソナルネットワーク
 パーソナルネットワークのオーバヘッドを測定
 netperf、ApacheBench
 ベースネットワーク+IPsec
 パーソナルネットワーク
 パーソナルネットワーク+継承
 実験環境
 PC(PentiumIII-S 1.4GHz) 2台
 FreeBSD 4.7ベース
 100baseTのイーサネットで接続
 IPsecの暗号化と認証はなし
実験結果:netperf
往復のレイテンシ(μsec)
スループット(Mbps)
140
96
135
94
130
92
125
90
120
88
TCP
UDP
ベースネットワーク+IPsec
パーソナルネットワーク
パーソナルネットワーク+継承
1.5%のレイテンシ増大
TCP
UDP
ベースネットワーク+IPsec
パーソナルネットワーク
パーソナルネットワーク+継承
0.1%のスループット低下
実験結果:ApacheBench
リクエスト/秒
thttpdの性能の変化
5500
5000
4500
4000
3500
3000
2500
2000
1 2 3 4 5 6 7 8
並行度
ベースネットワーク+IPsec
パーソナルネットワーク
パーソナルネットワーク+継承
 性能低下
 1.1~3.9%
実験:プロセスクリーニング
 Apacheウェブサーバの性能を測定
 WebStoneベンチマーク
 ランダムにページをリクエストした時の性能
 実験環境
 サーバ: PentiumIII 933MHz, Linux 2.2ベー
ス
 クライアント: Celeron 300MHz, FreeBSD
3.4 16台
 100MbaseTのイーサネット
実験結果:WebStone
 プロセスクリーニングの
オーバヘッド(最大)
処理できるリクエスト数
(様々なファイルの場合)
 Fork-Join法に比べた
性能向上率
 30%
 毎回サーバプロセスを
作り直す手法
connections/sec
 18%
1600
1200
800
400
0
0
4
8
12
16
クライアント台数
標準
プロセスクリーニング
Fork-Join
関連研究:仮想ネットワーク
 仮想インターネット [Touch et al.’02]
 仮想ネットワークを状況に応じて切り替える
 フォールトトレラントのため
 仮想ルータ [Lim et al.’01]
 ルータでVPN毎にルーティング
 ネットワーク層のみ
 一般のホストではアプリケーション層も考える必要が
ある
関連研究:仮想ホスト
 様々な仮想ホスト技術がある




FreeBSD jail
User-mode Linux
VMware
クローン可能なネットワークスタック [Zec’03]
 違い
 VPNと連携しない
 仮想ホストがベース環境から独立でない
パーソナルネットワークの応用
分散システムにおける監視系
攻撃の兆候や各ホストの状態を解析
監視プログラム
(IDS, 負荷監視, ...)
サーバ
攻撃による監視系の停止
例えば…
 サーバプロセスの通信チャネルから侵入
 監視プロセスの利用する通信チャネルから侵入
 管理者になりすまして侵入
監視系の停止
 監視プロセスの停止
 監視ポリシーの無効化
アップデート時の監視系の停止
例えば…
 アップデート時の手際の悪さ
 新しい監視プログラムのバグ
綿密なテストが必要だが難しい
 別個に同じ環境を作るのは大変
 既存の環境で共存させるのは危険
ディレクトリやネットワークポートを変更
監視系の分離
 監視系と計算系を別々のパーソナルネット
ワークの中で動かす
パーソナルネットワーク
監視系
VPN
監視
計算系
監視系の保護
監視系には外部からアクセスできない
インターネット
監視系
計算系
VPN
監視系の安全なアップデート
2つの監視系を用いて一時的に多重化する
 アップデートが完了したら古い監視系は破棄
衝突しない
古い監視系
監視
計算系
新しい監視系
継承を用いたアップデート
古いIDSの動いている
ポートスペースを継承
 必要なファイルだけ変
更
 アップデート完了時に
古いIDSプロセスを停
止
新しい監視系
継承
監視
計算系
監視
古い監視系
各ホストの構成
 サーバプログラムと監視プロ
グラムを分離
 監視用ポートスペース
監視プログラムを動かす実
行環境
 サーバ用ポートスペース
サーバプログラムを動かす
実行環境
 ベース環境
その他のプログラムを動か
す既存の実行環境
ホスト
サーバ用
ポートスペース
監視用
ポートスペース
サーバ
プログラム
監視
プログラム
ベース環境
ベースネットワーク
監視用ポートスペース
 サーバ用ポートスペースを
監視できる
 ファイルシステム
 ネットワークインタフェース
 VPNのみを利用する
 他の監視用ポートスペース
と通信できる
 閉じたネットワークを形成す
る
サーバ用
ポートスペース
監視用
ポートスペース
監視
VPN
サーバ用ポートスペース
サーバ毎に異なる環境を使
うこともできる
ベースネットワークを利用す
る
 インターネットからアクセスで
きる
 サーバプロセス宛てのパケッ
トをポートスペースに転送
サーバ用
ポートスペース
httpd
popd
ベース環境
ベースネットワーク
ファイルシステムの監視
サーバ用ポートスペースのファイルシステムを
マウント
 全体をマウント
 変更部分のみマウント
サーバ用
ポートスペース
効率のよい監視が可能
監視用
ポートスペース
マウント
継承
ベース環境
ネットワークの監視
 ベース環境のネットワーク
インタフェースにアクセス
 パケットフィルタ(BPFなど)を通
して
 全てのパケットを取得する必要
がある
ポートスキャンの検出など
サーバ用
ポートスペース
監視用
ポートスペース
IDS
BPF
ベース環境
実験:Tripwire
 ファイルの改ざんを監視
 全てのファイルをチェック
 ファイルに変更はなし
 オーバヘッド
 15%
変更部分だけチェックすれ
ば高速化できる
100
80
時間(秒)
 ベース環境にて
 監視用ポートスペースから
サーバ用ポートスペース
チェックにかかる時間
60
40
20
0
ベース環境
ポートスペース
PentiumIII-S 1.4GHz
メモリ 512MB
実験:Snort
 ネットワークパケットを監視
 UDPパケットを大量に送信
 2,200パケット/秒
 オーバヘッド
 0.9%多くとりこぼした
10
ドロップ率(%)
 ベース環境にて
 監視用ポートスペースにて
パケットドロップ率
8
6
4
2
0
ベース環境
ポートスペース
100baseT スイッチ
NIC Intel Pro/100+
実験:thttpdウェブサーバ
 サーバ用ポートスペース
のオーバヘッド測定
 オーバヘッド
 ファイルシステムを継承し
ない場合: 9.5%
 ファイルシステムを継承す
る場合: 4.3%
リクエスト数/秒
 ApacheBench
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
まとめ
 パーソナルネットワークについて述べた
 ネットワークの仮想化+ホストの仮想化
 複数のVPNを扱う場合の情報の流れを制御
 パーソナルネットワークの応用について述べ
た
 監視系と計算系の分離
 監視系の保護
 監視系の安全なアップデート
今後の課題
 様々な監視プログラムへの対応
 監視系に対するDoS攻撃への対処
 監視系を多重化させた時の負荷対策
 監視系の一括アップデート