原文连接:
http://technet.microsoft.com/zh-cn/magazine/2007.06.uac(en-us).aspx
UAC是win vista版本后引入的系统安全机制,主要用来防止滥用管理员权限导致系统易受攻击。下面分3部分说明:
Session 1
UAC的目的
UAC 使用户在运行应用程序的时,尽可能使用的是标准账户权限,而不是管理员权限。所谓的管理员权限,就是能是用户读写系统中自己和其他用户的数据等信息,
甚至可以更改操作系统本身。没有管理员权限,用户也不可能有意或者无意的修改系统的设置,恶意软件也不会随意调整安全设置或者整残杀软,标准账户权限的用户
也无法获取本机上其他用户的敏感信息。运行在标准账户下,公司的办公用户可以减少紧急的IT求助,减轻恶意软件带来的影响,同时也是的家庭用户能运行更顺畅,保护
数据隐私。
为了在实际使用标准账户能更好运行,UAC 需要解决借个问题:第一,在vista以前,windows的使用前提是假设已经用用了管理员权限。软件工程师们 阮伟 他们的程序可以
读取和修改任何文件,注册表键值,和系统设置。即使当时windows NT 引入了安全机制,并且开始区分管理员账户和标准账户,用户设置一般都是在安装过程中,并且
鼓励用户使用默认的管理员账户或者在管理员用户组里面的一个其他账户。第二,用户需要使用管理员权限去更改一些常用设置,比如安装软件,改变系统时间,或者更改
防火墙设置。
UAC对这些问题的解决方案是,使用标准账户权限运行绝大部分应用程序,排除一直需要管理员账户的情况,并鼓励开发人员创建以标准用户权限运行的程序。为了达到这个目的,需要尽可能少的使用管理员权限,并且运行在标准账户权限下的程序在需要的时候,可以很容易很方便的获取到管理员权限,并且几十是管理员账户登录,他们的应用程序也像运行在标准账户下。
Run As Standard User 以标准用户权限运行
在开发vista的过程中,对管理员权限操作了全面的审视发现,其实很多操作是可以赋予标准用户的的。例如,在以往winXP系统下,由于更改时区和更改系统时间的权限是绑定一起的,都是必须获取管理员账户,那么当一个手提用户因为出差到另外时区时,就不能自己设置时区。
由于系统时间在一些安全协议上有应用,而更改时区只是影响时间的现实。所以在winVista后的版本对时区更改这项赋予了一个新的权限,这个权限默认也给了标准用户组,使得上述工作场景可以正常设置时区。
对于线上程序不能正常运行在标准用怎么办呢? 虽然某些软件传统地需要获取管理员权限,其中许多可以不必将他们的用户数据存到系统全局的位置,MS推荐安装程序在以管理员程序运行的时候,在%Programe File%下面创建一个新的文件夹,一些附属信息写到HKLM\software的注册表下,
The vast majority of installation programs require administrative rights, so the image loader, which initiates the launch of an executable, includes installer detection code to identify likely legacy installers. Some of the heuristics it uses are as simple as detecting if the image has the words setup, install, or update in its file name or internal version information; more sophisticated ones involve scanning for byte sequences in the executable that are common to third-party installation wrapper utilities.
Executing an image that requests administrative rights causes the Application Information Service (also known as AIS, contained in %SystemRoot%\System32\Appinfo.dll), which runs inside a Service Host process (%SystemRoot%\System32\Svchost .exe), to launch Consent.exe (%SystemRoot%\System32\Consent.exe). Consent captures a bitmap of the screen, applies a fade effect to it, switches to a desktop that’s only accessible to the Local System account, paints the bitmap as the background, and displays an elevation dialog box that contains information about the executable. Displaying on a separate desktop prevents any malware present in the user’s account from modifying the appearance of the dialog box.
原来这个是切换到另外一个桌面了空间了 防盗号可以采用
提升的进程需要隔离出来,否者被standard User 的恶意程序感染后,接跳板做坏事。
但是还是可以openprocess 然后inject code,run!
每个进程和对象都有自己的integrity level(IL),IL是有Security Identifier (SID),SID也还有用户和用户组信息,RID代表等级,是低权限,中等权限,高权限还是系统权限。
未完 待续
http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/54fb4e57-357e-4db9-a3e2-1c093a582926/