首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 62 毫秒
1.
基于动态二进制平台DynamoRIO,研究了面向二进制代码的缓冲区溢出攻击样本的自动化检测方法.该方法利用动态二进制平台的插桩技术,针对不同的溢出覆盖类型,通过异常捕获、控制流分析和内存状态检查实现了对缓冲区溢出的自动化检测.实验结果表明,该方法能够自动化地、准确地检测出样本中存在的缓冲区溢出攻击,在缓冲区溢出攻击的自动化检测方面具有较好的应用价值.  相似文献   

2.
缓冲区溢出是一种使用广泛、威胁大的攻击.现在提出一种对于函数返回地址进行混合保护的方法,防止攻击者通过改变函数返回地址来执行注入的代码.这种方法包括一个简单的编译器补丁,增强编译器的安全功能,建立一个安全区域保存所有的函数返回地址的拷贝,而且该拷贝通过动态的编码,让攻击者难以进行猜测和攻击.使用这种方法,不需要改变用户程序的原代码,也不会改变用户程序的二进制堆栈结构,所以可以很好的和原有的操作系统、函数库结合.现在对这种方法的性能进行测试,详细描述测试结果,并认为对性能的影响在可以接受的范围,因此这种方法是一种有效的抵御缓冲区攻击的方法.  相似文献   

3.
返回导向编程攻击,通过将程序中现有的二进制代码片段进行有机的组合,能有效地生成恶意代码攻击程序,而现有的攻击检测技术不能很好地对这类攻击进行检测。介绍返回导向编程攻击,分析并指出返回栈的成功构造是使得这种攻击成功的关键事实。基于这个事实,设计并实现了一个返回导向编程攻击的检测系统B re。tB ret的检测原理和攻击者利用的代码片段是正交的,从而可以很好地防御基于"更新-加载-跳转"指令序列的返回导向编程攻击。在对B ret的攻击检测能力和性能评测中,B ret展示了高效的检测能力,几乎不产生误报和漏报,同时,使用B ret保护的程序产生了非常小的性能开销。  相似文献   

4.
根据缓冲区溢出的基本原理,提出一种基于状态转换模型的二进制代码缓冲区溢出漏洞检测方法。该方法以可执行程序为分析目标,从而使漏洞检测过程摆脱对程序源代码的依赖。详细描述该漏洞检测方法的技术细节,并给出该方法与流行的缓冲区溢出漏洞检测方法的对比。  相似文献   

5.
尽管现有多种防御方法和技术,但是针对软件系统和网络的攻击仍然是难以防范的威胁.在引入只读/写和地址空间随机化排列方法后,现代操作系统能有效地应对恶意代码注入类型的攻击.但是攻击者可以利用程序中已经存在的代码,将其组装成具有图灵完全计算功能的连续的代码块,用以绕过已有的防御机制.针对代码复用类攻击防御方法的局限性,提出了一种利用返回地址实时保护机制的防御方法,以有效防御代码复用类攻击,特别是ROP攻击.在程序运行时,通过对其栈中返回地址值的加密保护和实时检测,防止所有的以0xC3字符(即ret指令)结尾的短序列代码段的连续执行.该方法不需要源代码和调试信息,能完全防御ROP攻击,并且其性能开销也具有明显的优势.  相似文献   

6.
缓冲区溢出攻击检测技术综述   总被引:1,自引:0,他引:1  
利用缓冲区溢出漏洞进行攻击自诞生以来始终是网络攻击常用的手段,对信息安全危害极大.如何检测缓冲区溢出成为研究的一个热点,并涌现出了各种各样的方案.首先将现有的缓冲区溢出攻击检测技术按照检测对象分为三大类,然后具体分析了每一类的原理,工具,实现手法及优缺点,最终分析总结了缓冲区溢出检测技术的发展现状.  相似文献   

7.
缓冲区溢出攻击代码的分析研究   总被引:6,自引:0,他引:6  
缓冲区溢出漏洞是当前互联网中存在的最主要的威胁之一。该文先讨论了缓冲区溢出漏洞的产生原理和一般的攻击手段,然后分析了利用缓冲区溢出漏洞的攻击代码,给出了攻击代码的主要特征。最后,讨论了如何利用这些特征,来防范缓冲区溢出攻击的发生。  相似文献   

