iOS本地数据存储安全

DVIA-v2:iOS安全实战靶场搭建与核心漏洞深度解析 移动应用安全是保障用户数据和隐私的关键领域,其核心在于理解并防范各类安全漏洞。从原理上看,漏洞通常源于不安全的编码实践、配置错误或对系统API的误用。掌握这些漏洞的利用与防护,对于开发安全的应用具有重要价值。在iOS平台,本地数据存储、运行时防护和二进制保护是常见的安全焦点。DVIA-v2作为一个故意内置漏洞的iOS应用,为安全学习者和开发者提供了一个理想的实战环境。通过搭建DVIA,可以深入实践针对**本地数据存储漏洞**(如UserDefaults、SQLite明文存储)和**运行时操纵**(如使用Fr 阅读详情

iOS本地数据存储安全

移动APP通常会在设备本地存储一些数据,这可以为程序执行、更良好地性能或离线访问提供支持。由于移动设备使用地越来越广泛,设备失窃的风险也越来越大,因此不安全的本地数据存储已成为移动APP安全的主要威胁之一。

攻击者可以通过一些方式获取到存储在iOS设备上的敏感信息,主要有以下方法:

  • 恶意程序
    借助iOS系统的安全弱点,攻击者可以设计出一种远程偷取iPhone上文件的恶意程序。

  • 备份
    当iPhone连接至iTunes后,如果iPhone信任了所连接的电脑后,iTunes将自动对设备上的所有数据进行备份。通过备份,敏感数据也将会保存到电脑上。因此,攻击者如果可以接触到那台电脑,则可以通过备份文件读取到敏感信息。

  • 物理接触
    用户iPhone的丢失或被盗非常常见。在这两种情形下,攻击者都将可以物理接触到设备,并读取设备上存储的敏感信息。

在iOS上,移动APP可以将信息输出或存储到以下一个或多个文件中:
* Plist文件
* SQLite数据库文件
* Keychain文件
* 缓存文件
* 日志文件

Plist文件

功能模块介绍

属性列表(Plist,Property List)是一种结构化的二进制格式文件,包含了内嵌键值对的可执行bundle的基本配置信息。Plist文件主要用于存储App的用户设置及配置信息,例如,游戏类App经常会在Plist文件中存储游戏等级和分数信息。一般来说,App会将存储用户数据的Plist文件保存在“[App home目录]/documents/”目录下。Plist文件可以是XML格式或二进制格式。

风险描述

Plist文件主要用于存储用户设置及App的配置信息,但App可能使用Plist文件存储明文的用户名、密码或其它一些个人敏感信息。而保存在Plist文件中的二进制格式文件数据则可以使用Plist文件编辑器(如plutil)进行查看或修改,即使在一个没有越狱的设备上,plist文件也可以通过工具iExplorer获取。对于以编码、未加密或弱加密形式存储的敏感信息就可能会导致敏感信息泄露了。

WordPress的iOS版App曾经就在Plist文件中存储了明文的用户名和密码,如下图所示,后来WordPress紧急修复了它。

图 1.    明文存储用户名及密码

安全方案

1) 尽量不要在iOS设备的Plist文件中保存敏感信息(如证件号、银行卡号、详细住址及其各对应的编码格式等);
2) 对于有些APP功能需求,如果一定需要在iOS设备本地保存敏感信息,则可采用iOS提供的加密接口(如CommonCrypto)进行安全加密后保存。

SQLite存储

功能模块介绍

SQLite是一种自包含、可嵌入、0配置的SQL数据库引擎的跨平台C库文件。它的表、触发器和视图整个数据库都包含在一个硬盘文件中。SQLite数据库提供了所有标准的SQL结构,包括select、insert、update和delete。创建SQLite数据库文件时,可以添加任意文件后缀,也可以不添加后缀,常见的后缀一般有“.sqlitedb”和“.db”。APP一般会将其保存在“[App home目录]/documents/”目录下。由于SQLite的轻便、稳定和小巧,它已成为一个在iOS设备上存储数据的优秀解决方案。

风险描述

信息泄露

iOS自带的SQLite数据库没有内置的加密支持,因此,许多iOS APP会直接以明文格式将许多敏感数据存储在SQLite数据库中,除非APP自身对数据进行加密后再存储。例如,为提供离线的邮件访问功能,Gmail的iOS APP以明文方式将所有邮件存储在SQLite数据库中。一旦可以物理访问到设备或其备份文件,存储在SQLite中未加密的敏感信息容易被泄露。
如下图,某银行APP就将用户的登录手机号、登录密码、手势密码全部都以明文方式存在了客户端本地的SQLite数据库中。

