APP下载

Windows系统安全机制与安全技术分析

2019-12-24伍唤宇李亚茹龙瀚林

网络安全技术与应用 2019年9期
关键词:访问控制完整性虚拟化

◆伍唤宇 李亚茹 龙瀚林

Windows系统安全机制与安全技术分析

◆伍唤宇1李亚茹1龙瀚林2

(1.合肥工业大学 安徽 230031;2.哈尔滨工业大学(深圳) 广东 518055)

Windows操作系统是目前世界上最流行的操作系统之一。自Windows操作系统在市场上出现以来,为台式电脑,服务器和其他计算机系统范围的各种平台提供了解决方案。Windows10自从问世以来就一直备受用户的关注和喜爱,成为微软自Windows7以来的又一大革新,在功能体验和安全性方面都有了很大程度的改进。为了进一步了解Windows操作系统的安全性,本文对Window内部的相关安全机制及以及Windows10的新安全技术进行了分析和研究。

Windows系统;安全模型;安全机制

Windows10作为新一代的Windows操作系统,内部集成了一系列的安全机制,同时应用了大量新的安全技术,其安全性在各个方面都得到了增强。Windows10中有传统的安全模型和协议,包括自主访问控制模型,完整性模型,特权隔离,完整性保护,用户认证等,也有实现安全模型所采用的方案,例如完整性控制、用户账户控制,访问控制列表,安全标识符,Kerberos协议等,还有针对Windows的具体使用场景引入的其他安全方案,比如生物认证,基于虚拟化的安全等以及DEP和ASLR技术等。在本文中,首先对计算机系统的安全模型进行介绍,接下来介绍Windows中的安全模型和实现方法,最后介绍Windows10的新安全技术。

1 计算机信息系统安全模型

计算机信息系统的形式化安全模型的研究始于20世纪七十年代。形式化安全模型的需求最初来自军事领域,但是随着计算机系统在私人、商业等非军事领域变得越来越重要,形式化安全需求也开始出现在个人和商业领域[1]。

20世纪末提出的几种形式化安全模型是十分经典的安全模型,至今仍在广泛应用。它们主要可以归类于以下几种:自主访问控制模型(DAC),强制访问控制模型(MAC),完整性模型,基于角色的访问控制模型(RBAC)以及信息流模型(Information-FlowModels)[2]。

自主访问控制模型主要有HRU模型,具体实现有访问控制矩阵、访问控制表及前缀表等。

强制访问控制模型主要有BLP模型,Biba模型,具体实现有Unix文件系统的Multics方案等。其中BLP侧重于保密性,Biba模型侧重于完整性。

完整性模型主要有Clark-Wilson[5]模型,在WindowsNT中许多功能都是对Clark-Wilson模型的实现。

基于角色的访问控制模型主要有RBAC1,RBAC2,RBAC3,几乎应用于所有数据库.

信息流模型主要有四种[3]:基于格的信息流模型、基于进程代数的信息流模型、基于安全类型系统的信息流模型和基于自动机的信息流模型。

2 Windows系统安全机制

2.1 访问控制模型

Windows操作系统与Linux不同,不支持强制访问控制,而是采用自主访问控制,并且没有可支持不同访问控制模型的通用框架[4]。

Windows访问控制模型有两个主要的组成部分,访问令牌和安全描述符,分别属于被访问主体和被访问主体。当Windows账户登录时,系统从自身数据库中查询账户信息,用信息生成令牌,并且将令牌的副本赋给在账户环境里启动的进程。当进程在对对象进行访问时,系统会通过进程的令牌来进行访问检查。

2.2 完整性模型以及完整性等级保护

在CW模型中,有以下性质:

(1)系统需要一个IVP来确认任何CDI的完整性;

(2)CDI只能由转换过程(TP)来进行更改,且所有TP必须维护CDI的完整性;

(3)主体只能对特定的CDI执行与其关联的特定操作;

(4)访问规则必须满足责任分离要求;

(5)能够对UDI运用的TP将其转换为CDI;

(6)所有执行的TP必须留下只写的日志;

(7)只有特殊的主体被系统允许更改相关于验证的列表。

相应的在WindowsNT中,分别有以下实现:

(1)LSA负责检查主体访问令牌的安全信息;

(2)除管理员等少量用户可以直接更改任何客体的属性之外,其余用户不具有此能力;

(3)主体带有的访问令牌包含了其被允许的操作;

(4)只有管理员可以访问任何客体;

(5)用户可将无ACL的客体转为有ACL;

(6)只写日志存在于WindowsNT;

(7)只有管理员能够查看和执行需要高安全等级的操作。

从上面一段的介绍中可以看出,WindowsNT满足CW模型,也就是CW模型的安全机制可以由WindowsNT实现。

