微软驳斥关于VS.NET安全性的报道

开发者在线 Builder.com.cn 更新时间:2002-02-17作者:ZDNET CHINA 综合报道 来源:

本文关键词: .NET VSNETB2CHN Visual Studio.net

来自微软的报道否定了关于Visual C++ .NET的一系列毫无根据的言论,证明先前指出的安全隐患根本不存在,Visual C++ .NET工作正常。

先前Cigital指出的安全隐患是指在Visual C++ .NET(作为Visual Studio .NET的一部分共同推出)编译器中某个功能的操作问题。这个叫做缓存安全性检验(Buffer Security Checking)的功能,是针对程序员在未知的情况下可能在编程中造成缓冲区溢出这一译码错误而提供的一个附加安全层面。缓冲区溢出问题是一个严重的安全隐患,并与许多致命的安全弱点有所联系。即使程序员确实出现了译码错误,缓存安全检验也能防止一些类型的缓冲区溢出问题的发生。 Cigital对于这个功能的报道中的几个错误观点:

1. Cigital声称这个功能是以一个叫做StackGuard的第三方产品为基础的。甚至表示微软公司仅是简单地将StackGuard导入到了编译器之中。这个观点是错误的,事实上这个功能是微软独立开发的。

2.Cigital还指出,由于这个功能并不对所有类型的缓冲区溢出提供完全的保护,因而他是有缺陷的。然而,微软从未表示缓存安全性检验是消除所有类型的缓冲区溢出现象的万能妙药。缓冲区溢出是译码错误问题中的一个类型,并不单单是一种特殊的错误形式,新型的溢出错误接连不断地被发现,一些溢出错误可以通过与操作系统或硬件做调整工作来达到防止其出现的目的。没有任何一个以编译器为基础的解决方案可以针对所有缓冲区溢出问题提供彻底的保护,然而缓存安全性检验确实可以针对绝大多数通常出现的溢出问题提供有效的保护。

3. Cigital错误地认为微软公司将缓存安全性检验作为固有的编程技术的替代物,事实上,微软一直明确地表示缓存安全性检验是目前编程技术的辅助工具而不是他的替代物。缓存安全性检验在程序员出现执行性错误的情况时提供额外的保护措施,但很显然最好的办法是在一开始就不要犯这样的错误。微软长期提倡使用正确的编程技术并将其作为编制安全性软件工作的首要前提。在微软新近出版的一本书-- Writing Secure Code--中的观点正是表明微软公司这一态度的有力证明。书中特别提到了缓存安全性检验和如何对其进行有效使用的问题。

很不幸的,Cigital采用了他一贯的方式对此事进行了追踪-通过媒体将其宣布给公众并同时告知给微软公司。如果确实存在安全性的弱点,客户将会因为Cigital的举动而承担风险。微软指出,这并不是一个试图为客户提供安全化措施的妥善途径。

责任编辑:炒饭

用户评论

  • 用户名
  • 评论内容