手动测试缓冲器溢出的最佳方式

日期: 2008-11-09 作者:John Strand翻译:Tina Guo 来源:TechTarget中国 英文

问:手动测试缓冲器溢出的最佳方式是什么?   答:检查程序中的缓冲器溢出有两种方式。首先,应该在编译代码前分析检查源代码。执行这一过程可以使用很多工具。我最喜欢的是Fortify Software Inc.的 Rough Auditing Tools for Security (RATS)和Cigital Inc.的 ITS4。

两者都可以免费下载。还可以使用微软Visual C++的‘/analyze’编译器。上面提到的工具的检查都不仅限于缓冲器溢出,而是还可以检查其他的缺陷,例如格式字符串漏洞和堆栈溢出。   第二种测试缓冲器溢出的方式是查看编译代码。

很长时间以来,很到安全专家都相信检查漏洞……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

问:手动测试缓冲器溢出的最佳方式是什么?

  答:检查程序中的缓冲器溢出有两种方式。首先,应该在编译代码前分析检查源代码。执行这一过程可以使用很多工具。我最喜欢的是Fortify Software Inc.的 Rough Auditing Tools for Security (RATS)和Cigital Inc.的 ITS4。两者都可以免费下载。还可以使用微软Visual C++的‘/analyze’编译器。上面提到的工具的检查都不仅限于缓冲器溢出,而是还可以检查其他的缺陷,例如格式字符串漏洞和堆栈溢出。

  第二种测试缓冲器溢出的方式是查看编译代码。很长时间以来,很到安全专家都相信检查漏洞的唯一方式是测试程序的源代码。这是不正确的。有很多工具都可以检查编译器的低层汇编代码中的漏洞。他们还可以利用fuzzing技术,这种技术可以通过输入大量的大量的任意数据并查看是否存在错误来测试软件。

  为了检测汇编代码中的编译代码图,可以使用Metasploit project中的msfpescan和mfselfscan工具。

  而fuzzing技术中可以查看SPIKE、BreakingPoint Inc.的测试工具和MuDynamic Inc.的分析产品等工具。Spike是免费的,而Breaking Point和Mu的工具是商业的。如果应用安全检查时你工具的延伸,我强烈建议你考虑商业产品。

  很多fuzzing产品把输入的数据分割测试应用崩溃。为了手动执行,可以查找应用中的输入并放入尽可能多的字符。如果崩溃了,需要和开发人员通过检测应用和系统登录讨论哪里出错了。很显然,需要在测试前确保有行为权限。

  最后问题要比单纯地检查缓冲期溢出广泛的多。缓冲器溢出是因为开发人员没有验证应用中的输入数据。对如输入到应用中的每一个数据,都应该对可以接受的数字和字符类型作限制。验证可以接受的数据的输入是不被允许的。例如,对“State”的域请求不需要允许*、$、@或者^。不管缓冲器溢出是否存在,它都应该设置为只允许标准的Aa-zZ字符。

翻译

Tina Guo
Tina Guo

相关推荐

  • 六招防御网页挂马

    网页木马能够在用户不知情的情况下改变用户配置或者下载运行非法程序以实现某种不可告人的目的。那么,作为用户我们该如何防御网页挂马呢?

  • 关于ASP.net服务器的入侵方法

    本文将介绍ASP.net上的一些入侵常用手段、几个主要的类及其关键方法的用法,详细程序请查看下文中附带的源代码……

  • 缓冲区溢出防范策略

    软件是一种典型的以有效的方式操纵数据的书面形式的产品。这些数据可以是文本,图像,视频或声音;但是,就程序而言,本质上它只是一串数据——通常以字节(8位数据)的形式代表某些意义(例如,颜色或文本字符)。当一个程序员申明一个缓冲区时,非常容易申请一个可能不适合程序后来的指针使用的缓冲区,或者可能会在没有很充分地验证输入时接受超出缓冲区大小的数据。这就涉及到缓冲区溢出的问题,本手册将围绕这一问题展开讲解。

  • 防止缓冲区溢出攻击的策略

    了解了缓冲区溢出是如何发生的之后,如何防止黑客利用缓冲区溢出攻击并控制你的本地应用程序呢?本文将提供四种解决方案。