《iOS取证实战:调查、分析与移动安全》一3.4 数据存储方式

3.4 数据存储方式

iPhone上的数据以很多方式进行存储。下面的小节涵盖了每一个数据存储的形式以供审查者了解潜在的证据如何定位或恢复。
内部存储;
SQLite 数据库文件;
属性列表;
网络;
其他。

3.4.1 内部存储

大多数的码分多址(CDMA)设备都有SD卡插槽,但是iPhone不一样,它没有任何形式的外部存储器(除了SIM卡之外)。iPhone中所有的数据都存储在内部NAND闪存中。本章后面的3.7.3节中提到的slice 2(或者称为rdisk0s2)存储了这些用户数据文件,设备的物理获取方法就是映像这部分数据。下面列出了此区域所存储的用户数据的顶层文件和目录。第6章的大部分内容集中在这些主要的目录和文件系统的其他部分。

由于所有的数据都被存储在设备内部,用从设备中获取已分配和未分配数据的方式来映像iPhone,在审查调查中是至关重要的一个手段。因为恢复已删除的短信、图片或视频通常会比较麻烦,在这种情况下,我们对用户数据分区(rdisk0s2)进行物理取证就可以轻松完成。

3.4.2 SQLite 数据库文件

SQLite数据库是常见的数据存储类型之一,受到移动应用程序开发者的广泛应用。数据库用于结构化数据存储,在多数移动系统和传统操作系统中,SQLite是较常见的数据库格式。
SQLite如此受欢迎有几个原因。首先,比较重要的一点是,它的整个代码基础质量很高,开源,并且发布在公开领域。它的文件格式和程序非常简洁,所包含的重要功能只需要不到几百KB的内存。与那些传统的关系数据库管理系统(如Oracle、MySQL和微软的SQL Server)不一样,SQLite是存储在单一磁盘文件中的一个完整的数据库。
任何应用程序都需要以一种有效的方式来存储和恢复数据,为了达到此目的,开发人员通常都会创建自己的私有文件格式;然而,现在大多数开发人员都转而使用SQLite,因为它免费、开源、质量好并且效率高。甚至在系统崩溃后,SQLite事务处理仍然可用。
Apple开发人员在iPhone开发中大量运用SQLite数据库进行数据存储。许多常见的系统默认应用程序都以这种格式存储,比如通讯录、日历、备忘录、短信、图片、语音信箱等。这些文件中的数据分散在各个真实的数据表中。图3-2是在Mac系统上打开的,展示了SQLite数据库中SMS SQLite的数据库结构。该图中列出了所有表,处于选中状态的是Message表。

SQLite文件中的信息也可以通过命令行来恢复。在Linux Ubuntu工作站上,可以查看和修改数据库文件。使用以下命令行来打开SMS.db文件(SQLite版本3):

一旦打开了文件,就可以用各种命令来恢复数据。例如,下面的命令用于列出此数据库中的所有表。

命令schema可查看到message表的表结构。另外,通过schema命令可以显示SQLite中的数据库建立语言。

用schema查看message表,这是了解数据表各列和列数据类型的其中一种方法。另一种查看这些信息的方式是使用前面小节提到的SQLite数据库浏览器。此软件是一个免费、开源的工具,它用于创建、设计和编辑支持SQLite的数据库文件。它可以在Mac、Linux和Windows平台上使用,且可在http://sqlitebrower.sourceforge.net下载。其他SQLite数据库的查询工具也可以在以下地址下载:
http://www.sqlite.org/cvstrac/wiki?p=ManagermentTools
由于在SQLite文件中能够发现的iPhone数据量很大,审查者应该将它作为重点了解,因为此数据库文件对取证审查有很大影响。第6章讲述了从这些文件恢复数据的详细过程。

3.4.3 属性列表

应用程序可使用属性列表存储、组织和访问各种iOS和Mac OS X设备上的数据类型。通常我们也称之为“plist”,这些文件由三个类的层次结构组成,所有节点显示在一个“列表”中。这三个类由以下内容组成:Cocoa Foundation、Core Foundation和XML。当属性列表以XML格式创建时,应用程序就能读取它的内容,同时可将XML属性转化为应用于Cocoa Foundation和Core Foundation的对象(Apple Inc, 2010)。XML格式的属性列表,在Mac系统上可用TextWrangler打开,内容类似于下面所展示的文本信息。此信息是com.apple.Maps.plist文件的一部分,在其中,我们可以看到经纬度坐标,其他未展示数据也很容易识别。

