css2009 ruo ando

Post on 30-Jun-2015

325 Views

Category:

Documents

14 Downloads

Preview:

Click to see full reader

DESCRIPTION

Windows OS上でのフィルタドライバを用いたセキュアアクセス制御機構の構築

TRANSCRIPT

Windows OS上でのフィルタドライバを用いた セキュアアクセス制御機構の構築

情報通信研究機構

安藤類央

サイエンスパーク株式会社

井上宜子

産業技術総合研究所

須崎有康

CSS 2009

目次

1.

はじめに

2.

提案システム

3.

適用技術

4.

適用アクセス制御

5.

フィルタマネージャの詳細

6.

まとめと今後の課題

CSS 2009

1.はじめに

• Linux OS上でのセキュアアクセス制御– 多くの機関で研究されている

• Windows OS上でのセキュアアクセス制御– 多くの人が使用している割に、あまり研究されていない。– クローズドソースのため、情報が入手しずらく、処理内容が分からない。‐

Windows OSの場合、簡素なファイルシステムドライバによ

るアクセス制御をすると、設定が簡単で、破られにくいシ ステムが出来上がる可能性がある。

Windows OSのデフォルトのアクセス制御はあるが、今度 クラウド環境での仮想化されたWindows OSを防御する場 合に必要となると想定されるfine‐tuning(微調整)が効か

ない。

CSS 2009

プレゼンター
プレゼンテーションのノート
このプロジェクト発足の理由: 企業の多くはWindows OSを使用:セキュアアクセス制御の需要も大きいはず

1.はじめに

• Windowsデバッグ機構に対する需要増大

• デバッグ関連技術の発達→ Linux OS同等の

セキュアアクセス制御が可能

Windows上でセキュアアクセス制御を行い

ゼロデイ攻撃などのセキュリティインシデントの被害を最小化する

CSS 2009

2. 提案システム

書込み要求(PRE)

提案システム検出とアクセス制御

書込み要求(コミット)書込み要求

書込み完了通知

書込み完了通知(POST)

書込み完了通知

ApplicationFilter

ManagerDiskFile System

CSS 2009

プレゼンター
プレゼンテーションのノート
提案システム:アクセス制御のシーケンス

3. 適用技術

• Windows OS上でアクセス制御を行う手段

–ユーザーモード• DLLインジェクション

• APIフック

–カーネルモード

• フィルタドライバ

・ ファイルアクセスをすべて監視できる

OSと一番近い層で動く

アクセス制御に必要な情報が取得できる

CSS 2009

3. 適用技術

3.1.

FilterManager

• Microsoftが提供するファイルシステムフィル タドライバ

• Windows XP SP2以降

• サードパーティの開発を簡素化– フィルタするIRPのみ編集

– 開発時間の短縮

– 挿入する階層を指定可能

CSS 2009

プレゼンター
プレゼンテーションのノート
カーネルモードドライバ:FilterManager ソースコードの量:今回のケース レガシー:10000 ミニフィルタ:2000

3. 適用技術

Disk

FileSystem(FAT/NTFS)

FilterManager

Application

MiniFilter

Device

Kernel Mode

User

Mode

FilterManagerの構成

CSS 2009

プレゼンター
プレゼンテーションのノート
FilterManager:アプリとFSの間に存在するファイルシステムフィルタドライバ        MiniFilterにファイルIOをフィルタするためのインターフェースを提供している MiniFilter:今回提案するシステム。実際にこれを改修する。

3. 適用技術

3.2.

FilterDriver

• FilterManagerとMiniFilter

• フィルタするIRPをFilterManagerに登録

• フィルタするIRPの処理を実装

IRP:ファイルIO要求の受け渡し

CSS 2009

4. 適用アクセス制御

• MAC(Mandatory AccessControl)

– 所有者ではなくシステムがアクセス権を設定、制御する。

– 静的にアクセス権限を決定する。

– MACを実装配備するためには、デバイスドライバ、カー ネルモジュールが必要。

• TDE(Trusted

Domain Enforcement)

プロセスのファイルへの読み書きをシステムが動的に変更 する。

TDEを実装配備するためには、プロセス情報が取れるフィル タマネージャの機能が必要。

CSS 2009

プレゼンター
プレゼンテーションのノート
とばす

5. フィルタマネージャの詳細

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;

CSS 2009

プレゼンター
プレゼンテーションのノート
フィルタマネージャから呼び出されるミニフィルタの関数を設定する 中でもメインは赤枠のOperationRegistrationの部分。IRPを設定する所。 他のもの

5. フィルタマネージャの詳細

フィルタする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;

ファイルシステム呼び

出し前のコールバック

関数

ファイルシステム呼び出し

後のコールバック関数

CSS 2009

プレゼンター
プレゼンテーションのノート
メイン部分の

5. フィルタマネージャの詳細アクセス制御の仕組み

○PreOperation

○PostOperation

CSS 2009

プレゼンター
プレゼンテーションのノート
一般的なアプリケーションの動き ReadWriteで制御するため、Createで構造体作成 Read,Writeでアクセス制御。 許可:NTFSへ 禁止:NTFSは呼ばずに上位へ Closeで削除

5. フィルタマネージャの詳細

ファイル情報構造体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;

ファイルアクセスを

行うパス名

ファイルアクセス

の要求プロセス名

プロセスのアクセス属性

CSS 2009

プレゼンター
プレゼンテーションのノート
ファイル情報の構造体はこの様になります。 アクセス可否を決める要素 FullPath ProcessName ProcessAttributes

5. フィルタマネージャの詳細

No IRP要求 PRE POST1 IRP_MJ_CREATE ○ ○2 IRP_MJ_CLOSE ○ ×3 IRP_MJ_CLEANUP ○ ×4 IRP_MJ_READ ○ ×5 IRP_MJ_WRITE ○ ×6 IRP_MJ_SET_INFORMATION ○ ×

フィルタするIRPの設定(2)

CSS 2009

プレゼンター
プレゼンテーションのノート
Create-オープン SETINFO-リネーム、削除

5. フィルタマネージャの詳細

関数の型 FLT_PREOP_CALLBACK_STATUS機能 ・ファイル情報構造体の取得

・アクセス可否の判断・アクセス可否に応じた戻り値の設定

引数 1 PFLT_CALLBACK_DATA Data2 PCFLT_RELATED_OBJECTS FltObjects3 PVOID *CompletionContext

戻り値 1 FLT_PREOP_SUCCESS_WITH_CALLBACK

(成功)

2 FLT_PREOP_SUCCESS_NO_CALLBACK

(成功)

3 FLT_PREOP_COMPLETE

(成功/失敗) 

失敗時の設定

戻り値をFLT_PREOP_COMPLETEに設定引数DataのIoStatus.Statusにエラー値を設定

CSS 2009

プレゼンター
プレゼンテーションのノート
FilterManagerとMiniFilter間のインターフェース。このようなシーケンスで行います。

6.まとめと今後の課題まとめ

Linux

:OSに入れ込む

Windows :OSの上か下でフィルタ

技術的課題

オープンと、リネーム後のファイル名取得処理が未実装

仮想マシンモニタへの通知機能の付加:今後普及が進むクラウド環境

上での、仮想化されたWindows OSの防御用にフィルタドライバを修正

今後の展開

仮想化OS上で動作するWindowsのファイルアクセスをモニターして、

ユーザーの動きを監視する

・ モニターをAIST

Web公開予定

CSS 2009

ご清聴ありがとうございました

top related