免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: arron刘
打印 上一主题 下一主题

[IaaS与数据中心] 《模糊测试——强制发掘安全漏洞的利器》 有奖试读活动(获奖名单已公布-2014-3-10) [复制链接]

论坛徽章:
1
双子座
日期:2013-11-06 17:18:01
11 [报告]
发表于 2013-12-25 11:29 |只看该作者
支持一下。不懂这个

论坛徽章:
459
亥猪
日期:2014-05-31 12:08:03亥猪
日期:2014-05-31 12:07:38亥猪
日期:2014-05-31 12:08:04亥猪
日期:2014-05-31 12:07:43亥猪
日期:2014-05-31 12:07:52亥猪
日期:2014-05-31 12:08:09亥猪
日期:2014-05-31 12:07:51亥猪
日期:2014-05-31 12:08:02亥猪
日期:2014-05-31 12:07:59亥猪
日期:2014-05-31 12:07:37亥猪
日期:2014-05-31 12:07:50亥猪
日期:2014-05-31 12:07:39
12 [报告]
发表于 2013-12-25 15:30 |只看该作者
回复 11# seufy88


    懂这个的,基本不混这个论坛

论坛徽章:
459
亥猪
日期:2014-05-31 12:08:03亥猪
日期:2014-05-31 12:07:38亥猪
日期:2014-05-31 12:08:04亥猪
日期:2014-05-31 12:07:43亥猪
日期:2014-05-31 12:07:52亥猪
日期:2014-05-31 12:08:09亥猪
日期:2014-05-31 12:07:51亥猪
日期:2014-05-31 12:08:02亥猪
日期:2014-05-31 12:07:59亥猪
日期:2014-05-31 12:07:37亥猪
日期:2014-05-31 12:07:50亥猪
日期:2014-05-31 12:07:39
13 [报告]
发表于 2013-12-25 15:34 |只看该作者
看了评论说:像是学术研究...
我也有这个感觉哇...也像是高度抽象的指导思想...
实际应用来说,不一定普遍...

论坛徽章:
459
亥猪
日期:2014-05-31 12:08:03亥猪
日期:2014-05-31 12:07:38亥猪
日期:2014-05-31 12:08:04亥猪
日期:2014-05-31 12:07:43亥猪
日期:2014-05-31 12:07:52亥猪
日期:2014-05-31 12:08:09亥猪
日期:2014-05-31 12:07:51亥猪
日期:2014-05-31 12:08:02亥猪
日期:2014-05-31 12:07:59亥猪
日期:2014-05-31 12:07:37亥猪
日期:2014-05-31 12:07:50亥猪
日期:2014-05-31 12:07:39
14 [报告]
发表于 2013-12-25 15:34 |只看该作者
不过,过几天我这本书就到手了。到时候跟大家简单说说吧,,,

论坛徽章:
459
亥猪
日期:2014-05-31 12:08:03亥猪
日期:2014-05-31 12:07:38亥猪
日期:2014-05-31 12:08:04亥猪
日期:2014-05-31 12:07:43亥猪
日期:2014-05-31 12:07:52亥猪
日期:2014-05-31 12:08:09亥猪
日期:2014-05-31 12:07:51亥猪
日期:2014-05-31 12:08:02亥猪
日期:2014-05-31 12:07:59亥猪
日期:2014-05-31 12:07:37亥猪
日期:2014-05-31 12:07:50亥猪
日期:2014-05-31 12:07:39
15 [报告]
发表于 2013-12-27 15:37 |只看该作者
此书弄到手了!
感觉还算不错!
对我来说最实用的算是20章了!
内存的调试。
还没深入研究,如果真的能在windows 下调试程序,或者是调试oracle 程序的话,那就太棒了!
我先研究一下

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
16 [报告]
发表于 2014-01-02 01:29 |只看该作者
本帖最后由 forgaoqiang 于 2014-01-07 22:45 编辑

总是感觉 什么模糊测试 和 混沌学 啥的一样都是高科技 不甚明了 但是却经常遇到 一直很怀疑他们在实际生产环境中的作用 是不是学术性重一些呢
这次有时间的话就稍微读下研究下再做回复~

1.模糊测试是什么
看了下本书的试读部分,在网上也检索了下资料,个人总结的模糊测试(Fuzzing Test)是:通过向程序发送一些非预期的数据,然后观察程序的行为。比较经典的例子当属微软的Word程序,一些畸形的文本内容就可以使整个程序出现异常甚至崩溃退出。模糊测试就是这么一种方法体系。

