[排序题]以下哪种形式最安全?
发表在远景论坛上,原帖的URL如下:
http://bbs.pcbeta.com/thread-177456-1-1.html
盆盆
假设操作系统是Windows Vista,假设启用UAC,希望执行某个管理员任务。现在的问题是,从Windows安全的角度出发,你觉得以下几种方法,安全性由高到低的排列顺序(举个例子,假设是5 3 2 1 4 ,代表安全性最高的是5,其次是3,以此类推)?并且给出科学的理由。
1. 以内置的Administrator登录系统,然后直接执行管理员任务。
2. 以管理员组成员身份登录系统,双击该管理员任务,在弹出的UAC对话框上单击“继续”。
3. 以标准用户身份登录系统,双击该管理员任务,在弹出的UAC对话框上选择某个管理员帐户,并输入密码,然后继续。
4. 以标准用户身份登录系统,用runas命令以某个管理员身份运行该任务,并在弹出的UAC对话框上单击“继续”。
5. 以标准用户身份登录系统,用快速用户切换的方法,切换到某个管理员帐户,然后执行该任务,在弹出的UAC对话框上单击“继续”。
TonyXiang
5 2 4 3 1
5是最安全的,不同帐户间的进程是被绝对隔离的,所以在执行平常任务时使用标准帐户,需要执行管理任务时才切换进入管理员帐户。这个是最安全的,即使外界恶意入侵了标准帐户桌面,也无法调用管理员帐户的进程。
其次是2,有些人可能认为使用3或者4好更好一些。其实以前我也这么认为,但自从看了微软官方的technet那篇关于uac的文章以后就不这么想了。3和4都存在一个共同的问题,就是有可能恶意软件假造这么一个权限提升请求的东西出来,诱骗用户输入管理员帐户和密码,威胁到系统安全。而2模式下,采用的是aam(管理员批准提升模式),就算恶意软件假造这么一个东西,也是没有用的。因为一个假造“继续”按钮是不能让恶意软件得到管理员权限的。而真正的“继续”按钮会被隔离在安全桌面进行,是其他软件不容易侵入的。
剩下的3和4哪个更安全,其实我也说不太清楚。只是感觉4要更安全一些,因为4是自己主动去选择run as某个管理员帐户运行,所以也许被恶意软件假造出这么一个请求提升权限的界面要相对困难一些。而直接电击管理员任务,更加容易被恶意软件截获。先于系统的提升请求对话框,假造一个来诱骗管理员帐户和密码。所以我认为4比3要安全一些
1就不用说了,谁都知道用内置的Administrator登录系统是最不安全的。
盆盆
解释到位,非常佩服!
为了帮助兄弟们更好地理解,这里补充几句,权作狗尾续貂哈:
Mark Russinovich说过,可以把窗口站和桌面看成是安全边界。而不同会话中的桌面,则可以实现最高级别的安全隔离。这就是为什么方法5最安全的原因。因为在方法5里,低、高级别的进程隔离在不同的会话中,非常安全。
而传统的认识,runas似乎和快速用户切换一样,其实不然。从安全角度来说,两者区别很大。这时候低、高级别的进程都运行在同一个桌面上,安全隔离的程度并不是最高。
UAC对话框运行在安全桌面上,和其他用户程序运行在不同的桌面,安全隔离的程度比较高。
TonyXiang朋友说得很对,确实标准用户的提升,有可能招致恶意软件的“社会工程学”攻击,解决方法是设置安全策略,强制用户必须按Ctrl+Alt+Del才能触发UAC凭据录入界面。
需要指出的是,Windows Vista的低、高级别的进程虽然还是运行在同一个桌面上,但是由于MIC、UIPI的功能,不同级别的进程之间可以实现一定程度的隔离,这比Windows 2000/XP要安全很多。
只是Mark Russinovich也说了,UAC/MIC/UIPI代替不了安全边界。
不过,非常重要的是,据微软产品组Robert的指导,合理的排序应该是5 3 (24) 1,以标准用户登录,比以管理员登录更加安全。
我以上的理解并一定完全正确,可能随着学习的深入,会改变看法,我会及时更新这个帖子,以尽可能反应正确的结论。
TonyXiang
不过我们所讨论的一个假定的前提是
计算机周围的物理环境是安全的,也就是不会有不法分子物理接触计算机
如果你开着计算机又走开了,其他人跑过来捣乱,那么2反而又变成相当不安全的了。本地安全策略里可以更改两条来防止这种问题,一个是盆盆所说的,强制使用Ctrl+Alt+Del才能触发UAC凭据录入界面,第二条是设置在aam模式下的权限提升仍然需要输入管理员密码。
盆盆
非常感谢你的回复!
一般来说,离开工作站时,应该按WIN+L锁定机器,让Windows进入安全桌面,实现桌面的隔离。
不过如果不能确保物理安全,这5个方法都可以说不够安全,任何一个稍微懂IT的攻击者,最乐观的情况下,不超过5分钟即可攻破帐户安全体系。
TonyXiang
这个到是,计算机都被物理接触了,还有什么安全可言。。。
偶在学校宿舍里就是去其他寝室转转,一般也会把计算机锁定。。。
盆盆
安全永远是相对的。要实现安全,一定要把某些部件当作可信的部分,例如物理环境、Winlogn进程等等,微软把这些可信部分叫做TCB(可信计算基础)。
我个人的理解,TCB好比是数学里面的公理,是没有道理可言的。例如“直线是两点间的最短距离”,本身就是公理,没有办法进一步切分证明。
编后
询问微软安全工程师Robert对于该问题的看法。他给出的答案是5 3 (24) 1。很显然用标准用户登录系统,要比用管理员帐户登录系统更加安全(哪怕由于UAC的原因,管理员组成员实际拿到标准用户权限)。Robert认为,2和4的安全程度很难做出区别,就要看UAC和Runas,哪个可能具有重大的安全漏洞。