51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2041|回复: 1
打印 上一主题 下一主题

iOS App 安全测试

[复制链接]
  • TA的每日心情
    擦汗
    4 天前
  • 签到天数: 428 天

    连续签到: 1 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-12-10 12:00:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    本帖最后由 测试积点老人 于 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脚本
    • 展示的内容是否可能被攻击者篡改,返回含有注入脚本的内容。








    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-6-11 15:45 , Processed in 0.065556 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表