图 2.    SQLite数据库明文存储用户名及密码

数据恢复

除上述提到的信息泄露途径外,SQLite的数据恢复同样也会导致信息泄露。在iOS中,恢复被删除的SQLite数据库记录比恢复被删除的文件更为容易。因为如果删除一条记录,SQLite仅会将该记录标记为已删除,但不会清除它们。只要SQLite数据库文件本身没被删除,数据库中被删除的记录则会一直保留在SQLite文件的未分配空间内,直到新的记录覆盖它们。

攻击者可以使用strings命令打印SQLite数据库文件中数据,这其中就包括了被删除的数据。以下为整个恢复过程的演示。
(1)创建一个名为messages.sqlite的SQLite数据库,并插入测试数据。

这里写图片描述
(2

iOS开发安全 防反编译 现在公司做的金融类项目,对于安全和反欺诈要求比较高,之前对App安全只有部分涉及,在这个项目中系统化的对App安全防护做了一些工作. 一.网络安全 http网络请求不安全是大家都知道的,所以配合后端做https的升级是必要的. 另一方面就是防中间人攻击,中间人就是介于客户端和服务端中间,截获两端的信息进行篡改,对两端进行欺骗. 我们目前采用的方法是对于传输的参数进行验签和加密.先上代码吧. `... 阅读详情

相关推荐

【iOS】—— FMDB的基础用法

一.基本介绍: 1.简介: 由于iOS中原生的 SQLite API 使用时非常不方便 ,于是就出现了一系列将 SQLite API 进行封装的库,例如FMDB、PlausibleDatabase、sqlitepersistentobjects等,FMDB是一款简洁易用、轻量级的封装库。 2.什么是FMDB: FMDB是iOS平台的SQLite数据库框架。 FMDB以OC的方式封装了SQLite的C语言API。 3.FMDB同时兼容ARC和非ARC工程,会自动根据工程配置来调整相关的内存管理代码。 4.FM

m0_55124878的博客 6014

iOS安全实战:通过OWASP iGoat (Swift)掌握移动应用漏洞攻防

在移动应用开发领域,安全是构建可信应用的基石。其核心原理在于通过系统性的防护措施,确保数据在存储、传输和处理过程中的机密性、完整性与可用性。掌握安全技术对于开发者而言具有重要价值,它不仅是满足合规要求的关键,更是保护用户隐私、维护品牌声誉和避免经济损失的工程实践。在iOS应用开发场景中,常见的安全风险涉及不安全的数据存储、注入攻击和通信保护不足等方面。OWASP iGoat (Swift)项目正是围绕这些核心议题,为开发者提供了一个绝佳的实战训练场。通过这个故意内置了漏洞的Swift应用,开发者可以亲手实践

weixin_29741447的博客 334

Unity游戏开发:SQLite本地数据存储集成与实战优化指南

在游戏开发中,数据持久化是构建稳定体验的基石。其核心原理是通过可靠的存储引擎,将游戏状态、玩家进度等结构化信息持久保存于本地。相较于简单的键值对或文件存储,关系型数据库技术提供了强大的数据组织、高效查询与事务保障能力,这对于管理复杂的游戏数据(如玩家装备、任务状态)具有显著价值。在Unity引擎中,SQLite因其嵌入式、零配置和跨平台特性,成为实现本地关系型存储的热门选择。通过集成sqlite-net等ORM库,开发者能以面向对象的方式进行CRUD操作,并结合事务、索引优化与单例连接管理来提升性能与数据安

weixin_29009339的博客 298

iOS安全测试实战:从环境搭建到漏洞挖掘的完整指南

移动应用安全是保障用户数据和隐私的核心防线,其原理在于通过静态与动态分析技术识别潜在风险。静态分析通过审查代码结构发现漏洞,而动态分析则在运行时监控应用行为,两者结合能有效评估应用安全性。在iOS生态中,Frida作为动态插桩工具,配合Charles Proxy进行网络流量分析,构成了安全测试的技术基石。这些工具的价值在于帮助开发者模拟攻击路径,提前发现如数据泄露、通信劫持等安全隐患。典型的应用场景包括金融、社交类App的安全审计。本文以Oversecured漏洞靶场为例,系统演示如何利用Frida进行运行

weixin_29315091的博客 292

iOS移动开发:利用Realm数据库进行数据存储

在iOS移动开发中,数据存储是一个至关重要的环节。传统的数据库如SQLite虽然功能强大,但在使用上相对复杂,需要编写大量的SQL语句。而Realm数据库作为一种轻量级、高性能的移动数据库,为开发者提供了一种更简单、高效的方式来进行数据存储。本文的目的是详细介绍如何在iOS开发中利用Realm数据库进行数据存储,范围涵盖了Realm数据库的基本概念、核心算法、实际应用以及相关资源推荐等方面。本文将按照以下结构进行组织:首先介绍Realm数据库的核心概念和联系,包括其原理和架构;

移动开发前沿的博客 992

ios 本地数据库存储的方式和几种方案的比较

常见的储存方式 - plist 格式文件存储 - NSUserDefaults 沙盒存储(个人偏好设置) - 文件读写存储 - 解归档存储 - 数据库存储 了解缓存,先要了解iOS中沙盒机制这个概念 沙盒其实质就是在iOS系统下,每个应用在内存中对应的存储空间。 每个iOS应用都有自己的应用沙盒(文件系统目录),与其他文件系统隔离,各个沙盒之间相互独立,而且不能相互访问(手机没有...

Z1591090的博客 4856

保护用户数据和应用程序安全(iOS中的安全机制)

iOS作为Apple公司推出的移动操作系统,以其强大的安全性和用户隐私保护能力而闻名。iOS中的安全机制是一个多层次、全方位的体系,旨在保护用户数据和应用程序免受各种威胁。以下将详细阐述iOS中的安全机制以及保护用户数据和应用程序安全的具体措施。

Dingdangr的博客 1976

iOS安全和逆向系列教程 第23篇:iOS应用数据存储与本地安全

iOS应用数据存储安全摘要 本教程深入探讨了iOS应用数据存储机制与安全防护技术,涵盖以下核心内容: 沙盒机制分析:详细解析iOS沙盒架构、目录结构及权限模型,包括iOS 18的新特性与绕过技术 数据存储方式:全面剖析文件系统、UserDefaults、Plist、归档序列化等存储方式的安全隐患 数据库安全:深入分析SQLite和Core Data的实现机制,包括数据库加密、SQL注入和数据篡改技术 Keychain安全:详解Keychain架构、API及数据提取技术,包含生物识别集成与iCloud同步机制

一个自学不成材的程序员 622

WebDAV之π-Disk派盘+文件管理器

自己控制数据、不限空间、不限速、无广告,不需要端口映射,支持数据镜像同步、WebDAV、子派盘分享、数据加密访问。文件管理器这是一款功能强大的文件管理工具,支持zip,rar,7z等压缩包的解压和压缩,支持小说,漫画,视频下载及播,极大提升日常办公,娱乐,文件管理的工作效率,使得文档的归档和管理随心所欲,自从上线以后深受广大用户的好评,获得多家媒体推荐。3、派盘极客版和精英版提供WebDAV服务,可关联各类生产力APP,提供稳定的同步及备份功能。支持新建目录、文件重命名、移动、删除,搜索,排序等操作。

chuanyuepan的博客 571

22、iOS数据存储方案全解析

本文全面解析了iOS开发中的常见数据存储方案,包括NSUserDefaults、文件管理系统、Core Data和iCloud的使用方法和适用场景。通过示例代码详细介绍了如何在实际项目中实现数据的存储与读取,并对各种存储方案进行了对比分析,帮助开发者根据需求选择合适的存储方式。

assembly8low的博客 96

5、Objective-C 与 iOS 应用数据存储解析

本文深入解析了 Objective-C 中的类别与方法交换机制,并探讨了 iOS 应用数据存储的结构与安全性问题。内容涵盖类别和方法交换的实现方式、潜在风险,以及 iOS 应用中各类数据存储目录(如 Documents、Library、Preferences 等)的功能与敏感信息隐患。同时介绍了如何查看和处理 plist 文件,以及保障应用数据安全的实践建议。适合 iOS 开发者和安全研究人员参考,以提升应用的安全性与稳定性。

n4o5p6q7r的博客 59

plist文件加密方法

ios开发中给plist文件进行DES加密的方法

ipa文件中info.plist与icon图标解密

我们用程序解析ipa文件时,里面info.plist与icon图标都是加密过的,这两个jar包可以用java程序实现文件解密.下载后里面有例子程序

Python实现安居客新房数据抓取简易版

本文介绍使用Python爬取安居客新房楼盘数据的方法,重点针对三四线城市。通过分析移动端H5页面结构,采用滚动加载方式获取推荐楼盘列表(class="recomm-list"),从中提取楼盘ID并拼接详情页链接。代码展示了如何解析HTML标签获取楼盘名称、状态、价格、户型等基本信息,并处理图片URL。爬取过程涉及一个一级页面和两个二级页面,同时提到可能遇到的验证码问题将在后续处理。核心代码使用BeautifulSoup解析HTML,requests发送请求,并将数据存入MySQL数据库。

qq_37604998的博客 475

告别繁琐同步:Zotero与Obsidian双向联动新方案(基于Better BibTeX与MarkDBConnect)

本文详细介绍了一套基于Better BibTeX、Bibnotes Formatter和MarkDBConnect插件的Zotero与Obsidian双向联动方案。该方案通过建立智能数据通道,实现文献信息的自动同步与笔记的增量更新,解决了手动同步的繁琐问题,并支持在两大工具间无缝跳转,极大提升了科研和知识管理的工作效率。

weixin_29213827的博客 644

【LLM】ms-Swift框架下SFT与GRPO协同优化的高效训练策略

本文深入探讨了ms-Swift框架下监督微调(SFT)与群组相对策略优化(GRPO)的协同训练策略,提升大型语言模型(LLM)的性能与效率。通过创新的架构设计和两阶段训练流程,结合GRPO的群组奖励估计与动态基线调整技术,显著优化了数学推理等任务的准确率。文章还分享了计算资源高效利用和参数调优的实战经验,为LLM训练提供了实用指导。

green的博客 994

gm/ID设计方法实践指南:从理论曲线到电路优化的关键步骤

本文详细介绍了gm/ID设计方法在模拟IC设计中的实践指南。该方法通过直接利用工艺模型数据,将设计焦点从盲目调整晶体管尺寸转向选择关键的gm/ID工作点,从而在先进工艺下实现功耗、增益和带宽等性能的精准权衡与优化。文章从理论曲线生成到具体电路设计步骤,提供了完整的实战流程。

pandas7gardener的博客 480

从零构建:基于Docker与FRR的OSPF虚拟网络实验室

本文详细介绍了如何利用Docker与FRR构建OSPF虚拟网络实验室,从环境设计到高级网络拓扑配置,再到实验验证与排错。通过容器化技术实现高效资源利用和快速部署,特别适合网络协议教学、企业网络架构验证等场景。

plum99的博客 222

手把手教你学simulink(11.6)--Simulink 航空航天场景:基于Simulink的飞机俯仰控制系统的数学模型

自动驾驶系统在航空航天领域具有重要应用,特别是在商业航空、军用航空和无人机等领域。PID控制器因其简单且有效的特性,被广泛应用于飞行控制。Simulink提供了一个强大的平台,用于建模、仿真和分析动态系统,非常适合设计和测试自动驾驶系统的控制器。通过本项目的实施,我们成功设计和仿真了一个用于控制飞机俯仰角的PID控制器。该项目展示了从系统建模、控制器设计、仿真验证到结果分析的完整流程,为PID控制器的设计提供了有价值的参考。希望这个实例能够为你的航空航天项目提供有用的指导。

MHD0815的博客 565

TC3XX - MCAL知识点(三):MCU EB-tresos配置说明及代码浅析

AURIX 2G Tc3xx的配置相较AURIX 1G Tc2xx来讲简化了许多,但是依赖于数据手册的理解来讲整个MCU功能做了较大增强,此处先简单的介绍一下,本文前期先补充介绍一下英飞凌手册的阅读规则,因为后面的文章会基于此文的一些缩写进行截图寄存器之类的。MCU在AUTOSAR架构里面的图示如下MCU驱动程序负责配置SCU、GTM、CCU6、GPT12和STM外设。驱动程序提供由AUTOSAR指定的运行时服务。

梦想技术家 2875

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

下一篇: 微信小程序安全浅析
baize_security
博客等级 码龄10年 53粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值