扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
注释:我把几篇访问量相对较高的几篇文章从我的个人版面转移到这里,这是其中的一篇,同时补上已经失效的部分图片。为了不影响大家阅读,这里并未将其放到blog.itecn.net首页上,而是放到vista.itecn.net的版面上。
不少网友甫一提及Windows Vista,所乐道者,不外乎其晶莹剔透的Glass效果,抑或超酷超炫的Flip 3D效果,还不忘加上一句“可惜硬件要求太高”……
其实这完全是一种误解,Windows Vista不但出落得姿容绝色,还有很多“内在美”,端的是“秀蕴于中”。而Vista的安全特性,尤其值得浓墨重彩、大书特书!
如今世界,不管是小布什、还是比尔.盖茨,最头痛的就是“安全反恐”的问题,可见安全是一个普遍关注的热门话题!
纵深安全防御
接下来的这张图片,相信大家都非常熟悉,对,这就是“臭名卓著”的纵深防御体系图。而Windows Vista则把安全理念渗透到纵深安全防御的每一个层面。本文就是以这张纵深防御的层次图为模板(实际是纵深安全防御体系结构图的一个“子集”),以目前最新的CTP Build 5381.1为范例,向读者诸君展示Windows Vista是如何武装到牙齿的!
基础结构安全
在整个Windows Vista安全体系中,基础结构安全可以说是最关键,同时又是最容易被忽略的。所以这里首先介绍这些具有“老黄牛”精神的基础安全特性。
1.安全开发生命周期
微软对Windows Vista倾注了前所未有的心力,对整个开发过程引入了SDL(Security Development Lifecycle:安全开发生命周期)机制。耗费大量人力财力对工程师进行安全培训,据说Vista工程师有5000人,这些多人都要停工接受安全培训,可见微软投入之巨大、意念之坚决!
2.代码完整性
代码完整性(CI:Code Integrity)可以有效地防范木马、rootkit等对系统文件的恶意修改,防范不安全的第三方驱动对系统的危害。CI会检查代码的hash值(内嵌于代码中的x.509证书,或者位于%windir%\system32\catroot里的编录文件),一旦发现hash值不符,就会停止加载代码。CI主要检查以下的代码:
(1) 系统启动时,检查内核、HAL和驱动的完整性
(2) 检查所有加载到内核内存空间的代码完整性
(3) 对加载到受保护进程空间里的代码进行完整性检查
3.服务加固(Level 300)
Windows Vista对服务进行了诸多有效的安全加固,能够极大地减少服务所带来的安全隐患。
(1) Session 0隔离
之前的操作系统,例如XP或者2003,服务和控制台登录的用户都是位于Session 0,这样用户进程只要成功对服务发起攻击,就可以提升自己的权限。而现在Vista里的所有服务都运行在Session 0里,通过鼠标、键盘(控制台)登录的用户则位于Session 1。也就是说服务和所有用户程序不可能位于一个Session,以杜绝通过应用进程向服务发动攻击。
(2) 最小特权帐户
把更多服务的启动帐户,从LocalSystem迁移到LocalService或者NetworkService。举个例子,在XP下,“Cryptographic Services”服务的启动帐户是LocalSystem,而在Vista下,则变为NetworkService,这样可以大大减少服务所需的权限,减少安全隐患。
(3) 独立SID
现在每个服务都有一个独立的SID,这样服务就可以利用该SID来控制其专属资源的ACL。可以在服务的宿主进程的访问令牌里看到其SID。例如以“Network Location Awareness”服务为例,可以在其宿主进程svchost的访问令牌里看到其SID为“NT Service\NlaSvc”(NlaSvc就是该服务的KeyName),如附图所示。
我们可以借助PsGetSid命令查看该SID的具体值,如附图所示:
可以借助Subinacl命令查看“Network Location Awareness”服务本身的ACL,可以发现其中的一个ACE含有“NT Service\NlaSvc”这个SID,如附图所示:
(4) 服务的SID标记为Write-Restricted(写限制)
这样只有明确赋予某个服务SID相应权限的资源,该服务才能对该资源有写权限。默认情况下,Base Filtering Engine(BFE)、Media Center Service Launcher(ehstart)、Diagnostic Policy (DPS)、Windows Firewall(MpsSvc)等服务的SID标记为Write-Restricted(写限制),如附图所示。
(5) 减少不必要的特权
现在大多数服务不再直接继承宿主进程的所有特权,SCM(服务控制管理器)会自动删除所有不必要的特权。还是以“Network Location Awareness”(NlaSvc)服务为例,用“SC /qprivs”命令查看该服务的特权,可以发现相对其宿主进程svchost而言,少了很多不必要的特权(现在只有三个特权)。
内部网络
Windows Vista在内部网络层面上亦做足安全措施,本文着重介绍其中的两大安全特性:Windows防火墙和网络访问保护。
1.Windows防火墙
和其前任XP不同,Vista里内置的Windows防火墙则是“内外兼修”。不仅可以很好地管理入站连接,也可以通过组策略管理出站连接。
其中入站连接的管理可以通过传统的Firewall.cpl控制面板组件进行,也可以通过Administrative Tools下的“Windows Firewall with Advanced Security”管理单元进行管理,具体方法可以参考MVP刘晖的文章《Windows Vista四月专题系列四:体验Windows Vista 5365》。
出站连接则必须通过“Windows Firewall with Advanced Security”管理单元进行配置。可以在左侧的控制台树里右键单击Outbound Rules,然后单击“New Rule”,然后指定所需指定的程序(或者端口、预设规则等),然后指定所需的操作、规则名称即可。
双击新建的规则,还可以对其进行进一步微调,如附图所示。
2.网络访问保护
如果说Windows防火墙主要是保护Vista计算机本身,则网络访问保护(NAP:Network Access Protection)就是为了防止不健康的Vista计算机感染企业内部网络,从而提高整个内部网络的安全性。
NAP的大致原理是当一台Windows Vista客户机试图访问内部网络时,首先由企业内部网络中的健康服务器按照事先制定的策略对其进行审核,例如可以检查其是否安装了最新的Windows更新、安装了最新的病毒定义、是否安装了明令禁止的软件等。
如果发现该Vista客户机不满足健康策略(例如没有安装必要的Windows更新),则不允许该客户机联入企业内部网络,而是让其连接到安全修复服务器(例如WSUS)上,重新安装这些重要Windows更新,然后才允许该客户机访问内部网络。整个原理如附图所示。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。