8.
基于二进制代码的缓冲区溢出检测研究   总被引:1,自引:0,他引:1       下载免费PDF全文
叶永青  李晖  郑燕飞  洪璇  郑东 《计算机工程》2006,32(18):141-143
随着Internet 应用的广泛深入,计算机系统的安全问题日益引起人们的重视,其中,缓冲区溢出漏洞攻击的数量呈逐年上升之势。该文从缓冲区溢出的原理开始,描述了一种利用静态分析和动态分析相结合的基于二进制代码的缓冲区溢出分析检测技术及工具,比较和分析了该工具检测二进制代码的结果与传统工具检测对应源程序的结果,并提出了存在的不足和改进之处。  相似文献   

9.
基于代码插装的缓冲区溢出漏洞定位技术   总被引:1,自引:0,他引:1       下载免费PDF全文
史胜利 《计算机工程》2012,38(9):138-140
为准确快速地找到缓冲区溢出漏洞点,提出一种通过代码插装对二进制文件中的缓冲区溢出漏洞自动定位的方法。使用PIN提供的函数编写程序分析工具,在程序执行过程中记录所需的信息。当检测到内存访问错误异常时,判别破坏内存的情况,获取内存破坏点,查找到非法写内存的指令定位漏洞。实例分析表明,该方法不需要源程序且效率较高,能成功地定位常见的缓冲区溢出漏洞。  相似文献   

10.
近年来,代码重用攻击(Code Reuse Attack)已经成为针对二进制程序的一种主流攻击方式。以ROP为代表的代码重用攻击,利用内存空间中存在的指令片段,构建出能实现特定功能的指令序列,达成了恶意目标。文中根据代码重用攻击的基本原理,提出了基于实时装卸载函数代码的防御方法,通过动态装卸载的方式裁剪代码空间,从而达到缩小攻击面以防御代码重用的目的。首先,以静态分析的方式获取受保护程序依赖库的函数信息;以替换库的形式使用这些信息;其次,在Linux动态装载器中引入实时装载函数的操作及自动触发和还原的装卸载流程,为了减小频繁卸载导致的高额开销,设计了随机化批量卸载机制;最后,在真实环境中开展实验,验证了该方案防御代码重用攻击的有效性,展示了随机卸载策略的意义。  相似文献   

11.
Buffer overflow vulnerabilities are one of the most commonly and widely exploited security vulnerabilities in programs. Most existing solutions for avoiding buffer overflows are either inadequate, inefficient or incompatible with existing code. In this paper, we present a novel approach for transparent and efficient runtime protection against buffer overflows. The approach is implemented by two tools: Type Information Extractor and Depositor (TIED) and LibsafePlus. TIED is first used on a binary executable or shared library file to extract type information from the debugging information inserted in the file by the compiler and reinsert it in the file as a data structure available at runtime. LibsafePlus is a shared library that is preloaded when the program is run. LibsafePlus intercepts unsafe C library calls such as strcpy and uses the type information made available by TIED at runtime to determine whether it would be ‘safe’ to carry out the operation. With our simple design we are able to protect most applications with a performance overhead of less than 10%. Copyright © 2006 John Wiley & Sons, Ltd.  相似文献   

12.
动态函数调用跟踪技术是调试Linux内核的重要手段.针对现有动态跟踪工具存在支持平台有限、运行效率低的问题,基于二进制翻译,设计并实现支持多种指令集的动态函数调用跟踪工具.首先,使用二进制翻译进行系统加载、分析内核镜像,识别基本块的分支指令类型.然后,根据不同平台指令集,设计桩代码并在函数调用与返回指令翻译时插入桩指令,进而在程序执行和内核启动时实时获取时间戳、进程标识、线程标识、函数地址等信息.最后,内核加载完毕后,处理获取的信息,生成过程函数调用图.只需要根据平台指令集特点设计对应的信息获取桩代码并插入到函数调用指令翻译代码中,实现简单,易于移植支持多种平台.该方法基于二进制翻译,直接对程序或内核镜像中的指令段、代码段、符号表进行分析,不依赖源码.拓展的中间代码和额外的目标码,不影响基本块连接、冗余代码消除、热路径分析等二进制翻译的优化方法,降低了开销.基于QEMU的实验结果表明:跟踪分析结果与源代码行为一致,桩代码执行信息记录产生了15.24%的时间开销,而信息处理并输出到磁盘文件产生了165.59%的时间开销,与现有工具相比,性能有较大提升.  相似文献   

13.
提出一种基于动态二进制平台的缓冲区溢出过程分析方法,并实现基于该方法的原型系统。分析缓冲区溢出攻击方法的特点,给出基于异常捕获、控制流分析和内存状态检查的溢出检测方法。通过对内存读写指令、控制转移指令进行监控,获得函数调用序列和数据传递关系,定位导致缓冲区溢出的代码。实验结果表明,该系统能有效检测缓冲区溢出,准确定位导致溢出的代码位置。  相似文献   

