閑談:關(guān)于安卓系統(tǒng)權(quán)限問題的一些思考
安卓系統(tǒng)的權(quán)限管理,一直以來都算得上是件非?;靵y的事情,這一點不僅僅是大量相關(guān)研究者看的很清楚,許多該系統(tǒng)的使用者也切實地感受到了安卓手機的一些弊病。
最近,正好閱讀和整理了一些關(guān)于安卓系統(tǒng)權(quán)限管理方面相關(guān)的文章,在此對其做一些梳理和總結(jié),并談?wù)剛€人的理解。
每當拿到一部安卓手機,并且做完初始化操作之后,我做的第一件事情必定是在系統(tǒng)允許下卸載掉大部分的預(yù)裝應(yīng)用,這些對我來講都算得上是劣質(zhì)應(yīng)用了,我和它們的關(guān)系可以說是基本屬于正交。
APP預(yù)裝,應(yīng)該算得上是應(yīng)用軟件開發(fā)者用來推廣的一個重要方式了。通過掏一大筆錢的方式,來讓手機廠商在硬件寫入或者在系統(tǒng)中植入自己的APP,進而得到大量新注冊用戶,是APP廠商的一貫做法。然而,這么多的預(yù)裝應(yīng)用被打包進固件的過程,對于用戶來說基本上算是個黑盒了,即透明度為零。
安卓系統(tǒng)本身極強的開放性,導(dǎo)致其現(xiàn)在擁有了各式各樣不同的利益相關(guān)者,以及由該系統(tǒng)構(gòu)成的復(fù)雜供應(yīng)鏈生態(tài)系統(tǒng)。其中,無論是制造商,還是附屬于手機廠家的開發(fā)者和經(jīng)銷商,都可以任意向系統(tǒng)中添加專有的應(yīng)用程序以及更高級別的功能,乃至于可以完成一個定制系統(tǒng)的設(shè)計與商業(yè)化。
那么,在眾多各為其主的廠商控制之下的龐大預(yù)裝軟件,是否都是安全且無危害的呢?答案是:否
去年發(fā)表在Oakland S&P上發(fā)表的一篇文章[1]曾對此做出過相關(guān)調(diào)研,國內(nèi)常見的小米、華為、vivo、oppo和魅族等手機廠商均在其研究范圍之內(nèi)。
根據(jù)文章的統(tǒng)計數(shù)據(jù)顯示(此分析發(fā)生在 2018 年 11 月 19 日),只有9%的預(yù)裝應(yīng)用可以在Play Store中被檢索到,而74%的非公開應(yīng)用基本上沒有進行過更新,41%的應(yīng)用在5年乃至更長的一段時間內(nèi)都沒有任何補丁更新,這意味著很多過時的漏洞都可以輕易入侵這些預(yù)裝軟件。
除了被入侵之外,這些軟件本身就有可能是惡意軟件,來主動入侵用戶系統(tǒng)以謀取利益。
例如,手機供應(yīng)商、分析服務(wù)及在線服務(wù)聲明的許多自定義權(quán)限都存在一定的安全隱患,以及易受攻擊的模塊。
此外,不同安卓廠商手機的權(quán)限請求數(shù)量差異極大,可以從google的9個核心模塊權(quán)限數(shù)量申請,到三星設(shè)備中的100多個權(quán)限的所區(qū)。此外,作者還舉了個例子,com.android.contacts平均權(quán)限數(shù)量為35個,而在三星、華為、Advan和LG的設(shè)備中均申請超過了100這個數(shù)字。
除此之外,許多安卓預(yù)裝應(yīng)用還存在請求訪問簽名或某些危險權(quán)限的TPL,這使得系統(tǒng)的重要敏感資源更容易被暴露。
最后,作者還通過手工逆向分析來對158個APP做了分析,結(jié)果顯示如下
首先,在市場上大量的低端安卓設(shè)備和部分高端設(shè)備中,發(fā)現(xiàn)了包括 Triada、Rootnik、SnowFox、Xinyin、Ztorg、Iop 和由 GMobi 開發(fā)的可疑軟件,它們的惡意行為包括包括銀行欺詐、向付費號碼發(fā)送短信或訂閱服務(wù)、靜默安裝其他應(yīng)用程序、訪問鏈接和展示廣告等。
其次,幾乎所有允許訪問PII的應(yīng)用都存在手機潛在的個人軟硬件用戶信息搜集,以及上傳功能。
最后,在612 個預(yù)安裝的應(yīng)用程序中,作者發(fā)現(xiàn)了許多潛在的危險應(yīng)用程序,根據(jù)它們的包和應(yīng)用程序名稱,其可能會實現(xiàn)工程模式或工廠模式功能。此類功能包括相對無害的任務(wù),例如硬件測試,但也包括潛在危險的功能,例如 root 安卓手機設(shè)備的能力。
談到最后,作者也給出了其構(gòu)想的解決方案,例如,引入并使用全球信任的證書機構(gòu)簽署的證書,建立證書透明庫等,以及在預(yù)裝應(yīng)用中附帶相應(yīng)的說明文檔,方便用戶知情。
作者的建議,在我來看主要有兩個問題
第一、目前并沒有一個強制的第三方機構(gòu)或者政府機關(guān)來迫使手機廠商將權(quán)限公開透明化,而靠廠商自覺的話,必然會與整個手機供應(yīng)鏈中的某些企業(yè)的利益有所沖突,ta們是否會在非強迫狀態(tài)下做出讓步呢?我看不太現(xiàn)實,除非消費者用某種手段傷害到了ta們的切身利益。
第二、即使手機廠商能夠公開透明的向用戶展示各個APP的權(quán)限運用情況,用戶又能否有能力判斷其危害程度呢?
首先來看第一個問題,2020的一篇IJCNN[2]便對安卓apps是否遵守Google Play隱私指南的隱私政策,以及是否僅在用戶接受該政策下才訪問隱私敏感信息的問題做了調(diào)研。
文章的整體方法設(shè)計如下:
主要的實驗結(jié)果如下:
結(jié)果顯示,在5057個APP當中,僅有5.5%(4.6%+0.9%)的APP是遵循Google Play隱私準則的,其中還有4.6%是不訪問任何PSI的app,因此其本身不需要隱私政策??梢钥吹?,道德的呼吁和譴責基本上是無效的。
這些APP是如何竊取用戶數(shù)據(jù)的呢,主要會通過ad library和analytics library。
首先,ad library幾乎普遍存在于所有智能手機app中,而且已經(jīng)開始收集并累積敏感的個人數(shù)據(jù)。研究表明其主要涉及到位置信息、app使用、設(shè)備信息、通信數(shù)據(jù)如日志、存儲訪問權(quán)限(以及麥克風(fēng)控制權(quán)限等庫。
其次,analytics library會主要收集用戶的應(yīng)用內(nèi)操作,相對于廣告庫而言,其更有可能泄露用戶的隱私信息。2020年的一篇MobileCom[3]對這類隱私泄露行為做了相關(guān)研究與分析。
總體的分析框架如下:
接下里,看看文章的實驗結(jié)果
首先,分析庫會將用戶的個人信息泄露給應(yīng)用開發(fā)者嗎?答案是:yes
由于開發(fā)人員無法獲得收集到的信息的原始數(shù)據(jù),他們很難對個人用戶進行分析。然而,開發(fā)人員可以利用這些分析庫來直接收集用戶的私人數(shù)據(jù)。例如,Wo Mailbox Version 6.3.0是一個郵箱應(yīng)用程序,可以幫助用戶管理電子郵件。其由中國聯(lián)通開發(fā),2016年2月活躍用戶超過260萬。通過分析庫,這個應(yīng)用程序會自動記錄用戶的電子郵件地址,收件人的電子郵件地址,郵件抄送用戶的電子郵件地址等。
其次,分析庫會將用戶的個人信息泄露給分析公司嗎?答案是:yes
由于分析公司擁有收集到的信息的原始數(shù)據(jù),與泄露給開發(fā)人員的信息相比,泄露給分析公司的信息要嚴重得多,其導(dǎo)致的安全問題如下:
接著,如果分析公司將從不同應(yīng)用程序收集的信息鏈接起來,他們會對用戶了解多少?
如果分析公司將從不同應(yīng)用程序收集的數(shù)據(jù)鏈接在一起來分析用戶,那么分析庫引起的隱私風(fēng)險就會加劇。分析公司可以輕松完成這項工作,因為他們將設(shè)備標識符與用戶的應(yīng)用內(nèi)操作一起收集。他們知道哪些應(yīng)用程序安裝在同一設(shè)備上并由同一用戶使用。分析庫越流行,它可以獲得的信息就越多,那么其對用戶的掌握程度將是全方位的。
最后,用戶是否知道第三方分析公司收集了他們的應(yīng)用內(nèi)部操作?答案是:大部分不知道
通過對分析庫的隱私政策進行研究后后,文章發(fā)現(xiàn)一些分析公司列出了他們將收集的信息,并要求開發(fā)人員在其app隱私政策中顯示分析庫的使用情況以及分析庫收集的信息。然而,在閱讀了這些apps的隱私政策后,發(fā)現(xiàn)只有少數(shù)apps遵循這一規(guī)則。因此,大多數(shù)用戶是不知道他們的應(yīng)用內(nèi)操作會被第三方分析庫所搜集并分析的。
接下來看看之前談到的第二個問題,即使手機廠商能夠公開透明的向用戶展示各個APP的權(quán)限運用情況,用戶又能否有能力判斷其危害程度呢?
答案是:比較困難,很多用戶會難以分辨
2021年的一篇USENIX文章[4]對此做了詳細的分析工作,目前,系統(tǒng)在請求權(quán)限時提供的信息非常有限,這使得用戶很難理解權(quán)限的功能,并可能引發(fā)相應(yīng)的風(fēng)險。
文章表明,只有極少數(shù) (6.1%) 的用戶可以從系統(tǒng)提供的信息中準確推斷出權(quán)限組的范圍。 這意味著當前系統(tǒng)提供的權(quán)限信息還遠遠不夠。
例如上圖中的Android 和 iOS 上的權(quán)限請求對話框,在圖 1(a) 中,對話框僅顯示 Snapchat 請求撥打和管理電話的權(quán)限; 但是,其不會通知用戶它也將允許應(yīng)用訪問手機狀態(tài)和 ID(即 IMEI)。 在圖 1(b) 中,Twitter 應(yīng)用程序提供的使用描述僅對位置數(shù)據(jù)的使用方式進行了模糊的描述,而不是更詳盡完整的敘述,像是在糊弄用戶。
應(yīng)用程序開發(fā)人員可能有動機不誠實和全面地披露他們對用戶數(shù)據(jù)的全部訪問和使用,受害者則是用戶,因為,從這些簡短的描述中,用戶很難全面了解授予這些權(quán)限的風(fēng)險,進而可能會做出極其危險的操作。
當前的移動系統(tǒng)在保護用戶的私人信息方面扮演著中立的角色——它們只是提供簡單的描述,并允許應(yīng)用程序解釋他們的許可請求意圖。由于用戶對權(quán)限的理解不充分,這很容易導(dǎo)致意外的隱私泄露,許多用戶對某些權(quán)限組有很多常見的誤解,或者說是“不解”,其次,許多 Android用戶并不知道權(quán)限模型的變化,這更加劇了用戶相關(guān)決策的危險程度。
參考
- ^An Analysis of Pre-installed Android Software https://ieeexplore.ieee.org/abstract/document/9152633
- ^Proc.of the IEEE International Joint Conference on Neural Networks (IJCNN 2020) https://arxiv.org/pdf/2004.08559.pdf
- ^Privacy Risk Analysis and Mitigation of Analytics Libraries in the Android Ecosystem https://ieeexplore.ieee.org/document/8660581
- ^Can Systems Explain Permissions Better? Understanding Users’ Misperceptions under Smartphone Runtime Permission Model https://www.usenix.org/conference/usenixsecurity21/presentation/shen-bingyu