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