Adobe Reader X, Restricting SID の続き。
Windows XP 上での Adobe Reader X はどのように access token を制限しているか実際に確認してみましょう。
Process tree の構造は Windows 7 と変わりませんね。では access token はどうなっているか? まずは親の方。
Administrators に所属する user での結果ですが、全く filter されていません。つまり、この process の実行 account が有する権利が制限なく利用可能です。この process で動く code に脆弱性が存在した場合、死亡決定ですね。
次に子 process。
かなり厳しく 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 level、Integrity 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 は絶対に無効化しない。これ重要。