2.和渗透测试相比,模糊测试这种方法有什么优势
感觉模糊测试可以作为渗透测试的一种方法,传统的渗透测试都是基于已知的各种经验和漏洞,对系统进行测试,虽然两者都可以采用半自动或者全自动的方法进行,但是相对渗透测试来说,模糊测试应该具有更多的测试内容。而且模糊测试只要确定目标设置好输入向量后,各种测试数据就可以源源不断的输送给程序,并且监视程序的执行结果,监视是否有异常出现。模糊测试输入数据具有不确定性,只要范围足够广,只要有死老鼠(BUG)在,瞎猫(测试程序)也很有可能碰上。

3.模糊测试通过随机和半随机方式生成测试数据,对一个网络应用来说,有哪些因素导致生成的数据无效?该怎么解决
网路以前因为稳定性问题,加入了大量的冗余字段,比如帧有FCS、IP包也有头部校验,因此只要生产的数据本身不符合校验规则,那么这个数据就是无效的,会直接被网络设备丢弃掉。这些是规则本身的问题。
另外应用层次来说,很多数据是需要对类型进行验证的,比如手机或者邮箱的格式等,如果是纯随机的情况,这些很容易生产无效的数据。解决方法就是根据实际的情况,按照输入数据的部分要求来做,但是不要限制的太死,不然就失去模糊测试的意义了。

4.云计算环境下的模糊测试适用场景
用户的输入本身就是不可预测的,特别是云环境中大量的数据进行交互。可以对开放的端口发送特定的数据,测试是否会导致协议栈崩溃。对于高层的服务则针对性的进行测试,现在很多的云服务都是基于WEB提供的,那么就可以针对WEB中能够输入的内容进行模糊测试即可。

5.比较成功的模糊测试案例
根据网上的材料,很多漏洞都是采用模糊测试发现的,比如书中提到的2004年微软的MS04-28漏洞公告,就是一个缓存溢出的问题,这种情况下,模糊的输入数据更容易导致有bug的程序表现出问题。

6.小布什语录讨论
好吧,看的我真的无奈了,没想到America大BOSS居然说出这么多的牛X的话。特别是 They Misunderestimated me. 这句话,这否定之否定。。。
也许这就是模糊测试的结果吧,小布什话太多了,终于有大量的bug出现了~~

7.谈谈您的试读感想
试读内容真的很少,只包含了第二章节的内容,主要介绍了什么是模糊测试,模糊测试的发展历史等等。看完后感觉很兴奋,感觉这个又是一个渗透测试的方式。即使如此,仍然感觉离自己还是比较遥远的,实际生产活动中可能用不到。


论坛徽章:
6
CU大牛徽章
日期:2013-03-13 15:15:08CU大牛徽章
日期:2013-03-13 15:26:06CU大牛徽章
日期:2013-03-13 15:26:47戌狗
日期:2013-10-17 09:48:53CU十二周年纪念徽章
日期:2013-10-24 15:41:34丑牛
日期:2014-09-19 14:58:11
17 [报告]
发表于 2014-01-02 11:49 |只看该作者
这个感觉好高深啊,是不是以为这有点故意“搞破坏”的目的,像之前有个IOS6的系统bug,收到几个阿拉伯字符会导致瞬间崩溃,如果苹果的模糊测试能覆盖到这点的话或许会给用户带来更好的保障

论坛徽章:
2
季节之章:冬
日期:2015-01-20 17:08:47IT运维版块每日发帖之星
日期:2016-02-24 06:20:00
18 [报告]
发表于 2014-01-06 12:13 |只看该作者
1.模糊测试是什么
本书将模糊测试定义为 “通过向应用提供非预期的输入并监控输出中的异常来发现软件中的故障(faults)的方法” 。

2.和渗透测试相比,模糊测试这种方法有什么优势
渗透测试的过程并不具有可重复的特点(测试执行主要依赖执行者的经验,类似调试),这种想法在真实的安全性测试环境下完全不可行。模糊测试是一种介于完全的手工渗透测试与完全的自动化测试之间的安全性测试类型。它充分利用了机器的能力:随机生成和发送数据;同时,也尝试将安全专家在安全性方面的经验引入进来。

3.模糊测试通过随机和半随机方式生成测试数据,对一个网络应用来说,有哪些因素导致生成的数据无效?该怎么解决
不明白

4.云计算环境下的模糊测试适用场景
扔到云里面自己自动运行

