导语:随着云计算技术的发展,越来越多的企业选择将数据迁移到云上。因为云存储和其他云服务的成本低、使用方便等好处,云服务可能会被恶意用户滥用,比如使用云服务发起DDOS攻击等。
3. 云存储服务的临时文件 (Smartphones)
3.1 iOS
3.1.1 Amazon S3
在iPhone上运行Amazon S3时会创建一个plist文件和SQLite数据库文件,图 5是一个iAwsManager.plist的一部分。该文件含有用户名、访问key ID和secret access key。这些都是用来在iPhone上进行Amazon S3访问认证的。
图 5—iAwsManager.plist.
iAwsManager.3.0.db中有一个重要的表,名为DOWNLOADS (表 11),该表格含有下载文件的路径、电子标签、标题和大小,还有文件下载的时间。S3BUCKET域的内容是bucket名。
表 11—DOWNLOADS 表 (iAwsManager.3.0.db).
3.1.2 Dropbox
在iPhone上运行Amazon S3时会创建一个plist文件和SQLite数据库文件,图 6是一个com.getdropbox.Dropbox.plist的一部分。该文件含有登录用的邮箱地址和首次用该iPhone登录的时间。
图 6—com.getdropbox.Dropbox.plist.
访问的文件和文件夹名保存在Dropbox.sqlite中,如表 12。Dropbox.sqlite同时含有用户浏览文件和文件夹的时间。如表 13,Upload.sqlite含有上传文件的路径和名、上传时间,时间是绝对时间。
表 12—Dropbox.sqlite.
表 13—Upload.sqlite.
3.1.3 Evernote
在iPhone上运行Evernote时,会产生不同类型的文件,包括applog.txt,com.evernote.iPhone.Evernote.plist等。Applog.txt记录了历史使用Evernote的情况,如下部代码块,包括最后一次服务访问的开始时间、同步时间和连接状态。如下是com.evernote.iPhone.Evernote.plist,里面含有Evernote的账户ID等。
2011-06-03 16:07:04.658 [lvl=2] -[ENAppController _setupSharedLogger] 2011-06-03 16:07:05.343 [lvl=2] -[ENSyncEngine syncIgnoringNetworkPreference:forcingAuthRefresh:]reachability currentReachabilityStatus=WiFi 2011-06-03 16:07:05.349 [lvl=2] -[ENSyncEngine _syncStarted] Sync started. 2011-06-03 16:07:05.432 [lvl=2] -[ENSyncEngine _backgroundSync] Contacting Evernote server... 2011-06-03 16:07:08.467 [lvl=2] -[ENSyncEngine(Notebooks) syncNotebooks:] Syncing 2 notebooks... 2011-06-03 16:07:08.661 [lvl=2] -[ENSyncEngine(Notes) updateServerNoteFromLocalNote:] Syncing note 'hallo' [9b79d7a2-3134-453e-a575-ab88a03f8efa] 2011-06-03 16:07:09.462 [lvl=2] -[ENSyncEngine _syncFinished] Sync complete.
<key>username</key> <string>dodochung</string>
Evernote2.sqlite含有两个重要的表,ZENLOCALFILE (表 14)和ZENSERVICEENTITY (表 15),其中表中的时间格式为绝对时间。用户修改note或文件的时间是保存在ZLASTMODIFIED表中的,ZENSERVICEENTITY含有note的标题和内容,表格含有note更新的时间,创建该note的时间和智能手机操作系统的类型以及位置信息。所由的notes和附件都有一个索引号,该索引号是有序的。如果一个数不在索引号中,该note就会被移到垃圾箱中。垃圾箱中的note会有一个被移到垃圾箱的时间。
表 14—ZENLOCALFILE 表 (Evernote2.sqlite).
表 15—ZENSERVICEENTITY 表 (Evernote2.sqlite).
Evernote2.sqlite.md (图 9)是含有最后一次同步时间的XML文件。
图 9— Evernote2.sqlite.md.
3.1.4 iGoogDocs
在iPhone上运行iGoogDocs时,会生成一个plist文件和一个HTML文件。图 10就是com.jade.iGoogDocs.plist,文件含有判断自动登录的值auto login,如果auto login的值是true,那么plist文件就含有用户的账户信息,甚至含有password。
图 10—com.jade.iGoogDocs.plist.
在Google Docs iPhone版本中,也可以创建文本文件,文本文件是保存在“Local Files.”的文件夹中的,文件的内容包含在一个HTML文件中,图 11的ios test就是“Local Files”的一个文件夹,因此可以找出用户写入的内容。
图 11—html File(Google Docs).
3.2 Android
3.2.1 Amazon S3
在安卓手机上运行Amazon S3会产生相应的XML文件,图 12就是s3anywhere.xml的示例,含有6个重要信息。含有可以访问的bucket名,bucket名在方括号中。当用户在安卓手机上访问Amazon S3服务,需要的文件有远程文件目录,访问key ID, secret access key和本地目录。这些都保存在s3anywhere.xml文件中。该文件含有最后一次同步的时间,时间格式为unix时间,“>” 和“<”之间的数据是base64编码的,下载的文件保存在外部SD卡中。bucket name, access key ID和secret access key是最重要的几个文件。
图 12—s3anywhere.xml
3.2.2 Dropbox
在安卓手机上运行Dropbox,会产生两个SQLite数据库文件和一个日志文件,这些文件中含有用于登录的邮箱地址和Dropbox的完整安装目录。文件prefs.db (表 16)中含有登录用的用户名和邮箱地址。文件db.db (表17)含有上传文件的文件名、大小和修改时间,时间格式都是Unix时间,下载的文件保存在外部SD卡中。
表 16— prefs.db.
表 17—db.db.
文件 log.txt是记录Dropbox执行历史的文本文件,如图 13。含有时间和行为信息,比如登录成功或失败状态、服务开始和结束、文件同步等,其中时间格式为Unix时间。
图 13—log.txt.
3.2.3 Evernote
在安卓手机上运行Evernote,会生成SQLite数据库文件,表18是Evernote.db文件的一部分,数据库文件含有note的标题和表示note可用性的flag。如果flag值是1,表示note可用,否则note不可用。该文件含有note创建和更新的时间、创建note时所有的手机操作系统的类型、位置信息(经度和纬度)。时间格式是Unix时间,如果note被删除了,就会被移动到垃圾箱中,此时会多一个flag(=1)表示note被删除。
表 18 Evernote.db.
3.2.4 Google Docs
在安卓手机上运行Google Docs,会生成一个SQLite数据库文件和一个XML文件。DocList.db (表19)包含访问手机的邮箱地址和最后一次同步时间,文件的标题、类型、第一次上传和最后一次修改的时间。两个比较重要的XML文件是GoodleDriveSharedPreferences.xml 和Webview.xml,GoodleDriveSharedPreferences.xml含有管理员帐号的邮箱地址。Webview.xml含有最后一次连接到Google Docs的邮箱地址。如果用户有多个账户的话,该文件的价值才能显现出来。
表 19—DocList.db.
4. 云存储服务数字取证案例研究
本节介绍用之前的几章的内容进行数字取证。
4.1 总览
2011年有一家公司的机密文档泄露给了竞争者,该文档含有新产品的设计。该文件名为“A_design.pdf”。在最初的调查中,怀疑的对象是管理凭证文件的职员K。在检查公司网络中的数据日志时,并没有发现任何相关文件的转移(传输)痕迹,然而该职员K也没有提供任何的线索。但是,职员K用个人电脑、安卓手机来进行商业活动。所以,调查人员就对K的手机和个人PC进行了取证调查。
4.2 目标
调查的目标是通过对K的PC和手机进行取证,判断K有没有泄露机密文件。
4.3 方法
调查首先是从K的PC开始的,检查文件系统的结果是并没有发现泄露的文件。操作系统的日志文件(比如LKN文件)也没有提供有用的线索。在K可能泄露文件的时间窗口中,没有连接外部设备和访问Web邮件服务的临时文件。然而, 研究人员发现K安装了Dropbox,config.db文件含有K最近访问的5个文件,这5个文件的名字是随机名,调查人员怀疑是K修改了这些文件名。
为了深入分析,调查中尝试访问云服务,但是无法查看用户账户信息。但是即使调查者不知道K的用户ID和password,调查者也可以访问K的Dropbox存储(参见3.2.1)而且可以查看Dropbox中的文件。调查者收集了Dropbox存储中的所有文件,并从中发现了之前上传的文件,其中一个文件的名被修改了(从A_design.pdf修改为“abc.pdf)。但是没有在PC中发现用智能手机上传和下载文件的记录。
接下来,对智能手机进行了调查。调查人员将安卓手机连接到PC上,获取root权限后,调查者手机了与Dropbox相关的数据。下载abc.pdf的临时文件存在于log.txt中,而且abc.pdf保存在外部SD卡中。
4.4 调查结果
调查结果说明,K用Dropbox泄露了机密文件。
5. 结论
因为云存储服务的方便性,云存储服务会变得越来越普遍,更多的人会用云存储服务来随时随地管理自己的文档。因此,恶意用户可能会滥用云存储服务,所以进行云存储的调查取证显得特别重要。本文提到的取证方法可以在Windows、Mac、iOS和Android系统上的云存储服务进行取证分析,实践证明该方法是可行的。