APP渗透测试方案.docx
《APP渗透测试方案.docx》由会员分享,可在线阅读,更多相关《APP渗透测试方案.docx(8页珍藏版)》请在冰点文库上搜索。
APP渗透测试方案
2016-7-29
XXXXX公司
广东省广州市XXXXX地址
目录
1App渗透简介 2
2APP渗透测试所用工具 2
2.1代理抓包工具 2
2.2反编译工具 2
2.3其他针对服务端的web渗透工具 3
3APP渗透测试的方法 4
3.1数据包分析、测试 4
3.2APP反编译还原代码 4
4APP渗透测试流程 4
4.1项目启动 4
4.1.1项目启动准备 4
4.1.2实施方案制定 4
4.2项目实施 5
4.2.1信息收集 5
4.2.2平台使用不当的测试 5
4.2.3不安全的数据存储的测试 5
4.2.4不安全的通信的测试 5
4.2.5不安全的身份验证的测试 6
4.2.6加密不足的测试 6
4.2.7不安全的授权的测试 6
4.2.8客户端代码质量问题的测试 6
4.2.9代码篡改的测试 6
4.3项目收尾 6
4.3.1报告编写 6
4.3.2问题复查 7
7
1App渗透简介
移动app大多通过web api服务的方式跟服务端交互,这种模式把移动安全跟web安全绑在一起。
移动app以web服务的方式跟服务端交互,服务器端也是一个展示信息的网站,常见的web漏洞在这也存在,比如说SQL注入、文件上传、中间件/server漏洞等。
2APP渗透测试所用工具
2.1代理抓包工具
²Burpsuit
²Fiddler
代理抓包工具主要用于抓取、分析、篡改APP与服务端之间的交互数据包。
爆破、解编码、执行会话令牌等作用。
2.2反编译工具
APP的反编译有两种反编译方式,dex2jar和apktool,两个工具反编译的效果是不一样的,dex2jar反编译出java源代码,apktool反编译出来的是java汇编代码。
²工具1:
dex2jar+jdgui
²工具2:
apktool
工具1反编译出来的是java源代码,易读性比较高。
工具2反编译出来的东西为smali反汇编代码、res资源文件、assets配置
文件、lib库文件,我们可以直接搜索smali文件和资源文件来查找链接等。
2.3其他针对服务端的web渗透工具
²NMAP
Nmap是一款网络扫描和主机检测的非常有用的工具。
Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。
它可以
适用于winodws,linux,mac等操作系统。
Nmap是一款非常强大的实用工具,可用于:
检测活在网络上的主机(主机发现)
检测主机上开放的端口(端口发现或枚举)检测到相应的端口(服务发现)的软件和版本检测操作系统,硬件地址,以及软件版本
检测脆弱性的漏洞(Nmap的脚本)
²SLQMAP
Sqlmap是一种开源的渗透测试工具,可以自动检测和利用SQL注入漏洞以及接入该数据库的服务器。
它拥有非常强大的检测引擎、具有多种特性的渗透测
试器、通过数据库指纹提取访问底层文件系统并通过外带连接执行命令。
支持的数据库:
MySQL,Oracle,PostgreSQL,MicrosoftSQLServer,MicrosoftAccess,IBMDB2,SQLite,Firebird,SybaseandSAPMaxDB
SQL注入技术:
boolean-basedblind,time-basedblind,error-based,UNION
query,stackedqueriesandout-of-band
枚举数据:
users,passwordhashes,privileges,roles,databases,tablesandcolumns
²其他
针对strut2的漏洞利用脚本、网站弱电扫描工具、网站目录爆破工具、
BeEF等
3APP渗透测试的方法
3.1数据包分析、测试
利用burpsuit、fiddler对APP进行抓包分析、篡改。
这个方法利用在移动
设备上设置代理,通过人工操作使app与服务端交互。
测试APP与服务端的业务流程是否存在漏洞。
3.2APP反编译还原代码
有两种反编译方式,dex2jar和apktool,两个工具反编译的效果是不一样的,dex2jar反编译出java源代码,apktool反编译出来的是java汇编代码。
从源代码层面上分析APP安全性。
4APP渗透测试流程
4.1项目启动
4.1.1项目启动准备
项目启动前为了保障双方利益、使得APP渗透项目可以顺利进行需与客户签订项目合同、项目保密协议、项目启动实施协调等前期工作。
4.1.2实施方案制定
某某获取到XXX的书面授权许可后,才进行渗透测试的实施。
并且将实施范围、方法、时间、人员等具体的方案与XXX进行交流,并得到XXX的认同。
在测试实施之前,某某会做到让XXX对渗透测试过程和风险的知晓,使随后的正式测试流程都在XXX的控制下。
4.2项目实施
4.2.1信息收集
²收集目标系统暴露于网络上,不需要额外的授权便可获取到的信息。
²专业安全工具扫描、嗅探,对系统的网络和应用程序进行远程漏洞扫描,并对扫描结果进行分析。
²利用社会工程学原理获取目标系统敏感信息。
4.2.2平台使用不当的测试
滥用平台功能,没有使用平台安全控制。
包括Android的intent,平台权限控
制,错误使用TouchID,秘钥链(KeyChain)、或是移动操作系统中的其他安全控制。
4.2.3不安全的数据存储的测试
包括不安全的数据存储和非故意的数据泄漏。
包括邮箱、手机号码、身份证信息、QQ、用户密码、等信息。
4.2.4不安全的通信的测试
包括不完善的通信握手过程、使用了有漏洞的SSL 版本、不安全的通讯协议、敏感信息的明文传输,等等。
4.2.5不安全的身份验证的测试
包括对终端用户不安全的身份验证或不正确的session会话管理;需要身份鉴权的时候没有识别用户身份;在一个持续的会话中没有正确的识别用户身份;会话管理中的漏洞。
4.2.6加密不足的测试
对代码使用弱加密技术对敏感信息资产进行加密进行测试发现。
4.2.7不安全的授权的测试
包括任何失败的授权行为(例如:
在客户端的授权决策、强迫浏览等。
)。
它有别于身份验证问题(例如:
设备注册、用户标识等)。
4.2.8客户端代码质量问题的测试
包括例如缓冲区溢出、字符串格式漏洞以及其他不同类型的代码级错误,而这些错误的解决方法是重写在移动设备中运行的某些代码。
4.2.9代码篡改的测试
包括二进制修补、本地资源修改、方法钩用、方法调整和动态内存修改。
4.3项目收尾
4.3.1报告编写
渗透测试报告包括渗透测试整个流程描述,会对发现问题的思路与手法进行必要的说明,并且结合目标系统环境,对安全问题进行风险分析,出具针对性解决
方案。
4.3.2问题复查
渗透测试完成后,某某协助XXX对已发现的安全隐患进行修复。
修复完成后,某某渗透测试小组对修复的成果再次进行远程测试复查,对修复的结果进行检验,确保修复结果的有效性。
最终完成《渗透测试复查报告》。