议程

                                                                               UAC总体概述
             Windows 7兼容性系列课程(2):
                     7兼容性系列课程(2):
             Windows 7用户权限控制(UAC)
                     7用户权限控制(UAC)
                                                                               不同类型用户的UAC问题
               吴慧锋
               MVP 测试与技术支持工程师
               www.ssw.com.au
               E-mail / MSN: WilsonWu@ssw.com.au                               UAC深入探究




            UAC总体概述
            UAC总体概述                                                           UAC的目标
                                                                              UAC的目标

                UAC目标
                UAC目标                                                          以普通用户权限运行更多程序
                                                                                首先保证应用程序正常运行
                UAC控制方法
                UAC控制方法                                                        对用户的好处
                                                                                对系统资源给予保护
                                                                                减少恶意软件对系统的影响




            UAC Manifests清单文件
                Manifests清单文件                                                 UAC Manifests清单文件
                                                                                  Manifests清单文件
            <?xml version="1.0" encoding="UTF‐8" standalone="yes"?>            Windows 7中清单文件
            <assembly xmlns="urn:schemas‐microsoft‐com:asm.v1" 
            manifestVersion="1.0">                                              分为内部清单和外部清单
              <assemblyIdentity type="win32" processorArchitecture="*"          两种形式内容相同
                   version="1.0.0.0" name="MyApplication.exe"/>
              <description>My totally sweet Vista application</description>     内部清单级别高于外部清单
              < s_as
              <ms asmv2:trustInfo xmlns:ms asmv2="urn:schemas‐microsoft‐
                        :t ust  o     s: s_as     u :sc e as    c oso t
                   com:asm.v2">                                                无法使用代码来实现清单功能
                <ms_asmv2:security>
                  <ms_asmv2:requestedPrivileges>                               Visual Studio 2008默认支持
                                                                                             2008默认支持
                     <ms_asmv2:requestedExecutionLevel level="asInvoker || 
                     highestAvailable || requireAdministrator"/>
                  </ms_asmv2:requestedPrivileges>
                </ms_asmv2:security>
              </ms_asmv2:trustInfo>
            </assembly>


        5




© 2002 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.   1
运行级别
              管理员权限:RequireAdministrator
              管理员权限:RequireAdministrator
              当前最高权限:HighestAvailable
              当前最高权限:HighestAvailable
                                                                          UAC Manifest
              继承父进程权限:AsInvoker
              继承父进程权限:AsInvoker




          不同类型用户的UAC问题
          不同类型用户的UAC问题                                                    普通用户遇到的问题

               普通用户遇到的问题                                                                                    不少程序需要管理员
                                                                                                              权限运行

                虚拟系统
                                                                                            我是一个开
                                                                                             发人员
               管理员用户遇到的问题
                令牌分离




          普通用户权限控制                                                        虚拟系统
              默认以普通用户权限级别运行程序                                                 只适用于桌面应用程序
              允许普通用户提升权限运行程序                                                    可执行文件

              提升权限需要管理员登录验证                                                   只适用于无Manifest清单文件程序
                                                                              只适用于无Manifest清单文件程序
                                                                                是否有Manifest可用工具查看
                                                                                是否有Manifest可用工具查看
                                                                              只适用于32位应用程序
                                                                              只适用于32位应用程序
                                                                                只有64位系统需要关心
                                                                                只有64位系统需要关心
                                                                              只适用于普通用户权限运行的程序
                                                                                管理员权限运行虚拟系统被强制关闭




© 2002 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.   2
文件虚拟系统                                                          文件虚拟系统
              C:Program Files
                                                                                          无Manifest的
                                                                                           Manifest的                          含有Manifest
                                                                                                                              含有Manifest
              C:ProgramData
                  rogramD                                                                  应用程序                               的应用程序

              C:Windows                                                  User Mode                       WindowsApp.ini
                                                                                                           Windows


                                                                          Kernel Mode
                                                                                                                 Luafv.sys

                                                                          Users<user>AppDataLocal
                                                                           Users<user>AppDataLocal
                                                                                                                                 Access Denied
                                                                          VirtualStoreWindows
                                                                          VirtualStoreWindowsApp.ini


                                                                                                                 Ntfs.sys




          注册表虚拟系统                                                         注册表虚拟系统
              HKEY_LOCAL_MACHINE
              HKEY_LOCAL_MACHINESoftware                                                   无Manifest的
                                                                                             Manifest的                          含有Manifest
                                                                                                                                含有Manifest
                                                                                             应用程序                               的应用程序

                                                                            User Mode                       HKLMSoftware
                                                                                                            HKLMSoftwareApp


                                                                            Kernel Mode                                            Access Denied

                                                                                                                 Ntoskrnl.exe


                                                                           HKCUSoftwareClassesVirtualStore
                                                                           HKCUSoftwareClassesVirtualStore
                                                                           MachineSoftware
                                                                           MachineSoftwareApp



                                                                                                                   Registry




                                                                          管理员权限控制
                                                                               默认以普通用户权限级别运行程序
                                                                               允许普通用户提升权限运行程序
          文件虚拟系统                                                               提升权限只需要简单确认操作




