论文部分内容阅读
在现代IT技术的推动下,基于嵌入式技术的智能移动设备广泛应用在我们生活中的许多领域,例如金融、军事、工业控制及网络通信等。在这些领域中,嵌入式系统的安全性问题越来越重要。缓冲区溢出作为一种最常见的软件安全漏洞,对嵌入式系统安全构成严重威胁,因此提高嵌入式系统对缓冲区溢出攻击的防御能力成为了一个重要的研究课题。本课题作为北京握奇数据系统有限公司《TEE-可信执行环境》项目的一部分,主要针对嵌入式系统中缓冲区溢出攻击防御方法进行研究。本文分析了缓冲区溢出的攻击原理、攻击方式以及攻击危害,针对可信执行环境下的几种缓冲区溢出漏洞攻击进行了研究,设计了针对BSS段溢出攻击、堆溢出攻击以及栈溢出攻击的防御方法,并且验证实现了这些防御方法。本文主要研究工作如下:(1)分析了当前移动互联网的安全问题,研究了可信执行环境下的缓冲区溢出攻击问题、缓冲区溢出攻击的基本原理以及受攻击的危害;(2)针对BSS段溢出攻击、栈溢出攻击和堆溢出攻击的原理,研究了3种防范技术:基于数据保护的方法技术、基于攻击代码的防范技术以及基于边界检测的防范技术,并通过研究比较,设计了整个系统的安全构架;(3)研究BSS段的缓冲区溢出攻击的原理,设计实现了基于MMU机制缓冲区溢出攻击防御方法,有效的解决了BSS的溢出攻击问题,并且对缓冲区边界检测块进行深入的研究,将BSS段的防御方法进行改进,提出并实现了空映射思想与缓冲区边界检测块相结合的防范方法,既减少系统内存的消耗,又保证了系统的安全;(4)通过对堆内存管理方式的研究,针对堆内存缓冲区溢出攻击的特点,提出了一种新的堆内存分配方式,并在此基础上设计实现了防范堆内存溢出攻击的方法;(5)分析研究了栈溢出攻击的特点,针对这些特点设计了栈帧切换的方法,有效保护了栈帧中的重要数据,同时保证了栈帧的攻击不会扩散到其他栈帧,抑制了缓冲区溢出攻击中的跨栈帧攻击。