APP下载

一种XPE 安全加固技术的研究与实现

2012-12-03郭育艳

郑州大学学报(工学版) 2012年5期
关键词:安全级别服务端访问控制

郭育艳

(河南财经政法大学 图书馆450002)

0 引言

计算机技术发展至今,信息安全问题一直备受关注.目前针对信息安全问题,相继出现了不少新技术,如侦测与反侦测技术、动态度量技术、主动防御技术等,这些技术都在系统应用层和操作系统内核层等不同层次上实现.Windo ws系统是目前最流行的PC操作系统之一,同时也是信息安全研究最关注的操作系统之一[1].在广泛流行杀毒软件技术、防火墙技术的情况下,安全操作系统的研究也日益受到关注,这也是我们的研究重点.作者选择USBKEY嵌入式Windows XPE研究、设计并实现了一个安全操作系统原型-Security Reinforced XPE,简称SR-XPE.首先简要介绍SR-XPE系统设计,主要有基于GRUB的可信引导,基于过滤驱动和内核Hook的进程、网络及外接设备访问控制,基于GINA技术的身份认证,安全通讯协议等,然后侧重介绍强制访问控制技术和文件访问控制的实现.

1 SR-XPE系统设计

1.1 基于GRUB的可信引导

基于可信计算信任链传递的思想,可以采用层层验证的方法来保障系统整体的安全性.可信引导作为可信系统的基础,是系统实现可信计算非常重要的部分.SR-XPE采用基于USBKEY的Gr ub引导启动,在Gr ub2内核加入了引导控制程序.

在裁剪Gr ub2时,不使用Gr ub2默认包含的/boot/gr ub目录及gr ub目录下的文件,把所有使用到的模块都要静态加载到Gr ub2内核镜像中.为实现USB启动,引导程序必须使用的模块有硬盘设备模块biosdisk、分区类型part_msdos、分区格式fat、驱动器号映射模块drivemap、引导主程序模块nor mal和命令模块boot,在Linux环境下创建内核文件的命令为:

./grub-mkimage-d.-o coreloadxpe.img biosdisk part_msdos fat drivemap nor mal boot

Gr ub引导过程的一个重要工作是关键资源(操作系统启动核心文件和安全组件自身等)保护.关键资源保护通过文件完整性校验实现,目的是防止重要文件遭恶意篡改.

1.2 系统强身份认证

SR-XPE系统使用定制的用户身份认证模块,以增强系统登录安全.Windows XP/2003/XPE系统默认使用GINA机制进行登录用户身份 认 证[1].GINA (Graphical Identification and Authentication)是 Windo ws操作系统的核心文件之一.Winl ogon.exe在系统启动时加载GINA.GINA的主要功能包括:用户身份认证、系统锁屏登录、启动Explorer等.

微软提供了使用定制GINA替换系统GINA(msgina.dll)的方法,因此我们可以在验证用户名密码的同时加入我们关心的其他验证模块,如人脸识别、声控、自定义口令等.当然,自定义GINA需要实现系统GINA的全部接口函数,也可以仅实现自己关心的部分接口,其余直接调用系统GINA的接口实现.图1是GINA修改后的系统登录界面截图:

图1 SR-XPE系统登录界面Fig.1 Landing interf ace for SR-XPE

在这个自定义GINA中系统重新实现了标准接口函数 Wl x Logged Out SAS,增加了 USBKEY硬件口令验证(即PIN码),同时去掉了密码输入框.自定义GINA需要实现的供 Winlogon.exe调用的一系列 Win Wl x接口函数,如WlxInitialize,Wlx Logged Out SAS,Wl x Logged On SAS,Wl x Activate User Shell,Wl x Shutdown,Wl x Create User Desktop,Wlx WkstaLocked SAS等.

1.3 进程启动控制

SR-XPE系统提供对应用程序真实性和完整性度量和校验的功能.可执行程序的真实性度量,是为了确保运行的可执行程序都是合法的.可执行程序完整性度量,是为了保证系统启动的可执行程序都是可信的,禁止不符合预期的程序的启动.SR-XPE核心模块会在可执行程序启动前,度量该程序的真实性和完整性,只有在度量结果和预存值匹配的情况下,才允许程序启动,否则禁止启动.如果SR-XPE中的某个程序被恶意代码感染,将无法通过度量,进而无法启动,这就能够有效阻止病毒或木马继续传播和破坏,实现对恶意代码的免疫,保障系统完整性不被破坏.

SR-XPE系统的进程启动控制是通过内核钩子和文件过滤驱动实现的.Windows内核Hook技术已趋于成熟[2],我们可以通过修改系统服务描述符表(SSDT)来实现控制系统的内核操作(详见2.2节).系统应用程序的一些操作,比如用户层执行CreateFile函数创建文件,内核层钩到该IRP请求并进行拦截控制.成功拦截之后,判读文件摘要与预设值是否匹配,如果匹配则允许启动;否则拒绝执行,如图2所示.

图2 进程阻止运行提示Fig.2 Indication of halt of proceeding course

1.4 网络访问控制

