论文部分内容阅读
随着计算机技术的快速发展,软件功能越来越强,但软件中漏洞的数量也越来越多,对用户资料的安全造成威胁。大多数攻击试图改变程序的运行或者通过程序控制目标机器,代码注入是早期的攻击方式,但目前CPU和操作系统中均引入安全机制防御代码注入攻击。基于代码复用技术的攻击可轻松绕过现有防御机制,同时代码复用攻击已出现在各种设备和操作系统上,对系统安全已经构成严重威胁。然而目前针对代码复用攻击的检测防御机制研究相对较少,现有工具存在需源代码的支持、防御不够全面、运行负载较高等缺点,如何有效全面地检测和防御代码复用攻击,成为安全领域研究的热门课题。本文在相关研究的基础上,构造和分析基于ROP(Return-oriented Programm-ing)/JOP(Jump-oriented Programming)技术的代码复用攻击,总结现有检测防御机制的不足,提出一种动态检测和防御代码复用攻击的方案。该方案基于动态二进制翻译框架FastBT构建动态二进制探测工具,并在此基础上通过分析代码复用攻击的特性,提出影子栈保护机制处理返回地址被篡改问题,提出控制流攻击检测机制处理潜在危险的间接JMP指令,提出重新认证机制处理程序不对称异常,提出性能优化机制提高本工具的性能,保证程序在本工具中正常、安全、高效地运行。大量的实验表明,本工具在不需要源代码的情况下,能有效检测防御基于ROP和JOP技术的代码复用攻击。针对基于缓冲区溢出技术的代码注入攻击,本工具同样提供有效检测和防御,同时工具运行时引入的性能开销相对较低。