4、反编译应用程序

  只要条件允许,应当对应用程序进行反编译,其目的是为了检查有可能使应用程序的漏洞被利用的危险方法,如检查是否有缓冲区溢出问题。虽然许多移动平台是基于Java的,但它们自己的编译器与传统的安全工具并不兼容。如今许多平台都有其反编译器,如黑莓和安卓,苹果也提供了一个反编译器。这些工具能够深入分析应用程序的逻辑,并可以进行有限的静态代码分析。

  5、检查加密机制

  任何时候都应当保护静态数据和传输中的数据,使其不被未获得授权的人员访问。测试人员应当检查移动设备和任何网络服务器的通信加密情况,检查应用程序是否将文件保存到了设备上,或在备份过程中是否发生过转移。

  基于设备的移动应用漏洞利用

  利用在漏洞确认阶段所收集的信息,测试人员应当通过以下步骤,尝试利用所确认的漏洞:

  1、认证和会话管理

  由于可用性的限制,移动应用使用许多新的认证技术,如清除模式,其目的是为了减少口令的复杂性。为了测试是否可以绕过认证控制或访问其它用户的数据,测试者应当测试移动应用的认证机制。在通过认证之后,测试者应当检查应用程序的会话管理。通过观察应用程序如何跟踪、记录用户,测试人员可以评估是否能够重新进行会话或是否可以跳转到另一个用户会话。

  2、授权

  设备的授权许可应当专门定义,这种控制可以防止设备进一步访问设备或其功能。在应用程序环境中,还应当测试没有得到许可的正常用户是否能够访问某些功能。

  3、输入验证

  通过规定应用程序的输入区域,并观察输出,安全评估可以判定在其它特定应用的用户浏览器中,是否能够插入并执行客户端的JavaScript。此操作可以使某用户捕获其它用户的会话机密或应用的用户名和口令等。

  4、数据存储

  许多应用程序收集关于用户的使用数据。这种数据有可能过度冒犯用户的隐私。测试人员应当检查这种数据,判定应用程序收集并保存了哪些数据以及如何访问这些数据。测试人员还应当测试未经授权的用户或第三方是否能够访问这种数据。

  5、风险分析

  在移动黑盒测试的结束阶段,测试人员应当评估每一种风险给企业带来的危害。

  本文阐述了黑盒测试的基本要点,但如果开发人员在开发过程中能够牢记安全第一的原则,遵循佳的开发实践,在发布软件之前,积极检查并修正错误,反复测试,将极大地减轻测试人员的负担。