基于编译器的操作系统内核控制数据保护

来源 :西安电子科技大学 | 被引量 : 0次 | 上传用户:arile1027
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着网络互联、网络安全技术和各种高级网络应用技术的飞速发展,现代操作系统面临着各种各样的安全威胁。其中,内核级rootkits由于具有良好的隐蔽性,可以长时间的驻留在被注入的系统内核空间,通常具有系统的最高权限,危害巨大。为了应对这些攻击,需要对操作系统的内核代码和内核数据进行全面保护。其中,内核代码和静态的内核数据由于可以被设置为只读,并且它们在内存中的位置确定,保护起来相对比较直观。然而,动态的内核数据由于其无法确定的存放位置和易变性,保护起来难度较大。作为动态内核数据的重要组成部分,内核控制数据决定了内核执行的整体控制流程,常常成为攻击者的目标。通过改写一个控制数据(比如函数返回地址),攻击者就能够改变系统原有的控制流程,将其引导到自己的恶意代码或精心设计的执行流程上。为了全面和有效的保护内核控制数据,包括函数指针和函数返回地址,论文设计并实现了一种基于编译器的内核控制数据保护机制,防御针对操作系统内核控制流程的攻击。更进一步讲,通过修改编译器,在源代码编译阶段识别、定位和转换操作系统内核中与控制数据相关的所有指令来实现内核控制数据的索引机制。该机制为每个控制数据分配一个索引,这个索引指向收集了系统中所有有效跳转地址的表格的某个单元;通过指令转换,在进行程序跳转时,不直接使用控制数据,而是利用它所对应的跳转表格索引去查找跳转表格,获得真正有效的跳转地址来间接执行。同时,该机制借助位于操作系统之下的Hypervisor层(如KVM)来保护跳转表格(例如将存放表格的页面设置为只读),从而提供了对内核控制数据的保护。为了验证保护机制,论文基于开源的GCC-4.6.4编译器-设计并实现了原型系统。原型系统重新编译了Linux-3.11.1/X86-AMD64版本的内核,提供了对其控制数据的保护。原型系统一共修改了内核中35828条direct call指令、2389条indirect call指令、14010条ret指令和1198条mov指令,修改指令总数为53425条,占原内核指令总数的8.39%。内核容量由44.463M增加到44.960M,比原来增加了1.12%。通过对原型系统的攻击测试和性能测试,验证了保护机制的有效性和高效性。测试结果表明,原型系统能够有效阻止针对内核控制数据的控制流程攻击;并且原型系统的额外性能开销较低(平均不超过5%)。
其他文献
分布式对象技术是当今计算机软件开发所采用的一种重要技术,与传统开发技术相比,分布式对象技术具有更好的开放性和扩展性。 论文首先介绍了分布式对象技术和CORBA技术,讨
IPv6协议是互联网的新一代通信协议,如何实现从IPv4到IPv6的过渡是IPv6发展过程中急需解决的关键问题.本文从IPv4向IPv6平滑迁移的几种过渡技术入手,提出过渡过程中的网络建
随着近年来多核处理器技术的发展,处理器上集成的核数量越来越多,这就要求程序员必须掌握并行程序的开发技术。各种并行开发模型已经比较成熟,如基于谷歌MapReduce思想和共享
本文以音字转换问题为背景,以最大熵模型为基本框架,对汉语语言模型进行研究。音字转换是指由计算机自动地将连续的拼音串转换成相应的汉字串,正确的音字转换是解决键盘输入、语
计算机网络的安全问题日显重要,入侵检测技术是实现网络主动防卫的重要研究课题。人体免疫系统与网络入侵检测系统具有很大的相似功能,它为研究和开发网络入侵检测系统提供了
随着互联网模式的逐渐成熟和宽带接入的迅速普及,人们在日常的工作和生活中对网络的依赖性越来越大,网络电话作为一种新生的可选通讯方式凭借其高性价比和丰富的增值业务得到了
工作流的概念起源于生产过程和办公自动化领域,它是针对日常工作中具有固定程序的活动而提出的一个概念。目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程
高效的数据复制系统是在尽量减少系统对原有性能影响的情况下,为关键数据构筑容灾系统的核心研究内容。在分析和比较现有数据复制系统和相关技术的基础上,我们设计并实现了实
中间业务的发展越来越受到商业银行的重视,从银行主机系统中将中间业务剥离出来,建立独立的中间业务平台是中间业务的发展趋势,建立一套使用方便而且能够灵活扩展的中间业务
专家系统最近几年取得了较块的发展,通过使用专家系统节约了人力加快了信息流通的速度,在很多领域专家系统得到了有效的应用。本文论述了一个基于CBR的智能旅游咨询系统的构