kcapiso一种基于hybridhp的宏内核操作系统载入模块权能隔离方案-钱振江.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《kcapiso一种基于hybridhp的宏内核操作系统载入模块权能隔离方案-钱振江.pdf》由会员分享,可在线阅读,更多相关《kcapiso一种基于hybridhp的宏内核操作系统载入模块权能隔离方案-钱振江.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第39卷第3期 计 算 机 学 报 v0139 No32016年3月 CHINESE JOURNAL 0F COMPUTERS Mar2016KCapISO:一种基于HybridHP的宏内核操作系统载入模块权能隔离方案钱振江2h孙 刘永俊 汤 力2 姚宇峰21(南京大学计算机科学与技术系 南京210023)2(常熟理工学院计算机科学与工程学院 江苏苏州 21 5500)3(伦敦大学国王学院伦敦wc2R 2Ls英国)黄 皓摘要宏内核操作系统提供对第3方模块和驱动程序等载入模块的支持,允许载入模块运行在内核态特权级由于运行在最高特权级,载入模块对内核的核心服务的关键对象的访问难以得到系统的有效控制
2、考虑对被监控系统的性能影响控制在很小的范围,基于内嵌式的监控机制HybridHP,提出了一种宏内核架构下的载人模块权能隔离方案KCapIsO,为内核和载人模块维护各自的页表,从权能上将两者隔离,确保载人模块无法修改内核的数据,并且无法以任何方式直接调用或跳转到内核中执行,这些动作都需经过KCapIS0的监控和检查实验结果表明,KCapISO能有效地将内核与载入模块在权能上相互隔离,同时获得较好的系统性能关键词 宏内核操作系统;载入模块;硬件虚拟化;权能隔离;安全监控中图法分类号TP316 DOI号1011897SPJ1016201 600552KCapISO:A HybridHP-Based
3、CapabilityLoaded Modules on Monolithic KernelIsolation Method ofOperating SystemQIAN ZhenJian91m LIU Y。ngJun2 TANG Li2 YAO YuFen92 HUANG Ha011(D8户口r仇Pnf o,Com户“fPr sfi棚fP口nd丁0cnoZogy,口njing【肠i口rsi妙,Nn可i月占 210023)2(Sco。o厂(为mp“Pr Sc2e以cP n月矗凸gineering,(冼口ngs“Jn5ti“fe o,TecnoZogy,S“zo“,i口以gs“ 215500)3(
4、King5 CoZggP LoHdon,Lo以don WC2R 2LS,UK)Abstract The monolithic kernel operating systems provide support for the loaded modules,suchas thirdparty modules and driVers Due to that the loaded modules run on the privilege level,theaccess to the key objects of core services within the kernel is difficult
5、to be controlled effectivelyConsidering little influence on the performance of the monitored system,based on the embeddedstyle monitoring sy5tem HybridHP,we propose a capability is01ation method of 10aded moduleson the mon01ithic kerneI operating system,named KCapISO KCapISO maintains the respective
6、page tables for the kernel and loaded modules, which are isolated from the aspect of the capabilityKCapISO ensures that the loaded modules cannot modify the kernel data,and cannot directly callor j ump into the kernel in any way And these behaviors are required to pass through monitoringand inspecti
7、on by KCapISO The experiment result shows that KCapIS0 effectively isolatesthe kernel and 10aded modules from the aspect of the capabilty, and achieves good systemDerformanceKeywords monolithic kernel operating system;loaded module;hardware virtualization;capabilityisolation;security monitoring收稿日期:
8、2014一09。03;最终修改稿收到日期:z015一0618本课题得到国家自然科学基金(61402057)、江苏省科技计划自然科学基金(BK20140418)、中国博士后科学基金(2015M571737)、江苏省“六大人才高峰”高层次人才基金(201lDZXx035)和江苏省高校自然科学研究基金(12KJB520001)资助钱振江,男1982年生,博士,讲师,中国计算机学会(ccF)高级会员,主要研究方向为操作系统安全、形式化验证和嵌入式系统Email:tony-hslnacom刘永俊,男,1981年生,博士研究生,讲师,主要研究方向为操作系统安全汤力男,1980年生,硕士,副教授,主要研究方
9、向为操作系统安全姚字峰,男1981年生,博士研究生,讲师,主要研究方向为操作系统安全黄皓,男,1957年生,博士,教授,博士生导师,主要研究领域为系统软件、信息安全万方数据3期 钱振江等:KCapISo:一种基于HybridHP的宏内核操作系统载入模块权能隔离方案 5531 引 言宏内核(MonoIithic KemeI)操作系统(0peratingSystem,OS),如Linux等,提供了对载入模块(包括第3方模块和驱动程序)的支持,且允许载人模块运行在内核态特权级由于运行在最高特权级,载人模块对内核的核心服务的关键对象的访问难以得到系统的有效控制,恶意的第3方模块或者受到感染的驱动程序可
10、以很容易地破坏系统调用表、页表、IDT表、系统寄存器和网络端口等系统关键对象,从而破坏整个系统的完整性与之相比,在微内核(Microkernel)架构的0S中,载入模块运行在用户态模式,受到处于内核态特权级的微内核的控制,达到了很好的模块隔离性和可控性为此,在微内核OS平台上,可运行的内核病毒程序屈指可数而Windows和Linux等宏内核平台上内核病毒初步统计就有数十类以及不计其数的变种,其中大部分的内核攻击都是通过加载载人模块来达到的值得一提的是,微内核0S由于使用消息机制进行进程间通信(InterProcess communication,IPC)而存在性能问题,主要是由于通信的两个服务
11、进程,或者服务进程与用户进程的进程空间不相交,无法直接访问而必须使用消息进行通信,而且接收进程必须等待微内核将消息复制到自己的进程空问才能对消息进行处理L413针对上述的缺陷,改进了IPC的实现,将单次通信所需的2次消息拷贝减少为1次,性能得到了提高在宏内核平台上,载入模块与内核处于同一进程空间,同时内核服务也存在于这一进程空间,无需进行上述的消息拷贝,这是一个很好的特点,但是也带来了之前所述的安全问题随着硬件虚拟化技术的发展,在宏内核平台上,采用虚拟机监控器(virtual Machine Monitor,VMM)对被监控系统进行运行时监控的研究工作2删获得了很好的支持但是这种方法存在着3个
12、方面的主要问题:(1)系统性能基于VMM的监控方案需要管理域(Domain o)以及虚拟机管理器(Hypervisor)的支持,同时被监控系统的Io等操作需要管理域的干预,这样造成被监控系统的性能损失较大;(2)监控粒度如何确定监控的粒度是一个两难的问题,监控粒度越大,对被监控系统的性能损失较小,但监控的正确度不高,监控粒度越小,监控的正确度越大,但对被监控系统的损失较大;(3)主体标示在监控的过程中,首先需要对被监控系统中的各个执行主体(对象)进行标示,但由于内核和载人模块都运行在内核态特权级,并且位于同一内存地址空间,因此对于监控内核的VMM而言,难以具体标识当前执行主体为内核还是载入模块
13、很多学者在利用VMM对不可信的载入模块的扩展给系统带来的安全性问题进行监控方面进行了研究卟1,在主体标示问题上提出了可行的方案,对执行主体和资源如内存页等进行部分的权限设置,但需要记录状态转换,并且存在着频繁切换页表问题同时存在代理攻击的问题,如果不可信的载人模块通过一系列的操作来请求内核服务进行一些非法的操作,VMM往往很难辨认执行主体本文提出一种宏内核架构下的载入模块权能隔离方案KCapIsO,将内核(包括可信的内核扩展模块)与载人模块在权能上相互隔离,虽然它们处在同一进程空间中,但载人模块只能修改自己定义的数据为达到这样的目的,有两个方面的前期工作首先,我们对Linux源码进行了分析,认
14、为Linux中内核与载人模块虽然同属于一个进程空间,但它们之间很少直接修改对方的数据,而主要以读取对方的可导出数据为主,这一点为我们的隔离方案提供了可能其次,我们在前期工作中设计并实现了一种轻型的内核完整性监控方案HybridHP。11。,其利用硬件虚拟化机制,以完全内嵌的模块化方式在被监控系统中运行并提供监控服务,无需借助管理域以及虚拟机管理器的支持,为此被监控系统的性能损失控制在很小的范围,这一点为我们的隔离方案提供了“监控机制”的保证KCapISO借助HybridHP的监控机制,使用页目录地址寄存器CR3来标示系统的执行主体,实现对内核和载人模块权能隔离。区别于其他的注重内核接口保护的驱
15、动隔离方案,KCapISO以对象模型为基础,认为对象才是OS内核的核心,而包括内核本身、载人模块等在内的执行主体,其实质都是围绕内核对象进行操作在现代0S中,页表权限是对象权能的最直接体现,KCapISO通过页表标识执行主体,并且进行权限控制,从而达到权能隔离的目的本文第2节介绍系统监控和隔离方面的相关工作,并和我们的工作进行比较;第3节描述KCapIsO的具体设计方案;第4节阐述KCapISO的关键技术万方数据554 计 算 机 学 报和实现;第5节阐述我们对KCapISO的实验和性能分析;第6节对本文进行总结,并对我们未来的工作进行展望2 相关工作Garfinkel等人23提出利用虚拟机监
16、控器来实现一个受保护的系统完整性监视器,包括基于不变量的内核保护其实现的Livewire系统能够校验内核的代码区,通过不同层次的系统检索,查找能检测到的特定类型数据攻击,并校验静态函数指针表,如系统调用表KCapISO基于的监控框架HybridHP同样利用虚拟化技术来实现,但是HybridHP并不是构建在现成的虚拟机之中,避免了由于对虚拟机的攻击而导致的对监控器的破坏Seshadri等人33利用硬件虚拟化技术实现了一个轻量级的监控器Secvisor,用于保证OS代码的完整性Secvisor保证只有用户允许的代码才能在内核中执行,确保未经授权的内核代码不会被执行。SecVisor没用采用成熟的虚
17、拟机监控器,目的是减少开销和简化验证但因为需要在被监控系统和监控器之间进行频繁地页表转换,性能影响较大NICKLE监控系统43采用内存映射的技术,使得只有经过认证的执行代码才能被复制到影子内存中,同时也只有影子内存中的代码才可以执行但是对载人模块的认证是困难的,认证策略过分严格会影响系统的可用性,而策略过分松散又可能无法检测出恶意的代码另一方面,内存映射需要在虚拟机中执行,并且需要能够捕获和模拟执行所有的指令,这不仅限制了硬件和虚拟机的范围,也增加了执行开销Sharif等人53在被监控OS中构建了一个监控器SIM,以便于取得被监控系统的语义这和HybridHP的思想类似,不过SIM与被监控系统
18、的隔离保护仍需要另一个虚拟机管理器的支持,而HybridHP的自我保护不依赖于其他任何安全机制为了监控载人模块对内核API的调用,Srivastava等人明利用虚拟化技术设计了Gateway系统Gateway实现了一个不可绕过的监控接口,通过该接口对不可信的载人模块的运行空间进行隔离同时,为了克服隔离所带来的性能损失,Gateway还引入了内核代码和驱动代码的动态重写,使得监控性能损失控制在10以内HUKO7 3是一个基于Xen实现的内核完整性监控方案在HUKO监控框架中,载入模块能够稳定地提供原有的功能,但是其行为将受到强制性访问控制的约束,因此,对系统整体性能的影响较大Xiang等人8提出
19、的监控框架ComMon从网络、进程和文件等3个方面对系统进行实时透明的监控通过对系统调用的监控,ComMon可以检测系统中隐藏的进程,并捕获进程对文件的操作ComMon框架中加入了对网络入侵的检测,可以保护系统的网络安全0siris9是一种针对恶意软件进行分析的系统Osiris通过对应用程序编程接口(API)的监控技术来分析系统的行为测试结果表明0siris取得了良好的监控效果vDetect。r103是一款针对OS隐藏对象进行关联检测的系统与ComMon类似,vDetector对网络、进程和文件等隐藏文件通过0S的不同视图之间的差异性进行检测,同时通过对这些隐藏对象之问的关联进行分析来检测对系
20、统的攻击行为Castro等人u2提出的软件故障隔离方法BGI,采用字节细粒度内存保护机制(ByteGranularityIs01ation)来有效地将内核扩展模块隔离在独立的保护域中BGI能够确保内核对象的类型安全性,可以检测保护域中的普通错误类型,并用于驱动测试中以寻找驱动漏洞Mao等人1朝提出的1。XFI系统对内核和内核模块进行隔离,提出了API完整性(API integrity)和模型主体(module principals)的概念通过编译器插件,LXFI根据程序员声明的API完整性条件和模型主体来构造代码,对模块的权限进行管理,以阻止特权提升(privilege escalation)
21、的威胁和攻击本文提出的KCapISO区别于上述的监控和隔离方案,以对象模型为基础,借助HybridHP,使用页目录地址寄存器CR3来标示系统的执行主体,实现对内核和载入模块权能隔离,使得载人模块只能修改自己定义的数据3 KCapISO的设计31 KCapISo的目标我们首先描述内核完整性的威胁模型一般而万方数据3期 钱振江等:KCapISO:一种基于HybridHP的宏内核操作系统载入模块权能隔离方案 555言,内核受到攻击的场景包括:(1)攻击者获得了超级用户ROOt权限,然后将恶意程序加载进OS内核空间;(2)攻击者利用已有的系统漏洞加载Rootkit14之类的恶意软件;(3)粗心的用户加
22、载了未经认证的包含恶意代码的载人模块等我们将OS内核中的执行主体分成两大类:(1)OS内核自身以及可信的内核扩展模块;(2)不可信的载人模块所有的Rootkit和未经验证的驱动程序都属于第2类KCapISO通过强制性访问控制达到以下两个完整性目标:(1)内核代码与数据和完全相关数据的完整性所有内核代码与数据,以及安全相关数据都不允许被上述第2类执行主体通过直接的内存操作或者直接内存访问(Direct Memory Access,DMA)操作修改;(2)体系相关寄存器的完整性体系相关寄存器包括段寄存器、控制寄存器、以及部分标志寄存器,它们共同标志了OS内核的运行状态,它们不允许被上述第2类执行主
23、体修改KCapISO的目标是通过隔离和监控技术来实现对OS内核的权能隔离,但却不会带来大的性能损失为此,需要实现以下3个具体目标:(1)能够实现内核和载人模块权能隔离,这是我们工作的初衷;(2)内核和载入模块权能的隔离与监控并不会给被监控系统带来大的性能损失;(3)易于移植,不需要过多地修改OS内核本身32 KCapISo的框架KCapISo提供了一个保护0S内核免受不可信的载人模块破坏的安全环境在KCapISo中,我们将需要保护的内核对象称为安全相关客体,这些对象包括内核代码和内核关键数据组成的集合为了说明KCapISO的思想和实现,我们首先明确以下几个概念:(1)对象模型KCapISO以对
24、象模型为基础,认为对象才是OS内核的核心,而包括内核本身、载入模块等在内的执行主体,其实质都是围绕内核对象进行操作已有的很多基于驱动隔离的研究工作陋10J23都把保护0S内核代码和接口放在首要的位置我们认为,代码和接口不是保护内核完整性的关键,因为内核的代码或者接口功能是可以在不可信的载入模块中重现的,所以即使对oS内核的代码和接口保护地再好,也只能说明破坏内核完整性的难度增加了为此,我们的工作将重点放在对内核关键数据对象的保护上;(2)内核主体在KCapISo框架中,我们把oS内核本身和载入模块标识为不同的内核执行主体;(3)权能在KCapISO框架中,权能是指对于各种不同对象的访问权限,具
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- kcapiso 一种 基于 hybridhp 内核 操作系统 载入 模块 权能 隔离 方案 钱振江
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内