测试积点老人 发表于 2018-12-10 12:00:13

iOS App 安全测试

本帖最后由 测试积点老人 于 2018-12-10 12:02 编辑

一、数据存储安全主要从以下几个方面考虑
[*]Sandbox 数据存储
[*]Keychain 数据存储
[*]Console Log 数据
[*]Keyboard 缓存

1. Sandbox 数据存储(1) Sandbox 文件存储结构




(2)Sandbox 文件导出和查看工具iFunbox, iTools 等等


(3)Sandbox中存储的文件,主要有以下几种类型

a. Plist files

查看工具:Xcode(Mac),plistEditor(windows)


测试点:
[*]文件中是否存储敏感信息,敏感信息是否加密
[*]文件是否会被备份,备份泄露是否有风险
[*]文件能否被用于跨过客户端的逻辑校验(如某个存储文件的内容是客户端用于判断用户是否登陆,测试将该文件导出,拷贝至其他设备,查看能否越过登陆校验)

b. sqlite查看工具: sqlite manager


测试点:
[*]文件中是否存储敏感信息,敏感信息是否加密
[*]文件是否会被备份,备份泄露是否有风险

c. Cookie查看工具:
BinaryCookieReader.py (用法: 将cookie文件导出到PC端,python BinaryCookieReader.py )


测试点:
[*]查看Cookie是否长期有效(有效期不能短于登录cookie的有效期,SC为10小时)
[*]敏感信息重点关注“登陆信息、用户身份信息、服务器SQL注入链接、管理员登陆账号密码”一类信息

2. keychain数据存储1)什么是keychain
Keychain is an encrypted container (128 bit AES algorithm) and a centralized Sqlite database that holds identities & passwords for multiple applications and network services, with restricted access rights. 虽然keychain的访问有权限控制,但是,在越狱的设备上,是可以查看到所有的keychain存储数据。所以在使用Keychain存储用户敏感信息(如 access_token, password等)时,最好还是要加密。

2)怎么产看keychain中存储的数据查看前提:使用越狱的设备

[*]将keychain_dumper文件通过iFunbox 拷贝到设备上
[*]ssh连接到设备
[*]chmod 777 keychain_dumper
[*]./keychain_dumper

3)怎么测试
[*]keychain中是否存储敏感信息,敏感信息是否加密

3. Console Log 数据查看Log工具:
Xcode 或者 iPhone Configuration Utility


测试点:
[*]程序是否将敏感信息打印出来
[*]将设备连接PC机,通过Xcode或者 iPhone Configuration Utility查看device log
[*]操作App,执行相关的功能,查看log中是否包含用户敏感信息

4. Keyboard cache二、 数据通信安全测试工具:BurpSuite

测试步骤:
[*]设备设置代理为BurpSuite代理
[*]操作App,产生通信请求数据
[*]在BurpSuite代理上查看所有的请求数据,用户敏感信息应该要用HTTPS 请求传送,并且不能够出现在URL中

三、 URL protocolhandler / IPC
由于iOS sandbox的权限限制,进程间的数据通信是通过protocol的形式来实现的,实现Protocol的2个API方法为:application:openURL和application:handleOpenURL


测试点:
[*]openURL的方法实现中有没有对传入的URL参数做校验
[*]openURL有没有校验URL来源是否安全

四、 UIWebViewUIWebView是基于Webkit,和Safari和MobileSafari是使用同一个core framework的,所以App中的UIWebview 和浏览器一样,有可能存在XSS(Cross-Site Scripting)的风险.


测试点:
[*]展示的UIWebView的内容是否存在用户输入的部分,如有,是否可以通过修改输入注入javascript脚本
[*]展示的内容是否可能被攻击者篡改,返回含有注入脚本的内容。








页: [1]
查看完整版本: iOS App 安全测试