安应用APP渗透测试方案

1 、知道创宇安应用简介
安应用模拟黑客对应用进行安全性测试,审计其风险,提供解决方案。可帮助企业全面发现业务漏洞及风险。
在黑客之前找到可导致企业数据泄露、资损、业务被篡改等危机的漏洞,企业可对漏洞进行应急响应、及时修复。避免对企业的业务、用户及资金造成损害。

1.1 服务内容

1.1.1 安全性漏洞挖掘 出应用中存在的安全漏洞。安应用检测是对传统安全弱点的串联并形成路径,最终通过路径式的利用而达到模拟入侵的效果。 发掘应用中影响业务正常运行、导致敏感信息泄露、造成现金和信誉损失的等的漏洞。
1.1.2 漏洞修复方案 安应用的测试目的是防御,故发现漏洞后,修复是关键。 安全专家针对漏洞产生的原因进行分析,提出修复建议,以防御恶意攻击者的攻击。
1.1.3 回归测试 漏洞修复后,对修复方案和结果进行有效性评估,分析修复方案的有损打击和误打击风险,验证漏洞修复结果。 汇总漏洞修复方案评估结果,标注漏洞修复结果,更新并发送测试报告。

2 、APP渗透测试简介
移动app大多通过web api服务的方式跟服务端交互,这种模式把移动安全跟web安全绑在一起。移动app以web服务的方式跟服务端交互,服务器端也是一个展示信息的网站,常见的web漏洞在这也存在,比如说SQL注入、文件上传、中间件/server漏洞等。

3 、APP渗透测试所用工具

3.1 代理抓包工具

工具1:Burpsuit
工具2:Fiddler

代理抓包工具主要用于抓取、分析、篡改APP与服务端之间的交互数据包。爆破、解编码、执行会话令牌等作用。

3.2 反编译工具

APP的反编译有两种反编译方式,dex2jar和apktool,两个工具反编译的效果是不一样的,dex2jar反编译出java源代码,apktool反编译出来的是java汇编代码。

工具1:dex2jar+jdgui
工具2:apktool

工具1反编译出来的是java源代码,易读性比较高。
工具2反编译出来的东西为smali反汇编代码、res资源文件、assets配置文件、lib库文件,我们可以直接搜索smali文件和资源文件来查找链接等。

3.3 其他针对服务端的web渗透工具

NMAP
Nmap是一款网络扫描和主机检测的非常有用的工具。Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。它可以适用于winodws,linux,mac等操作系统。Nmap是一款非常强大的实用工具,可用于:
1)、检测活在网络上的主机(主机发现)
2)、检测主机上开放的端口(端口发现或枚举)
3)、检测到相应的端口(服务发现)的软件和版本
4)、检测操作系统,硬件地址,以及软件版本
5)、检测脆弱性的漏洞(Nmap的脚本)

SLQMAP
Sqlmap是一种开源的渗透测试工具,可以自动检测和利用SQL注入漏洞以及接入该数据库的服务器。它拥有非常强大的检测引擎、具有多种特性的渗透测试器、通过数据库指纹提取访问底层文件系统并通过外带连接执行命令。
1)、支持的数据库:MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase and SAP MaxDB
2)、SQL注入技术:boolean-based blind, time-based blind, error-based, UNION query, stacked queries and out-of-band
3)、枚举数据:users, password hashes, privileges, roles, databases, tables and columns

其他
针对strut2的漏洞利用脚本、网站弱电扫描工具、网站目录爆破工具、BeEF等

4 、APP渗透测试的方法

4.1 数据包分析、测试

利用burpsuit、fiddler对APP进行抓包分析、篡改。这个方法利用在移动设备上设置代理,通过人工操作使app与服务端交互。测试APP与服务端的业务流程是否存在漏洞。

4.2 APP反编译还原代码

有两种反编译方式,dex2jar和apktool,两个工具反编译的效果是不一样的,dex2jar反编译出java源代码,apktool反编译出来的是java汇编代码。从源代码层面上分析APP安全性。

5 、APP渗透测试流程

5.1 项目启动

