3、数据流分析:该技术跟踪从输入点到输出点的数据,尤其适用于确认常见的输入验证错误,如SQL注入和跨站脚本利用。
为应用这些技术,我们建议企业将移动应用分割成不同的功能组件。测试者应当检查每一个组件,以查找常见的不安全的编程方法,这些方法包括:
1、认证:弱口令要求、用户名穷举、账户停用、cookie重放攻击、后门等。
2、授权:特权提升、不适当的权力分配、机密数据的暴露、数据受损等。
3、会话管理:会话陷阱、会话超时、会话劫持、不适当的会话终止、会话重放、中间人攻击等。
4、配置管理:对管理界面的非授权访问、对配置文件的非授权访问、配置数据的检索、分配给过程和服务账户的过多特权。
5、输入验证:参数损害、缓冲区域溢出、跨站脚本攻击、SQL注入、XPATH劫持、命令劫持等。
6、数据保护:对移动应用或用户的私密进行硬编码、网络通信嗅探、错误的密钥生成或密钥管理,弱加密等。
7、例外处理:信息泄露、拒绝服务等。
8、审计和日志:日志伪造、操纵日志文件、日志文件破坏等。
9、缓存:在移动应用的生命周期内,击键、快照、剪贴板内容和文件有可能被缓存到设备的不同存储位置。
10、发布通知:将数据从服务器传输到应用。
11、基于位置的服务:试图泄露或欺骗位置数据。
此外,还有以明文形式将口令存放到数据库中等。
检查代码中的架构安全问题
如果应用程序使用了特定的安全机制,或者具备可以减轻某些“臭名昭著”的安全威胁的功能,这一步就相当重要了。最后的代码检查用于验证应用程序架构的特定安全功能:
加密:由于定制的加密方案一般都没有强健的加密机制,所以企业应当检查方案,以验证其是否可以对敏感数据提供充分的保护。
协议:测试人员应当检查应用通信的私有协议,用以决定其应对破坏和侦听的能力。
会话管理:测试者应检查如下两方面,一是创建特定会话标识符的企图,二是会话管理进程。这样做的目的是为了衡量其会话发生管理错误时的保护能力。
访问限制:测试者要检查特定HTTP头的使用或者其它的特定协议要素,用以控制访问,防止未授权的访问。
安全代码:有些代码是为解决以前所发现的安全问题而编写的,对此测试者要专门检查,以检验其功效。
服务器架构:测试者要检查用来支持移动应用的外部Web服务和服务器。
三 漏洞利用
在这个阶段,测试者必须制定测试计划,其目的是为了对源代码进行深入分析,查找是否存在常见的不安全编码方法。然后,重点检查移动应用的特定安全机制。测试者还要查找、检查代码中的架构安全问题。
验证所确认的问题
测试团队要分析来自漏洞扫描的结果,去掉那些似是而非的信息,并着手构建可利用漏洞的案例。
利用移动应用的独有功能
灰盒测试方法的主要好处是能够最大限度地利用漏洞。在此阶段中,测试者要尝试利用在移动应用的实例中表现不明显的认证漏洞和授权漏洞。这些漏洞可能会导致对功能或数据的非法访问,并给企业带来巨大风险。测试者还要利用业务逻辑(用于控制用户如何在移动应用中执行操作)中的缺陷。这些缺陷一般被用于欺诈移动应用的用户或公司。
将漏洞利用与源代码联系起来
在测试者证明了可利用的漏洞后,就要将可利用的漏洞与相关的特定代码部分联系起来。这可以使开发人员快速地理解问题,并可以评估进行漏洞修复需要花费的工作量。
分析风险
测试者要评估可利用的漏洞,并根据每个漏洞给公司带来的风险,对漏洞进行评级。对于漏洞,测试者还要评估在漏洞被利用后,它可能对公司造成的影响。如果测试者能够利用多个漏洞并带来更大的影响,那么这种分析就具有多重意义。
提供具体的技术建议
在评估了每个可利用漏洞的风险后,测试者要给出移动应用架构和代码编写的具体建议,如果可能最好包括源代码。然后,开发者就可以利用这些建议来减轻或修复漏洞,从而减少应用风险。测试者的建议还可以提供安全的编码指南,用以解决或修复移动应用的漏洞。
在这里提出几条移动安全的建议,供开发者和测试者参考:把移动安全理念纳入到开发项目中;构建并实施一种可以监管移动应用的开发并确保可理解性的策略;培训移动应用的开发人员,帮助其实施安全的编码;测试是否可以限制传输到移动设备的敏感数据;评估针对Web应用和基础架构的威胁。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
Kali Linux渗透测试五步曲
Kali Linux的设计目的是渗透测试。不管渗透测试者的起点是白盒测试、黑盒测试,还是灰盒测试,在用Kali或其它工具进行渗透测试时,需要遵循一些步骤。
-
这样做,让你的渗透测试更有效
进行渗透测试首先需要确认渗透测试项目的起始状态。定义起始状态的最常见的方法是确定选择黑盒测试或白盒测试或灰盒测试……
-
移动设备应用的灰盒测试与评估三步走(一)
为什么要执行移动应用的灰盒测试与评估呢?答案很简单:找到高风险代码;确认漏洞的根本原因。
-
软件测试方式的比较:黑盒测试和灰盒测试
如何选择和运用不同的软件测试方式呢?在“白盒测试”中我们介绍了白盒测试方式的特点和使用,本文中我们将介绍黑盒测试和灰盒测试的特点和各自的适用场合……