移動(dòng)安全
移動(dòng)平臺(tái)應(yīng)用軟件隱私威脅與保護(hù)
張?jiān)磸?fù)旦大學(xué)系統(tǒng)軟件與安全實(shí)驗(yàn)室副主任
輸入類的隱私威脅,是移動(dòng)平臺(tái)隱私威脅的重災(zāi)區(qū)。目前的方法很難有效地保護(hù)用戶輸入的隱私,核心困難在于它沒(méi)有辦法系統(tǒng)化地識(shí)別哪些隱私數(shù)據(jù)是用戶輸入的隱私。
移動(dòng)平臺(tái)上,用戶輸入的信息是隱私數(shù)據(jù)的主要來(lái)源!
由于歷史信息的泄漏,攻擊者可以進(jìn)行精準(zhǔn)攻擊。在絕大部分情況下,被泄漏的這些地址信息其實(shí)是用戶由于一些業(yè)務(wù)的需求,主動(dòng)地輸入到一些網(wǎng)站或者App,而這些App或者網(wǎng)站并沒(méi)有保護(hù)好這些隱私。在移動(dòng)平臺(tái)上,這種用戶輸入的隱私是非常普遍的情況。我們通過(guò)交互不斷提供一些隱私給App,從而得到App更好的服務(wù)。所以我們認(rèn)為在移動(dòng)平臺(tái)上,針對(duì)用戶輸入的隱私與否將是隱私保護(hù)的重要區(qū)域。
在移動(dòng)平臺(tái)上,有三種比較主流的用戶輸入信息,賬號(hào)信息、地址信息,資金賬戶信息等,這些都是用戶特別私密的信息。這類數(shù)據(jù)有什么樣的特點(diǎn)呢?我們發(fā)現(xiàn)它至少有三個(gè)方面的特點(diǎn)。首先,數(shù)據(jù)格式是特定的,賬戶就是一個(gè)密碼,地址就是省、市、街道詳細(xì)地址,在結(jié)構(gòu)上是不一樣的,所以沒(méi)辦法通過(guò)輸入看出來(lái)。第二,每個(gè)App都有自己的界面和函數(shù),去獲取這樣的數(shù)據(jù)。第三,用戶輸入的數(shù)據(jù),它的獲取形式是多樣的,有些可能通過(guò)輸入框,有些是讓用戶去選。那么,該怎么保護(hù)它呢?
目前,在隱私保護(hù)方面的工作主要分為兩類:第一類隱私監(jiān)測(cè)的范疇,通過(guò)動(dòng)靜態(tài)的分析過(guò)程,跟蹤隱私在App過(guò)程的流轉(zhuǎn),一旦發(fā)現(xiàn)被不安全發(fā)送出去了會(huì)告訴用戶。第二類是網(wǎng)絡(luò)控制機(jī)制,通過(guò)操作系統(tǒng)和其他手段設(shè)置App訪問(wèn)隱私數(shù)據(jù)的模式,通過(guò)這個(gè)框架,基于這個(gè)規(guī)則去控制程序。
這兩個(gè)工作有一個(gè)統(tǒng)一的特點(diǎn),它們大部分主要通過(guò)一些API獲得系統(tǒng)內(nèi)件。分析之前的特點(diǎn),這種工作并沒(méi)有直接保護(hù)用戶輸入的隱私,因?yàn)橛脩糨斎氲碾[私不是監(jiān)管過(guò)程。那是不是說(shuō)這些系統(tǒng)工作完全沒(méi)有辦法用于保護(hù)數(shù)據(jù)呢?現(xiàn)有工作主要的問(wèn)題在于無(wú)法識(shí)別哪些是用戶輸入的隱私數(shù)據(jù)。在移動(dòng)平臺(tái)上針對(duì)用戶輸入隱私數(shù)據(jù)的保護(hù)而言,哪些數(shù)據(jù)是用戶輸入的隱私,這是非常重要的問(wèn)題。
同時(shí),在保護(hù)這些隱私方面,必須識(shí)別出來(lái)這些App到底有哪些輸入的隱私,通過(guò)哪些控件輸入給App,這樣才能更好地保護(hù)這類隱私。
我們主要設(shè)計(jì)了自動(dòng)化的方法,能夠識(shí)別一個(gè)App中到底會(huì)要求用戶輸入哪些數(shù)據(jù),到底通過(guò)哪些控件來(lái)輸入隱私數(shù)據(jù)?;谶@樣的工作,同時(shí)還設(shè)計(jì)了一個(gè)輕量級(jí)的隱私數(shù)據(jù)保護(hù),防止中間人的攻擊。
希望通過(guò)識(shí)別隱私的控件,更加精確地識(shí)別哪些控件是要求我們輸入隱私的。我們發(fā)現(xiàn)在App中輸入信息有很多途徑,比如說(shuō)下拉菜單是一種方式,針對(duì)開(kāi)發(fā)者的組件也是一種方式,可以通過(guò)類型簡(jiǎn)單地把輸入和非輸入?yún)^(qū)分出來(lái)。
核心的思路是希望基于這個(gè)程序,發(fā)現(xiàn)訪問(wèn)控件文本的行為到底是不是在獲取用戶輸入的一些文本。在圖1中,左側(cè)是一個(gè)輸入信用卡的卡號(hào)界面,右邊是對(duì)應(yīng)的代碼,我們進(jìn)行了分析,發(fā)現(xiàn)這個(gè)控件是一個(gè)隱私相關(guān)控件,它在這個(gè)地方會(huì)得到應(yīng)用。它有一個(gè)函數(shù),在addcardlistener的框架里面,會(huì)有一個(gè)文本。由此,我們獲取的這樣一種特征,作為識(shí)別一個(gè)控件到底是不是接收、輸入的判斷標(biāo)準(zhǔn),從而比較好地將哪些只顯示隱私文本的相關(guān)控件去除掉。
試驗(yàn)選取的數(shù)據(jù)是來(lái)自谷歌應(yīng)用商城的17425個(gè)應(yīng)用。在這17000個(gè)應(yīng)用中,有35個(gè)類別都會(huì)收集用戶隱私。因?yàn)锳pp收集的數(shù)據(jù)常常是出于業(yè)務(wù)的需求,這在App當(dāng)中也是非常普遍的,之前并沒(méi)有很好的方法對(duì)它進(jìn)行保護(hù)。針對(duì)用戶賬號(hào)這類的UIP數(shù)據(jù),比例較高的主要是社交應(yīng)用,跟天氣相關(guān)的App等;針對(duì)地理位置的隱私信息,在天氣、出行、搜秀這些App當(dāng)中比例比較高;針對(duì)支付類的信息,這類信息的隱私信息搜集很高,也是基本符合認(rèn)知常識(shí)的。最終挑選了200個(gè)應(yīng)用,在十個(gè)類別中,對(duì)精確率進(jìn)行了衡量。效果很好,系統(tǒng)能夠比較準(zhǔn)確地識(shí)別到93.6%的UIP控件,針對(duì)所有可能的UIP控件識(shí)別率達(dá)到了90.1%的水平。
(本文根據(jù)復(fù)旦大學(xué)系統(tǒng)軟件與安全實(shí)驗(yàn)室副主任張?jiān)丛谥袊?guó)互聯(lián)網(wǎng)安全大會(huì)ISC2016的分論壇“移動(dòng)安全發(fā)展論壇”上的演講內(nèi)容整理。)