パーソナルネットワーク: 情報の流れを制御可能なVPN
Download
Report
Transcript パーソナルネットワーク: 情報の流れを制御可能な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攻撃への対処
監視系を多重化させた時の負荷対策
監視系の一括アップデート