属性列表能以XML格式或二进制格式(二进制格式被Cocoa类操作系统层使用)存储。为了降低文件的大小,并使应用程序更高效地访问数据,Apple开始以二进制格式存储预置文件。它的高效表现在,比如,文件中重复的值仅需存储一次,且后续需要时可在文件中引用。同时,数据以字节形式存储而不是字符串。而对于二进制plist文件(或者bplists)如何能降低属性列表的大小只有很少的例子(Caithness, 2010)。
如果属性文件是XML格式,可以用任何标准的文本编辑器查看此文件。如果以二进制形式存储(本质上来说这是XML plist更简洁的版本),就必须用能够进行ASCII码转换的应用程序才可打开。Plutil,是“property list utility”(属性列表分析)的应用程序之一。当工具读取的是属性列表文件时,它可将plist文件进行二进制和文本格式转换。它还能扫描属性列表文件并检查该文件是否符合XML语法。plutil是一个纯粹的命令行驱动工具,它可以运行在Windows、Linux或者Mac OS X平台上(PERL,2008)。默认情况下,plutil安装在Mac的/usr/bin/plutil目录下。你也可通过Internet下载Windows和Linux版本的plutil软件。二进制plist文件在转换之前是不可读的,只能看到一些“bplist00”,后面跟着任意数量的不可辨识字符。
使用plutil工具下面的命令行,可将二进制plist文件转换成ASCII格式:

运行下面命令,可将XML格式转换成二进制格式:

这两条命令没有任何的输出,当用户尝试打开文件时,文件的格式已根据运行的命令转换成二进制格式或XML格式了。另一个可用于属性列表文件的有用选项是“-lint”。在命令行中加入这个选项,用户可以查看plist文件是否存在语法错误:

属性列表中的数据有不同的类型,包括字符、数字、二进制数据、日期以及布尔值。属性列表文件由三个类的数据组成,因此这些数据必须使用三种不同的方法表示。不同的数据类型以及给每个类的表示方法如表3-1所示(Apple Inc., 2010)。

特别是在iPhone中,设备中的应用程序通常通过属性列表来呈现给用户一些选项。尤其是像Safari Web历史记录和书签、YouTube数据、Favorites(收藏)以及很多个性化文件都存储在属性列表中。属性列表的使用简化了应用程序的开发。程序员能够使用这些配置文件来修改应用程序的特性和功能。简单地修改plist文件并且将其更新到设备上就可以修改应用程序。
关于二进制和ASCII格式的plist文件的更多细节,可参考CCL Forensics中描述的“数字取证中的属性列表”。这篇文档包含了属性列表的历史由来,XML和二进制格式的结构,这两种格式相互转换的算法,以及如何分割和解析属性列表文件及其内容。

3.4.4 网络

网络提供给开发者的另一个选择是将数据存储在“云”中,而不是将数据直接存储在设备本身。起初,只有很少的应用程序会利用网络来存储,然而,随着设备和应用程序的成熟,网络存储已经得到充分应用。iTunes应用商店中的许多应用程序都允许文件共享和网络访问,例如My Network Folders、Air Sharing、QMobile和Dropbox。这些应用程序以几种方式运用网络存储。一种方式是允许设备通过Web浏览器来上传和下载已存储文件。另一个方式是将设备连接到计算机,将它作为一个驱动器挂载,然后复制文件到设备或从设备复制文件。例如文件共享应用Dropbox,它已经成为广受欢迎的文件共享网站,这个网站提供iOS、Blackberry以及Android设备的移动应用程序。Dropbox的最新版本是1.3版本,该版本于2010年10月10日更新,已获得超过1100个好评。在安装和使用之后,所有用户活动都存储在“Applications”文件夹。关于这个特别应用程序的更多分析细节参见第6章。

时间: 2024-12-25 07:53:00

《iOS取证实战:调查、分析与移动安全》一3.4 数据存储方式的相关文章

《iOS取证实战:调查、分析与移动安全》一导读

前 言 本书适用于对iPhone和其他iOS设备感兴趣的读者,尤其适合那些对设备中能恢复的存储数据类型感兴趣的读者阅读.移动取证的需求随着智能手机的发布在惊人地增长.随着手机的应用不再局限于通话功能,使得通过手机进行的交流互动逐渐被数据化了.当用户用iOS设备发送短信.查收个人或工作邮件.上网.管理财务,甚至照相和摄影时,他们并没有意识到,这些数据正在被存储到他们的设备上.当删除一条信息时,他们会认为这些数据永远消失了.但事实上并非如此,本书不仅解释为什么这些被删除的数据能够恢复,还向取证审查者

iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)

一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存储自定义对象) 4.SQLite3(数据库,关系型数据库,不能直接存储对象,要编写一些数据库的语句,将对象拆开存储) 5.Core Data(对象型的数据库,把内部环节屏蔽) 二.应用沙盒 每个iOS应用都有⾃己的应⽤沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离.应⽤必须待在⾃己的沙盒里,其他应用不能访问该沙盒(提示:在IOS8中已经开放访问) 应⽤沙盒的文件系