5.比较成功的模糊测试案例
没见过

6.小布什语录讨论
口误人人有,不止小布什,不过小布什是一个大咧咧形象示人,所以,调侃小布什成为了一中皆大欢喜的现象而已

7.谈谈您的试读感想
翻译的真实废话太多,太忠实与原著,看起来费劲。翻译要先明白原意,然后切分组合,重组为目标语言,而不是简单的1:1的对译。里面许多话都可以用几个词一带而过。

论坛徽章:
0
19 [报告]
发表于 2014-01-10 10:27 |只看该作者
本帖最后由 xike2002 于 2014-01-10 17:25 编辑

好话题,支持一下!

1.模糊测试是什么
答:模糊测试(Fuzz Testing)一直被黑客们广泛使用,却很少应用于商业软件系统开发过程中。在互联网安全产业,如何让模糊测试重新焕发活力,是我一直在思考的问题。
在计算机领域,模糊测试是一个古老却容易被忽视的测试领域,它的诞生绝对早于真正意义上的自动化测试。甚至可以这么说:自从计算机允许用户输入,模糊测试便应运而生了。
所谓模糊测试,顾名思义可以理解成用一段非常规的字符串(或值)去替换正常的输入值,或者用非常规的、不合法的文件替换合法的文件输入,然后检测系统的行为是否正常、模块是否被破坏。虽然概念简单,但模糊测试的作用是非常巨大的,有时它能帮助发现严重的安全漏洞,这也是它深受广大黑客喜爱和认可的原因。
模糊测试在黑客界比较流行,凡是有输入点的地方总有黑客存在。基于对被攻击系统的学习和研究,黑客们会尝试有目的地设计出各种不同的随机输入值去攻击系统直至找到系统的漏洞。SQL Injection Attack便是黑客们常用的一个模糊测试的经典案例。
为了消除被攻击的风险,必须先发制人,在产品发布之前更多地发现产品的安全问题和漏洞便成了软件测试工作者关注的问题。

2.和渗透测试相比,模糊测试这种方法有什么优势
答:压力测试中引入模糊模块在流程上是一个很简单的概念,就是将原始的输入样本进行一番模糊,生成更多的样本,在本文应用场景下,便是基于已有的邮件样本库然后模糊出来更大的样本库,示意流程如图1所示。
其中①便是压力测试系统新增的Fuzz模块,通过Fuzz模块扩容后的邮件样本库(扩容倍数会依据Fuzz策略不同而定)在压力测用例分发程序分发样本到指定的已安装了邮件安全产品的邮件服务器上去。
其中②表示分发程序根据样本分发策略具体进行分发的过程。
其中③表示新引入的自动化测试流程,基于Fuzz的压力测试后,产品需要进行安全漏洞和功能性验证,此处需要启动的自动化测试范围需要根据压力测试的策略和目标而定,最常见的比如:
没有程序和服务的崩溃与挂起。
没有内存泄漏。
通过最基本的(优先级别最高的)测试用例。
一般说来,模糊测试和压力测试中发现的问题都具备以下特点:
严重的安全漏洞和程序异常。
普通人工测试和自动化测试很难复现的bug。
比较难解的bug。
④在普通的功能性自动化测试验证压力测试结构之后,再有目的地做一些探索性的测试。

3.模糊测试通过随机和半随机方式生成测试数据,对一个网络应用来说,有哪些因素导致生成的数据无效?该怎么解决
答:目前的随机数算法都不是真正意义上的随机数,我们一般使用的都是伪随机数。只有产生真正的随机数才能保证测试的真实性。

