Vistaについて語るPart2

TechCollab2007-03-04


Vistaではセキュリティまわりのアーキテクチャが強化されたことはもう周知のことだと思うのですが、その最たるものであるUACについて(というか、ACLまわりの整理も含めて)を今日は色々書いてみようかと。

VistaではログインユーザがAdministrators所属ユーザであっても、ログイン時にトークンにフィルタがかかり実行されるプロセスは、さもUSERS所属ユーザのもつ特権を有するトークンが継承されているように動作する、というのが言われる話なのだけど、いまいち納得できない部分も多々ありなのです。納得できないというか、WRPについて考えると、Windowsフォルダにあるファイル(USERSにWRITE権限なし)についてWRITEが発生すると、%LOCALAPPDATA%以下のVirtualStore以下にリダイレクトされるけど、関係のないファイル(%ALLUSERSPROFILE%以下ファイル、USERSにWRITE権限なし)にWRITEが発生すると、出力に失敗する。システムリソースを保護する機構として用意されているWRPだけど、これにより仕様に不統一をもたらしていることも否めず、ソフトウェア開発者としてはなかなか頭の整理ができづらい所かと思う。これはWOW64においても同じ話だけど;ようするに%WinDIR%や%ProgramFiles%は以外のフォルダとは全く別なものとして考えろ、ということかな。うーん;いまいち頭で整理しきれない。

ちょっとここで、復習の意味を込めて最近勉強を怠っているWindowsアーキテクチャの中身についてを自分なりにおさらいをしてみる。

SIDにマッピングされているACL(DACL)を基にプロセスのリソースへのアクセスが決定される。ACLはヘッダと複数ACEにより構成される。ACEはSIDとアクセスマスクから成り、この集合としてACLは構成される。たとえば、USERSに参照のみ許可するACEや、Administratorsに参照、WRITEを許可するACEなどの集合としてACLは構成される。これらをプログラムからいじくるとなると、あたりを参照。提供ツールとしてはxcaclsなどもあり。


最近のネタとしては次の2つ。

もうPhotoshopまでWEB上で展開できる時代なのですね。素晴らしい!

Flickrと利用したPhotoViewerのデモがChannel9で紹介されていましたが、そのソースコードが公開されました。これは格好の教材です!時間を見つけて勉強してみます。