TA的每日心情 | 无聊 昨天 09:06 |
---|
签到天数: 530 天 连续签到: 2 天 [LV.9]测试副司令
|
本帖最后由 测试积点老人 于 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 [cookies.binarycookies-file-path])
测试点:- 查看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 protocol handler / IPC
由于iOS sandbox的权限限制,进程间的数据通信是通过protocol的形式来实现的,实现Protocol的2个API方法为:applicationpenURL和application:handleOpenURL
测试点:- openURL的方法实现中有没有对传入的URL参数做校验
- openURL有没有校验URL来源是否安全
四、 UIWebViewUIWebView是基于Webkit,和Safari和MobileSafari是使用同一个core framework的,所以App中的UIWebview 和浏览器一样,有可能存在XSS(Cross-Site Scripting)的风险.
测试点:- 展示的UIWebView的内容是否存在用户输入的部分,如有,是否可以通过修改输入注入javascript脚本
- 展示的内容是否可能被攻击者篡改,返回含有注入脚本的内容。
|
|