李柏嵐, 谷大武, 李卷孺, 孫 明
(上海交通大學 計算機科學與工程系,上海 200240)
隨著移動智能終端的日漸普及,人們開始對它的功能需求有了進一步的提高。新一代的智能移動終端除了語音通信之外,還能播放影音、瀏覽網(wǎng)頁、游戲娛樂等。更重要的是,用戶可以從電子市場上下載并安裝第三方開發(fā)的應用程序。在所有的智能移動設備中,蘋果的 iPhone和 iPad深受用戶和安全研究人員關注。這些設備的核心是其中的操作系統(tǒng)——iOS。
由于蘋果對 iOS采取閉源不公開的政策,開發(fā)人員和用戶對其安全機制了解甚少。目前安全研究人員給出了一些安全模型[1]和數(shù)據(jù)保護機制[2]的細節(jié),但仍較難獲取iOS內部的信息。黑客社區(qū)工作者挖掘系統(tǒng)漏洞[3]、分析沙箱模型和數(shù)據(jù)加密[4]。電子取證專家通常需要通過越獄來獲得他們需要的信息,但越獄會改變系統(tǒng)原有的狀態(tài),所以他們更傾向于非入侵的方式。
雖然蘋果有著嚴格的安全保護措施以避免數(shù)據(jù)泄漏,但它留下了一條供用戶進行數(shù)據(jù)讀寫的通道。這就是iTunes的同步、備份與恢復機制,其中最值得關注的就是備份。iTunes 會自動為iOS設備創(chuàng)建備份,日后如需恢復到以前備份的狀態(tài)則可使用此備份。備份可以進行任意的復制,用于在其他機器上進行恢復。iTunes的備份恢復機制為用戶帶來了便利也產(chǎn)生了安全問題。通過備份,大量的數(shù)據(jù)保存到用戶電腦中,對用戶隱私造成威脅。然而學術界的研究集中在檢測在iOS應用程序中的隱私泄漏[5],備份機制的研究僅局限于取證分析[6-7]。文獻[8-9]從iOS備份機制著手,分析備份機制中存在的隱私泄露威脅。
這里主要描述分析備份中隱私數(shù)據(jù)的方法。分析過程分成 3個步驟:①生成備份;②解析備份;③分析備份。過程如圖1所示。
iPhone或iPad連接到電腦的時候,iTunes將自動同步電腦與設備之中的數(shù)據(jù),創(chuàng)建一個備份。也就是說,如果iOS設備曾經(jīng)與裝有iTunes的電腦連接過,那么備份文件已經(jīng)保存在電腦中備份目錄。
如果沒有備份,則通過如下兩種不同的方法來創(chuàng)建備份。第一種是使用 iTunes或者 iTunes提供的 AppleMobileBackup.exe來進行備份。iTunes與iOS設備之間通過蘋果文件通信(AFC,Apple File Communication)協(xié)議來進行通信。另一種創(chuàng)建備份的方法是使用 Libimobiledevice,它是一個支持AFC數(shù)據(jù)交互協(xié)議的 C語言庫。它支持 iOS的備份功能,還支持同步,獲取系統(tǒng)信息等功能。所以這也是一種創(chuàng)建備份的方法,這種方式的好處是它并不依賴于Windows,在 Linux下同樣可以運行,開發(fā)者可以更自由地控制它的通信。
iOS備份目錄名是被備份設備的惟一設備標識符(UDID,Unique Device Identification)。它由40位16進制字符組成,如:2b6f0cc904d137be2e1730 235f5664094b831186。備份目錄下的文件名都通過SHA-1哈希編碼,所以無法辨別文件信息。利用備份中的Manifest.mbdb和Manifest.mbdx文件可以解析出備份的結構。
Manifest.mbdb是備份的索引文件。它由一個定長的頭部和若干定長的記錄構成。
Manifest.mbdx記錄著文件信息,如:文件所在域、路徑,哈希值,文件大小等。
遍歷經(jīng)過解析后的備份目錄,分析檢查可疑文件。備份中大量的數(shù)據(jù)都是用 iOS原生支持的Sqlite數(shù)據(jù)庫格式保存,文中使用 Sqlite Database Browser來分析這些文件中的內容。Property List(Plist)也是 iOS支持的文件格式,它用來保存配置信息,使用Plist Editor來讀取其中的信息。
這里主要總結分析的結果,重點關 注與用戶隱私相關的信息。這些信息分成兩大類,系統(tǒng)內置信息和第三方應用程序信息。
表1列舉了iOS系統(tǒng)的內置信息。
表1 iOS備份中的系統(tǒng)內置信息
通訊錄。通訊錄是iOS中包含信息最多也是被其他程序調用最多的一個數(shù)據(jù)庫,它儲存在AddressBook.sqlitedb文件中,記錄著用戶所有聯(lián)系人的信息,包括電話號碼、郵箱地址和住址等。AddressBookImages.sqlitedb記錄著聯(lián)系人的照片。
通話記錄。通話記錄保存在call_history.db。記錄著所有歷史電話記錄。每一條電話記錄它包含通話的日期、通話時長和對應的電話號碼。
短消息。短消息存在sms.db中,記錄著手機中所有能讀取的短消息。每條記錄包括日期、時間、電話號碼、消息內容以及狀態(tài)(發(fā)送或者接收)。
郵件賬戶。iPhone的同步賬戶保存在com.apple.accountsettings.plist中,這個賬戶主要用來同步通訊錄和日歷。賬戶的密碼和具體的郵件內容并沒有保存。
位置信息。consolidated.db記錄著大量的經(jīng)緯度坐標和獲取該經(jīng)緯度的時間戳。這些數(shù)據(jù)通過基站的三角定位獲得保存于CellLocation表格中。WifiLocation表格中還記錄著無線路由器的位置和MAC地址。
照片。照片保存在MediaDomain下,DCIM.Photos.sqlite中記錄著照片的基本信息如拍攝時間、分辨率等。PhotoAux.sqlite包含照片的拍攝地點的坐標位置信息。
其他。除了之前所列之外,系統(tǒng)內部信息還包括日歷、備忘錄、鍵盤緩存、瀏覽記錄、書簽等。
備份中還包含著用戶安裝的第三方應用程序的信息。據(jù)統(tǒng)計,每個iOS用戶平均安裝大約37個應用,而這些應用由全世界各地的開發(fā)者提供。他們處理數(shù)據(jù)的方式各不相同,不局限于Sqlite數(shù)據(jù)庫或是Plist文件。實驗統(tǒng)計App Store上最流行的3類程序,下面對每一類進行分析。
(1)即時通訊類應用
即時通訊類應用中,實驗選取了Skype、騰訊QQ、飛信、Yahoo Messenger、WhatsApp和Windows Live Messenger,基本上涵蓋所有常用的即時通訊軟件,如表2所示,發(fā)現(xiàn)所有的應用都會記錄著用戶的賬號。實驗發(fā)現(xiàn)所有的應用都會記錄著用戶的賬號。更為嚴重的是67%的應用保存聊天記錄和好友信息。以WhatsApp為例,備份目錄下net.whatsapp.WhatsApp.plist文件中包含手機號碼構成的賬戶名。在ChatStorage.sqlite的ZWAMESSAGE表格中保存著聊天記錄的內容、時間、發(fā)送者,接收者。在ZWAFAVORITE表格中,記錄了好友的姓名以及他們的電話號碼。移動官方開發(fā)的最新飛信應用,賬號和密碼都保存在同一文件中。
(2)社交網(wǎng)絡類應用
社交網(wǎng)絡類應用中,實驗選取了新浪微博、Facebook、 LinkedIn、人人等應用程序,如表3所示,所有的應用都記錄著用戶名稱或者昵稱。新浪微博會將最近的微博內容緩存在數(shù)據(jù)庫中。Facebook記錄用戶的姓名,同時在名為Friends.db的數(shù)據(jù)庫中記錄著好友姓名、地址、電話號碼、郵件地址。對于LinkedIn應用,只保存用戶的姓名。人人應用沒有保存任何關于用戶狀態(tài)、朋友、聊天記錄的信息。但是,登陸的用戶名和密碼以明文形式一起出現(xiàn)。攻擊者用這個信息登陸人人就能獲得更多用戶的隱私信息。
表2 即時通訊類應用
表3 社交網(wǎng)絡類應用
(3)位置技術類應用
位置技術類應用中,實驗選取了大眾點評、街旁、丁丁生活、豆瓣活動、陌陌,它們是目前最流行的應用。如表4所示,在大眾點評和丁丁地圖找不到任何關于位置的信息。而這兩個應用在實際使用中提供了大量的基于位置的信息。豆瓣活動應用保存著最后登陸時的位置。街旁將用戶賬號和訪問過的評論緩存在Cache.sqlite中。在表格ZJPLOCATION中記錄著坐標,時間和地址。陌陌則會保存附近朋友的詳細信息。
表4 位置技術類應用
從前一節(jié)可以看出備份中包含了幾乎所有的個人信息,并且獲取這些信息的方法非常簡單。下面對隱私威脅模型中的每一類信息的影響進行分析。
用戶活動相關信息:主要包括短信息、聊天記錄、通話記錄,不論是系統(tǒng)還是第三方應用程序都直接記錄這些數(shù)據(jù)。通訊錄泄漏大量設備使用者朋友的信息,社交類應用程序也會將好友信息保存下來。這些數(shù)據(jù)對用戶隱私形成威脅,造成了直接的損害。
賬戶相關信息:所有第三方應用程序都會將用戶和一個賬戶關聯(lián),實驗表明賬戶信息會隨著備份的泄露而泄漏。這些賬戶的行為等價于用戶的行為,賬戶的匿名性不復存在。
地理位置信息:定位是新一代智能手機特有的重要功能,它被用在導航或者基于位置的應用中。但是,它可以悄悄的記錄用戶的空間活動信息。iOS系統(tǒng)和第三方應用都會記錄用戶的位置信息,它們通常與時間一起保存。這樣,攻擊者通過結合這兩部分信息就可以分析出用戶何時出現(xiàn)在何地,推斷用戶過去的行蹤。
多媒體信息:照片、視頻文件在網(wǎng)絡中傳播速度極快,有大量因為私人的照片,視頻造成的負面新聞,這些數(shù)據(jù)未經(jīng)保護散播出去后果難以想象。
并不是在什么場景下都能成功對備份進行分析。下面兩種情況就會對分析造成困難。
用戶可以設置密碼來鎖住iOS設備,這個密碼是一個4位的數(shù)字。當iOS設備連接到一個新的電腦時,只有密碼輸入正確后iTunes才會進行備份。但是,對于進行過備份的電腦會保存一份證書文件。攻擊者可以利用其他機器上保存的證書文件來繞過密碼進行備份。
用戶還可以選擇加密備份來保護他們的隱私。默認情況下備份是不加密的,用戶可以從iTunes中開啟加密選項,此后,備份文件全部都經(jīng)過加密。據(jù)蘋果官方描述,加密是使用AES-256 CBC來完成。這就意味著直接解密和破解AES難度一樣。
對于那些需要對用戶數(shù)據(jù)進行保護的用戶,這里建議加鎖來保護系統(tǒng),同時開啟備份加密功能。這樣可以完全防止隱私泄漏。文中發(fā)現(xiàn)第三方應用的程序泄漏了更多的隱私信息,部分原因是開發(fā)者沒有意識到他們不合理的軟件設計會帶來隱私威脅。所以,需要提醒開發(fā)者不要將用戶相關的數(shù)據(jù)保存在應用程序目錄,或者至少對這些數(shù)據(jù)進行加密。對于那些將用戶密碼也保存在配置文件中的應用,建議蘋果加以更加嚴格的審查,杜絕這類應用出現(xiàn)在電子市場之上。
文中揭示了備份機制帶來的潛在威脅,并深入的分析備份中的數(shù)據(jù),給出應對措施。通過描述獲取備份的和進行數(shù)據(jù)分析的方法,列舉出備份中包含的各類信息。傳統(tǒng)方法主要分析系統(tǒng)內置的信息,如:聯(lián)系人、通話記錄等。著重分析了備份數(shù)據(jù)中第三方應用存在的問題,這些應用程序受到大家的忽視,但他們存在更嚴重的隱私泄漏的威脅。最后,討論隱私泄露的影響以及預防的對策。
[1] CEDRIC H, JEAN S. iPhone Security Model &Vulnerabilities[R]. United States: HITB SecConf,2010.
[2] JEAN-BAPTISTE B, JEAN S. iPhone Data Protection in Depth[R].United States: HITB SecConf,2011.
[3] STEFAN E. Exploiting the iOS Kernel[R].United States: Black Hat,2011.
[4] DINO A, DAI Z. Apple iOS Security Evaluation:Vulnerability Analysis and Data Encryption[R].United States: Black Hat,2011.
[5] EGELE M, KERUEGEL C, KIRDA E, et al. PiOS:Detecting Privacy Leaks in iOS Applications[R].United States: NDSS,2011.
[6] JONATHAN Z. iPhone Forensics[S].United States:O’Reilly,2008:144.
[7] SEAN M. iOS Forensic Analysis[S].United States:Apress,2010:317.
[8] 王軍選.未來移動通信系統(tǒng)及其關鍵技術[J].通信技術,2009,42(09):142-144.
[9] 孫利.移動終端定制研究與分析[J].通信技術,2010,43(06):49-52.