您的位置:4G网络电话 >> 行业信息>> 安卓应用平台系统的安全策略

安卓应用平台系统的安全策略

来源:网上转载-安卓应用平台  发布时间:2014-08-27 15:27:26

安卓应用平台系统安全模型分析

安卓应用平台系统是一个以Linux操作系统为核心和基于Java的平台,采用Dalvik虚拟机来解释java语言,这是流行的Java平台的一个分支。从本质上讲,软件开发人员在Java编程语言编写应用程序,然后使用谷歌工具转换其产生的JAVA程序运行在安一卓设备上的专有的Dalvik平台。完成转换后,这样一个应用程序可以运行在任何安卓应用平台系统设备。

每一个安卓应用平台系统应用程序运行在自己的虚拟机,并且每个虚拟机是在自己的独立的Linux进程。这种模式确保没有进程可以访问另一个进程的任何资源(除非该设备是越狱的。虽然Java的虚拟机被设计成一个安全的“沙盒”系统,能够包含潜在恶意程序,Android的不依赖于虚拟机技术增强安全性E}ol。相反,所有的保护是直接执行基于Linux的安卓操作系统。

安卓应用平台系统的安全模式主要是基于三个方面:传统的访问控制,隔离,和一个基于权限的安全模型。然而,值得注意的是安卓应用平台系统的安全并不仪仅来自其软件实现。谷歌发布的整个安一卓系统项日的程序源代码,能够从更广泛的安全社会审议。谷歌认为,这种开放性有助于改善随着时间的推移,发现缺陷,最终提升安卓应用平台系统一平台的安全级别。接下来的二部分将分别讨论该系统的二种基本安全模型,并分别在每部分简述该方法的可靠性以及其优缺点。

 

传统的访问控制

安卓应用平台系统的2.x版本提供了最基本的密码配置选项,包括指定设备密码的强度,指定手机的锁定时间间隔,并_巨指定了多少次失败的登录尝试之后,将会对设备本身的数据进行擦除。此外,Android 3.D还引入了密码过期的概念,使管理员可以强制用户定期进行更新自己的密码。

安卓系统的访问控制的实施效果如何?安卓应用平台系统的密码策略体系足以应对一些简单的安全攻击。然而,由于目前的Android版本并不加密的存储在可移动的SD卡上的数据,安卓应用平台系统设备的物理访问的攻击者可以简一单地弹出5D卡,并获得在几秒钟内设备的数据的一个子集,绕过任何设备土启用的所有密码控制。

隔离

每一个安卓应用平台系统应用程序(.apk文件)都会在安装时就分配一个独有的Lir}ux用户ID,这就为它建立了一个沙盒,使其不能与其他应用程序进行接触(也不会让其它应用程序接触它)。这个用户1D会在安装时分配给它,并在该设备上一直保持同一个数值。由于安全性限制措施是发生进程级,所以两个packag。中的代码不会运行在同一个进程当中,他们要作为不同的Linux用少-'1出现。我们可以通过使用Andrvid Manifest.xml文件中的manifest标签中的sharedC3serId属性,来使不同的package共用同一个用厂' ID o通过这种方式,这两个package就会被认为是同一个应用私{序,拥有同一个用户ID(实际不一定),并N_佣有同样的文件存取权限。注意:为了保持安全,只有当两个应用程序被同一个竿名签署的时候  (并且请求了同一个sharedUserld)刁‘会被分配同样的用户ID。

由一于安一草系统的隔离系统设计,系统上的每个应用程序部是互相隔离的,这可以确保恶意的应用程序无法篡改系统上的其他应用程序,访问他们的私人数据或访问Android操作系统的内核。然[I}r} ,因为,侮个应用程序可以请求访问的t}子HIS件收件箱,GPS系统,网络等其他设备子系统的权限,可能对于这样一个恶意的应用程序来运行Android的隔离系统的范围内,并仍在进行许多类别最终的攻击,其中包括资源的攻击,数据丢失攻击等。

 

安卓应用平台

 

基于权限的存取控制

在默认情况下,大多数安一巾系统应用程序拥有的权限很低,除它对相关的请求申请的对应的权限。例如,如果一个应用程序要通过网络进行通信,它必须提前在配置文件中提出中请,用厂‘安装时将会得到相应的提示,否则该程序的所有有关网络通信的请求都会被这种基一于权限中请的管理策略所阻断。这就是一说,每一个安卓系 出申请。这些操作包括读/写用户的隐私数据(例如联系方式或e-mail ) ,读/写其它应用程序的文件,执行网络访问,保持设备激活,等等。

permission的初始化,是指permission的向系统申一请,系统进行检测并授权,并建立相应的数据结构。绝大多数的情况 permission都是从一个package中扫描所得,而这发生在package安装和升级的时候。一般有如下几利,安装入口 packagelnstaller   package被安装时会触发使用。packageInstaller会通过AppSecurityPermissions来检查风l俭的权限并对用户给出提示。

pm命令

adb install最终还是调 用pm install来安装apk包。

拷贝即安装。PackageManagerSer}ice中使用AppDirObserver对/ldatalapp/进行监视,如果有拷贝即触发安装。

这些安装方式最终都会通过调用PackageManagerService中的函数来完成程序的安装。

应用程序的进程是一个安全的沙稍。它不能干扰其它应用程序,除非明确声明它需要额外的基本的沙箱不能提供的功能的许可权。这些许可权请求能够被不同方式的操作所处理,常见的是基于证书和用户提示的自动允许或禁止。应用程序的权限请求被声明为静态的,这样后面在安装时能够知道它们而月_不会被改变。

从表面上来看,安卓应用平台系统的基于权限申请的许可制度似乎非常健壮,很大程度上限制了应用程序对设备操作的范围,防止应用程序越权操作。这种策略也会带来一些问题,每个应用程序中请的权限必须交给用户去决策是否合理。在大多数情况下,用户没有足够的技术背景去鉴别这些权限的申请,造成了用户对权限的提示往往莫不关心。另一方面,恶意程序可能只要求很少的权限,就可以进行资源槛用攻击,比如发送大量的垃圾邮件或者发动分布式拒绝服务攻击,还有可能造成用户的隐私数据泄漏或者对用户数据的完整性进行攻击。总而言之,基于权限申请的安全策略很大程度土遏制了应用程序的越权行为,但是要求用厂’来最终鉴别应用程序的权限中请,这其实又增加了安卓应用平台系统系统风险。

上一条:全方位移动平台安全形势
下一条:关于Android开发平台架构