基于Canary的增强型栈保护技术研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:wucaixia303
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着信息世界的快速发展,系统与软件安全问题在个体与国家等不同层面越来越被重视。多年来,安全研究员们针对内存泄露类攻击提出了多种防御技术,这其中栈不可执行技术、地址空间布局随机化技术以及金丝雀技术已经得到了广泛部署,并被认为是防御内存泄漏类攻击的标准做法。尽管上述防御技术在可接受的性能损耗下能够提升系统对攻击者的抵御能力,但是由于其设计上的不足,导致技巧熟练的攻击者仍能够在特定环境下绕过这些防御机制,攻击受上述防御技术保护的系统。本论文从金丝雀技术入手,首先分析了现有几种金丝雀(Canary)技术的原理,并从其保护机制的强度、粒度、针对问题等角度讨论了它们的一些特点与不足。然后,我们指出目前基于金丝雀技术的工作,在函数返回时的验证信息不仅在崩溃自启动的服务端程序中可以被暴力破解,在一般应用程序中也存在被破解的风险,在此基础上我们研究对程序中每个函数返回前的验证信息进行随机化的技术。针对这一问题场景,我们实现了一套基于源码的自动化工具。工具包含了一个基于GCC编译器的插桩插件和一个地址无关的动态共享库,GCC插件主要负责在源码经GCC编译器编译为可执行程序的过程中插入负责动态信息验证的代码段,动态库则负责替换需要被改写的库函数以及提供其他与动态信息验证相关的功能函数。在进程创建时,调用动态库中的函数生成验证信息缓冲区,可执行程序中的插桩代码段负责在发生函数调用时从缓冲区中随机地取出验证信息,并放置验证信息到函数栈桢中,在函数执行完毕返回时校验验证信息,从而实现对恶意攻击行为的检测以及防止验证信息被破解。
其他文献
在现代企业中,考勤是非常必要并且是非常重要的一项工作。随着电子技术的发展,新的考勤方法出现了。计算机考勤系统作为企业管理系统的一个子系统,能通过计算机网络来提供准确的
随着网络技术的不断发展,网络游戏己经成为电子游戏产业中增长最为迅速的游戏类型。据预测,2006年全球网络游戏市场年增长率在100%以上,增长潜力巨大。正因为如此,网络游戏已经成
随着分布计算和网络技术的不断发展,传统的数据库技术已越来越不能满足数据共享和互操作的需要。作为数据共享与集成主要手段的多数据库与中间件技术由于其广泛的适应性、投资
Internet上以Web服务为主,具有信息量多、结构复杂、负载重等特点。一些统计数据表明,Web服务器有可能成为Internet应用的瓶颈。通过采用某些技术,减少网络流量,降低对网络带宽的