内核全局钩子保护方法研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:kaixinlfy
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
在Linux操作系统中,存在各类可供利用的漏洞。从后果来区分,有些漏洞会导致系统拒绝服务,有些漏洞会导致信息泄漏,有些漏洞会导致攻击者获取最高权限,其中危害最严重的是可能导致提权攻击的漏洞。从漏洞的来源区分,可以分为用户态软件漏洞和内核漏洞。实际情况下,攻击者在攻击开始时只有少量非root用户权限,攻击者通常利用少量权限,触发内核漏洞,进而执行敏感操作完成提权攻击。本文旨在研究一种轻量级的防御方式,以防御针对内核漏洞的提权攻击。本文的主要工作可以概括为以下方面:1. 研究了Linux内核中常见的安全机制,包括运行级别隔离、UID沙箱、权能机制、强制类型访问控制机制、SELinux系统、名称空间机制和地址空间随机化技术。2. 研究了常见的针对内核漏洞的权限提升攻击以及学界针对这类攻击的防御方式。在这类攻击中,攻击者利用内核代码漏洞,将本身权限从非root用户转换成root用户。从exploitdb攻击数据库中,总结了此类提权攻击运行时的规律,即利用内核代码漏洞,攻击内核函数钩子,使内核执行敏感函数,进行提权操作。3. 针对这种攻击提出一种轻量级的防御方法。通过对内核代码中钩子上下文调用环境插桩,在钩子函数调用前使用简单的操作保存钩子函数的地址,在敏感函数入口处检查已保存过的地址是否合法,判断钩子函数是否指向合法地址,进而判断攻击是否存在。由于在代码中分离了钩子函数的使用和验证,可以在少量的验证点上进行耗时的验证操作,从而达到降低性能开销的目的。4. 实现针对这种攻击的防御系统,包含四个主要模块:a) 插桩模块,用于在钩子函数调用前后添加保存和删除的代码。b) 检查模块,用于在敏感函数入口点处添加保护代码,调用检查函数,若检查不通过,则禁止敏感函数执行。c) 内核kwatch模块,在内核中实现核心功能,包括管理进程相关的虚拟栈、实现插桩模块和检查模块使用的接口。d) 钩子函数提取模块,利用现有的内核插桩点,在kwatch中增加钩子提取功能,在系统运行时自动记录钩子函数及其合法目标地址,实现从提取模式到监控模式的热切换,并且可以从kwatch模块中导出钩子函数配置表,供下次系统启动时使用。5. 使用通用的性能测试工具对系统性能进行测试,使用一个典型的提权攻击验证系统有效性。实验表明,本系统在监控模式工作时,可以以较低的性能开销(5%左右)防止攻击者篡改内核函数钩子完成提权攻击。
其他文献
为推动《党政领导干部选拔任用工作条例》的深入贯彻落实,山东省委组织部会同大众日报社、党员干部之友杂志社面向全省市、县党委及其组织部门主要负责人、省直部门党组(党委
一般土壤本身都会有自净的功能,通过自身的循环体系将土壤中的有害物质控制在合理的范围内,如果土壤中有害物质含量过多,会对土壤结构及组成造成影响,进而抑制微生物的正常活
随着计算机技术的发展和Internet的普及,在各级网站的服务器中的WWW数 据也飞速膨胀。尽管传统的数据库技术和数据挖掘技术已经取得了飞速的发展并 且
随着Internet的迅速发展,电子商务已成为潮流,人们可以通过互联网进行网上购物、银行转帐等许多商业活动.现代的商业贸易、金融财务和其它经济行为中,不少已经成为以数字化信
Twelve years have passed since the advent of grammatical evolution (GE) in 1998, but such issues as vast search space, genotypic readability, and the inherent r
该文详细讨论了DCS结构的面粉厂自动控制系统的体系结构,并根据自己的实际经验 和面粉行业的具体要求,从系统设计、实施的具体内容等方面做了详细的论述.全文共分四章,第一章
装配式建筑作为一种新兴的建筑形式,可以有效改善传统建筑行业高耗能、高污染、建设周期长等问题,可以有效降低对建筑周围环境的影响,是未来建筑行业发展的主要方向.但是由于
随着社会经济的发展,人们的精神生活水平与物质生活水平逐渐提高,人们对生活居住条件也提高了要求,一直以来,乡村环境都是人类居住环境的一个重要成分,但随着城市化进程不断
作为先进制造技术的基础,数控技术的飞速发展,给数控系统的任务调度带来了新的挑战。数控系统中的各项加工控制任务具有不同的实时性要求并呈现不同的到达规律,这些任务根据实时
随着电子文档的应用越来越广泛,对电子文档的安全性问题越来越受到重视,但随着应用的不断深入及对电子文档安全性需求的不断提高,现有的电子文件安全保密和管理机制已不能同时满