首页 -> 安全研究

安全研究

安全漏洞
微软Visual C++.Net缓冲区溢出攻击防护存在脆弱性漏洞

发布日期:2002-02-14
更新日期:2002-02-14

受影响系统:
Microsoft Visual C++.Net
描述:
BUGTRAQ  ID: 4108

Microsoft Visual C++ 7 和 Visual C++.Net编译器有一个功能可以有助于对缓冲区溢出攻击进行防护。这个防护功能与Crispin Cowan实现的StackGuard方法类似。

Visual C++ 7实现的防护功能存在缺陷,在特定情况下,攻击者可能绕过这种防护实现对一些对软件中的缓冲区溢出漏洞的利用。

Visual C++ 7实现的保护机制是采用一种叫“security cookies”的技术,就是在程序的函数堆栈帧的后面紧跟一些特定的值。当一个调用返回时,它检查那些值的完整性,如果完整性检查失败,它就假设是因为堆栈溢出,在这种情况下,进程结束或者转到一个程序设计者定义的处理程序段执行,而这个程序段的指针是存放在一个全局变量中的。在某些缓冲区溢出情况下,允许攻击者改写任意地址的内存,这时如果攻击者用shellcode 的地址改写这个意外处理程序段的指针,则攻击者可以执行任意的指令,这样攻击者就绕过了对缓冲区溢出的防护。

这个问题其本身并不是一个漏洞,但它可能给程序员带来误导,以为只要打开了这个防护缓冲区溢出的选项就安全了而疏于编程过程中的安全考虑,从而可以导致一些不安全编程的现象出现。

<*来源:Chris Ren
        Michael Weber
        Gary McGraw
  
  链接:http://archives.neohapsis.com/archives/bugtraq/2002-02/0146.html
*>

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 没有合适的临时解决方案。

厂商补丁:

Microsoft
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.microsoft.com/

浏览次数:3164
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障