模糊测试是安全软件开发方法的一部分吗?

 
   | |

导读:模糊测试,事实上不是一种新技术。由于目前人们聚焦于开发更加安全的软件,模糊测试才被更加广泛应用并成为公认的代码测试方法。

关键词:模糊测试 安全软件开发 fuzzing

 
正在加载数据... 【TechTarget中国原创】问:我听说一个叫“模糊测试”(Fuzzing)的新技术。这种技术是不是查找出软件漏洞的一个有效方法呢? 答:模糊测试,事实上不是一种新技术。它早在1989年就被威斯康星州的麦迪逊大学Barton Miller教授发明。由于目前人们聚焦于开发更加安全的软件,模糊测试才被更加广泛应用并成为公认的代码测试方法。 在软件测试过程中,一个程序被随机产生的数据大量验证,称为模糊测试……

【TechTarget中国原创】:我听说一个叫“模糊测试”(Fuzzing)的新技术。这种技术是不是查找出软件漏洞的一个有效方法呢?

:模糊测试,事实上不是一种新技术。它早在1989年就被威斯康星州的麦迪逊大学Barton Miller教授发明。由于目前人们聚焦于开发更加安全的软件,模糊测试才被更加广泛应用并成为公认的代码测试方法。
 
    在软件测试过程中,一个程序被随机产生的数据大量验证,称为模糊测试。假如一个程序在应对任一的这类数据上失效,开始出现冲突、锁住、消耗大量内存或者产生不可控制的程序错误,开发者就知道代码中某处出现了bug。因此这个缺陷可能在程序发布或者配置前被定位并予以矫正,从而使可能的程序漏洞不出现在程序最终发行版本中。软件测试被频繁地用于测试缓冲区溢出漏洞,而这种溢出在输入字符的数量超出可用的缓冲区空间时候发生。
 
    软件程序有许多种的输入方式,比如鼠标、键盘和触摸屏。另外还包括调用其它程序或植入实用系统中的控制器数据。模糊测试可以有效地找出漏洞,是由于输入一个程序的数据是随机的,因此不会被任何的关于软件应该如何运行的偏见所束缚。当人们自己测试软件的时候,可能作出软件被如何使用的假设,而造成只对特定的输入进行测试。

    一个彻底的模糊测试是对有效数据和随机数据的联合调试。有效数据测试防止程序在抵达一个欠缺的代码块前出现拒绝信息。
 
    你必须意识到,虽然通过一个模糊测试,这并不意味着一个程序完全没有bug。软件测试仅仅是随机测试的模拟,是程序行为的一个有限样本的测试。测试可能只展现那些软件可以处理的没有冲突的例外。还有,模糊测试不能测试出开发中出现的逻辑错误。
 
    模糊测试一个大的优点在于它的成本效率;测试通常是自动化的,而且容易配置。模糊测试是一种有效的软件测试方法,但它也只是众多软件测试方法中的一种。静态分析、相互评价和安全代码方法学都是安全软件开发的方法。

 
查看全文
 
 
 
 
 

软件开发安全

 
创建安全性强的软件所需的各个准则的最佳实践是怎样的呢?BSIMM被认为是智慧和现行实践的汇集,这个模型使用了软件安全框架SSF来组织软件安全任务……
 
作为软件开发团队的成员,软件开发项目完成的期限是否迫使你的安全测试工作形同虚设?你将采取什么方式来减少编码中出现的bug?
 
什么是缓冲区溢出,它又是如何工作的?如何防范缓冲区溢出攻击?本文通过研究缓冲区溢出的工作机制揭露其如何展开攻击,并介绍了阻止缓冲区溢出攻击的方式……
 
微软本周拓展了其安全开发生命周期SDL项目,引入了新的模板来帮助IT部门和编码人员构建安全的软件开发,这种新的MSF-A+SDL模板是设计来将敏捷开发方法引入到……
 
如何选择和运用不同的软件测试方式呢?在“白盒测试”中我们介绍了白盒测试方式的特点和使用,本文中我们将介绍黑盒测试和灰盒测试的特点和各自的适用场合……
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录