4.云计算环境下的模糊测试适用场景
答: 云计算时代的到来将改变人们的IT应用方式,同时也会带来软件研发、软件测试模式的巨大改变。尤其是随着云计算应用的逐步升温,云测试也在银行业应用软件的研发中崭露头角。

  所谓云测试就是一种基于云计算的新型软件测试模式,它为用户提供了数种软件测试平台,测试人员可远程登录到这些平台上,在完成硬件配置、操作系统、中间件、工具软件、网络拓扑等环境参数的设置后,只要2-4个小时即可创建一套虚拟测试环境,进而在此环境中展开应用软件的全套测试。

  单一测试已成明日黄花

  在商业银行后台业务实现集中处理后,系统开发规模将不断加大,软件测试作为系统研发中极为关键的一环,已得到银行科技部门的高度重视,不仅大部分银行设立了专业化的测试部门,而且测试人员在项目开发中所占比例也在不断扩大。不过,由于以往被广泛采纳的独立系统测试方案已无法满足核心系统的研发测试,因此,如今各银行信息系统的测试工作都在寻求一种新的测试方式。

  当前各大银行软件测试确实存在一些问题,如整个测试过程缺乏关联协调、没有功能强大的测试工具、测试人员在经验和能力等各方面都有待提高等。因而在银行核心业务系统的开发中,传统的单一测试法已成明日黄花,自动化、支持多系统多平台的云测试必将在银行核心应用系统的研发中大行其道。

  目前商业银行所研发的应用软件基本上都要受到运行环境的影响。云测试可为各类应用软件的测试提供不同场景下的硬件环境,并能模拟不同的操作系统、数据库、浏览器等软件环境,以测试应用软件对不同系统环境的适应性。而在安装了防火墙及防病毒软件后,还可测试相关应用软件运行的可靠性,进而完成软件性能和压力的测试。

  以B/S架构的网上银行程序为例,它能否正常运行受到以下因素影响:防火墙配置、本地网络配置、企业防火墙配置、本地安全性设置、注册表设置、用户账户配置、同时运行的其他的应用程序等。这些参数的组合往往呈现爆炸性增长。即便有虚拟化软件辅助,在短时间内也难以完成相应的配置测试。而云测试则可预先构建好大量配置各异的虚拟测试环境,提供详细的配置说明,推荐给测试人员。测试人员可以选择少数典型的测试环境,自行实施配置测试,也可以将测试用例提交给云测试,让测试并发地运行在大量的测试环境中,并在短时间内获得大量的测试反馈。

  “云”中实现测试工具整合

  云测试不但可以提供完整的测试环境,还可以提供许多附加服务。对于测试专用的虚拟机,它可以提供还原点,以便测试人员将虚拟机重置到指定状态。在应用软件测试过程中,云测试可以监控被测试程序的每一次操作,例如注册表访问、硬盘文件读写、网络访问、系统日志写入、系统资源占用率、内存映像序列化、屏幕录像等。并将这些信息与测试用例一起展示出来,以帮助测试人员发现问题,定位错误。对于大规模的系统压力测试,云测试可以模拟多台客户终端同时执行统一的测试用例,并将测试结果汇总后报告给相关的测试人员。

  云测试还可提供银行专业知识和业务流程的测试服务。这些知识和流程可以通过测试用例、测试数据、自动化测试等形式提供。例如,许多应用需要读取文件,云测试可以提供针对文件读取的模糊测试。测试人员将被测试的应用程序提交给云测试,云测试将其部署到多台测试机上。对每一台测试机而言,这些被测试的程序要读取海量的文件,每一个文件都是特意构造的攻击文件。一旦遇到堆栈溢出等问题,云测试可立即保存被测试程序的内存映像,并提供一份内存映像文件和详细的分析报告。

  以往这些附加服务都是通过数种不同的测试工具提供的,而云测试则对这些测试工具的服务功能进行了整合,为应用系统的研发提供统一、完备的测试服务。从而使银行的测试人员无需再为测试工具的选择而绞尽脑汁,而将更多的精力投入到业务系统的测试工作中。

  满足应用系统多样化需求

  当前商业银行核心业务应用系统在设计时首先会考虑到各种各样的业务需求,因而其复杂程度越来越高,例如客户服务系统中包含信贷管理子系统、风险分析和监控子系统、资金交易和分析子系统、网上银行子系统等。同时还会涉及银行账务处理,而账务处理流程相对来说是比较复杂的,精确性要求很高。其次银行软件系统开发使用的编程语言、工具、技术很杂,往往采用了一些非常用的技术,需要特别考虑。

  这些核心业务应用系统在研发过程中,由于系统关联度太高,架构过于复杂,往往缺乏合适的测试用例,在模糊测试、安全性测试等需要专家经验的测试项目中尤其如此。而云测试可以为各项目组的测试人员预先准备好各类海量的复杂测试用例。与虚拟化的测试环境对比,此项服务专注于特定的测试领域,并提供了稀缺的专业技能,附加值应该更高。

  对中小商业银行而言,系统的一些端到端的功能测试、性能测试、容量测试可直接采纳云测试提供的测试用例,进而完成相关测试。利用云测试测试后会生成详细的测试报告,测试报告除了包括常见的性能指标,还会提供特有的建议信息。

  随着云测试的进一步发展以及云计算理念的不断深化,云测试必将在银行业的软件研发中大规模地普及。同时在采用这种新技术的同时,银行科技部门还要考虑将其与银行业的特殊性相结合,进行动态实时调整并自动计算资源调用情况,以便进一步提高测试效率。

  当然云测试这种测试模式从出现至今,也饱受业内人士的质疑,其面临的问题还有很多,目前尚处于应用的初级阶段。但这并不能阻止它向前发展的趋势,只要这种技术的应用能真正带来测试效率的提升,相信在不久的将来,更多的金融机构会考虑以云测试的方式来实现信息系统的虚拟化测试,以满足银行各应用系统个性化、多样化的需求。

