WhatsApp取證:解密資料庫並提取Android設備上已刪除信息
WhatsApp是世界上最受歡迎的即時通訊工具之一,根據2017年7月的統計數據,每月全球有13億活躍用戶會在WhatsApp上免費交換各種信息。由於WhatsApp 已經把數十億用戶的每次對話添加了端到端加密,再加上Whisper(耳語)團隊的匿名社交技術,這個移動信息巨人大大提高了全球數字通信的隱私,即使信息被人成功攔截了,通信內容也不會泄露。比如,為了調查某個嫌疑犯,政府會對其通信記錄進行取證,但這明顯違反了公司的安全隱私標準和規則,所以調查人員要想得到其中至關重要的犯罪信息,就必須對WhatsApp取證。
這就是為什麼WhatsApp目前已成為移動取證領域的熱門領域,然而,眾所周知,對智能手機的取證並不是那麼容易。調查人員在取證過程中可能會遇到各種各樣的困難,比如資料庫加密、系統安全、刪除的消息等。因此,在本文中,我將討論如何解密加密的WhatsApp資料庫,如何繞過WhatsApp加密並恢復被刪除的WhatsApp消息。
如何解密加密的WhatsApp資料庫
與許多其他智能手機應用程序一樣,WhatsApp也會將數據存儲在SQLite資料庫文件中。對於Android設備來說,有兩個最重要的WhatsApp資料庫,即包含聊天記錄的msgstore.db以及包含聯繫人列表的wa.db。這些資料庫文件很容易被取證人員所掌握,因為WhatsApp具有備份功能,它可以為SD卡創建資料庫備份,從而無需root許可權就可以訪問。
然而,對於執法調查人員來說,他們所面臨的一個嚴重的問題就是WhatsApp最近不斷更新的安全措施,比如WhatsApp的資料庫被加密後,就不能直接進行分析。聊天記錄,消息和通話記錄則使用了行業標準的AES-256加密,除此之外,照片和視頻等未加密的媒體文件,也把加密從Crypt5,Crypt7,Crypt8更新為了Crypt12。
那麼我們如何解密加密的WhatsApp資料庫呢?最重要的一步是獲取密碼密鑰。密碼密鑰是用戶第一次創建時,與WhatsApp備份一起生成的,且密鑰永遠不會存儲在雲中,而是僅保存在智能手機中,並且每個智能手機的密鑰都是唯一的。所以為了解密一個加密資料庫,分析人員就必須首先從創建備份的設備中提取密碼密鑰。密鑰可以在以下位置找到:userdata/data/com.whatsapp/files/key。
在這裡我要提一下中國的SalvationDATA(效率源)取證工具,SalvationDATA自主可控,智能化高、操作方便、提取功能強、高效快捷、不傷害存儲設備,在海外取得了8項歐盟CE認證、美國FCC認證。在過對SalvationDATA研究的基礎上,我又開發了一種有著特殊的演算法的工具,該工具可以使用密鑰文件來解密加密的WhatsApp資料庫。很快我就將發布該工具並將其集成到智能電話取證系統(SPF)中,這樣調查取證人員就可以在不知道任何計算機編程知識的情況下對加密的WhatsApp資料庫進行解密。取證人員只需要導入密鑰文件和加密的資料庫,程序就會相應地生成解密過的資料庫文件。
如何繞過WhatsApp加密
但是,如果取證人員沒有設備的root許可權,那獲取密鑰文件就很困難了。因此,在這一部分,我將討論如何繞過WhatsApp加密,換句話說,就是要如何在沒有root許可權的情況下提取WhatsApp數據。
由於密鑰文件和未加密的資料庫始終存儲在WhatsApp的文件夾中,如果調查人員能夠得到這些文件,他們就可以查看該設備上的所有WhatsApp通信歷史記錄。所以唯一的問題是,他們只有獲得root許可權才能直接訪問這些文件。
在沒有root的情況下提取WhatsApp數據大致有以下兩種方法:
系統備份和恢復
第一種方法就是利用Android系統的備份和恢復功能,許多Android手機製造商會允許用戶使用內置的系統應用程序來創建備份。以這種方式創建的備份文件會存儲在SD卡中並且不會加密。因此,這對執法部門來說是一種訪問WhatsApp通信歷史的簡單方法。
下圖就是使用OPPO智能手機創建WhatsApp備份的例子,用戶可以在工具中找到備份還原,然後創建新的備份並記住選擇WhatsApp。
然後用戶可以在手機的SD卡上找到WhatsApp備份,該備份將包括所有未加密的資料庫和WhatsApp的密鑰文件。現在,用戶所要做的就是使用移動取證工具來分析資料庫。
降級備份(Downgrade Backup)
另一種方法是將WhatsApp應用程序降級到沒有備份加密功能的版本,WhatsApp v.2.11.431是沒有強製備份加密的WhatsApp的最後一個版本。所以關鍵是在不刪除用戶數據的情況下將WhatsApp降級到v.2.11.431,然後使用舊版本的WhatsApp創建備份文件並提取資料庫。
不過這個過程需要專業技能,並有永遠丟失數據的風險。因此,強烈建議使用專業取證工具進行降級。
如何恢復已刪除的WhatsApp消息
現在我們已經知道如何從智能手機中提取WhatsApp資料庫文件了,現在讓我們繼續探討一下如何恢復已刪除的WhatsApp消息?看看如何使用資料庫文件並在Android和iOS設備上恢復已刪除的WhatsApp消息。
用戶可以有兩種方式來刪除WhatsApp消息,即可以使用clear聊天按鈕逐個刪除或使用delete聊天按鈕一次性刪除消息。根據我的測試,以上述任何一種方式刪除的消息都可以使用下面的方法恢復。
正如我前面介紹的那樣,WhatsApp使用SQLite資料庫來存儲它的消息。但與Android不同的是,iOS會將所有相關的WhatsApp數據存儲在一個名為ChatStorage.sqlite的資料庫中。這些資料庫文件通常帶有後綴「-wal」的緩存文件。在大多數情況下,這些緩存文件的大小為0,但如果不是0,緩存文件可能包含尚未存儲在資料庫中的重要數據。這種情況必須小心處理,因為如果我們將緩存文件放在無人看管的位置,存儲在其中的信息將被覆蓋並永久丟失。
根據我的分析,正常的可訪問的WhatsApp消息存儲在msgstore.db中,而刪除的消息存儲在msgstore.db-wal中,它是消息存儲的緩存文件。在將消息保存到真正的資料庫之前,WhatsApp總是先將消息存儲在緩存文件中。
有趣的是,有時緩存文件甚至比資料庫文件本身還要大。這是因為一條消息只能作為一條記錄存儲在資料庫中,而高速緩存文件這沒有這樣的限制,一條消息可能同時存在多條記錄,這使得恢復被刪除或丟失的WhatsApp消息成為可能。
但是,為了避免覆蓋緩存文件中存儲的數據,我們必須在正確處理緩存文件之前不要直接打開資料庫。我們必須首先處理緩存文件,通過匹配簽名,保存和分析緩存文件中的所有數據。
以一條測試消息記錄為例,我做一下具體介紹,在用戶刪除此消息之後,此消息的記錄通常也會從msgstore.db資料庫文件中刪除。
但實際上,此消息仍可能存儲在緩存文件msgstore.db-wal中。下圖顯示了消息被刪前後發生的一些變化,以下是一條被刪除的測試消息,我們可以看到,在消息被刪除之後,這個消息的數據仍然保留在緩存文件中,甚至消息記錄的偏移位置也不會改變。
因此,通過分析和提取緩存文件msgstore.db-wal中的數據,你就可以恢復已刪除或丟失的WhatsApp消息。上述解決方案已被證明是一種高效可靠的提取已刪除的WhatsApp數據的方式,這是恢復刪除消息和清除聊天記錄的完美解決方案。
總結
通過對SalvationDATA的研究,我可以解密加密的資料庫並提取未經授權的Android設備上已刪除信息。請注意,上述所有技術和解決方案已經或即將發布並集成到智能手機取證系統(SPF)中。
※首個使用Kotlin語言編寫的惡意應用程序亮相
※暴雪遊戲存在嚴重遠程控制漏洞,數億用戶受影響
TAG:嘶吼RoarTalk |