[发明专利]整形溢出漏洞的二进制检测定位装置无效
申请号: | 200910025885.X | 申请日: | 2009-03-12 |
公开(公告)号: | CN101510241A | 公开(公告)日: | 2009-08-19 |
发明(设计)人: | 陈平;王逸;辛知;茅兵;谢立 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F21/00 | 分类号: | G06F21/00;G06F21/22 |
代理公司: | 南京苏高专利商标事务所(普通合伙) | 代理人: | 柏尚春 |
地址: | 210093江苏省南京市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 整形 溢出 漏洞 二进制 检测 定位 装置 | ||
技术领域
本发明提供了一种二进制漏洞的检测定位装置,特别是一种整形溢出漏洞的二进制检测定位装置。
背景技术
整形溢出漏洞是著名的软件安全漏洞之一,在C或C++程序中尤为突出。整形溢出漏洞分为两类:整形下溢出(IntegerUnderflow);(2)整形上溢出(IntegerOverflow)。2006年CVE(CommonVulnerabilityandExploit)指出缓冲区溢出漏洞(bufferoverflow)呈下降趋势,而整形溢出漏洞呈上升趋势。值得注意的是,2006年整形溢出在系统漏洞中的排名首次升至第二位,仅次于缓冲区溢出。更重要的是,整形溢出漏洞往往会触发很严重的攻击,如任意代码执行(arbitrarycodeexecution),拒绝服务攻击(denialofservice),等等。
整形溢出漏洞一般与程序语义相关,因此很难被检测和定位。程序员经常忽视,甚至对整形溢出漏洞知之甚少。标准编译器,如GCC,对整形溢出漏洞也不能提供警告或错误信息。更糟糕的是,整形溢出漏洞常常与某些攻击方法结合,共同产生内存错误。现有的安全工具几乎都不能检测并定位整形漏洞。
此外,与有源代码的程序相比,二进制程序缺少显式的类型信息,需要从某些特定的操作和函数定义中获得这些信息。
特别是,目前整形溢出漏洞检测工具很少,而且至少存在如下的缺点之一:(1)需要源代码(2)人工参与(3)检测误报率和漏报率高(4)不能定位整形漏洞代码。目前,在二进制程序分析工具中,典型的工具是Valgrind,它将二进制代码转换成VEX中间代码,并在此中间代码上进行分析。在Valgrind上,已经出现了许多功能插件,如内存错误分析插件Memcheck,类型引用插件Catchconv等。本发明基于Valgrind以及Catchconv,检测和定位整形溢出。相关文献可见N.Nethercoteand J.Seward.Valgrind:A framework for heavy weight dynamic binary instrumentation.In Proceedings of PLDI 2007,San Diego,California,USA,June 2007;J.Seward andN.Nethercote.Using valgrind to detect undefined value errors with bit-precision.In Proceedings of the USENIX05Annual Technical Conference,Anaheim,California,USA,April 2005;D.A.Molnar and D.Wagner.Catchconv:Symbolic execution and run-timetype inference for integer conversion errors.Technical Report UCB/EECS-2007-23,EECSDepartment,University of California,Berkeley,February 2007。
发明内容
发明目的:本发明的目的在于针对现有技术的不足,提供一种对没有源代码的二进制程序的进行保护的整形溢出漏洞的二进制检测定位装置。
技术方案:本发明公开了一种整形溢出漏洞的二进制检测定位装置,该装置包括以下单元:
用于将二进制代码转换成VEX中间代码的代码转换单元;
信息记录单元,所述信息记录单元包括:用于记录变量的类型信息的类型信息提取模块;用于记录变量的最新值的数值信息提取模块;用于记录算术运算及其操作数的算术运算提取模块;用于记录赋给变量最新值指令地址的指令地址提取模块;
检测定位单元,所述检测定位单元包括:整形数上溢出检测模块以及整形数下溢出检测模块。
本发明中,优选地,所述代码转换单元通过二进制分析工具Valgrind将二进制代码转换成指令代码集VEX;包括:对寄存器的读/写指令、对内存的读/写指令、对临时变量的读/写指令、对常量的读指令。
本发明中,优选地,所述二进制分析工具Valgrind插入类型引用插件Catchconv后,所述类型信息提取模块的类型信息通过符号跳转指令、库函数定义以及操作数的大小信息获得。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910025885.X/2.html,转载请声明来源钻瓜专利网。