【ACCESS精品源码栏目提醒】:网学会员ACCESS精品源码为您提供IOS黑客手册第六章(第一部分) - 其它资料参考,解决您在IOS黑客手册第六章(第一部分) - 其它资料学习中工作中的难题,参考学习。
译者 ID:kindsjay第六章 iOS 应用程序模糊测试第一部分设备远程利用的第一个步骤是找到它的一个安全漏洞。
正如您所看到的 iOS 攻击面在第一章讨论中的,攻击者有许多潜在的方法来提供数据的 iOS 设备。
这些包括一些服务器端的威胁,如无线和蓝牙协议栈,mDNSresponder,并在一定程度上,手机短信也存在。
在客户端上的许多项目,包括网络浏览器,邮件客户端,音频/视频播放器,和 App Store 的应用程序。
关键是要找到这些程序一个输入,你可以用它来改变应用程序的行为。
找到模糊测试的地方反复发送畸形数据对应用程序的测试,动态测试应用程序的过程中。
最重要的是,模糊测试可以发现很多在 iOS 中的漏洞,有时用很少的努力,甚至理解一些基本的就可以开始进行测试。
换句话说,它是找到 iOS 错误最简单的方式。
在后面的章节中,您将了解如何利用这些漏洞,并利用它们创造的漏洞,可以执行一些未经授权的行动设备上的问题。
如何开展模糊测试工作模糊测试,也被称为动态分析,是艺术与科学非法输入的创作技巧,并提供给具有一定安全问题的应用程序一些希望.整本书都在写这个话题,包括模糊测试:由 Sutton Greene andAmini 发现的暴力挖掘(ISBN978-0321446114) ,以及模糊测试软件安全性测试和质量保证Takanen DeMott and Miller,(ISBN978-1596932142)。
模糊测试发现的缺陷也许是最简单的方法。
在过去找到许多与安全有关的缺陷的产品,它已被用于不同的 Apache HTTP 服务器,微软 RPC 接口,还有 Mobile Safari iOS 上.模糊测试背后的基本思想是稍微改变有问题的输入对系统进行重复发送. 良好的的应用程序应该能够处理任何提供给它的输入。
如果相关它应该拒绝无效的输入,等待任何未出现的数据。
当它接收到有效的输入,它应该执行任何操作,它的目的是执行。
在任何情况下程序崩溃并停止运行预设的设计要求。
通过发送以百万计的输入程序,看到如果程序崩溃(或执行一些其他不可接受的行动)的模糊测试这个想法。
测试人员可以通过监测应用程序模糊测试 确定哪些输入导致应用中故障.模糊测试发现的各种类型的缺陷包括内存破坏漏洞如缓存区溢出。
设想程序员设定一个特定的数据片段例如一个电话号码永远不会超过 32 个字节因此可以编写一个该缓冲区大小的数据.如果开发人员没有明确检查数据或复制到这个缓冲区的大小限制这样就可能超出预计的缓冲区大小造成数据损坏. 出于这个原因, 模糊通常被认为是测试的技术开发人员的假设,通过提交恶意构造的数据。
关于模糊测试好处之一是, 它是非常简单的设置了一个基本的模糊测试测试环境, 并找到了一些真正的错误,并能及时看到。
你不一定了解所测试的程序(源代码) ,或您输入的模糊测试。
在最简单的情况下,你需要的是一个程序和所有有效的输入。
您只需要一些时间让CPU 循环,让模糊测试的运行。
虽然模糊测试是以迅速的方式输入但了解和理解底层程序的功能确实必要的用以挖掘深入的程序并找到最好的错误.毕竟企业如苹果和很多其他的研究人员也在进行模糊测试所以深入的挖掘最好的错误是必要的.虽然模糊测试有很多优点,但它也存在一些缺点。
有些错误是不容易被模糊测试发现。
也许会对一些字段进行校验当输入被修改使得该程序拒绝输入. 也许很多个字节跟输入有关,更改其中一个很容易被检测和程序很快拒绝无效输入。
同样,如果一个错误很明显,只有在非常精确的条件得到满足, 模糊测试是不可能发现这个错误的,至少是在一段时期内。
因此某些类型的协议和输入相对难挖掘不同类型的应用程序更是难以挖掘.程序有时会掩盖内存损坏他们处理自己的缺陷非常的稳健.程序也可以做到很难监控如果他们包含了重量级的反调试如数字版权管理软件.由于这些原因模糊挖掘并不总是脆弱性分析的最佳选择。
正如你即将看到的,它的工作原理只适用于大多数 iOS 应用程序。
模糊测试的秘诀模糊化的应用