Windows中每个安全对象具有一定的完整性等级(IL),并且由一个SID来标记,默认值为中等。由低IL进程产生的对象,其完整性等级为低IL。当一个进程试图访问一个对象时,“SeAccessCheck”接口将检查该进程的完整性等级,并判断进程是否符合访问控制列表。当访问控制列表允许访问,但是主体的完整性等级低于客体,访问也不会被执行。

2.3 用户界面特权隔离

完整性等级还被用于Windows消息子系统,用来实现用户界面特权隔离(UIPI)。UIPI的主要功能是防止低完整性等级处理窗口向高完整性等级窗口发送消息。在Vista之前的Windows操作系统,许多程序请求下管理员权限运行,但是实际上并没有必要。在Vista中增加了对这些请求的控制,但是为了兼容Vista之前编写的32位并且没有运行在管理员权限下的程序,在Vista之后的Windows版本新引入了文件虚拟化与注册表虚拟化机制。在用户使用标准账户时,若标准账户下的程序试图对系统范围的文件或注册表进行修改,系统会将这个操作映射到用户范围的虚拟位置。

2.4 用户账户控制

用户账户控制(UAC)是在Vista中为了提高安全性引入的功能,通知用户是否允许应用程序使用驱动器和系统文件以防止恶意软件损害系统。但是此功能在Vista中只有开启和关闭两种选项,这导致频繁的弹窗通知。Windows7上则加入了两种UAC级别,这两种级别的区别在于其中一个在弹窗时会进入安全桌面,这个安全桌面属于SYSTEM账户,原用户账户下的程序无法知道UAC弹窗的情况,也无法绕过UAC提示框;而另一个弹窗则没有进入安全桌面,依然使用原有账户的桌面环境,相对前一级别来说安全性有所降低。

2.5 服务隔离

在以往的Windows版本中,服务与用户进程都运行在同一个会话下。Vista后的版本中服务运行在“隔离会话0”中。这意味着正常服务不会显示事件或者任何弹出对话框与用户的互动,它会一直静默而用户将无法注意到它。如果有个进程尝试弹出通知框给用户以获取用户输入,它会一直待命,因为用户无法看到对话框。用户所登录的交互会话实质上是一个终端的服务器。微软认可的从在隔离会话0中运行的服务发送消息方法是使用WTSSendMessage,它是Windows终端服务API的一部分。用服务隔离的方式可以提高服务的安全性。

2.6 内核保护

Windows保护机制主要由DEP(数据执行保护)、GS(一种编译选项)、ASLR(地址随机化)及SafeSEH(安全结构化异常处理)等安全技术组成。这些安全技术通过从不同方面给攻击者制造障碍,增加攻击者实施缓冲区溢出攻击的难度,进而提升系统内存的安全性。其中,DEP技术能够在内存上(如栈和堆)执行额外检查以阻止恶意代码的运行,GS栈保护技术对栈中内容进行检查保护程序的返回地址,ASLR技术通过对栈和堆等线性区布局的随机化加大攻击者预测目的地址的难度,防止攻击者定位shellcode地址和系统调用地址,SafeSEH技术通过SEH句柄验证及链验证来保护SEH节点。这几种安全技术既相互独立又互为补充,共同组成了Windows抵御缓冲区溢出攻击的完整的安全机制。

3 Windows网络认证协议及保护机制

3.1 NTLM协议

NTLM是网络认证协议,发展于LM协议,与LM协议机制相同,但是采用了不同的加密算法,基于挑战/响应。目前LM协议已经淘汰。NTLM协议只支持Windows系统,其过程主要分为三步:协商、质询、验证。

3.2 Kerberos协议

在Windows2000Serve之前微软主要使用NTLM进行验证。随着Windows2000的发行,微软采用Kerberos作为身份验证协议。它不仅比NTLM更安全、更高效,而且在其他系统上比如UNIX和Linux实现得很理想,并且能应用于Windows和Unix以及Linux系统之间。

Kerberos协议的主要目标是利用密钥系统向客户/服务器提供更完善的认证服务。此协议不依赖主机的地址信任和操作系统的认证,并且不要求安全的通信信道。Kerberos通过传统的密码技术执行认证服务,主要包括四个部分:主机,服务器和KDC。KDC主要负责认证、访问票据的分发及对整个过程的管理,主机利用访问票据访问服务器。

3.3 拓展认证协议

Windows7中推出了一种称为家庭的功能加强的家庭和小型网络体验。用户可以在家里共享数据,并且可以在计算机之间使用线上ID进行身份验证。用户需要将其Windows用户账户显式地链接到在线ID来使用功能。认证由一种叫作基于公钥算法的公共用户到用户协议支持,也叫作PKU2U。

3.4 凭证保护