14.
针对循环拷贝内存引发的缓冲区溢出漏洞,提出了一种上下文相关的过程间分析检测模型,通过对二进制代码进行一系列的静态分析,使用过程间分析提供的数据交互关系,对缓冲区溢出易发点进行挖掘。这种检测模型基于BinNavi的开放平台,以插件形式实现,能够对溢出易发点进行精确的筛选,有效地减少误报漏报情况。  相似文献   

15.
The use of pointers presents serious problems for software productivity tools for software understanding, restructuring, and testing. Pointers enable indirect memory accesses through pointer dereferences, as well as indirect procedure calls (e.g., through function pointers in C). Such indirect accesses and calls can be disambiguated with pointer analysis. In this paper we evaluate the precision of one specific pointer analysis (the FA pointer analysis by Zhang et al.) for the purposes of call graph construction for C programs with function pointers. The analysis is incorporated in a production-strength code-browsing tool from Siemens Corporate Research in which the program call graph is used as a primary tool for code understanding.The FA pointer analysis uses an inexpensive, almost-linear, flow- and context-insensitive algorithm. To measure analysis precision, we compare the call graph constructed by this analysis with the most precise call graph obtainable by a large category of existing pointer analyses. Surprisingly, for all our data programs the FA analysis achieves the best possible precision. This result indicates that for the purposes of call graph construction, inexpensive pointer analyses may provide precision comparable to the precision of expensive pointer analyses.  相似文献   

16.
函数调用一直是Linux内核分析研究领域的重点.获得函数调用信息主要有2种方法:静态分析和动态分析.动态跟踪方法可实时和准确地获取函数调用关系信息,在分析和调试软件程序时有极大的帮助作用.针对现有工具存在跟踪信息不全面、需要编译选项支持等不足,基于开源的QEMU模拟器,设计并实现了支持多种CPU平台的通用动态函数调用跟踪工具,可在x86_32,x86_64,ARM共3种体系架构上动态跟踪包括Linux内核启动过程在内的函数调用和返回信息.该工具在程序运行时截获调用和返回的指令,并记录相关信息,利用此种指令只会在QEMU翻译块的最后一条出现的性质,减少检查指令的数量,提高运行效率;可不依赖源代码,只依据函数符号表进行函数调用关系分析.实验结果表明:跟踪和分析结果与源代码行为一致,相比于S2E提升了分析性能和支持的CPU平台种类,且能更好地扩展至其他平台.  相似文献   

17.
带控制流的静态函数调用分析方法   总被引:2,自引:0,他引:2       下载免费PDF全文
提出一种带有控制流的静态函数调用分析的方法,通过建立模型,对源程序进行静态分析,得到程序中的控制流信息和函数调用信息。和已有的静态函数调用关系图分析工具calltree和Source Insight相比,该方法生成的函数调用流图不仅能展现函数间的调用次序,还可以了解程序设计的逻辑复杂度,有助于代码阅读和分析人员更快更好地理解程序结构以及设计流程,并为分析程序控制条件、设计路径覆盖测试用例和进行程序优化奠定基础。  相似文献   

18.
为了满足日益复杂的虚拟环境中碰撞检测的高实时性要求,提出一种基于图像空间的快速碰撞检测算法,有效利用了图形处理器(GPU)的加速功能。该算法以基于物体空间的凸块层次二叉树技术及方向包围盒(OBB)之间的碰撞检测为前提,可快速排除场景中明显不相交的凸块;然后通过生成的凸块潜在碰撞检测集,在RECODE算法的基础上,得到一种运行效率更高的碰撞检测算法。实验结果表明,在同等复杂的虚拟环境中,尤其是复杂度较高的虚拟环境中,该算法具有更高的碰撞检测实时性,取得了良好的效果。  相似文献   

19.
介绍了扩展PB功能的API编程方法及其具体步骤,并给出了一个完整例子。  相似文献   

20.
针对二进制代码分析中由于无符号表信息造成的难以定位主函数main()的问题,提出一种面向PE可执行程序的main函数定位方法。通过分析PE程序从入口点处开始的执行过程从而提炼相关模板,采用模板匹配的方法定位程序中主函数main()的地址。实验结果表明,该方法能够有效实现不同编译环境下PE可执行程序的main()函数定位,有助于提高二进制代码分析工具的分析能力。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号