《iOS取证实战:调查、分析与移动安全》一1.3 取证审查方法

1.3 取证审查方法 与任何取证研究一样,这里提供几种方法用于信息获取和分析.无论用任何方式进行信息获取都不能修改源信息,这是信息获取的关键,也可以说是最重要的一点.如果在一些实时系统或移动设备上获取信息时无法避免要修改源信息,那么分析者必须说明修改的细节以及必须作此修改的原因.移动领域取证与传统的计算机取证不一样,传统的计算机取证,你可以拆下硬盘,连上数据恢复工具write blocker,然后映像数据,最后就可以对这些数据进行分析了.而在移动领域就没有这么简单了,由NAND的特性和主存储器结

《iOS取证实战:调查、分析与移动安全》一3.5 存储器类型

3.5 存储器类型 iPhone设备有两种主要的存储器类型,易失性存储器(RAM)和非易失性存储器(NAND闪存).这两种存储器各自提供了对设备数据的不同处理方法. 3.5.1 RAM RAM用于系统加载.执行,以及处理操作系统.应用程序和数据的关键部分,它的数据在重启后不保存.类似于传统计算机,RAM可包含应用程序处理数据的重要信息.例如: 密码 加密密钥 用户名 应用程序数据 系统进程和服务数据在审查调查中,获取设备RAM中存储的数据的能力是非常重要的.然而,更重要的一点是,我们必须在设备关

《iOS取证实战:调查、分析与移动安全》一2.5 与iTunes的交互

2.5 与iTunes的交互 用户可通过iTunes提供的各种功能来管理iPhone设备上的文件.应用程序.软件版本等.下面将讨论iTunes的主要特性. 2.5.1 设备同步 当iPhone连接到iTunes后,用户可启动iTunes软件与设备进行同步.根据用户的设置,这个过程将存储在iTunes上的所有应用程序.音乐.视频和图片等加载到设备上.在同步过程中,iTunes上的数据是优先的,设备上任何与iTunes不同的数据都会被删除.用户可以设置iTunes在每次设备连接时自动同步,或者设置必

《iOS取证实战:调查、分析与移动安全》一3.3 数据存储位置

3.3 数据存储位置 iPhone拥有标准的文件目录结构,在其中存储着各种文件(参考附件C,展示了从iPhone中恢复的文件夹和文件的全列表).iPhone硬件没有外置存储插槽,因此它所有的数据都存储在设备内部(与之对应的是,其他设备拥有外置SD卡或仿真SD卡设备).为了显示iPhone的目录层级,我们使用第5章中提及的技术,通过Wi-Fi远程接入一个已越狱的iPhone.在一台Macintosh电脑上通过SSH连接到iPhone,以查看其文件系统进行研究分析.登录设备后可以通过"1s"

《iOS取证实战:调查、分析与移动安全》一2.2 Apple设备概述

2.2 Apple设备概述 虽然本书主要关注iPhone和与之结合的取证技术,但需要注意,大多数取证方法也是能够被应用到其他Apple设备上的.基于此原因,以下部分会对一些比较常见的iOS设备做简要概述. 2010年4月,Apple发布了它的平板电脑版本iPad,以提供音频和视频功能为主,最初发布的iPad运行的iOS版本是3.2.2.2010年11月,发布了操作系统的4.2.1版本.类似于iPhone,iPad也提供触摸屏功能以及许多相同的应用.iPad上的应用程序可通过同样的方式从iTune

《iOS取证实战:调查、分析与移动安全》一3.7 文件系统

3.7 文件系统 iPhone以及其他Apple设备(包括Mac计算机)使用的文件系统是HFS Plus.最初,它们使用的文件系统都是HFS,后期才使用的HFS Plus.HFS Plus增加了很多增强功能,包括提高磁盘空间使用效率,使用国际化.友好的文件名,未来支持具名分支,以及可引导操作系统(除了Mac OS).表3-3中提供了相关信息,呈现了最初的HFS文件系统和HFS Plus的不同之处(Apple Developer, 2004). HFS Plus包含分配单元,称为"分配块"

《iOS取证实战:调查、分析与移动安全》一第3章 文件系统和数据存储3.1 介绍

第3章 文件系统和数据存储 3.1 介绍 移动取证分析的一个关键方面是掌握哪些数据能够被恢复.这些数据存储在哪里,以及更重要的是如何访问这些数据.某些移动设备除了有设备闪存之外还包含了其他的存储器,比如外置或内置的SD卡(而iPhone无任何形式的外部存储器).本章将介绍在iPhone上能够存储的数据类型,在什么位置能找到这些数据,以及这些数据是如何被存储的.