WEB开发网
开发学院操作系统Windows Vista Vista用户帐户控制、PsExec和安全边界 阅读

Vista用户帐户控制、PsExec和安全边界

 2007-12-06 16:50:08 来源:WEB开发网   
核心提示: 本文由Mark Russinovich所著,由盆盆所翻译,Vista用户帐户控制、PsExec和安全边界,由于原文偏重于原理的阐述,所以为了加深大家对文章的理解,受限进程可以给正常进程(例如Explorer)发送窗口消息,用定制的鼠标和键盘输入来控制该正常进程,盆盆还特地加注了大量对原理注释和相关示例,这篇文章主要描

本文由Mark Russinovich所著,由盆盆所翻译。由于原文偏重于原理的阐述,所以为了加深大家对文章的理解,盆盆还特地加注了大量对原理注释和相关示例。这篇文章主要描述:对用户帐户控制、IE保护模式、UIPI和MIC等的安全意义和不足之处进行描述。为了保证原汁原味,翻译文章保留第一人称,文中的“我”就是指Mark Russinovich。

大约一年半以前,我给PsExec命令新设计了一个“-l”参数,这样我们就可以方便地在Windows XP的管理员帐户下,以标准用户的权限启动某个进程。在《Running as Limited User – The Easy Way》这篇文章里,我介绍了PsExec如何调用CreateRestrictedToken的API函数来创建安全上下文,该安全上下文来自于当前的登录帐户,但是排除了本地管理员组的成员关系,同时还排除了仅分配给管理员的特权(例如“调试程序”特权)。运行在该安全上下文中的进程,拥有标准用户的特权和访问权限,防止该进程修改系统文件和注册表键值,同时防止该进程使用只有管理员才能拥有的特权,例如“加载和卸载设备驱动程序”特权。

盆盆评注 在Windows Vista下,不仅可以用PsExec命令以标准用户权限运行进程。还可以用软件限制策略、“运行方式”、以及DropMyRights命令等方法,以更低权限运行进程,具体可见盆盆的文章《IE浏览器的最佳安全保护》。

在受限令牌所形成的隔离沙盒中,唯一的缺陷是:在隔离沙盒中的进程是以当前用户的身份运行的,所以只要当前用户有权读写的文件、注册表键值、甚至别的进程,该进程都能访问。这样就能打穿隔离沙盒的墙壁,如果恶意代码是专门为这种受限环境而编写的,那么它就可以利用这种手段,绕过隔离沙盒的限制,从而窃取完全的管理员权限。对于恶意程序来说,很有一个很简单的方法,只需使用OpenProcess函数,就可以读写隔离沙盒外的某个进程,并用自己的代码感染该进程,再插入一个线程,就可以执行代码。因为其他进程是以当前用户身份运行的,而Windows安全机制默认允许当前用户可以完全访问所有用户进程,因此沙盒里的进程也可以打开沙盒外的用户进程。还有一个方法,受限进程可以给正常进程(例如Explorer)发送窗口消息,用定制的鼠标和键盘输入来控制该正常进程,这样就能按照恶意程序的意图执行代码。

1 2 3 4 5 6  下一页

Tags:Vista 用户 帐户

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接