© 2002 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.                          3
权限令牌分离                                                                               权限令牌创建过程
              以普通用户权限执数操作                                                                                   创建用户完整权限令牌
              需要权限时再进行提升
              需要权限时再进行提升


                                                                                                            创建用户的保护权限模式
                                                                                                  登录系统
                                                                                                                令牌




                                                                                                            使用保护权限模式令牌创
                                                                                                             建explorer.exe进程
                                                                                                              explorer.exe进程




          UAC OTS提升过程
              OTS提升过程                                                                          UAC OTS对话框
                                                                                                   OTS对话框
                                                重定义父级




                      ShellExecute(elevatedapp.exe)
                      ShellExecute(elevatedapp.exe)   CreateProcessAsUser(elevatedapp.exe)
                                                      CreateProcessAsUser(elevatedapp.exe)



             explorer.exe         RP
                                  C        AppInfo Service                   elevatedapp.exe




                                              consent.exe


             Protected
            Administrator                     System                           Administrator




                                                                                               UAC深入探究
                                                                                               UAC深入探究

                                                                                                Shield图标
                                                                                                Shield图标
          UAC权限令牌分离
          UAC权限令牌分离                                                                             UAC系统日志
                                                                                                UAC系统日志
                                                                                                icacls工具
                                                                                                icacls工具




© 2002 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.      4
Shield图标
          Shield图标
              User32.dll
              BCM_SETSHIELD = 0x0000160C
              SendMessage ( BCM_SETSHIELD …)
                                                                          如何使用Shield图标
                                                                          如何使用Shield图标
              无法提升 个进程的运行级别
              无法提升一个进程的运行级别




          UAC系统日志
          UAC系统日志                                                         icacls
              文件虚拟系统日志                                                        Windows 7中新增的命令行工具
              注册表虚拟系统日志                                                       包含完整性级别支持
              提升权限请求日志                                                          以后将继续完善功能




                                                                          Question & Answer

                                                                                  如需提出问题,请在此区域输入文字,并单击
          UAC系统日志
          UAC                                                                     “问题和解答”右上方的“提问”按钮即可。
                                                                                   问题和解答”右上方的“提问”




                                                                             您也可以选择在微软中文技术论坛上寻求帮助,MSDN中文网络
                                                                               也可以选择在微软中文技术论坛上寻求帮助,MSDN中文网络
                                                                             广播的讲师们会定期在论坛上为大家解答与课程相关的技术问题。
                                                                             http://forums.microsoft.com/china
                                                                             http://forums.microsoft.com/china




© 2002 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.   5
感谢!
          感谢!
               吴慧锋
               Wilson Wu
               Email: iwilsonwu@gmail.com
               MSN: il
               MSN wilsonwu@ssw.com.au
                              @
               QQ: 53286461
               Blog: http://WilsonWu.cnblogs.com
               Blog: http://WilsonWu.cnblogs.com




© 2002 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.   6

