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