针对开发人员在iOS应用程序中存在安全漏洞的测试人员的建议
随着我们的手机在我们的生活中发挥越来越重要的作用,发布安全应用程序已成为保护最终用户的必要条件。因此,测试者的角色在识别不需要的行为方面变得越来越重要,例如允许数据泄漏,在设备上安装的其他应用程序中产生错误,产生意外成本或拒绝向电话用户提供某种服务。
在之前的出版物中,我们分享了iOS安全开发的一些技巧。您可能希望阅读这些文章,因为它们将帮助您检测开发人员在为iOS创建应用程序时经常犯的某些错误。除了这些文章,我们还分享了以下指南,可用于指导您的分析。
1 - 把自己放在程序员的脚下
在最大程度上,尝试了解您正在审核的代码开发背后的人员。弄清楚他们在大多数时间使用哪种编程语言或者他们的第一种(主要)编码语言是什么。程序员的经验通常在他们的代码体系结构中很明显,因此也就是他们错误的本质。在调查方面,了解这些事情可以为您指明正确的方向。
例如,具有Java背景的程序员经常不知疲倦地复制设计模式,一遍又一遍地抽象功能。相比之下,Web程序员开发的移动开发将尽可能多地存储到Web应用程序中,并且在很大程度上依赖于WebKit的使用。两种类型的开发人员都熟悉使用高级API,但在操作低级API时容易出错。
2 - 获取源代码
虽然它不是通常找到攻击者的地方,但获取源代码将帮助您在最短的时间内检测到大多数错误。渗透测试通常涉及时间和金钱方面的有限资源,因此最好充分利用它们。您的目标不应该是复制真实的攻击场景,而是要找到尽可能多的漏洞,以使最终的应用程序更安全。
Objective-C非常适合逆向工程,即使不从源代码开始,也可以对应用程序的内部机制进行相当透明的查看。具有无限时间的攻击者可以获得近似 - 如果不是精确 - 看看您将使用代码的内容。最好是节省时间并专注于发现这些安全漏洞。
3 - 记住语言的弱点
虽然Objective-C和Cocoa防止了C和C ++中的一些常见安全错误,但使用危险的API(如 strcpy 和 strcat)或执行不当的机制(如类别或方法调整 )可能会导致意外行为,从而导致严重的安全错误。因此,请务必研究这些技术如何影响应用程序。
4 - 确定可能重用易受攻击的代码
许多程序员已经养成了咨询在线编程论坛和复制代码的坏习惯,而没有真正测试它是如何工作的,特别是在涉及低级辅助功能,网络连接和加密时。其他人将第三方库和开发集成到基本代码中,而不检查它们是否存在任何安全漏洞。这可能导致在多个应用程序中找到相同的易受攻击的代码。
5 - 使用两个测试团队:一个带越狱,另一个带工厂
拥有工厂操作系统的设备将帮助您评估应用程序在真实的最终用户环境中的行为,启用所有安全机制并且注册推送通知没有问题。相比之下,您可以使用越狱设备更详细地分析文件系统以及操作系统的工作方式。
我们希望这些技巧可以帮助您找到正在处理的应用程序的新分析视角。
本文作者为Mr.Bai,转载请注明。