「电子数据取证」WhatsApp数据恢复提取技术详解

「电子数据取证」WhatsApp数据恢复提取技术详解_第1张图片

背景介绍

WhatsApp是全球最流行的即时通讯软件之一。根据2017年7月的统计数据,其月活跃用户数量达到了13亿。

而用户使用其交换的数据可能包含潜在的重要电子数据证据,因此WhatsApp是公检法取证行业中重点关注的应用之一。但是在针对WhatsApp取证的过程中,公检法取证人员可能会遭遇一系列的障碍,例如:数据库加密,系统的安全机制,数据被删除破坏等。

「电子数据取证」WhatsApp数据恢复提取技术详解_第2张图片

Part1:如何解密被加密的WhatsApp数据库

WhatsApp与很多其他App类似,使用SQLite数据库来存储它的数据。对于电子取证行业来说,其中最重要的是msgstore.db和wa.db这两个数据库文件。

msgstore.db中存储了聊天记录,wa.db中存储了联系人清单

这些数据库文件很容易获取,因为WhatsApp自带备份功能,可以将数据库文件备份到SD卡中,取证人员不需要获取root权限就可以获得数据库文件。

「电子数据取证」WhatsApp数据恢复提取技术详解_第3张图片

但有一个问题是在最新版本的WhatsApp中,所有备份出来的数据库都是加密的,无法直接进行分析。数据库使用AES-256加密,媒体文件不加密。

怎样解密加密的WhatsApp数据库?

最关键的是获取到key文件。key文件是和备份同时生成的密钥文件,并且key文件因手机设备而异。所以要想解密数据库,必须首先从生成备份的手机上获取到key文件,其存储路径为:userdata/data/com.whatsapp/files/key

「电子数据取证」WhatsApp数据恢复提取技术详解_第4张图片

根据效率源科技工程师的逆向工程和分析结果,我们开发出了一个WhatsApp数据库解密算法,并且我们将尽快将其集成到我们的手机取证系统中。帮助取证人员在不具备编程知识的情况下也能应对数据库加密的问题。

「电子数据取证」WhatsApp数据恢复提取技术详解_第5张图片

Part2:如何绕过WhatsApp加密保护?

解密数据库就需要获取key文件,但是key文件的存储路径需要root权限才能访问,所以在没有root权限的情况下key文件是很难获取到的。

那怎样可以绕过WhatsApp数据库加密的保护机制来提取数据呢?

通过WhatsApp自带的备份功能备份的数据库文件是加密的,但是其本身的文件夹中存储的数据库文件并没有加密,常见的提取方法有下面两种:

1.使用系统的备份功能

一些定制的安卓操作系统自带App数据备份功能(如小米、华为、OPPO)。系统备份可以将App的数据文件备份到SD卡中,让取证人员可以轻松获取。

下图展示的是以小米手机为例的备份操作过程:

找到并打开备份功能,创建一个新的备份,确保勾选备份WhatsApp且不要设置备份密码。

「电子数据取证」WhatsApp数据恢复提取技术详解_第6张图片

接下来就可以在SD卡中找到WhatsApp的备份文件了,这样创建的备份将会是未加密的且包含了所有的数据库以及key等文件,取证人员仅需使用相应的数据库解析工具加载即可。

「电子数据取证」WhatsApp数据恢复提取技术详解_第7张图片

2.降级备份

另一种方法是将WhatsApp应用降级到还没有备份加密的版本。WhatsApp 2.11.431版本是其最后一个不进行强制备份加密的版本,所以我们的方法就是在不删除数据的前提下,把应用降级到2.11.431以下然后进行备份提取。

但是,降级的操作要求取证人员具备一定的专业技能,若操作不当降级过程存在风险可能导致重要数据丢失。因此我们强烈建议使用专业的取证工具协助进行降级,不要手动操作。

「电子数据取证」WhatsApp数据恢复提取技术详解_第8张图片

 效率源SPF智能手机数据恢复取证系统界面截图

第三部分:如何恢复删除的WhatsApp消息

现在我们知道了怎样提取WhatsApp的数据库文件,那么怎样利用数据库文件恢复删除的WhatsApp消息呢?

首先我们需要了解,删除WhatsApp消息的方式有两种。一种是长按一条或多条消息并点击删除以逐条删除,另一种是在设置中一键清除/删除所有聊天消息。

「电子数据取证」WhatsApp数据恢复提取技术详解_第9张图片

而这两种方式删除的消息理论上都可以通过下面介绍的方法来恢复。

正如上文提到的,WhatsApp使用SQLite数据库存储其数据,而与安卓不同,苹果手机将所有WhatsApp的数据存储在ChatStorage.sqlite文件中。SQLite数据库文件往往都伴随着以“-wal”结尾的缓存文件,绝大数时候该文件的大小是0,但也有例外,若该文件不为0的时候,里面就存放了部分未来得及存放到该数据库中的信息。

「电子数据取证」WhatsApp数据恢复提取技术详解_第10张图片

如果对该缓存文件不进行处理,而直接打开该数据库,则会导致缓存文件被覆盖,那么里面的信息也就全部丢失了。

Whatsapp的正常聊天记录是存放在msgstore.db中,而通过分析之后发现删除记录是存放在msgstore.db-wal中的,该文件是msgstore.db的缓存文件。Whatsapp在存放聊天记录的时候都会先存放在该缓存文件,所以我们可以看到数据库的文件还没有缓存文件大。这是因为同一条消息在数据库中只会存放一条,但是在缓存文件中就可能出现很多次,这也为删除记录的恢复提供了可能。但在处理该缓存文件之前是不能直接打开数据库文件的,所以在此之前需要进行特征匹配处理,将缓存文件中的记录数据保存下来,再对数据进行处理。

例如消息“Thisisa test message”,在消息被删除后,很多时候其对应的在msgstore.db数据库中的记录也可能被清除掉了。

「电子数据取证」WhatsApp数据恢复提取技术详解_第11张图片

但是,即使这样,这条消息仍有可能在缓存文件msgstore.db-wal中留有记录。下图展示了这条消息被删除后缓存文件发生的变化,可以看到消息的记录数据并未丢失,且其偏移位置都没有发生变化。

「电子数据取证」WhatsApp数据恢复提取技术详解_第12张图片

因此,通过对缓存文件msgstore.db-wal进行分析提取,我们可以提供一种恢复删除或丢失的WhatsApp消息记录的方法,这种方法能够快速高效恢复删除记录,而且针对单条删除、整条删除、清除所有对话以及删除所有对话都能够有效的恢复出删除聊天记录。

借助效率源取证专家的研发成果,我们可以对未root的安卓手机解密加密的WhatsApp数据库,对安卓、苹果手机恢复删除、丢失的WhatsApp数据。

针对WhatsApp取证,效率源科技专门开发了一款取证小工具,这个小工具将集成到SPF9139智能手机数据恢复取证系统中,以帮助公检法机构获取更多的电子证据。

你可能感兴趣的:(取证设备,取证技术)