在《技术视界》第11期中,数据恢复四川省重点实验室科研人员以途牛软件为例子,介绍了一种编写手机APP取证脚本的方法。该技术方案扩展性强,可助力一线取证人员有效应对暂不支持的APP数据提取问题。文章投放后,受到极大关注,很大一部分读者微信留言、致电询问Iphone手机APP取证脚本的编写方法。本期,针对本问题,以Iphone手机APP数据为例讲解正常数据与删除数据的提取。相比正常数据,删除数据的提取与解析难度非常大,脚本编写步骤也更复杂,除了填写分析文档、插件智能匹配、定义数据结构和数据处理方法,还需要配置特征库文件才能实现。
随着手机互联网的进步,手机APP应用越来越多,APP应用数据的分析就愈加重要。要实现APP数据分析,首先需要建立一个分析规范,因此分析人员应该更深入、更透彻、更全面地研究各类手机的各类应用APP,探索更多有效方法,抓取到更多有效信息,实现精准数据分析。做好APP应用数据的分析规范,可以较大地提高相关取证产品在实际应用中提取出更多、更全的数据。在第11期中,数据恢复四川省重点实验室科研人员已经详细讲解了APP取证脚本的编写流程与方法,这其实就是一种分析规范。对于暂不兼容的APP,一线人员可根据这种分析规范(或方法)自行编写取证脚本,提升兼容性。
一、数据提取
1、解析应用APP
解析应用APP时,首先需要熟悉功能,了解数据存储结构。通过APP应用的主页,大致就能分析出数据的存储雏形,所以目测即可完成。下面,以APP“百度贴吧”为例详细讲解。
使用“百度贴吧”一段时间后,手机上就会产生一些数据(如图1),包括浏览历史、我的收藏、关注的人、我的粉丝、我的好友、消费记录、好友动态、我的吧动态等等。基于此,我们可以提取的信息大致包括好友信息(好友本身资料)、好友消息(聊天内容)、群组信息、群组消息、好友动态、浏览历史等。
熟悉“百度贴吧”结构以后,可根据数据的重要性排列出提取顺序,以最重要的数据为最高点,依次降序处理。如图1,在分析时,可以首先把“我的好友”确定为重要数据(对于取证来说,所有数据都可能重要),将这个数据确定分析的入口,优先分析。当然,也可以选择“浏览历史”。
这里要注意,数据分析一定要全面、透彻,数据结构要严谨、层次。数据层次最好按照APP应用的呈现结构来处理,清晰明了,比如“百度贴吧”,就按照本身的数据结构来进行。
2、数据提取
对于iphone手机,可以通过SPF9139智能手机数据恢复取证系统的物理镜像提取数据,如图2:
图4:打开“百度贴吧”数据库可以看到各种信息(红色框内为聊天信息)
打开数据库,我们可以看到里面的各种信息,包括浏览历史、我的收藏、关注的人、我的粉丝、我的好友、好友动态、我的吧动态等等,下一步工作就是对这些信息进行解析。
二、编写脚本
1、填写分析文档
分析数据,是一项繁琐、复杂的工作,为规避遗漏、丢失、重复、混乱等风险,最好使用分析文档来记录,针对APP脚本编写,科研人员专门拟定了分析文档《APP应用分析文档(模板)》(如图5),目前已经在效率源SPF9139的APP取证脚本模块中使用。整个分析文档模板分三部分,包括手机应用信息、分析记录人员和分析报告记录。分析报告主要是记录在分析过程中可能遇见的各种问题、数据结构分析中存在的问题以及分析过程中数据的关联性问题等等。因此,这里的分析报告需要简明扼要地记录问题,同时,在分析文档中详细描述问题的细节报告,避免二次分析。
2、插件智能匹配
SPF9139系统中核心的插件就是数据解析插件。本文所述的插件、脚本其实是一个概念,脚本就是以javascript的方式实现的插件,并且可以开放给用户使用。如图6中所示,执行插件前最重要的一步就是插件智能匹配,因为针对一个app应用,其app可能存在N个版本,假若这N个版本的数据结构都不同,就需要开发N个插件。当有手机接入时,根据手机中安装的该应用的版本号,来进行智能匹配,找到最合适的插件来执行。倘若手机没有安装某个app应用,则其对应插件也不会执行。
这一步,我们可以使用科研人员为效率源SPF9139量身定制的脚本编辑器XLYScriptVisualStudio进行脚本开发。插件的配置包括name(插件的名称)“百度贴吧”、group(插件分组)“社交聊天”、icon(插件图标)“百度贴吧”图标,devicetype(插件所适应的手机系统类型)“IOS”、pump(插件所支持的数据泵类型)“USB、WIFI、mirror、bluetooth”、app(插件所解析的应用app名称)“com.baidu.tieba”、version(应用app的版本)“7.4.0”、description(插件描述信息)“百度贴吧”等。
3、定义数据结构和数据处理方法
插件配置完毕后,继续在脚本编辑器XLYScriptVisualStudio中定义数据结构,使和用户相关信息展现出来,如好友数据结构、群组数据结构、会话数据结构等(如图7)。然后,定义数据处理方法,利用js语言展现数据库内容(如图8)。
4、配置特征库文件
配置特征库文件,是脚本编写中比较重要的一步,是实现同类别删除数据提取的关键步骤,需要借助“Sqlitecharactor特征库配置for sqlite2015”这一软件来实现。比如以图9中的蓝色条部分为例,通过给“tb_usermsg_12503**810配置特征库文件,可以实现所有这个名称格式的正常和删除文件提取。
自此,特征库文件配置完毕。为验证其正确性,我们可以通过Sqlite手机数据恢复工具进行检测效果,如图12所示。
图12:Sqlite手机数据恢复工具显示的删除内容(红色框部分)
效率源Sqlite手机数据恢复工具,是一款针对智能手机删除数据恢复、数据解密的软件,功能强大、准确率高。基于sqlite数据库文件,能够实现正常数据快速全面导出、删除丢失数据快速恢复导出、加密数据快速解密还原成可读信息。经验证(如图12),该特征库能够实现删除数据提取(红色框部分)。
5、脚本运行
通过在js里载入特征文件,然后把特征文件、“百度贴吧”脚本、“百度贴吧”图标放入SPF里面,然后运行就能提取恢复苹果手机里的“百度贴吧”数据了。
三.总结
通过以上介绍我们已经大概了解了IOS“百度贴吧”恢复数据的脚本开发过程,如果想熟练掌握还需要多动手练习,最主要的是需要了解应用数据的数据库储存结构以及对js语言的掌握,同时,也需要借助SPF9139物理镜像、脚本编辑器XLYScriptVisualStudio等软件。有一点必须注意,配置特征库文件是提取删除数据的必要步骤,如果只是解析正常数据,就不需要这个步骤。无论是Android还是iOS系统手机里的应用,基本都可以通过脚本插件载入SPF9139的方式,快速提取正常数据及恢复删除数据,且能导出相应的报告,以便于快速方便地取证。