iOS App 安全测试

发表于:2017-10-19 15:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:VV木公子    来源:51Testing软件测试网采编

  一、数据存储安全
  主要从以下几个方面考虑
  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代理
  操作App,产生通信请求数据
  在BurpSuite代理上查看所有的请求数据,用户敏感信息应该要用HTTPS 请求传送,并且不能够出现在URL中
  三、 URL protocol handler / IPC
  由于iOS sandbox的权限限制,进程间的数据通信是通过protocol的形式来实现的,实现Protocol的2个API方法为:application:openURL和application:handleOpenURL
  测试点:
  openURL的方法实现中有没有对传入的URL参数做校验
  openURL有没有校验URL来源是否安全
  四、 UIWebView
  UIWebView是基于Webkit,和Safari和MobileSafari是使用同一个core framework的,所以App中的UIWebview 和浏览器一样,有可能存在XSS(Cross-Site Scripting)的风险.
  测试点:
  展示的UIWebView的内容是否存在用户输入的部分,如有,是否可以通过修改输入注入javascript脚本
  展示的内容是否可能被攻击者篡改,返回含有注入脚本的内容。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号