Windows操作系统安全性研究调研报告1课题背景操作系统的种类有很多,包括常见的Windows、Linux.MacOS以及许多的中大型计算机的专用系统等,对于每一个系统来说,都会存在权限的安全问题,而由于各个系统在使用环境和使用对象的不同,在权限的保护上既有一些共同之处,也有许多的各自特点,但是最主要的最前面的保护措施一般都是密码保护和登陆保护,同时,各个系统还会有自己的内核保护和用户态保护措施,像Windows会采用注册的方式来管理系统的配置,并通过设置相应的注册表管理工具来限制系统的权限,而Linux则不采用注册表的形式,所有的东西都以文件的形式存储在系统中,系统会釆用一些辅助手段如SELinux来加强系统的安全。Windows受到欢迎的程度很高,因此目前Windows所受到的渗透攻击最多,一方面Windows是用户接触最多的操作系统,一方面也是多数Windows用户在系统安全方面的观念较为薄弱,这些都使得黑客对于该系统不断的进行渗透,同时也因为这样,Windows往往暴露出更多的安全问题,其更新的频率也最频繁,在权限保护方面也会面对更多的挑战。近年来,针对Windows系统円益暴露的安全隐患,微软发布了Windows7系统的SP1补丁,增加了一系列的安全措施来加强系统的安全性,包括RemoteFX、动态内存等。并在后半年,继而发布了Windows最新的操作系统Windows8的正式版,在新的系统中,根据研究和报告,对于系统的安全方面又添加了几个重要的保护功能,包括UEFISecureBoot和WindowsDefender等。这些新的系统补丁和系统都使得Windows系统权限的安全性得到了加强,利用以前的渗透工具和渗透方法对新系统进行渗透将会遇到极大的挑战和阻碍,这对于Windows新操作系统的渗透工作提出了更高的需求。在新系统发布的同时,许多的安全工作者也开始了对于新系统的研究工作。对于微软新发布的系统Windows8,研究微软新系统的安全性,找到合适的方法实现绕过系统正常步骤获得管理员权限,不仅对于Windows新系统的安全性研究有很大帮助,而且也是在Windows操作系统上实现软件安全渗透是必不可少的条件,只有取得了管理员权限,才能在系统中获得巨大的权限和自由,从而实现对系统的渗透。2系统安全的发展历史和现状不管在任何的操作系统上面,任何一个文件的执行或者任何一个系统的操作都必须具有一定的权限,如果能够获得这个权限,就可能利用这个漏洞运行一些黑客程序,从而实现对整个计算机的控制。反之,如果把一些黑客程序放到目标计算机上面,但是由于权限的问题,这些程序将无法运行,不能危害目标计算机。.在系统安全的最初阶段,为了保护系统不被别人操作或者查看,会使用密码的保护方式,用户在安装系统后,会请求确定系统的登陆密码,对于多用户的操作系统,每个用户还会拥有自己的密码,用來区分各自的用户。随着系统对于权限管理的需求不断提高,Windows系统在权限的等级上进行组别划分,从权力的大小依次为普通用户、管理员用户、SYSTEM用户,这样的等级设置让系统的权限管理较为明确,也较为安全。在进一步的发展中,Windows添加了一些新的功能来辅助权限的管理,包括添加了域的功能,域的实现使得系统的权限不单单是本地的权限,而是一个网络内所有系统的统一权限管理。此外,针对越来越多的权限渗透行为和方法,也使得Windows在权限的安全方面设置了一些新的保护措施,包括内核事务管理器、代码完整性验证、杀_监控组件、用户帐户控制、多种密码保护等。这些功能在很大程度上保护了用户的系统免受外来的侵害,同时也使得对于系统进行渗透的功能面临越来越多的障碍和挑战。随着系统的不断发展,以及来自外界的保护越来越严密,对系统权限进行渗透和提取的方式也逐渐变得多样化、灵活化,目前针对Windows的权限获取方式主要有密码测试、登陆破解、内核渗透以及用户态渗透等2.1、密码测试密码是系统保护用户权限最常用的方法,正常情况下,只需要知道了管理员用户的用户名和密码,就可以以管理员用户身份登陆系统,并且以管理员的身份和权限进行系统操作,因此,通过获取管理员密码来获取系统管理员权限是最直接和最容易想到的方法。有人对系统的密码做过一些统计,并对统计结果进行分析时,发现了一些惊人的事情,就是大多数的用户在设置密码的时候都会设置较为简单的密码。这些密码要么存在一定的规律,如qwerty,要么与用户自身的信息直接挂钩,如用户或家人的生日。通过利用一部密码字典来对用户的密码进行暴力测试,可以在不少的情况下,得出用户的密码信息。2004年,付国庆和戴勇的一片文章中还对密码的长度和复杂性等需要的破解时间做了一些统计,其中大部分密码需要的时间并不算久。Edwards和LeBlanc等人在2006年9月对WindowsNT等操作系统的密码存储机制进行的研究种指出,该系统釆用散列后的SAM文件来存储密码,这种有限授权密码的方式也有可能受到攻击。因此,釆用对密码进行测试和攻击的方法,一直对Windows的权限安全存在着威胁,虽然这种方法不一定有效,但是可用性仍比较高,而且能够适用于目前的所有系统,目前这种方法只能够通过用户自身来进行防范。2.2、登陆破解登陆系统是配合密码来实现限制和保护用户的权限的,在系统启动或者锁定时,会进入到系统的登陆界面,用户在输入正确的用户名和密码之后,才能通过登录界面而进入到系统桌面中。如果用户无法提供正确的密码,那么将无法通过,并且在多次输入错误后,可能会暂时将锁定界面或输入框等。在通过密码进行暴力测试无法获取正确密码的情况下,可以尝试通过直接绕过系统登录限制的方法。DanDieterle在2010年7月对Windows系统的登陆防护进行的研究中,提出了系统在登陆防护方面存在的一些漏洞,可以通过一些特别手段例如第三方软件或者热键等来实现绕过系统的登陆限制而进行系统的操作等。在2007年李梅川的一片文章中也提出了通过特殊手段在登陆前对Windows系统密码进行解除和修改的方法。类似的方法可以利用WimkmsPE系统来实现,只需要将原系统中的命令行程序替换相应位置的放大镜的程序,那么在原系统的登陆界面中,通过一些快捷键启动放大镜程序时,将会调出命令行程序,并且此命令行程序还拥有管理员权限,直接通过一些更改用户密码的命令即可完成对用户密码的修改。这种方法的兼容性较高,适用于绝大部分系统。2.3、内核渗透内核是一个系统的核心的,必不可少的部分,而且内核中的程序拥有系统最高的SYSTEM权限,因此内核的保护显得极为重要。但是,从实际情况来看,内核也往往是发生问题最多,也是最严重的部分。无论对于任何系统,内核的渗透始终是最吸引人的部分,因为内核的渗透能够获取最高的系统权限,并凡隐蔽性高,方式多样化。在2006年,Levine和Grizzard等人对操作系统内核渗透进行了研究和分析,得出内核的渗透往往利用到内核程序逻辑或者功能上的缺陷,而这些缺陷的由来经常利用到系统崩溃时候的一些反馈信息。像Windows在使用过程中,系统一些内核程序错误而导致蓝屏的现象也极为普遍,这些蓝屏的现象为系统内核的渗透提供了大量的隐藏信息。通过分析这些蓝屏的原因,有时候便能够发现内核程序中的一些设计缺陷,像缓冲区溢出等问题,这往往会成为系统内核渗透的入口。左黎明在2008年的一篇文章中对内核恶意代码的技术进行分析,提出了一些内核恶意代码的关键隐藏技术,包括对进程函数、注册表函数、SSDT等的HOOK行为等。内核渗透虽然来源多,方法也多样化,但是对于技术的要求也比较高,需要经过专门的研究才能实现,并且容易受到第三方软件的检测以及系统的封堵等。2.4、用户态渗透用户态是相对于内核来区分的,内核以外的程序一般都是以用户态来运行的,而一些后台程序的运行也不时会危害系统的安全,因此对于一些在用户态中运行的程序进行限制,避免其在后台自发运行以及进行系统操作,也是保护权限安全的一个重要方面。用户态渗透的方法也比较常见。在2011年,Overill和Silomon的一篇研究论文中就指出,目前利用木马等恶意程序进行系统在用户态层面的渗透很普遍,通过网络或者电子邮件等方式把一些木马程序传送到目标机器上后,再通过欺骗等特殊手段来实现这些程序在目标机器上的运行,从而达到用户态渗透的目的。在2008年,李漫丽的研究性文章还提出了流氓软件等对用户态渗透的方式,流氓软件在不经过用户允许的情况下会进行管理员权限的操作。但是在新系统中,Windows也加强了对用户态的保护,添加了对用户态的程序的监控等,如用户帐户控制会检测用户态的程序在运行时候的情况,对管理员权限的请求进行栏截。这种方法起到了很好的防范作用,而针对这种方法的渗透工作也在研究之中。对几种方式的优缺点如下表1-1所示:优点缺点密码测试适合密码简单的用户,能够以正常的身份控制系统缺乏稳定性,对于复杂密码或者服务器类系统不适用登陆破解能够获取登陆前的系统权限,并对用户的密码进行修改需要利用第三方镜像工具,在启动前进行系统文件修改内核渗透能够获取系统的最高权限,并且深入到系统中,隐蔽性高容易被更新补丁或杀毒软件封堵,对渗透过程要求严格用户态渗透稳定性高,不容易被杀毒软件检测到,官方更新补丁较慢隐蔽性相对较低,需要依赖当然系统登陆的用户权限每一种提取方式都有其优缺点,同时,也要根据不同的系统和用户环境来进行选择。而新系统的发布必然会伴随着新的安全挑战,随着Windows8的推出,系统安全性的讨论必然将是一个新的重点,特别是对用户权限的保护将在新系统显得更为重要,以上的渗透方式可能也会受到不同的冲击,而对新系统权限的获取工作也将面临更多的挑战,因此,对新系统的安全性需要进行更新的研究。3Windows8系统改进措施虽然Windows在用户权限保护方式上具备了许多的措施,但是并不能完全保护权限的安全,依然存在着一些其他的方式能够实现权限的窃取,从而实现对系统的控制。微软也意识到了一些存在的老问题,所以在最新发布的系统Windows8,也针对一些之前的问题进行了改进,添加了一些新的技术来弥补这些漏洞。目前来看,这些新的强力措施还是起到了不错的效果。3.1UEFISecureBoot之前,Windows无法限制系统在加载前文件被篡改的问题,并且此问题针对当前的大部分计算机均有效。微软也逐渐意识到了这样的问题,就是Windows可以保证用户在登陆系统过程中的安全,却没法保证系统在加载之前的安全,因此,微软在Windows8中加入了一项新的重要的技术,即UEFISecureBoot,来加强系统引导之前的安全。UEFI安全启动协议是实现跨平台和固件安全的基础,而与体系结构没有关系。在进行固件映像引导之前,安全启动会通过公共密胡基础结构(PKI)流程来进行固件映像的验证,以此帮助降低遭受启动加载程序攻击的危险。在Windows8中,将缺省使用SecureBoot,但是这项功能的提供还需要额外的支持,只有在较新的支持UEFI的计算机上才能启动该功能。在BIOS中可以查看相应的信息,如图2-5所示:图2-5UEFISecureBoot开在固件引导启动的过程中,任何要加载的模块都必须签名,这是强制的,UEFI会对其进行验证,如果没有签名或者无法进行验证的,将不会进行加载。而固件的签名也会需要严格的证书机构来控制,一般都需要有CA的证书进行签名。因此,在开启UEFI后,能够有效的禁止不安全固件的引导,防止了他人通过进入WinPE进行数据的更改等,从引导层面保证了系统的安全性。此外,UEFI还具有其他的功能,当计算机出现故障导致无法进入操作系统时,往往需要借助其他的工具才能解决问题,BIOS在诊断系统故障方面的作用极其有限,而UEH在这方面得到极大的改进,UEFI采用模块化设计,在逻辑上分为硬件控制和OS软件管理两部分,而OS软件管理其实是一个开放的可编程接口,借助OS软件管理的接口,厂商可以实现丰富的功能,例如熟悉的各种备份和诊断功能就可以通过UEFI来实现,这些对于系统的安全也起到了一定的作用。3