5.比较成功的模糊测试案例
答:模糊测试的实现是一个非常简单的过程:
准备一份插入程序中的正确的文件。
用随机数据替换该文件的某些部分。
用程序打开文件。
观察破坏了什么。
    可以用任意多种方式改变该随机数据。例如,可以将整个文件打乱,而不是仅替换其中的一部分,也可以将该文件限制为 ASCII 文本或非零字节。不管用什么方式进行分割,关键是将大量随机数据放入应用程序并观察出故障的是什么。
模糊测试 对代码质量影响深远的技术(图一)       
测试基于 C 的应用程序
当字符串包含额外的零时,许多用 C 编写的程序都会出问题 —— 这类问题太过频繁以至于额外的零能够彻底隐藏代码中其他的问题。一旦验证出程序存在零字节问题,就可以移除它们,从而让其他的问题浮现出来。
    可以手动进行初始化测试,但要想达到最佳的效果则确实需要采用自动化模糊测试。在这种情况下,当面临破坏输入时首先需要为应用程序定义适当的错误行为。(如果当输入数据被破坏时,您发现程序正常运行,且未定义发生的事件,那么这就是第一个 bug。)随后将随机数据传递到程序中直到找到了一个文件,该文件不会触发适当的错误对话框、消息、异常,等等。存储并记录该文件,这样就能在稍后重现该问题。如此重复。
    尽管模糊测试通常需要一些手动编码,但还有一些工具能提供帮助。例如,清单 1 显示了一个简单的 Java™ 类,该类随机更改文件的特定长度。我常愿意在开始的几个字节后面启动模糊测试,因为程序似乎更可能注意到早期的错误而不是后面的错误。(您的目的是想找到程序未检测到的错误,而不是寻找已经检测到的。)

6.小布什语录讨论
答:没有接触过,不做评论。

7.谈谈您的试读感想
答:模糊测试是未来的一个大趋势,希望大家能够把它推广起来。

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34双子座
日期:2014-03-02 00:11:39fulanqi
日期:2016-06-17 17:54:25
20 [报告]
发表于 2014-01-15 17:34 |只看该作者
1.模糊测试是什么
模糊测试是一种能够降低安全性测试门槛的方法,它通过高度自动化的手段让组织的开发和测试团队都能参与到安全性测试中,并能够通过启发式等方法不断积累安全测试的经验,帮助组织建立更有效的面向安全性的开发流程。

2.和渗透测试相比,模糊测试这种方法有什么优势
渗透测试是一种有效的测试方法,但由于它对执行者的能力要求太高,完全依靠测试执行者的能力,能力强的“白客”能够发现有价值的安全性漏洞,而不具备很强的攻击能力的测试者就无法有效发现系统中的安全性漏洞。
模糊测试是一种介于完全的手工渗透测试与完全的自动化测试之间的安全性测试类型。它充分利用了机器的能力:随机生成和发送数据;同时,也尝试将安全专家在安全性方面的经验引入进来。
所以,模糊测试降低了测试难度,提高了测试的有效性。

5.比较成功的模糊测试案例
1999 年,Oulu大学开始创建PROTOS测试套件;
Dave Aitel 以GPL 协议方式发布了一个开源的名为SPIKE 的模糊测试器;
Aitel 还发布了名为sharefuzz 的本地UNIX 模糊测试器;
2004 年,Michal Zalewski(又名 lcamtuf)7 将模糊测试导入Web 浏览器测试并发布了mangleme 工具;
2005 年,一个名为Mu Security 的公司开始开发一种硬件模糊测试工具;
2006 年David Zimmer 发布了COMRaider,H. D. Moore 发布了AxMan工具。

7.谈谈您的试读感想
试读章节提供了第二章的内容,主要讲述模糊测试,阅读很愉快,此书并没有艰深的理论,描述很平易近人,阅读感觉挺好。想看看此书。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP