移动设备应用的灰盒测试与评估三步走(一)

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

所谓移动设备应用的灰盒测试是指,将传统的源代码检查(白盒测试)与前期测试(黑盒测试)结合起来的一种技术。测试人员必须检查应用程序的代码库,审查关键功能代码,审查常见的错误编码或非法编码方法。此外,测试人员还可以执行黑盒测试来审查应用,并根据所确认的漏洞定位找到代码库中的目标代码。   为什么要执行移动应用的灰盒测试与评估呢?答案很简单:找到高风险代码;确认漏洞的根本原因。

  灰盒测试应当遵循如下三大步骤:   一 威胁建模   威胁建模可以使测试团队首先确认有可能对移动应用产生最大影响的威胁。测试人员在这个阶段的主要目的是区分特定应用组件或代码的优先顺序。测试团队通过理解应用程序架构的文档资……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

所谓移动设备应用的灰盒测试是指,将传统的源代码检查(白盒测试)与前期测试(黑盒测试)结合起来的一种技术。测试人员必须检查应用程序的代码库,审查关键功能代码,审查常见的错误编码或非法编码方法。此外,测试人员还可以执行黑盒测试来审查应用,并根据所确认的漏洞定位找到代码库中的目标代码。

  为什么要执行移动应用的灰盒测试与评估呢?答案很简单:找到高风险代码;确认漏洞的根本原因。

  灰盒测试应当遵循如下三大步骤:

  一 威胁建模

  威胁建模可以使测试团队首先确认有可能对移动应用产生最大影响的威胁。测试人员在这个阶段的主要目的是区分特定应用组件或代码的优先顺序。测试团队通过理解应用程序架构的文档资料,应当逐渐熟知移动应用的基本架构和使用情况。

  收集信息

  通过与移动应用的开发团队协作,测试团队应当获得有助于帮助其理解移动应用的设计和功能的文档资料。这些文档资料中所描述的细节,可以为威胁建模过程中的所有步骤提供基础。

  执行侦察和应用映射

  理解移动应用如何实现其功能对于创建移动应用模型至关重要。在此阶段,测试团队应当人工检查移动应用的实例。然后,团队应当检查移动应用的匿名部分和认证部分,同时关注处理敏感数据和功能的部分。在此阶段,要提供架构、配置、过程、用户、技术等各方面的证明文件,以利于下一阶段的使用。

  需要重点关注并用于下一阶段针对性测试的方面有:管理界面、敏感信息的传输、外部或第三方应用的接口、移动协议(如SMS、MMS、WAP等)的使用。

  测试团队应当记录在此期间的每一种请求和响应,以便于使用本地代理工具和网络嗅探工具进行日后分析。

  定义系统和可信边界

  在检查的下一阶段,评估团队应当构建一个移动应用及数据流程图中的系列过程的可视化模型。数据流程图要确认系统边界和围绕移动应用的每一个组件的可信边界。确认系统边界可以使测试团队初步明确数据流入或流出系统或其组件(即数据入口和出口点)的所有位置。随后,在代码检查阶段,测试团队应当检验在每一个系统边界是否执行了适当的验证和编码技术。与此类似,确定可信边界可以查明测试团队能够检验代码中的认证和授权部分。

  将威胁映射到功能

  在定义了所有的流程图要素后,测试团队应当将所有要素映射到资产威胁,其目的在于定义移动应用中的“热点”,进而可以构建一个测试计划。在针对性的代码检查阶段,测试团队应当全面测试计划中的每一个项目。

  二 漏洞确认

  在应用程序的评估过程中,应当重点检查前一阶段所确认的热点源码。除了要检查源代码检查不易发现的应用程序漏洞,企业还应当执行黑盒类的评估,用以确认网络或主机层的漏洞。为了补充应用程序组件的人工检查,这个测试阶段应当采用自动化的扫描。

  代码分析和扫描

  自动化扫描工具可以分析全部源代码,从而初步发现安全问题。在此阶段,测试者应当利用商业类工具和私有工具来扫描有安全问题征兆的代码和可导致漏洞的常见编程错误。源代码分析阶段应当设法确认可影响到主机、服务器和网络的漏洞。

  人工分析

  在此阶段,我们建议详细检查应用程序的代码,其目的是为了发现应用程序架构所独有的安全漏洞。在检查代码时,建议将以下几种技术结合使用:

  1、许可分析:许多平台要求移动应用声明在执行期间试图访问哪些功能。然后,设备将对应用程序限制使用这些特定的功能。测试人员可以针对这些功能发动攻击,并尝试绕过这些限制,以检验其效果。

  2、控制流分析:该技术用于分析代码中的逻辑条件。这种方法可以使测试人员确认常见的逻辑漏洞,例如,程序无法处理例外、不适当的授权限制等。

作者

赵长林
赵长林

TechTarget中国特邀作者

相关推荐