凭证保护使用基于虚拟化的安全方案将NTLM和Kerberos等使用的凭证和密码存储于本地安全中心(LSA),和操作系统中的其他组件隔离开来。LSA中只存放凭证和经过签名的少量操作系统二进制文件,这些二进制文件被加载和执行前都要通过签名验证,以此确保其中凭证的安全。

4 Windows生物识别框架

Vista中重新设计了登录方案。这个方案删除了图形标志和身份验证的基础结构,并添加了凭据提供程序拓展模型。该凭证提供程序基础结构是一组在第三方拓展了关于用户输入凭据的用户体验时能提供一致性的接口,并将其集成到常见的Windows凭据对话框。随着指纹验证越来越普遍,定义一个用来管理和使用这些技术的通用框架从而推动指纹识别发展和增强可靠性的措施显然十分必要。在Windows7之后,微软添加了新的Windows生物识别框架(WBF)。WBF旨在更方便地支持生物识别认证设备。在Windows7中,WFB只支持指纹识别器[6],但在Windows10时已经进行了拓展。目前已经有很多支持面部识别的笔记本。

Windows生物识别服务(WBS)的主要作用是把相同的WBF联系起来。WBS提供与生物识别设备驱动程序的接口,也提供了Windows生物识别框架API,允许应用程序与这些生物识别设备进行互动。

5 Windows虚拟化安全

5.1 Hyper-V技术

Windows10应用Hyper-V技术,允许一部分组件运行于与其他组件相隔离的虚拟环境中,并可以完全控制这些组件所持有的全部内存页面的属性,以此来保护重要的数据和服务不受侵害。被置于虚拟环境的恶意软件即使获取了对操作系统内核的访问权限,其攻击手段也将被极大地限制。Hyper-V虚拟机监控程序代码量小,且通过UEFI和系统内核一道启动,能够确保其本身不被攻击者利用。

5.2 沙箱技术

Windows10在1903更新中加入了沙箱机制。其本质上也是基于虚拟化的安全方案,不同的是沙箱是一种用于一次性执行不受信任的软件的措施,且和虚拟机一样支持快照和克隆。当它启用时,Windows为其动态地生成一个映像,其中的大多数文件不可更改,采用软链接的方式附着于镜像上。映像执行时,宿主Windows内存中的多数共享库以不允许修改的方式直接映射至沙箱的内存空间,并且沙箱中的任务调度由宿主系统的调度器完成,就如Linux系统上KVM所做的一样。沙箱每次被关闭时,所有对文件进行的修改都会被丢弃。

6 WindowsDefender高级威胁防护

WindowsDefender高级威胁防护是集防护、泄露后检测、自动调查和响应为一体的统一平台。它依托云技术以提供自动化的安全防护;借助机器学习和高级行为分析来发现和追踪攻击;运用高级运行时分析,自动调查和修复高级攻击带来的影响;为用户提供基于遥测功能的安全专家服务。

7 结论

在本文中,我们介绍了最主要的几种计算机信息系统安全模型,并对Windows的安全模型进行了分析,同时还介绍了Windows针对各种场景采取的安全措施。这些措施在极大地增强Windows系统的安全性的同时也关注着用户的使用体验。今天,人们的隐私受到空前的威胁,勒索病毒和加密货币挖掘也正悄然复苏;但我们有理由相信,随着高级威胁防护的推广和基于虚拟化的安全的广泛运用,Windows系统仍然能够持续胜任用户的安全需求。

[1]Carl E. Landwehr,Formal Models for Computer Security [J].Computer Surveys,Vol 13,No 3,September 1981.

[2]M .Harrison,W. Ruzzo. and J. Ullman. Protection in Operating Systems[J]. Communications of the ACM,19(8):461-471,August1986.

[3]吴泽智,陈性元,杨智,杜学绘.信息流控制研究进展[J].软件学报,2017,28(1):135-159.

[4]李奇,周学海,陈香兰.Windows访问控制实施框架的研究与设计[J].计算机系统应用,2009(12):83-87.

[5]D.Clark,D.Wilson,A Comparison of Commercial and Military Computer Security Policies[J].IEEE Symposium on Security and Privacy,184-194,IEEE,1987.

[6]Chris Corio. An Introduction to Security in Windows 7[M]. TechNet Magazine,May 2009,13-20.

猜你喜欢

访问控制完整性虚拟化
一种跨策略域的林业资源访问控制模型设计
关于防火门耐火完整性在国标、英标、欧标和美标中的比对分析
ELM及IS/OS完整性对年龄相关性黄斑变性预后视力的影响
更正说明
基于OpenStack虚拟化网络管理平台的设计与实现
云的访问控制研究
云计算访问控制技术研究综述
服务器虚拟化的安全威胁及防范分析
浅谈虚拟化工作原理
用户怎样选择虚拟化解决方案