如何对移动应用进行黑盒测试(二)

日期: 2013-05-23 作者:赵长林 来源:TechTarget中国

基于设备的移动应用漏洞确认

  根据移动应用的功能,测试人员应在模拟器或客户端提供的物理设备中执行测试,或兼而有之。在测试过程中,测试者应确认应用的功能,并针对任何内部的逻辑控制和外部连接。因为移动应用在许多方面是不同的,应当使用下面的步骤来测试每一种应用:

  1、映射应用的功能

  应当人工检查应用程序,确认其功能和应用程序访问不同组件的方法。评估团队应当重点关注如何确认外部的网络连接,以及数据存储、用户输入和许可等问题。

  2、监视连接

  移动应用有许多连接到外部源的方式。测试者应当使用代理工具和网络嗅探器,用来监视每一个请求和响应。还要记录数据通信,以便于日后的分析。如果应用程序使用了蓝牙或其它连接,为了捕获数据通信,开发团队应当使移动设备与一个服务器进行配对使用。

  3、检查数据处理

  由于应用程序的使用,数据可能存在于多个不同的位置。用户或非授权方有可能通过各种方式访问敏感信息或应用。评估应当确认敏感信息在何处产生,并分析如下情形中如何保护数据:由于用户交互而提交给应用的用户输入;用于输入到应用程序中的文件;在正常使和应用期间产生的文件;由于程序的例外进程所生产的应用程序日志;应用程序和设备(它们有可能将敏感数据放在非正常的或非法的位置)的缓存机制;通过网络连接而从外部服务器获得的数据。

  4、反编译应用程序

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

  5、检查加密机制

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

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

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

  1、认证和会话管理

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

  2、授权

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

  3、输入验证

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

  4、数据存储

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

  5、风险分析

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

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

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

赵长林
赵长林

TechTarget中国特邀作者

相关推荐

  • Kali Linux渗透测试五步曲

    Kali Linux的设计目的是渗透测试。不管渗透测试者的起点是白盒测试、黑盒测试,还是灰盒测试,在用Kali或其它工具进行渗透测试时,需要遵循一些步骤。

  • 这样做,让你的渗透测试更有效

    进行渗透测试首先需要确认渗透测试项目的起始状态。定义起始状态的最常见的方法是确定选择黑盒测试或白盒测试或灰盒测试……

  • 如何对移动应用进行黑盒测试(一)

    多数移动应用程序采用何种开发技术,都会给本地设备和企业带来不同的风险,因而在部署之前需要对其实施软件测试和评估。本文首先讨论黑盒测试技术和策略。

  • 黑盒和白盒测试可以一起使用吗?

    黑盒测试和白盒测试可以一起使用吗?哪些东西是黑盒测试可以找到,但白盒测试不能找到的呢?