Windows 7兼容性系列课程(2):Windows 7用户权限控制 (UAC)

  • 1.
    议程 UAC总体概述 Windows 7兼容性系列课程(2): 7兼容性系列课程(2): Windows 7用户权限控制(UAC) 7用户权限控制(UAC) 不同类型用户的UAC问题 吴慧锋 MVP 测试与技术支持工程师 www.ssw.com.au E-mail / MSN: WilsonWu@ssw.com.au UAC深入探究 UAC总体概述 UAC总体概述 UAC的目标 UAC的目标 UAC目标 UAC目标 以普通用户权限运行更多程序 首先保证应用程序正常运行 UAC控制方法 UAC控制方法 对用户的好处 对系统资源给予保护 减少恶意软件对系统的影响 UAC Manifests清单文件 Manifests清单文件 UAC Manifests清单文件 Manifests清单文件 <?xml version="1.0" encoding="UTF‐8" standalone="yes"?> Windows 7中清单文件 <assembly xmlns="urn:schemas‐microsoft‐com:asm.v1"  manifestVersion="1.0"> 分为内部清单和外部清单 <assemblyIdentity type="win32" processorArchitecture="*"  两种形式内容相同 version="1.0.0.0" name="MyApplication.exe"/> <description>My totally sweet Vista application</description> 内部清单级别高于外部清单 < s_as <ms asmv2:trustInfo xmlns:ms asmv2="urn:schemas‐microsoft‐ :t ust o s: s_as u :sc e as c oso t com:asm.v2"> 无法使用代码来实现清单功能 <ms_asmv2:security> <ms_asmv2:requestedPrivileges> Visual Studio 2008默认支持 2008默认支持 <ms_asmv2:requestedExecutionLevel level="asInvoker ||  highestAvailable || requireAdministrator"/> </ms_asmv2:requestedPrivileges> </ms_asmv2:security> </ms_asmv2:trustInfo> </assembly> 5 © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 1
  • 2.
    运行级别 管理员权限:RequireAdministrator 管理员权限:RequireAdministrator 当前最高权限:HighestAvailable 当前最高权限:HighestAvailable UAC Manifest 继承父进程权限:AsInvoker 继承父进程权限:AsInvoker 不同类型用户的UAC问题 不同类型用户的UAC问题 普通用户遇到的问题 普通用户遇到的问题 不少程序需要管理员 权限运行 虚拟系统 我是一个开 发人员 管理员用户遇到的问题 令牌分离 普通用户权限控制 虚拟系统 默认以普通用户权限级别运行程序 只适用于桌面应用程序 允许普通用户提升权限运行程序 可执行文件 提升权限需要管理员登录验证 只适用于无Manifest清单文件程序 只适用于无Manifest清单文件程序 是否有Manifest可用工具查看 是否有Manifest可用工具查看 只适用于32位应用程序 只适用于32位应用程序 只有64位系统需要关心 只有64位系统需要关心 只适用于普通用户权限运行的程序 管理员权限运行虚拟系统被强制关闭 © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 2
  • 3.
    文件虚拟系统 文件虚拟系统 C:Program Files 无Manifest的 Manifest的 含有Manifest 含有Manifest C:ProgramData rogramD 应用程序 的应用程序 C:Windows User Mode WindowsApp.ini Windows Kernel Mode Luafv.sys Users<user>AppDataLocal Users<user>AppDataLocal Access Denied VirtualStoreWindows VirtualStoreWindowsApp.ini Ntfs.sys 注册表虚拟系统 注册表虚拟系统 HKEY_LOCAL_MACHINE HKEY_LOCAL_MACHINESoftware 无Manifest的 Manifest的 含有Manifest 含有Manifest 应用程序 的应用程序 User Mode HKLMSoftware HKLMSoftwareApp Kernel Mode Access Denied Ntoskrnl.exe HKCUSoftwareClassesVirtualStore HKCUSoftwareClassesVirtualStore MachineSoftware MachineSoftwareApp Registry 管理员权限控制 默认以普通用户权限级别运行程序 允许普通用户提升权限运行程序 文件虚拟系统 提升权限只需要简单确认操作 © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 3
  • 4.
    权限令牌分离 权限令牌创建过程 以普通用户权限执数操作 创建用户完整权限令牌 需要权限时再进行提升 需要权限时再进行提升 创建用户的保护权限模式 登录系统 令牌 使用保护权限模式令牌创 建explorer.exe进程 explorer.exe进程 UAC OTS提升过程 OTS提升过程 UAC OTS对话框 OTS对话框 重定义父级 ShellExecute(elevatedapp.exe) ShellExecute(elevatedapp.exe) CreateProcessAsUser(elevatedapp.exe) CreateProcessAsUser(elevatedapp.exe) explorer.exe RP C AppInfo Service elevatedapp.exe consent.exe Protected Administrator System Administrator UAC深入探究 UAC深入探究 Shield图标 Shield图标 UAC权限令牌分离 UAC权限令牌分离 UAC系统日志 UAC系统日志 icacls工具 icacls工具 © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 4
  • 5.
    Shield图标 Shield图标 User32.dll BCM_SETSHIELD = 0x0000160C SendMessage ( BCM_SETSHIELD …) 如何使用Shield图标 如何使用Shield图标 无法提升 个进程的运行级别 无法提升一个进程的运行级别 UAC系统日志 UAC系统日志 icacls 文件虚拟系统日志 Windows 7中新增的命令行工具 注册表虚拟系统日志 包含完整性级别支持 提升权限请求日志 以后将继续完善功能 Question & Answer 如需提出问题,请在此区域输入文字,并单击 UAC系统日志 UAC “问题和解答”右上方的“提问”按钮即可。 问题和解答”右上方的“提问” 您也可以选择在微软中文技术论坛上寻求帮助,MSDN中文网络 也可以选择在微软中文技术论坛上寻求帮助,MSDN中文网络 广播的讲师们会定期在论坛上为大家解答与课程相关的技术问题。 http://forums.microsoft.com/china http://forums.microsoft.com/china © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 5
  • 6.
    感谢! 感谢! 吴慧锋 Wilson Wu Email: iwilsonwu@gmail.com MSN: il MSN wilsonwu@ssw.com.au @ QQ: 53286461 Blog: http://WilsonWu.cnblogs.com Blog: http://WilsonWu.cnblogs.com © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 6