TCG 技 術 を 使 った 研 究 クラウド 環 境 におけるWindows ゲストの 完 全 性 検 証 技 術 情 報 通 信 研 究 機 構 情 報 通 信 セキュリティ 研 究 センター 安 藤 類 央
はじめに クラウドコンピューティングの 普 及 Amazon EC2, hybrid cloud 遠 隔 環 境 の 安 全 性 (integrity)の 検 証 遠 隔 地 にあるサーバは 安 全 に 起 動 稼 動 しているのか 遠 隔 地 にあるWebサーバの 検 証 : 大 事 なパスワードを 預 けていいのものか 遠 隔 地 にあるストレージサーバの 検 証 : 大 事 なファイル データを 預 けていいものか サーバ 側 の 安 全 性 確 認 :Remote attestationの 重 要 性 パスワードによる 認 証 以 前 に 遠 隔 地 にあるサーバが 安 全 に 起 動 されているか 確 認 する クライアントOSの 安 全 性 確 認 : 手 元 にあるあるいは 預 けたWindows OSの 安 全 性 (integrity)の 検 証 手 元 あるいは 遠 隔 にあるWindows OSが 感 染 ( 不 正 に 改 竄 )して いないか 確 認 する
関 連 研 究 プロジェクト 完 全 性 検 証 最 近 2004~2009 年 vtpm (IBM) Vitrual Trusted Platform Module TPM チップを 仮 想 化 し XENで 利 用 可 能 にした TVD (IBM) Trusted Virtual Domain アクセス 制 御 やアテステーションを 組 み 合 わせて 信 頼 できるゲストOSのドメインを 構 成 する IMA (IBM) Integrated Measurement Architecture ブートから アプリケーションの 起 動 までの 安 全 性 ( 完 全 性 )を 検 証 する (トラストチェーンの 構 築 ) 最 新 2009 年 の 研 究 仮 想 化 技 術 の 完 全 性 検 証 への 適 用 HIMA: North Carolina 大 学 Annual Computer Security Applications Conference 2009 観 測 通 知 Patagonix: Tronto University 仮 想 マシン 上 でどのOSがどの 実 行 ファイルを 実 行 したか 仮 想 マシンモニタ 側 で 検 証 可 能 XenAcess 仮 想 マシンモニタXenで 仮 想 している 仮 想 OSの 情 報 を 得 るためのAPI
関 連 研 究 プロジェクト 仮 想 化 技 術 と 完 全 性 検 証 vtpm virtual Trusted Platform Module (IBM) TPMチップを 仮 想 化 し 仮 想 化 環 境 で 完 全 性 の 検 証 ができるよ うにする TPMを 仮 想 化 してゲストOSからアクセス 出 来 るよう にすることで 仮 想 化 されたゲストOSにおいても Trusted Computing 技 術 を 利 用 可 能 にする 現 在 XenがvTPMサポー トしている VTD Virtual Trusted Domain (IBM TRL) 仮 想 化 技 術 において VMMによるアクセス 制 御 機 構 と ゲストOSへのアテ ステーションを 元 に ゲストOSを 信 頼 できるドメインの 一 員 として 管 理 する
関 連 研 究 プロジェクト 仮 想 化 技 術 と 完 全 検 証 HIMA (North Carolina State Univ and IBM) Hypervisor( 仮 想 マシンモニタ)を 用 いたゲスト OSの 完 全 性 検 証 IBM Watson 研 のLinux IMAへの hypervisorへの 拡 張 仮 想 マシンモニタ 技 術 を 用 いて ゲストOSのisolationと consistency(tocttou)の 双 方 を 確 保 する VMKnoppix ( 産 総 研 AIST) Knoppix: On memory(ハードディスクなしで 起 動 する) LINUX Knoppix 上 でVMが 起 動 し VTPM( 仮 想 化 さ れたTPM)を 用 いて 起 動 などを 安 全 に 行 うことが 可 能
現 状 のTCG 技 術 の 問 題 点 Windows 上 のintegrity 検 証 Trust Chainの 問 題 Trust Chainとは: 起 動 の 初 めからOSやアプリ ケーションが 安 全 に 起 動 稼 動 しているか 検 証 するための 仕 組 み 改 竄 されないハードウェアの 値 (PCR) ブートローダが 安 全 に 起 動 したか カーネルがセキュアにロードされたか ファイル システムが 安 全 にロードされたか アプリケーションが 安 全 に 起 動 されたか Linuxと 異 なり クローズドソースのWindowsは セキュアブートからのTrust Chainが 途 切 れてしまう 計 測 ソフトウェアの 安 全 性 (integrity)の 保 障 ができない
Windows 上 のintegrity 検 証 なぜWindowsではtrust chainが 観 測 計 測 できないのか Linux OS 上 での 完 全 性 計 測 多 くの 機 関 で 研 究 されている LinuxではIBM 発 のIntegrity Measurement Architectureで Trust Chainが 構 築 できる Windows OS 上 での 完 全 性 計 測 多 くの 人 が 使 用 している 割 に あまり 研 究 されていない クローズドソース のため 情 報 が 入 手 しずらく 処 理 内 容 が 分 からない 対 策 1Windows ファイルシステム(のフィルタリング)ドライバを 用 意 することで ファイルの 実 行 時 などにハッシュ 値 をとり ある 程 度 の 完 全 性 を 計 測 する ことができる 2 仮 想 マシンモニタ( 外 側 )からWindows OSのブート 時 の 挙 動 を 観 測 し Trust chainを 構 築 する 1と2を 組 み 合 わせて Trust Chainを 構 築 する
今 後 の 課 題 課 題 :Windows OS 上 Trust Chainの 構 築 仮 想 化 技 術 を 用 いたwindows 上 のTrust Chainの 構 築 (Windows OSを 修 整 し 仮 想 マシンモニタからWindows OSの 起 動 稼 動 を 観 測 する )
提 案 システム Application Filter Manager File System Disk 書 込 み 要 求 (PRE) 提 案 システム アプリケーションの ハッシュ 計 算 と 検 証 書 込 み 要 求 書 込 み 要 求 (コミット) 書 込 み 完 了 通 知 書 込 み 完 了 通 知 書 込 み 完 了 通 知 (POST)
適 用 技 術 Windows OS 上 でアクセス 制 御 を 行 う 手 段 ユーザーモード DLLインジェクション APIフック カーネルモード フィルタドライバ ファイルアクセスを すべて 監 視 できる OSと 一 番 近 い 層 で 動 く アクセス 制 御 に 必 要 な 情 報 が 取 得 できる
適 用 技 術 FilterManager Microsoftが 提 供 するファイルシステムフィル タドライバ Windows XP SP2 以 降 サードパーティの 開 発 を 簡 素 化 フィルタするIRPのみ 編 集 開 発 時 間 の 短 縮 挿 入 する 階 層 を 指 定 可 能
FilterManagerの 構 成 適 用 技 術 Application User Mode FilterManager MiniFilter FileSystem(FAT/NTFS) Kernel Mode Disk Device
適 用 技 術 FilterDriver FilterManagerとMiniFilter フィルタするIRPをFilterManagerに 登 録 フィルタするIRPの 処 理 を 実 装 IRP:ファイルIO 要 求 の 受 け 渡 し
フィルタマネージャの 詳 細 MiniFilterの 登 録 typedef struct _FLT_REGISTRATION { USHORT Size; USHORT Version; FLT_REGISTRATION_FLAGS Flags; CONST FLT_CONTEXT_REGISTRATION *ContextRegistration; CONST FLT_OPERATION_REGISTRATION *OperationRegistration; PFLT_FILTER_UNLOAD_CALLBACK FilterUnloadCallback; PFLT_INSTANCE_SETUP_CALLBACK InstanceSetupCallback; PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK InstanceQueryTeardownCallback; PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownStartCallback; PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownCompleteCallback; PFLT_GENERATE_FILE_NAME GenerateFileNameCallback; PFLT_NORMALIZE_NAME_COMPONENT NormalizeNameComponentCallback; PFLT_NORMALIZE_CONTEXT_CLEANUP NormalizeContextCleanupCallback; } FLT_REGISTRATION, *PFLT_REGISTRATION;
フィルタマネージャの 詳 細 フィルタするIRPの 設 定 (1) typedef struct _FLT_OPERATION_REGISTRATION { UCHAR MajorFunction; FLT_OPERATION_REGISTRATION_FLAGS Flags; PFLT_PRE_OPERATION_CALLBACK PreOperation; PFLT_POST_OPERATION_CALLBACK PostOperation; PVOID Reserved1; } FLT_OPERATION_REGISTRATION, *PFLT_OPERATION_REGISTRATION; ファイルシステム 呼 び 出 し 前 のコールバック 関 数 ファイルシステム 呼 び 出 し 後 のコールバック 関 数
フィルタマネージャの 詳 細 アクセス 制 御 の 仕 組 み PreOperation PostOperation
フィルタマネージャの 詳 細 ファイル 情 報 構 造 体 typedef struct _FILE_ACCESS_DATA{ BOOLEAN IsDirectory; UNICODE_STRING FullPath; ファイルアクセスを 行 うパス 名 ULONG AccessRecord; ULONG AccessAttributes; ULONG ProcessID; PWCHAR ProcessName; ULONG ProcessAttributes; } FILE_ACCESS_DATA, *PFILE_ACCESS_DATA; ファイルアクセス の 要 求 プロセス 名 プロセスの アクセス 属 性
フィルタマネージャの 詳 細 フィルタするIRPの 設 定 (2) No IRP 要 求 PRE POST 1 IRP_MJ_CREATE 2 IRP_MJ_CLOSE 3 IRP_MJ_CLEANUP 4 IRP_MJ_READ 5 IRP_MJ_WRITE 6 IRP_MJ_SET_INFORMA TION
フィルタマネージャの 詳 細 関 数 の 型 機 能 FLT_PREOP_CALLBACK_STATUS ファイル 情 報 構 造 体 の 取 得 アクセス 可 否 の 判 断 アクセス 可 否 に 応 じた 戻 り 値 の 設 定 引 数 1 PFLT_CALLBACK_DATA Data 2 PCFLT_RELATED_OBJECTS FltObjects 3 PVOID *CompletionContext 戻 り 値 1 FLT_PREOP_SUCCESS_WITH_CALLBACK ( 成 功 ) 失 敗 時 の 設 定 2 FLT_PREOP_SUCCESS_NO_CALLBACK ( 成 功 ) 3 FLT_PREOP_COMPLETE ( 成 功 / 失 敗 ) 戻 り 値 をFLT_PREOP_COMPLETEに 設 定 引 数 DataのIoStatus.Statusにエラー 値 を 設 定
今 後 のソリューション 仮 想 化 によるTrust Chainの 構 築 1フィルタドライバによる 観 測 の 問 題 点 フィルタドライバのロード 以 前 ブート 時 の 完 全 性 の 検 証 ができない 2 仮 想 マシンモニタによる 観 測 の 問 題 点 ロード 時 の 観 測 完 全 性 を 検 証 できる 可 能 性 があ るが ブート 後 のアプリーションの 完 全 性 の 検 証 が 難 しい (semantic gap: 仮 想 マシンモニタからはゲストOS でなにか 起 こっているか 知 るのは 難 しい
ソリューションの 適 用 例 :TPMを 用 いたWEBサーバ IIS(または Windows apache)の 安 全 性 検 証 遠 隔 地 にあるWEBサーバが 安 全 に 起 動 稼 動 されているか 1 前 述 のスライド12によるフィルタドライバによるWindows OS 修 正 と 仮 想 マシンモニタによる 外 部 観 測 2Web server (IIS)を 稼 動 するWindows server OSの 完 全 性 の 検 証 3フィルタドライバを 用 いたIISのexe, sys, ファイルアクセスの 完 全 性 検 証
ご 清 聴 ありがとうございました