Android系统的安全分析

时间:2022-09-06 03:09:38

Android系统的安全分析

摘 要:Android作为全球最受欢迎的源码开放智能手机平台,其用户群和各类应用程序近年增长迅速,但同样由于源码开放的特点其安全性能一直以来遭受用户怀疑。本文描述了从Android平台系统和自身特有的机制简单说明并分析了Android系统的安全性能的机制和缺点。

关键词:Android;手机平台;安全

中图分类号:TP393.08

Android[1]是Google于2007年11月5日宣布的基于Linux内核的手持终端操作系统名称。目前,Android已超越其他手持终端操作系统如Symbian、Windows Mobile、MacOS X,不但成为全球最受欢迎的职能手机平台,还开始向平板电脑操作系统扩张。由于手机和平板的功能日益强大,手机和平板成为很多人处理日常事务的工具,随着个人业务越来越多的在移动终端上进行,很多个人重要信息被存储其中,信息泄露将带来非常严重的问题。不同于苹果的iOS和微软的Windows Phone,谷歌的Android系统是唯一的开源操作系统[2],由于内核源码的开放性,攻击者更容易从内核入手实施攻击。Android作为操作系统,安全性如何也是越来越多的人关心的问题。

1 Android安全性能现状

目前Android平台并没有严格的应用权限审核机制,仅仅将应用的权限请求在安装时展示给用户,这样的模式会导致恶意软件的植入留下了隐患;另一方面在Android平台的访问控制是静态的,无法根据控制策略库的动态定制,而且Android平台上所有软件都是平级执行,这造成了一般的安全软件只能通过应用基本信息与库的比对来判定其危害程度;Android系统不提供软件行为监控的接口,这也阻碍了以行为检测为基础的杀毒软件无法移植。Android的安全性能主要体现在两个方面:Android的系统安全和数据安全。Android系统安全是指智能终端本身的安全,是对操作系统的保护,防止未授权的访问及对授权用户服务的拒绝或对未授权用户服务的允许,包括行为检测、记录等措施。Android的数据安全指确保存储数据完整性、合法性二个方面,要求做到系统正确地传输数据,授权程序顺利地读取数据。

2 Android系统的安全特性

Android系统既继承了Linux内核的安全机制,又对系统框架的各个层次都进行了安全增强,逐渐形成了Android系统自己的一套安全体系。提供诸如安全、内存管理、进程管理、网络管理、驱动模型等多种核心服务,故Android系统的安全特性可分为以下两个方面:一是继承自Linux的安全机制;二是Android系统框架特有的安全机制。

2.1 继承自Linux的安全机制

Android系统内核部分实际上是一个介于硬件层和系统中其他软件组之间的一个抽象层次,所以说Android的系统层面是Linux,中间是Dalvik的JAVA虚拟机,表面层运行的Android的类库。在实际操作中,每个Android应用都运行在自己的进程上,每个进程都独享Dalvik虚拟机为它分配的专有实例,并且支持多个虚拟机在同一个系统上高效运行。

Android系统的每一个应用程序在安装时都会被分配一个唯一的UID(User ID,用户ID)[3]。因此应用程序只能运行在自己的进程中,应用程序之间也不能互相访问。这样私有数据就被完全保护起来。Android系统的文件访问控制来源于Linux。每一个文件的访问权限都由其拥有者ID(Uid)、所属组ID(Gid)、及读写执行(Rwx)三个向量组控制。文件在创建时将被赋予不同的应用程序ID,从而不能被其它应用程序访问,除非它们拥有相同的组ID或文件被设置为全局可读写。

2.2 Android系统框架特有的安全机制

Android是一个多进程系统,每一个应用程序都运行在自己的进程中。通过内存管理单元,对进程分配不同的虚拟内存空间,进程只能访问自身分配的内存空间,而不能访问其他进程所占用的内存空间。由于缓冲区溢出攻击通常是通过类型转换错误或者是缺少边界检查进行的,为了防止这种情况出现,Android使用强制类型Java语言,Java语言可以通过编译期间的类型检查,自动的存储管理,数组的边界检查三种机制阻止变量被错误或不恰当的使用。同时,Android引用了认证,授权和审计的AAA原则保证设备的安全。

Android系统自有安全机制的核心是权限控制机制。系统通过权限来制约应用程序访问系统资源的能力。权限是表现形式是一段字符串[4],如SEND_SMS表示发送短信,INTERNET表示访问网络等。由此可见,每个权限都与特定的操作以及特定系统资源绑定在一起,应用程序只有在权限申请获得许可的情况下才能进行操作或访问资源。应用程序的所有权限必须由开发者在程序包中的AndroidManifest.xml文件中声明,并且在安装的时候由用户来许可。Android系统采用的是“all or nothing”的机制,即应用程序只有在所有权限申请都被用户授权的情况下才能被安装,若有任何一个权限申请不被用户授权,则无法安装。

Android权限机制的安全和对系统的信任都是基于假设一个应用程序只能访问规定权限所定义的功能,假设规定权限在安装时已显示给用户。因为权限可以在多个经任意通信渠道去获得那些它本不应获得权限的应用之间传播,所以这些假设是无效的。当信任权限机制时会有潜在的危险,采取的对策可以有:

(1)对权限系统进行改变,包括进程间使用IPC通信时需要的权限,应用程序安装前要显示通信接口;

(2)在Android市场实施一个自动检测系统 ,或进行深入分析apk文件;

(3)通过检测权限传播所造成的通信事件,转移检测Android智能手机。

3 结束语

Android系统本身具有比较完善的一套安全机制,正常情况下可以保护系统的安全不受侵害,但是Android产品的安全问题是一个系统的问题,它需要全面地考虑产品硬件、操作系统和应用程序等方面的问题,产品的长期安全性需要用户在使用过程中增强安全意识,并且做好维护,比如及时升级产品系统软件和更新产品病毒补丁等。

参考文献:

[1]Katysovas T. A first look at Google Android[M]:Free University of Bolzano,2008.12-26

[2]陈益强.简析Android系统的安全性能[A].信息系统工程,2011(9).

[3]Burns J. Developing Secure Mobile Applications for Android[R].Technical Report,iSEC,2008.

[4]Shin,Wook1,Kiyomoto,Shinsaku1,Fukushima,Kazuhide1,Tanaka,Toshiaki.A formal model to analyze the permission authorization and enforcement in the Android framework[J].IEEE Computer Society 2010.

作者简介:金微(1981.7-),女,江苏溧阳人,江苏理工学院,讲师,硕士,研究方向:计算机、数据挖掘。

作者单位:江苏理工学院 计算机工程学院,江苏常州 213000

上一篇:提高英语阅读能力需要注意的几个方面 下一篇:浅谈初中语文阅读教学模式