ちゃっぴの監禁部屋

ガチガチに締めすぎて動きがとれなくなる。。。

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  405  : 記事  5  : コメント  3662  : トラックバック  134

ニュース

記事カテゴリ

書庫

日記カテゴリ

Communities

Personal Information

Adobe Reader X, Restricting SID の続き。

Windows XP 上での Adobe Reader X はどのように access token を制限しているか実際に確認してみましょう。

AdobeReaderXProcessTreeeWindowsXP

Process tree の構造は Windows 7 と変わりませんね。では access token はどうなっているか? まずは親の方。

AdobeReaderXParentProcessAccessToken

Administrators に所属する user での結果ですが、全く filter されていません。つまり、この process の実行 account が有する権利が制限なく利用可能です。この process で動く code に脆弱性が存在した場合、死亡決定ですね。

次に子 process。

AdobeReaderXChildProcessAccessToken

かなり厳しく filter されていますね。Filter された token がどのように機能するかについては Restricting SID を参照していただくとして、結論としては下表のような token になります。

SIDs Enable
Logon SID (S-1-5-5-0-71174) Disabled
Everyone Enabled
Local Disabled
NT AUTHORITY\Authenticated Users Disabled
NT AUTHORITY\REMOTE INTERACTIVE LOGON Disabled
VIRTUALXP-17110\Debugger Users Disabled
VIRTUALXP-17110\なし Disabled
BUILTIN\Users Enabled
NT AUTHORITY\INTERACTIVE Disabled
BUILTIN\Administrators Disabled
VIRTUALXP-17110\XPMUser Disabled

要するに Everyone と BUILTIN\Users のみが有効な SID ということですね。

つまり、対象 rewouces の ACL で Everyone および BUILTIN\Users に対する許可の権利が与えられていないと access できないということです。

Windows XP の既定の ACL で Everyone および BUILTIN\Users が access 可能な resources の概要を下記に示します。

Type Path Rights
File/Folder Drive root
C:\ 等
Read & Create New
File/Folder %SystemRoot% Read only
File/Folder %ProgramFiles% Read only
File/Folder %UserProfile% None
File/Folder All Users Profile
C:\Documents and Settings\All Users\
Read only
File/Folder All Users Application Data
C:\Documents and Settings\All Users\Application Data
Read & Create new
File/Folder 共有ドキュメント
C:\Documents and Settings\All Users\Documents
Read & Create new
Registry HKCR Read only
Registry HKLM Read only
Registry HKCU Read only

%UserProfile% への権限は制限されているものの drive root に独自に作成した folder や共有ドキュメントに置いた file 等は保護されないことになります。また、ACL を変更して Everyone や BUILTIN\Users を付け加えるなんてこともよく行われており、当然その resources も保護されません。

これに対し、Windows Vista 以降では Low IL を利用しており、これは resources SACL に Low mandatory level が存在するものしか access できません。

参考) Low integrity levelIntegrity level を ACE として folder へ設定可能

Low mandatory level が設定されている場所は %UserProile%\AppData\LocalLow 等の非常に限定的な場所にのみ付与されているため、Windows XP で Adobe Reader が利用している Restricted Token とは格段に制限が厳しいです。

Windows XP でも Restricted Token を利用することにより、かなりの security 向上が見込めますが、Windows Vista 以降では IL のおかげで遥かに高い保護が行えます。どうしようもない理由で Windows XP を使い続けなければならないならともかく、さっさと Windows Vista 以降の OS に乗り換えましょう。それから、UAC は絶対に無効化しない。これ重要。

投稿日時 : 2010年11月21日 18:53

コメント

# Adobe Reader X on Windows 7 disabled UAC 2010/11/21 21:37 ちゃっぴの監禁部屋
Adobe Reader X on Windows 7 disabled UAC

# re: Adobe Reader X on Windows XP 2010/11/21 23:25 NyaRuRu
補足記事ありがとうございます.

> これに対し、Windows Vista 以降では Low IL を利用しており、これは resources SACL に Low mandatory level が存在するものしか access できません。

ここで言われている「access できません」は,デフォルトでは基本的に書き込みへの保護で,必ずしも読み取りに対する防御にはなっていないような?

あと Fire / Registry リソース以外まで話を広げると,今回の Sandbox 化でカーネルオブジェクトの取得もかなり困難になっているという違いも見えてきます.
例えば別プロセスで作った名前付き Mutex の取得とか無理そうな感じですよね.
さらに,USER Handles: Disabled な Job に放り込まれるので,Job 外のプロセスが所有するユーザーハンドルも使えなくなっているはず.

というわけで,このあたりまでもろもろ含めると,最初の投稿の

> ただ、Windows Vista より前では IL なんて無いですからこの sandbox による恩恵は受けられないでしょうね。

の「恩恵は受けられない」は言い過ぎかと思うわけですよ.
Windows XP で使っている人が「なんだ意味ないのか」と sandbox を無効にしてしまったりすると不幸です.

# re: Adobe Reader X on Windows XP 2010/11/21 23:36 NyaRuRu
保護モードが有効なInternet Explorer 8と比較してみると分かりやすいかもしれませんね.
あっちは意外と "Read Only" でアクセス出来ちゃうものが多いという印象.

# re: Adobe Reader X on Windows XP 2010/11/21 23:44 NyaRuRu
あとおまけで,Chrome の描画プロセスは Everyone と BUILTIN\Users すら放棄します.
Adobe Reader X の場合,Chrome と異なりウィンドウ処理も Sandbox 内のプロセスが行っているので, Everyone や BUILTIN\Users まで完全に放棄すると本当に動かない部分が出てきちゃうのかもしれませんね.

Post Feedback

タイトル
名前
Url:
コメント