5.1.1 项目启动准备
    项目启动前为了保障双方利益、使得APP渗透项目可以顺利进行需与客户签订项目合同、项目保密协议、项目启动实施协调等前期工作。

5.1.2 实施方案制定

    某某获取到XXX的书面授权许可后,才进行渗透测试的实施。并且将实施范围、方法、时间、人员等具体的方案与XXX进行交流,并得到XXX的认同。

5.2 项目实施

    5.2.1 信息收集
    收集目标系统暴露于网络上,不需要额外的授权便可获取到的信息。
    专业安全工具扫描、嗅探,对系统的网络和应用程序进行远程漏洞扫描,并对扫描结果进行分析。
    利用社会工程学原理获取目标系统敏感信息。

    5.2.2 平台使用不当的测试

    滥用平台功能,没有使用平台安全控制。包括Android的intent,平台权限控制,错误使用TouchID,秘钥链(KeyChain)、或是移动操作系统中的其他安全控制。

    5.2.3 不安全的数据存储的测试

    包括不安全的数据存储和非故意的数据泄漏。包括邮箱、手机号码、身份证信息、QQ、用户密码、等信息。

    5.2.4 不安全的通信的测试

    包括不完善的通信握手过程、使用了有漏洞的SSL 版本、不安全的通讯协议、敏感信息的明文传输,等等。

    5.2.5 不安全的身份验证的测试
    包括对终端用户不安全的身份验证或不正确的session会话管理;需要身份鉴权的时候没有识别用户身份;在一个持续的会话中没有正确的识别用户身份;会话管理中的漏洞。

    5.2.6 加密不足的测试
    对代码使用弱加密技术对敏感信息资产进行加密进行测试发现。

    5.2.7 不安全的授权的测试
    包括任何失败的授权行为(例如:在客户端的授权决策、强迫浏览 等。)。它有别于身份验证问题(例如:设备注册、用户标识等)。

    5.2.8 客户端代码质量问题的测试
    包括例如缓冲区溢出、字符串格式漏洞以及其他不同类型的代 码级错误,而这些错误的解决方法是重写在移动设备中运行的某些代码。

    5.2.9 代码篡改的测试
    包括二进制修补、本地资源修改、方法钩用、方法调整和动态内存修改。

5.3 项目收尾

    5.3.1 报告编写
    渗透测试报告包括渗透测试整个流程描述,会对发现问题的思路与手法进行必要的说明,并且结合目标系统环境,对安全问题进行风险分析,出具针对性解决方案。

    5.3.2 问题复查
    渗透测试完成后,某某协助XXX对已发现的安全隐患进行修复。修复完成后,某某渗透测试小组对修复的成果再次进行远程测试复查,对修复的结果进行检验,确保修复结果的有效性。最终完成《渗透测试复查报告》。

6 、流程梳理

6.1 确定意向
在线填写表单:企业填写测试需求;
商务沟通:商务在收到表单后,会立即和意向客户取得沟通,确定测试意向,签订合作合同;

6.2 启动测试
收集材料:一般包括系统帐号、稳定的测试环境、业务流程等。

6.3 执行测试
风险分析:熟悉系统、进行风险分析,设计测试风险点;
漏洞挖掘:安全测试专家分组进行安全渗透测试,提交漏洞;
报告汇总:汇总系统风险评估结果和漏洞,发送测试报告。

6.4 交付完成
漏洞修复:企业按照测试报告进行修复;
回归测试:双方依据合同结算测试费用,企业支付费用。

7 、常见问题

**测试所取得的信息是否会外泄?**
我们绝对不会把任何客户测试数据泄露给第三方。所有测试结果都只会通过报告形式发送给客户。

**测试结束后是否可高枕无忧?**
恶意攻击者的手法层出不穷,没有任何一家公司做渗透测试能完全保证不会被新的攻击方式入侵。因此建议定期进行安全性测试。

**是否可以通过工具自己在线渗透测试?**
为保证APP的安全必,不建议自行通过工具来测试。工具只是辅助手段,渗透测试需要很多的专业知识储备,而且不局限于以上测试步骤,需要具体问题具体深入分析。

文章转载,请注明出处:http://www.webshentou.net/

你可能感兴趣的:(渗透测试)