[发明专利]一种缓冲区溢出检测方法及系统无效
申请号: | 201310583180.6 | 申请日: | 2013-11-19 |
公开(公告)号: | CN103559439A | 公开(公告)日: | 2014-02-05 |
发明(设计)人: | 方雪静 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F21/56 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 王丹;栗若木 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 缓冲区 溢出 检测 方法 系统 | ||
技术领域
本发明属于信息安全领域,尤其涉及一种缓冲区溢出检测方法及系统。
背景技术
1988年11月,许多组织不得不因为“Morris蠕虫”而切断Internet连接,“Morris蠕虫”是23岁的程序员Robert Tappan Morris编写的用于攻击VAX和Sun机器的程序。据有关方面估计,这个程序大约使得整个Internet的10%崩溃。2001年7月,另一个名为“Code Red”的蠕虫病毒最终导致了全球运行微软的IIS Web Server的300,000多台计算机受到攻击。2003年1月,“Slammer”(也称为“Sapphire”)蠕虫利用Microsoft SQL Server2000中的一个缺陷,使得南韩和日本的部分Internet崩溃,中断了芬兰的电话服务,并且使得美国航空订票系统、信用卡网络和自动出纳机运行缓慢。所有这些攻击以及其他许多攻击,都利用了一个称为缓冲区溢出的程序缺陷。
缓冲区溢出是指当计算机向缓冲区内填充数据位数时超过了缓冲区本身的容量溢出的数据覆盖在合法数据上,理想的情况是程序检查数据长度并不允许输入超过缓冲区长度的字符,但是绝大多数程序都会假设数据长度总是与所分配的储存空间相匹配,这就为缓冲区溢出埋下隐患.操作系统所使用的缓冲区又被称为堆栈.在各个操作进程之间,指令会被临时储存在堆栈当中,堆栈也会出现缓冲区溢出。
在当前网络与分布式系统安全中,被广泛利用的50%以上都是缓冲区溢出,其中,最著名的例子是1988年利用fingerd漏洞的蠕虫。而缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到shell,然后为所欲为。
截止到当前,CVE收录基于Microsoft Windows操作系统的缓冲区溢出漏洞达472个,利用缓冲区溢出漏洞可以攻击操作系统以及应用程序,严重危害信息安全。
发明内容
本发明提供一种缓冲区溢出检测方法及系统,以解决上述问题。
本发明提供一种缓冲区溢出检测方法,上述方法包括以下步骤:
当发生缓冲区溢出时,恶意代码会调用系统API函数;
通过HOOK恶意代码调用的系统API函数并检查系统API函数的返回地址并根据反馈地址,判断缓冲区是否溢出。
本发明还提供一种缓冲区溢出检测系统,包括:调用装置、判断装置;调用装置与判断装置连接;
所述调用装置,用于当发生缓冲区溢出时,恶意代码会调用系统API函数;
所述判断装置,用于通过HOOK恶意代码调用的系统API函数并检查系统API函数的返回地址并根据反馈地址,判断缓冲区是否溢出。
通过实施本发明的技术方案,实现了缓冲区溢出的有效检测。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1所示为本发明实施例1的缓冲区溢出检测流程图;
图2所示为本发明实施例2的溢出检测系统结构图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明的核心思想是:
当发生缓冲区溢出时,恶意代码会调用系统API函数;通过HOOK恶意代码调用的系统API函数,检查系统API函数的返回地址,如果返回地址在系统API函数调用栈上,或者返回地址所在虚拟内存页是非protect,说明了发生了堆栈溢出,也就是缓冲区溢出。
本发明提供了一种缓冲区溢出检测方法,包括以下步骤:
当发生缓冲区溢出时,恶意代码会调用系统API函数;
通过HOOK恶意代码调用的系统API函数并检查系统API函数的返回地址并根据反馈地址,判断缓冲区是否溢出。
其中,当发生缓冲区溢出时,恶意代码会调用系统API函数的过程为:Shell code Call Win32系统API函数即LoadLibraryW;其中,LoadLibraryW为函数名。
其中,通过HOOK恶意代码调用的系统API函数的过程为:通过动态链接库DLL使用Microsoft Detours库,HOOK操作系统关键的API函数即HOOK_LoadLibraryW。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310583180.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种预成型焊片喷涂用高浓度助焊剂
- 下一篇:一种高温钎焊用铁镍基钎料