文/楊哲慜楊珉
以谷歌公司的安卓系統和蘋果公司的iOS系統為代表的移動操作系統正逐漸取代桌面操作系統,成為公衆接入互聯網的主要入口平台。短短數年内,移動智能終端出現爆發式增長,據權威市場研究機構IDC的數據顯示[1],2013年全球智能手機的出貨量達4.3億台,比2009年增長了十倍,到2015年第二季度更是單季度出貨量達3.415億台,其主要增長來自于亞太和中東亞地區。
移動操作系統生态鍊正從智能手機拓展到如平闆電腦、智能家居、可穿戴設備、車載控制系統等多種衍生産品中,日益驅動着互聯網的改變和發展。作為移動互聯時代的突出标志之一,移動應用聚集大量高附加值的信息和資源。這些信息和資源不僅包含個人的手機信息、身份信息、地理位置信息,還包含諸多賬号信息以及郵件、文件等信息。
移動應用利用用戶賦予的個人信息為其提供便捷、即時、精确的定制服務。在這一背景下,移動平台得以取代傳統PC平台成為人們接入互聯網的首選方式。然而,移動平台的高度互聯性也是一把雙刃劍,它同時使用戶輕易暴露在攻擊者的威脅之下。受政治、軍事和商業利益驅使,針對移動終端系統的攻擊行為層出不窮,其中針對個人隐私的竊取行為又是其中的重災區。“棱鏡門”以及多項外電資料披露,多個國家在資助移動操作系統安全防護方法的同時,也在研究利用移動操作系統的安全缺陷,通過惡意軟件對我國重要人員以及公衆實施高級持續性的大規模數據搜集。美國政府曾在過去的三年中資助英國政府通信總部(GCHQ)1億英鎊,專門用于研究手機操作系統的攻擊方法。
在過去的2015年中,國内個人信息洩露事件頻發。中國互聯網協會2015年發布的《中國網民權益保護調查報告》[2]稱,2015年中,中國網民因個人信息洩露、垃圾信息、詐騙信息等現象導緻總體損失約805億元。其中,78.2%的網民個人身份信息被洩露過,63.4%的網民個人網上活動信息被洩露過。11月份被批露的百度Wormhole漏洞,其影響力覆蓋過億安卓手機用戶,造成大量用戶隐私洩漏風險。
面對移動互聯網用戶隐私保護的嚴峻形勢,隐私洩漏的檢測和保護近年來頗受關注。本文結合團隊的研究成果和正在進行的研究工作,揭示了移動應用隐私洩露檢測和防護的總體進展,并在增強對用戶隐私的識别和保護能力等方面提出值得關注的方向。
主要技術發展曆程
自從2008年第一部安卓智能手機面世以來,智能移動終端正在逐漸取代PC成為彙集個人隐私的核心媒介。這在賦予智能移動終端越來越強大功能的同時,也給個人隐私安全防護提出了必須面對的嚴峻挑戰:面對海量的移動應用,種類衆多的隐私數據,複雜的數據流動渠道,如何确保個人隐私不被惡意利用?針對這一問題,早期的隐私洩漏分析的關注點主要集中在敏感數據的傳播上。研究人員通過用戶的隐私數據是否離開移動設備來判斷應用是否存在隐私洩露,并從隐私洩漏的檢測和防護兩個方面展開研究:
1.隐私洩漏檢測
從核心原理來看,隐私洩露檢測技術經曆了靜态分析、動态分析、動靜态分析結合的發展路線。
靜态分析方法通常采用靜态數據流分析的手段分析程序中的靜态敏感數據流向,如加利福尼亞大學戴維斯分校的Androidleaks系統[3]、加利福尼亞大學伯克利分校的ComDroid系統[4]、我們之前提出的LeakMiner系統[5]、喬治亞理工的Chex系統[6]和德國達姆施塔特工業大學的FlowDroid系統[7]。在隐私洩露檢測上,靜态分析方法具有運行速度快,代碼覆蓋率高等特點,但是由于靜态方法無法反映惡意軟件運行時的動态行為,使得這類檢測方法的實際效果受到明顯影響。在攻防持續對抗的過程中,攻擊者如果采用代碼混淆技術也可輕易規避此類方法的檢測。
意識到靜态分析的缺陷,動态分析方法根據應用程序的敏感信息傳輸特征動态監測安卓系統中的惡意隐私洩露應用,其中最有代表性的是賓夕法尼亞大學的WilliamEnck等人提出的TaintDroid系統[8],該系統通過修改安卓内核代碼,利用動态指令插樁的方式實時監控程序中的數據傳播過程,并在發生敏感數據傳播時警告用戶。劍橋大學的RubinXu等人提出的Aurasium系統[9]則通過另一種方式實現了類似的功能,他們通過對需要監控的應用程序進行重打包,以此給應用程序插入監控邏輯。相比靜态分析方法,動态數據流跟蹤具有分析精度高的特點,但是由于動态監測技術的局限,其具有代碼覆蓋率不足、檢測結果滞後于數據傳輸發生等問題。
鑒于動、靜态分析在隐私洩露檢測過程中的不足和優點,如果可以結合兩種分析方法,綜合利用其優勢,實現既具有較高覆蓋率和檢測速度,又具有高分析精度的檢測方法就具有了相當大的現實意義。筆者在2013年提出的AppIntent系統[10]對此作了一些嘗試,AppIntent首先利用靜态數據流分析獲取應用程序中敏感數據傳播的候選集,再通過動态符号化執行驗證候選敏感數據流是否會真實發生。通過結合兩種分析方法,可以在較短時間内,在不損失分析覆蓋率的前提下,提高隐私洩露的檢測精度。
2.隐私洩漏防護
在隐私洩漏的防範方面,移動終端系統主動抑制惡意軟件對敏感資源的不合理使用是防範惡意軟件的重要途徑。微軟雷蒙德研究院的JaeyeonJung研究員提出AppFence系統[11]在動态檢測隐私洩漏風險的基礎上實時阻止軟件對隐私信息的收集行為。北卡羅來納大學的WilliamEnck教授所在團隊提出的Kirin
[12]和Saint[13]系統用于阻止一個應用軟件同時申請多個可疑的敏感資源。此外,雪城大學的WenliangDu教授所在團隊提出的AFrame系統[14]、伯克利的DavidWagner教授所在團隊提出的AdDroid系統[15]、和萊斯大學的ShashiShekhar等人提出的AdSplit系統[16]均通過進程隔離的方式限制程序内部不可信組件對敏感資源的使用。此外,劍橋大學的RossAnderson等人提出的Aurasium系統[9]提供給用戶直接管理程序訪問敏感資源行為的能力。
隐私洩漏研究的新問題
随着隐私洩漏研究的深入展開,近年來研究者們逐漸意識到傳統的隐私洩漏定義并不準确。而該定義的不精确和不完整限制了隐私洩漏檢測技術的效率和效果。為了在隐私洩漏檢測和防護過程中獲得更準确更全面的結果,相關研究在以下兩個方面對隐私洩漏定義進行了修正。
1.隐私洩漏的用戶感知問題
基于敏感數據傳播的隐私洩漏檢測技術認為:通過檢測用戶的隐私數據是否離開移動設備就可以判斷應用是否存在隐私洩露。事實上,由于大量手機應用都采用雲計算,許多非惡意應用均利用雲服務器為終端用戶提供定制化服務。這些應用通常需要收集一些敏感數據(比如位置、聯系人信息等),并将其發送到自身服務器。而一些惡意應用在竊取用戶敏感數據後也表現為類似的行為,也就是将隐私信息傳送到自己的服務器。因此,僅僅依靠應用程序是否傳輸敏感數據不可以真正判别出應用軟件是否存在隐私洩露。
意識到這一問題之後,安全研究人員通過不斷改進隐私洩漏的判斷标準,力圖提高隐私洩漏檢測的精度。美國杜克大學的PeterGilbert等人提出的Vision系統[17]認為如果應用程序将自身敏感數據傳輸行為加入最終用戶許可協議(EULA)并得到用戶許可,或者應用程序在敏感數據傳輸行為發生時明确的通知告知用戶,則該數據傳輸可以被認為并非隐私洩露。與之類似的是,佐治亞理工學院的WenkeLee教授所在團隊提出的BLADE系統[18]通過識别應用程序是否得到了用戶許可,來檢測從網絡上動态下載的惡意軟件。然而,手機應用一般不提供最終用戶許可協議(EULA),同時,即使在數據傳輸符合用戶意圖的時候(如轉發短信),應用程序也很少向用戶彈出顯式的用戶提示。伯克利的DawnSong教授所在團隊提出的Pegasus系統[19]以應用程序使用API和權限的順序為特點來檢測軟件惡意行為。與我們的研究類似的是,它也檢測那些與圖形界面操作不相符的惡意行為。然而,隐私洩露無法通過簡單的權限或者API的使用順序來概括。因此應用程序的隐私洩露行為無法通過這種方法被檢測出來。此外,Pegasus需要分析人員根據應用程序的行為手動指定用戶程序行為驗證的屬性特征。在不了解應用程序代碼的情況下,分析人員很難制定這些屬性特征。這些方法通過歸納隐私洩漏行為的外部表征試圖區分隐私洩漏和應用軟件的正常敏感數據傳輸行為,對隐私洩漏的精确檢測進行了有效嘗試,但是這些方法仍然不能準确判斷隐私洩漏。
筆者所在團隊于2013年發表在CCS會議上的論文[10]中提出了另一種判斷隐私洩漏的方法,即一個更好的隐私洩露判别方法應該是敏感信息傳輸是否出于用戶本身的意圖。
(1)符合用戶意圖的敏感數據傳輸。為了使用應用軟件的一些功能,用戶經常需要容忍自己的隐私數據經過特定渠道被發送出手機。比如,當使用輔助管理短信的應用時,用戶可以通過點擊屏幕上的一些按鈕将特定短信轉發給其它用戶;而在使用一些基于用戶地理位置的服務時,用戶為了得到一些其感興趣的内容,往往要允許将自己的位置信息發送給應用服務器。由于這類功能在使用敏感數據時,用戶已經知情,所以不應該将其歸類為隐私洩露。
(2)不符合用戶意圖的敏感數據傳輸。惡意應用在用戶不知情且與用戶使用的功能無關的情況下非法傳輸敏感數據,我們稱之為用戶不知情的敏感數據傳輸,或者叫隐私洩露。在大部分情況下,惡意應用為了使得用戶很難察覺到其惡意行為,通常都會秘密傳輸敏感數據。