SR-XPE系统网络访问控制实现类似于防火墙的功能.当截获网络数据包时,系统核心模块会检查数据包头中的源IP、源端口、目的IP、目的端口和协议类型,看与访问控制策略库(白名单列表)是否匹配.系统会放行允许的数据包,阻止非法的数据包,如试图tel net不在白名单中的IP,如图3所示.

图3 网络策略配置库Fig.3 Net wor k strategy configuration database

系统通过在NDIS层挂接内核钩子实现对所有网络数据包进行拦截控制[2].拦截的IRP请求包括创建(IRP_MJ_CREATE)、关联请求(TDI_ASSOCIATE_ADDRESS,TDI_DISASSOCIATE_ADDRESS)、关闭(IRP_MJ_CLOSE)以及Socket操作.通过解析address_entr y可以获取当前操作的目的是IP或者本地进程,目前实现了基于IP的控制.

1.5 安全通讯协议

以上主要描述了系统终端设计,为了对SRXPE系统进行统一管理,需要构建一个管理平台,SR-XPE系统终端与管理平台间的安全通讯变得尤为重要.

下面简要介绍安全通讯序列中的会话密钥协商过程:终端发送包含终端身份信息的协商请求(client_hell o);服务端产生一个会话ID,并和服务端证书一起发给终端(sercer_cert);终端使用服务端CA验证服务端证书,验证通过后,发送随机数和客户端证书(client_cert),同时存储会话ID;服务端验证终端证书,验证通过后,产生一个会话密钥,再加上服务端随机数和终端随机数,用服务端私钥和终端公钥进行签名和加密后发给终端(secret_inf o);终端使用自身私钥和服务端公钥解密和验签,然后验证随机数,得到会话密钥,接下来发送一个协商完成消息(client_finish);服务端应答消息(ser ver_finish)使用会话密钥加密.之后的会话过程和数据传输过程使用新的会话密钥加密.实验证明,该会话密钥协商过程是安全可靠的.

图4 通讯协议-密钥协商Fig.4 Communicating agreementcode consulting

2 强制访问控制

2.1 访问控制

访问控制,是指按用户身份及其所归属的分组来限制用户对特定资源的访问权限,一般分为自主访问控制和强制访问控制两大类.

强制访问控制基本思想是每个主体和每个客体都有既定的安全属性,主体对客体的访问权限,取决于二者安全属性之间的关系[3].主体对客体的访问主要有4种方式:向下读(r d),向上读(ru),向下写(wd),向上写(wu).可见,MAC通过分级的安全标签实现了信息的单向流通,比较著名的有BLP模型和BIBA模型.

在设计实现的强制访问控制中,所有的主体(如用户或进程)和客体(如资源或文件)都划分安全级别,如1-6级.主体对客体的访问权限是在安全策略中规定的.SR-XPE将安全级别按照从高到底排序,规定安全级别高的进程可以单向读写安全级别低的文件,而安全级别低的进程禁止访问安全级别高的文件.

2.2 文件访问控制实现

作者按照访问控制以安全级别制定控制策略的原理和内核过滤驱动技术,实现了一个强制访问控制模型.控制策略规定重要资源(包括文件和注册表项)拥有较高安全级别,只有特定进程才能访问.

操作系统中文件是最重要的信息载体,操作系统安全最重要的工作之一就是保障重要文件的安全.使用文件过滤驱动技术和Hook技术,可以覆盖了文件的整个生命周期,包括文件的创建(ZwCreateFile),打 开 (Zw Open File),删 除(Zw Delete File),读(Zw Read File),写(Zw Write-File)等操作.目前SR-XPE系统实现了我们关心的核心文件禁止普通进程访问的功能(打开、重命名、删除等).当用户进程notepad.exe试图打开一个安全级别较高的文件时,SR-XP系统会阻断访问,弹出提示如图5所示.

图5 文件拒绝打开Fig.5 Default of opening files

3 结语

作者介绍了一种Window安全加固技术并设计了SR-XPE系统,实现了基于GRUB的可信引导、基于GINA的强身份认证、基于内核HOOK的进程启动控制和网络连接控制、改进的安全通讯协议以及基于过滤驱动关键资源访问控制等功能,可以有效保护操作系统安全.

[1] LI L,WU J,GUO X W,et al.Framewor k for Windows Password Function Security Enhancement[J].Jour nal of Southeast Univesity,2007,37:26-28.

[2] 刘邦明,邬浙艳,孙黉杰.SSDT挂钩:基于 Windows内核的Root Kit技术样本[J].网络安全技术与应用,2009(3):62-64.

[3] 谭文,杨潇,邵坚磊.寒江独钓:Windows内核安全编程[M].北京:电子工业出版社.2009:90-99.

[4] LACOSTE M,JARBOUI T,HE R.A componentbased policy-neutral architecture forkernel-level access control[J].Annales Des Telecommunications-Annals of Telecommunications,2009,64:121-146.

猜你喜欢

安全级别服务端访问控制
基于Packet tracer防火墙的基本配置仿真实验的设计与实现
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现
解除脚本限制导致的163邮箱无法登录
Endogenous neurotrophin-3 promotes neuronal sprouting from dorsal root ganglia