Security and System Architecture:Comparison of Android Customizations
一、 简介
移动设备越来越普及也越来越复杂,体现在不仅有更多功能和源代码,而且系统架构也更加错综复杂。如果考虑架构安全,Android操作系统定制在关键方面差别巨大。
二、主要工作
2.1 基本介绍与方法论
Ø 实验设备:Nexus 4, Nexus 5, Sony Z1, Samsung S4, Samsung S5
Ø 用合适的权限,设计的app可以检查目的系统的每个安装包,从而收集权限有关的数据。
Ø 当提供权限的时候,包会提供资源一个安全等级:normal,dangerous,signature和signatureOrSystem。
Ø 着重研究dangerous和signature这两种权限:
ž 当直接涉及重要设置和攻击要点的时候资源通常标记为dangerous。
ž 例:android.permission.INTERNET, android.permission.WRITE_EXTERNAL_STORAGE,com.samsung.android.memo.READ.
ž 当权限标记为signature,安卓权限管理限制权限的使用,只有providers和相同认证机构签名的用户包可以相互作用。
Ø 这个机制使得第三方无法获得潜在的敏感权限。
Ø 从我们的应用程序收集的包和权限信息,重建一个有向图来表示应用程序可见的所有软件包的关系,使我们能够分析每个目标系统的架构。
2.1.1 架构缺陷的例子
CustomApp通过安卓系统明确的权限授予,可以直接访问Critical Resource。这个授权可以是由操作系统分配的用户或由厂商定制静态嵌入。
当用户安装DubiousApp,可以通过CustomApp暴露的权限访问到Critical Resource,且不直接相关。
If CustomApp provides indirect access toCritical Resource by CustomResource, then DubiosApp can deceive the user andcompromise security.
2.1.2 架构缺陷的分类
Ø Class I - Protection missing:重要参数比如用户数据、密钥没有被保护地呈现在攻击者面前或者非直接地暴露。没有强制访问权限(MAC)的系统通常属于此类
Ø Class II - Single point of failure:单个组件的失败就足以导致攻击者拓宽对重要资源的获取办法。沙箱以root权限运行失败属于此类。
Ø Class III – Confusion:通常情况下,误用是预期的安全策略和架构实现之间的差距。这种差距,反过来说,关系着复杂或不明确的保护机制。安卓的Permission leakage属于此类。
2.2 架构分析与讨论
把每个目标系统提取的包权限信息绘制成图,加载到Tulip框架。Tulip不仅可以提供可视化大型图表,还可以支持的操作系统的自动化和对图的度量。
Google Nexus5 (smaller graph)和Samsung S5的权限图
Ø 图表绘制于相同的比例尺和相同的“bubble-treevisualization algorithm”
Ø 绿色点:软件包
Ø 粉色点:资源
Ø 棕色边:给定的软件包(绿色点)被授予权限可以使用资源(粉色点)
Ø 其他边:给定包提供的权限,蓝色:normal;橘色:dangerous;灰色:signature;紫色:signatureOrSystem;青色:signatureOrSystemOrDevelopment。
2.2.1 主要发现
Android权限的一个重要特征是允许分散:app可能暴露本身的资源,因而存在permission mesh(网)。
对于N4、N5,超过一半的权限是Google Android package操作。在这些设备中,因为单一的、协调发展的供应商处理所有权限,和Google's vanilla devices相比,它的权限滥用比预期的低。
ž 拓扑图不同:S5更拥挤,和N5相比出现了clusters
ž Signature权限数目的增加
ž Dangerous资源没有增加但是对它们的使用增加
发现:S5设备拥有更多数量的包,因此图更加密集。虽然顶点数目增加了,但是可以看到边的平均长度没有增加。意味着更多潜在途径获取重要资源。
设备4和5的进一步分析表明,额外的资源和权限,主要是由于额外的封装和暴露的资源,就需要更多的保护和更多的消耗。
2.2.2 Compare the permissions usage by type and bydevice
除了S4S5,NORMAL和DANGEROUS权限数目在所有平台几乎是一致的,这些额外的软件包使得它们有更多的资源要被保护。Signature权限有三倍的增长,这一增长并不是伴随着Normal和Dangerous权限的减少,导致有更多的路径来危害系统安全。
在索尼和三星平台,有很大概率关联的权限没有provider;虽然这样的现象没有明显的理由,作者推测:弃用、配置的升级,软件的可选项或定制能力是主要的原因。
在S4和S5上危险的权限数目 3倍多于N4和N5。有了这样一个渗透率,三星设备的权限泄漏的可能性要大得多。
有相同签名的包使用的权限
不同签名的包使用的权限
有大量具有不同供应商签名的签名权限,该权限将被权限管理器拒绝。(这似乎是一个奇怪的情况,因为包裹将请求它知道将被拒绝的权限。)
另一方面,通过不同的证书密钥签名包signatureOrSystem权限的请求数,可以解释为他们的安装在系统分区作为系统镜像的一部分,否则他们会被拒绝解释上面的签名权限。
此外,重要的危险权限的数量是由不同的供应商要求的。这就解释了Android手机操作系统定制的副作用:大量的软件包会添加到该平台。
总结:操作系统的定制深深影响了信息渗透率和对系统与用户资源的控制能力。和谷歌N4、N5相比,三星S4和S5显示了相当大的可攻击面。
三、结论
本文展示了五个不同的安卓系统定制对安全架构的影响。通过不同的指标和技术,我们发现定制的设备攻击面更大,信息渗透性更强。随着定制软件包的增加,保护资源的数量和访问这些资源的软件包的数量也随之增加,这破坏了“最小权限原则”和“最小信任计算基(minimal trusted computing base)范式”。
因此本文认为有安全意识的用户应该避免使用定制的android系统。
未来的工作包括调查的安全权限相关的架构是如何受典型的应用程序用户影响,和新的安卓版本(5.X)的差异。此外,进一步研究如何使用图形可视化方法帮助确解决安全问题。