专栏首页QA一隅iOS安全测试—Sandbox

iOS安全测试—Sandbox

Sandbox简介

Sandbox 沙盒也叫沙箱,其原理是通过重定向技术,把程序生成和修改的文件定向到自身文件夹中。在沙盒机制下,每个程序之间的文件夹不能互相访问。

iOS系统为了保证系统安全,在 应用程序在安装时,会创建属于自己的沙盒文件,应用程序不能直接访问其他应用程序的沙盒文件,当应用程序需要向外部请求或接收数据时,都需要经过权限认证,否则,无法获取到数据。

应用程序中所有的非代码文件都保存在沙盒中,比如图片、音频、属性列表(Plist),sqlite数据库和文本文件等。

Sandbox 文件存储结构

因为应用的沙盒机制,应用只能在指定的几个目录下读写文件。默认情况下,每个沙盒含有3个文件夹:Documents, Librarytmp

存储 App 执行文件和静态资源文件,该目录包含了应用程序本身的数据,包括资源文件和可执行文件等。程序启动以后,会根据需要从该目录中动态加载代码或资源到内存。

获取沙盒文件

由于应用沙盒文件属于敏感信息文件,直接从Appstore下载一个应用来查看沙盒文件是没有权限的,除非逆向破解。那么作为测试人员查看应用沙盒文件,则需要将测试设备绑定开发者证书才可以查看。

xcode

1 . 打开导航栏中 Window -> device and Simulators

  1. 显示设备下可以查看的APP
  1. 选中目标APP, 点击齿轮图标,然后点击Download container... 保存到指定目录。
  1. 选择下载的文件点击右键弹出菜单,然后选择显示包内容
  1. 打开之后就可以查看到沙盒文件了。

iFunbox

iFunBox是iPhone以及苹果其他产品的通用文件管理软件。

Sandbox验证点

Sandbox中存储的文件,主要有Plist files, sqliteCookie三种类型,这三种类型的文件安全验证点分别如下:

1. Plist files (查看工具: Xcode (Mac),plistEditor(windows),)

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

2. sqlite (查看工具: sqlite manager

  • 文件中是否存储敏感信息,敏感信息是否加密
  • 文件是否会被备份,备份是否有泄露风险

3. Cookie

  • 查看Cookie有效期(有效期不能短于登录cookie的有效期)
  • 敏感信息重点关注“登陆信息、用户身份信息、服务器SQL注入链接、管理员登陆账号密码”一类信息。

本文分享自微信公众号 - QA一隅(sutune2020),作者:Sutune

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-04-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • iOS App 安全测试

    BinaryCookieReader.py (用法: 将cookie文件导出到PC端,python BinaryCookieReader.py [cookies...

    VV木公子
  • iOS安全测试-KeyChain

    根据苹果的介绍,iOS设备中的Keychain是一个安全的存储容器,可以用来为不同应用保存敏感信息比如用户名,密码,网络密码,认证令牌。苹果自己用keychai...

    清风穆云
  • 攻防启示:Chromium组件风险剖析与收敛

    数月前我们在攻防两个方向经历了一场“真枪实弹”的考验,期间团队的目光曾一度聚焦到Chromium组件上。其实,早在 Microsoft 2018年宣布 Wind...

    腾讯安全应急响应中心
  • 假面攻击(Masque Attack)详细分析与利用

    一、漏洞概述 近期在苹果iOS手机系统上曝光的两个漏洞,WireLurker和Masque Attack,影响了iOS目前到8.1.1 beta的最新版本,而且...

    FB客服
  • 【总结】ios端被忽略的文件容错测试

    iphone沙盒模型的有四个文件夹:分别是 documents,Library,tmp,app包。手动保存的文件在documents文件里,NSUserdef...

    用户5521279
  • iOS安全测试—网络通讯安全

    在 iOS 应用程序中,使用 HTTPS 进行通信是一种更为安全的做法,也是官方所推荐的做法。但是即使使用了 HTTPS,也有可能因为没有校验服务器证书的原因导...

    清风穆云
  • iOS安全测试—dumpdecrypted脱壳

    我们日常开发提交给Appstore发布的App都经过官方保护加密,这样可以保证机器上跑的应用是经过苹果审核过的,也可以管理软件授权。经过App Store加密的...

    清风穆云
  • iOS开发者证书-2015年中文版

    我们都知道,制作一款iOS的App需要iOS的开发者证书。在Apple的开发者网站上面,有一个栏目是‘Certificates, Identifiers & P...

    libo1106
  • 为你的ios程序穿上安全的外衣

    从有计算机程序开始,安全问题就一直存在,而互联网的流行使得安全问题被进一步放大,所以现在各大互联网公司对于安全都非常重视。我曾经所在的网易公司就有专门的安全部门...

    博文视点Broadview
  • iOS逆向之文件系统

    作为一名iOS开发者,长期以来和MacOS、iOS系统打交道,对iOS和MacOS系统并不陌生。在开发中,我们也经常访问甚至修改MacOS的某些目录,每个系统目...

    VV木公子
  • YAPI安全漏洞问题,一文全解决

    YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi ...

    咻咻ing
  • ios知识架构

    学习ios开发,从哪儿学起?都要学哪些知识?如何才算掌握或精通ios开发?笔者根据自己多年的ios开发经验,给出一些体会,以便为立志成为ios开发精英的人员快速...

    conanma
  • 基础篇- 沙盒以及文件的操作和存取

    iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被称为沙盒,所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列...

    進无尽
  • MySQL 安装利器---Sandbox

    一 sandbox是什么? MySQL Sandbox是一个非常简单快捷的安装搭建MySQL实例的工具,它可以非常快速地满足我们对MySQL环境各种需求:单机实...

    用户1278550
  • iOS越狱是什么?大佬来解释来咯(一)

    那么root是什么呢,无论安卓和iOS都有两个用户,一个是root,另一个是mobile,前者相当于windowns的system,也就是管理员administ...

    zby1101
  • 哭了,21k Star 的 Yapi 被黑客入侵了

    事情是这样的,由于我们项目使用了这个 Yapi 项目,前几天收到了安全组的预警通知,说 Yapi 被爆出了安全漏洞,新注册的用户,可以在你的服务器执行任意代码,...

    秋风的笔记
  • 谷歌Flutter跨平台应用开发SDK,迎来首个发行预览版本

    Google 刚刚放出了自家 Flutter 跨平台移动应用开发 SDK 的首个发布预览版本(Release Preview 1),如果你是一位需要同时兼顾 i...

    BestSDK
  • 聊聊 Python 自动化脚本部署服务器全流程(详细)

    日常编写的 Python 自动化程序,如果在本地运行稳定后,就可以考虑将它部署到服务器,结合定时任务完全解放双手

    AirPython
  • 使用libimobiledevice + ifuse提取iOS沙盒文件

    libimobiledevice:一个开源包,可以让Linux支持连接iPhone/iPod Touch等iOS设备。

    周希

扫码关注云+社区

领取腾讯云代金券