IOS APP 测试标准

iOS APP渗透测试基准项

前期准备

说明

命令方法

手机越狱后配置cydia,安装好测试环境和软件

参照测试指南的步骤配置好iphone测试环境和wifi

获取后并安装ipa文件

使用iFunbox安装app

记录下测试的应用程序名称,版本等关键信息

运行snoop-it软件,查看软件名称版本等关键信息,并做记录

编译保护


开启PIE

查看是否启用了PIE内存随机分布功能

Otool –hV app

使用 ARC

如果采用 IOS 5+的 SDK 开发应用程序,则使用了该功能,否则未使用。

数据存储安全


本地数据存储

敏感文件一般存储在/var/mobile/Applications/(UUID)/目录中,导出文件安装目录至本机,检查所有的.plist,.db 文件,以及缓存文件等可疑文件

本地数据库敏感信息

查看.db 文件中是否保存敏感信息

使用sqllite查看.db的文件,查看是否有敏感信息保存

本地配置文件敏感信息

查看.plist 文件中是否保存敏感信息

在导出的应用程序目录中,检查所有的.plist 后缀文件。Plist 文件是属性列表文件,通常
以 Key-Value 的形式存储用户信息和配置属性

键盘输入缓存文件

如果开发者设计了对输入框的自动补全功能,则缓存信息会放至
/private/var/mobile/Library/Keyboard/dynamic-text.dat 文件中

检查该文件中是否包含了用户输入的敏感信息。

硬编码

使用 WinRAR 等压缩工具打开目标安装包(*.ipa),打开后在根目录中以从大到小进行排
序,解压其中最大的文件即为编译后的可分析硬编码文件,使用IDA分析此文件

运行 IDA Pro,并载入刚解压出来的可执行文件。输入快捷键 shift+F12 查看字符串中是否
包含加密密钥、传输方式等硬编码信息。

日志审计

使用 usb 将测试设备连接计算机,并运行 iphone 配置实用工具,等待工具识别设备;
2) 识别后可在左侧“设备”栏显示的设备名称,单击设备名、选择右侧“控制台”选项卡,并运行待测试应用,可实时监控系统日志,查找日志中是否存在不合规的敏感信息。


组件安全分析


组件安全

检查 keychain

在已经越狱的设备中,keychain可以被随意访问,所以敏感信息不应该以明文的方式存放在 Keychain中。使用snoop-it查看keychain中保存的信息有无敏感数据

URL scheme 安全性

应用程序向系统注册的 URL scheme 可以通过应用程序目录中的 Info.plist 文件查看

增强组件测试


通讯加密

敏感信息在传输中是否加密

金融支付场景的APP需要测试此项

系统键盘

测试是否使用ios本身的键盘

金融支付场景的APP需要测试此项

软件更新检查

测试是否带有update升级功能

视应用设计的需求,可以选择性测试此项,ios如果需要在app store中更新,无需测试此项

问题/建议反馈接口安全性

是否app带有反馈接口,测试接口反馈的安全性


服务端漏洞


登录认证

在越狱设置上设置代理抓取登录通讯数据包


图形验证码

查看登录界面和登录后重要的操作是否有图形验证码机制,以及验证码是否有效

思路和步骤同web测试,验证码测试思路参考:http://zhuanlan.zhihu.com/wooyun/19788148

口令策略

查看app注册账号和设置弱口令是否会被阻止和提示密码复杂度


认证失败的容错处理机制

篡改登录的认证数据包,查看是否存在不同的提示


会话管理

暂停对app进行操作,测试cookie会话是否会超时

需要结合业务做判断,如果业务逻辑是允许cookie长期有效的话,此项不作为漏洞

短信/邮件炸弹

检查发送短信/邮件功能点,查看是否可以制造短信/邮件炸弹

使用burp抓取数据包,测试方法和思路类似于web安全测试

密码重置漏洞

重置系统密码,使用burp抓包测试密码重置漏洞

使用burp抓取数据包,测试方法和思路类似于web安全测试

SQL注入

操作app,使用burp抓取业务逻辑类包,修改常见的sql测试语句

使用burp抓取数据包,测试方法和思路类似于web安全测试

跨站

操作app,使用burp抓取业务逻辑类包,修改常见的跨站测试语句,查看返回页面

使用burp抓取数据包,测试方法和思路类似于web安全测试

CSRF

操作app,使用burp抓取业务逻辑类包,修改常见的CSRF测试语句

使用burp抓取数据包,测试方法和思路类似于web安全测试

越权类漏洞

需要二个平行账号,一个高权限账号,测试系统各逻辑功能,使用burp抓包测试越权

使用burp抓取数据包,测试方法和思路类似于web安全测试

服务端组件安全

使用burp抓取服务端通讯地址,使用web扫描器进行扫描

使用appscan和awvs扫描器,测试方法类和思路似于web安全测试

其他业务逻辑漏洞

操作app,使用burp抓取业务逻辑类包,修改部分数据,测试业务逻辑漏洞

使用burp抓取数据包,测试方法和思路类似于web安全测试