当前位置: 首页 > 科技观察

闲聊:关于Android系统权限的一些思考

时间:2023-03-22 15:09:31 科技观察

Android系统权限管理一直是一件很迷茫的事情。这一点不仅被大量相关研究人员看得很清楚,很多系统用户读者也切实感受到了安卓手机的一些劣势。最近刚刚翻阅整理了一些Android系统权限管理相关的文章。在这里我将对它们进行梳理和总结,并谈谈我个人的理解。每当我拿到一部安卓手机,完成初始化操作后,我做的第一件事肯定是在系统允许的情况下卸载大部分预装的应用程序。这些对我来说都是劣质应用程序,我和他们的关系基本上可以说是正交的。APP预装应该被视为应用软件开发商进行推广的重要方式。花大价钱让手机厂商在硬件中编写自己的APP或者在系统中植入自己的APP,从而获得大量的新注册用户,是APP厂商的一贯做法。但是,将这么多预装应用程序打包到固件中的过程对用户来说基本上是一个黑盒子,即零透明度。Android系统本身强大的开放性,导致它现在拥有各种不同的利益相关者,以及由系统组成的复杂的供应链生态系统。其中,无论是厂商,还是手机厂商附属的开发商和分销商,都可以随意为系统添加专有应用和更高级别的功能,甚至可以完成定制系统的设计和商业化。那么,众多独立厂商控制下的庞大预装软件是否安全无害呢?答案是:没有。OaklandS&P去年发表的一篇文章[1]指出,已经做了相关研究,小米、华为、vivo、oppo、魅族等国内常见的手机厂商都在其研究范围内.根据文章统计(本次分析发生在2018年11月19日),只有9%的预装应用可以在Play商店中被检索到,而74%的非公开应用基本没有更新,41%的应用程序已经5年或更长时间没有任何补丁更新,这意味着许多过时的漏洞很容易侵入这些预装软件。除了被攻破外,软件本身也可能是恶意软件,主动侵入用户系统以牟利。例如,手机提供商、分析服务和在线服务声明的许多自定义权限具有一定的安全风险和易受攻击的模块。此外,不同安卓厂商的手机所请求的权限数量差异很大,从谷歌的9个核心模块权限到三星设备的100多个权限不等。此外,作者还举了一个例子。com.android.contacts的平均权限数为35,而三星、华为、Advan、LG设备的应用数量超过100个。此外,许多Android预装应用也有TPL,需要访问签名或某些危险权限,使系统的重要敏感资源更容易暴露。最后,作者还通过人工逆向分析了158个APP。结果如下。GMobi开发的Iop和可疑软件,具有银行欺诈、向高级号码发送短信或订阅服务、静默安装其他应用程序、访问链接和显示广告等恶意行为。其次,几乎所有允许访问PII的应用程序都具有潜在的个人软件以及手机硬件用户信息收集和上传功能。最后,在612个预装的应用程序中,作者发现了许多具有潜在危险的应用程序,根据它们的包和应用程序名称,它们可能实现工程模式或工厂模式功能。这些功能的范围从相对无害的任务(例如硬件测试)到具有潜在危险的任务(例如对Android设备进行root操作)。说到最后,作者也给出了自己设想的解决方案,例如引入并使用全球信任的证书颁发机构签署的证书,建立证书透明库等,并在预装的应用程序中附上相应的文档,以方便用户要知道。作者的建议,在我看来,主要有两个问题。第一,目前没有强制性的第三方机构或政府机构强制手机厂商进行权限公开透明。链中的一些公司存在利益冲突。他们会在非被迫状态下做出让步吗?我觉得不太现实,除非消费者用一些手段来伤害自己的切身利益。第二,即使手机厂商可以公开透明地向用户展示各个APP权限的使用情况,用户是否能够判断危害程度?首先,我们来看第一个问题。IJCNN[2]2020年的一篇文章是关于Android应用程序是否符合GooglePlay隐私指南的隐私政策以及是否仅在用户接受该政策的情况下才访问隐私敏感信息的调查。文章整体方法设计如下:主要实验结果如下:结果表明,在5057个APP中,只有5.5%(4.6%+0.9%)的APP遵循GooglePlay隐私指南,4.6他们中的%没有。访问任何PSI的应用程序,因此本身不需要隐私政策。可见,道德诉求和谴责在很大程度上是无效的。这些APP是如何窃取用户数据的,主要是通过广告库和分析库。首先,广告库在所有智能手机应用程序中几乎无处不在,并开始收集和积累敏感的个人数据。研究表明,它主要涉及位置信息、应用程序使用情况、设备信息、通信数据(如日志)、存储访问权限(和麦克风控制权限)等库。其次,分析库主要收集用户的应用内操作,相比广告库,更容易泄露用户的隐私信息。2020年某移动通信[3]对此类隐私泄露行为进行了相关研究分析。整体分析框架如下:接下来我们先来看文章的实验结果,分析库会不会将用户的个人信息泄露给APP开发者?答案是:是的由于开发人员无法访问所收集信息的原始数据,因此他们很难对个人用户进行分析。但是,开发人员可以利用这些分析库直接收集用户的私人数据。例如,我邮箱6.3.0版是一款帮助用户管理邮件的邮箱应用。由中国联通开发,2016年2月活跃用户超过260万。通过分析库,APP自动记录用户邮箱、收件人邮箱、邮件抄送用户邮箱等。二、分析库将用户的个人信息泄露给分析公司?答案是:是的由于分析公司拥有所收集信息的原始数据,因此泄露给分析公司的信息比泄露给开发者的信息要严重得多,这会导致以下安全问题:如果收集的信息是链接,他们对用户了解多少?如果分析公司将从不同应用程序收集的数据链接在一起以分析用户,则分析库带来的隐私风险会加剧。分析公司可以轻松完成这项工作,因为他们会收集设备标识符以及用户的应用内操作。他们知道哪些应用程序安装在同一台设备上并由同一用户使用。分析库越受欢迎,它能获取的信息就越多,它对用户的影响掌握程度也会是全方位的。最后,用户是否知道第三方分析公司收集了他们的应用程序内部操作?答案是:大部分不知道。文章研究了分析库的隐私政策后发现,一些分析公司列出了他们将收集的信息,并要求开发者在他们的应用程序隐私政策中展示分析库的使用情况和分析库收集的信息。然而,在阅读了这些应用的隐私政策后,发现只有少数应用遵循了这一规则。因此,大多数用户并不知道他们的应用内操作将被第三方分析库收集和分析。接下来我们来看前面提到的第二个问题。即便手机厂商可以公开透明地向用户展示各个APP权限的使用情况,用户是否能够判断危害程度?答案是:很难,很多用户会很难区分2021年的一篇USENIX文章[4]对此做了详细的分析。目前,系统在请求权限时提供的信息非常有限,导致用户难以理解权限的作用,并可能造成相应的风险。文章显示,只有极少数(6.1%)的用户能够从系统提供的信息中准确推断出权限组的范围。这意味着当前系统提供的权限信息是不够的。例如上图Android和iOS上的权限请求对话框,在图1(a)中,对话框只显示Snapchat正在请求权限进行通话和管理通话;但是,它不会通知用户它还将允许该应用访问手机状态和ID(即IMEI)。在图1(b)中,Twitter应用程序提供的使用说明只是模糊地描述了位置数据的使用方式,而不是更完整的描述,似乎是在忽悠用户。应用程序开发人员可能有动机不诚实地全面披露他们对用户数据的完全访问和使用,以牺牲用户利益为代价,因为从这些简短的描述中,用户很难完全理解授予这些权限的风险,并且然后可能会执行极其危险的操作。当前的移动系统在保护用户的私人信息方面发挥着中立的作用——它们只提供简单的描述并允许应用程序解释其权限请求的意图。由于用户对权限的理解不够,这很容易导致意外的隐私泄露。很多用户对某些权限组有很多常见的误解,或者说“看不懂”。其次,很多安卓用户不了解权限模型。变化,这加剧了与用户相关决策相关的危险程度。参考^AnAnalysisofPre-installedAndroidSoftwarehttps://ieeexplore.ieee.org/abstract/document/9152633^Proc.oftheIEEEInternationalJointConferenceonNeuralNetworks(IJCNN2020)https://arxiv.org/pdf/2004.08559.pdf^Android生态系统中分析库的隐私风险分析和缓解https://ieeexplore.ieee.org/document/8660581^系统能否更好地解释权限?了解智能手机运行时权限模型下用户的误解https://www.usenix.org/conference/usenixsecurity21/presentation/shen-bingyu