Android操作系统的安全性分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android操作系统的安全性分析
曹淑贤
(荆楚理工计算机学院湖北·荆门448000)
摘要安卓(Android)操作系统是最为流行的手机移动端操作系统,目前安卓8.0版本已经上线了。本文基于安卓操作系统的各种版本,对其进行安全性分析。本文的分析建立在Linux操作系统和安卓系统的异同之上,分析出了安卓系统所面对的安全困境,从安卓的安全建模、安全体系设置、安卓的结构设置和如何实现系统安全等方面进行了详尽的分析。
关键词操作系统安全分析安卓
中图分类号:TP393.08文献标识码:A
1安卓操作系统的构架
安卓操作系统是运用了Linux内核和JAV A语言编程的开源手机端操作系统,大多数用于例如手机移动终端、平板电脑等。安卓系统分为四层软件构架。从上往下数分别为,第一,应用软件层,该层包含各种应用软件,例如邮件存储软件,短信发送软件,电话软件等,全部用Java语言编写。第二,应用程序层次,该层次可以提供系统的基本功能,主要包括一些内容提供器文件,比如资源管理器、活动管理器、通知管理器、扩展视图等,该层次也是有JAV A语言编写的。第三,运行层次库,该层次主要包含了安卓系统运行的函数库,包含了一些C语言标准,比如数据库引擎、安全协议、图像引擎、游览器内核文件等。第四,Linux系统内核层次,该层以Linux操作系统为内核,采用的不是Java而是C语言,提供的是进程管理方面的功能,可以进行安全设置、进程管理、内存管理、网络设置以及硬件设置等内容。
安卓系统当中有一个名为Dalvik的虚拟机,虚拟机对于安卓系统来说尤为重要,虚拟机可以分配系统的进程,系统当中的每一个应用程序都在虚拟机当中运行,一个虚拟机就是一个进程,如果相应的程序发生了崩溃,则设备整体的运行不会受到该程序的影响。也就是说,安卓系统中一个程序的运行不会依靠另外一个程序。
安卓系统的整体都在内核空间当中进行工作运行,也就是说如果缺少了必要的驱动程序或者内核扩展程序不够完整,则无法对硬件设备进行访问。在内核空间运行的程序可以占领用户的运行空间的程序,比如文件系统虽然运行在用户的空间当中,但是与显示相关的驱动程序则是在内核空间中运行,因此显示相关的驱动就可以抢占文件系统的应用进程。
2安卓系统的安全机制问题
安卓系统在Linux系统的安全机制基础之上,又加载了谷歌公司为其专门定制的增强安全机制。增加了UID和GID,UID是用户识别标志,GID是组织机构识别标志。谷歌公司还为其增加了签名机制和用户授权机制,并且使用的JA V A语言也更加安全。
2.1Android系统的用户识别和机构识别
安卓系统的设置权限是相互分离的,虽然Linux系统已经出现了权限的分离,安卓系统还是对其安全权限设置进行了扩展。具体到操作层面,安卓系统为应用程序分配有用户识别功能和机构识别功能,使得相应的访问属于相互之间处于相对隔离的状态,达到了更加安全的目的。
安卓系统每安装一个相关的应用软件都会分配一个独特的用户识别标志,而Linux系统是所有的用户都是同一个用户识别标志。其中如果用户没有root,则文件的读写和执行操作的权限之外还有不同的权限设置,如果进行过root则其权限为零,也即没有UID。不同的用户对于文件都有相应的权限,分为可以执行、可以读取处理以及可读。安卓系统的所有应用程序都有不同的用户标志,只有携带有独特UID的应用程序,才能读取其所需要的相关资料。
GID也是安卓系统用户权限管理的一部分。GID是一组权限的合集,在独特的框架当中运行,与应用需要的具体权限相关联。应用每去申请一个权限,GID就会加入一个对应的识别标志,因此GID可以认为是一个关于权限的合集,对于普通的应用程序而言,GID就是UID,但是由于安卓系统的每一个程序都有对应的不同应用,每一个进程都有相应的UID权限,也就是说安卓系统的应用程序之间是相互分离的,每一个应用程序都有各自的一个黑箱,其他的应用程序无法影响相应的应用程序。
2.2安卓系统的权限管理
权限许可的英文为permission,权限许可也可以保障安卓系统的安全性,也是一种安全标志,同时也是安卓系统一些特殊功能的操作基础,安卓系统的操作权限管理相关的安全机制主要可划分成,访问权限管控和操作权限细分。
安卓系统的权限划分主要分为三方面,包括权限的命名、权限的分组、权限的级别。一个权限组又可以划分成不同的合集,例如在一个名为COSTMONEY权限合集当中,又包括了permission,SMS-permission,CALLPHONE等和付费相关的权限,每个权限都有不同的保护级别,都有相异的标志来划分。安卓共有四个不同的级别,安全程度分别是normal正常,dangerous危险,signature,和signature or system,不同的保护层次都有不同的认证方法,例如normal的权限只要进行申请就可以,dangerous的权限需要用户安装应用的过程之中就进行确定。Signature则需要独特的数字证书。
安卓系统的权限许可机制也限制了其某些操作的执行,目前的安卓系统的内置权限大约有一百多条,如果涉及到相关的应用更改时则不计其数,例如打电话、摄像、使用网络等等,发送信息也有相应的安全设置。所有的安卓应用都能申请某些权限,或者被授权进行某些特殊的操作,在程序安装的
科|学|技|术
—科教导刊(电子版)·2017年第33期/11月(下)—245
过程当中就需要进行一些权限申请。
如果一个特定的安卓程序没有相关的权限设置,那么其有可能进行了一些危害用户安全的操作,客户的一些敏感数据会被未经授权的操作程序所损坏。如果相应的操作程序不在自己特定的黑箱之中,在特定的运行范围之外运行了恶意程序,将会对系统整体产生非常大的不利影响。
2.3安卓系统的签名机制
安卓系统也可以通过签名机制对自己进行保护,安卓系统的应用都是需要进行签名的,通过签名可以限制对程序的部分修改,确保改变的来源是相同的。在软件安装的过程当中主要是通过提取证书进行认证,获取签名的算法信息,与之前的应用程序进行比对,获取是否匹配的结论。
3安卓系统所面对的安全威胁
安卓系统所面临的安全威胁的种类是多种多样的,具体而言主要有以下一些。
3.1开源的系统所带来的风险
安卓系统采用了较为激进的开源型系统软件开发模式,所有用户都可以通过应用商店下载应用程序,同时用户也可以安装应用商店当中没有的应用,除官方应用商店之外还有其他应用商店也可以下载程序。虽然应用程序上传应用商店之后,都会被进行强制安全检查,但是某些应用市场没有执行很好的检查措施,一些应用程序没有通过应用市场进行安装,一些程序还可以通过电脑软件复制到手机当中进行安装。安卓系统的这种过于开放的安装模式丰富了系统应用软件的同时,也造成了恶意代码的广泛侵袭。恶意代码的开发者可以通过各种渠道进入手机,通过应用商店合法的下载应用,然后植入恶意代码重新打包,之后再次发布,将会造成伪装的应用程序和合法的原生程序具有相同的数字签名,虽然国内的手机市场和相关论坛都有相应的检测办法,但是安卓的系统安全还是过于简单,根据360公司统计的数据,国内的设备感染恶意程序的发生概率为百分之五十以上。
3.2权限的许可方法问题
安卓系统的安全模式当中,虽然应用程序需要获取的权限在安装过程当中已经向客户进行了示明,并且安装之后无法改变,在程序的安装过程当中,相关的权限列表客户是可以获取的,并且客户可以判断这些权限是否为满足软件的正常使用所必须,但是,如果出现一个软件所要求的应用权限过多的情况,用户还是无法直接选择不安装或者将该程序标记为可疑。没有机制可保证系统对于不受控制的安装源头完全规避,恶意代码的防范机制没有有效运行,仍然有软件可疑超出常规的进行操作。恶意代码的防范机制依赖于客户的判断,如果客户没有这种判断能力,则防范机制无法发挥作用,上述恶意代码防范机制显得不够合理,需要改进。大多数普通用户是程序的使用者而不是程序的开发者,如果他们不了解程序的运行机制,则无法对其安全性进行判断,普通的用户也完全没有必要去了解程序的运行机制。恶意代码的开发者只要去发现某一特定的应用,然后根据提示进行捆绑,然后很多恶意代码就会自动的转入用户的手机当中,如此一来恶意代码的开发者非常方便的获取传播路径,可以通过代码的不断更新获取更多权限。由于很多用户信任某类特定的应用,没有防范意识,更加造成了恶意程序容易入侵手机系统。
3.3操作系统漏洞
任何复杂的软件系统都有自身的漏洞,安卓系统也有自身的缺陷和漏洞,例如安卓系统利用黑箱来处理相互孤立的程序,恶意程序可以在自己独立的黑箱当中运行,移动设备无法给予用户特定的权限,如果需要获取安卓系统的控制权限就必须进行root,更加加重了不安全性。恶意程序还可以运用漏洞所存在的黑箱,获取系统的root权限。如果用户基于其他目的而对手机进行root,恶意代码就获得了可以随意入侵的通道。同时,如果想对手机进行root,则必须利用系统漏洞,这也就造成更多的开发者想要获取系统漏洞,使得系统漏洞成为了一种资源,同时开发者也不希望当前已知的系统漏洞被堵上。恶意代码通过漏洞不断发展,获取了root权限之后则在系统当中进行不受控制的安装,随意修改客户的程序文件,对用户的系统造成了非常大的不利影响。
3.4利用软件漏洞进行攻击
一些应用程序本身存在漏洞,应用软件的漏洞也会受到攻击,恶意代码能够通过应用软件本身的漏洞攻击手机,游览器是一种最容易受到攻击的应用软件,本身包含了大量可被攻击的漏洞代码。与此同时,游览器是系统所不可缺少的组成部分之一,客户的使用频次也更多,因此危险性也更大,同时由于游览器存在的漏洞比较难以修复,游览器的版本和固件的版本是相同的,也很难进行升级换代。大量的安卓用户为了系统的运行顺畅或者获得新的用户体验,而不断进行刷机,市场上也有很多定制的优化版本,如果恶意代码被嵌入到ROM当中将会更加隐蔽,同时恶意代码还将获得更加强大的破坏力,根据安全软件公司的统计数据,内嵌式的恶意代码占到了被感染用户的百分之十左右。
4安卓系统安全的发展需求
虽然安卓系统有完善的保护机制,但是在巨大的安全压力下,该系统也暴露了一些缺陷,如何更好的保护用户的安全一直是一个棘手的问题,随着安卓系统使用人数的增加,更多的用户将会受到不安全因素的影响,除了不断更新安全保护方法之外,似乎没有更好的方法。在现有的安全防范机制之外,可以探索新的开发模式,改变一些权限操作办法,弥补更多的系统漏洞,或许可以应对软件面对的安全威胁。
参考文献
[1]于桂芹.基于安卓操作系统安全机制的安全性研究[J].产业与科技论坛,
2017,16(11):35-36.
[2]于桂芹.安卓系统开发中的数据存储及其安全性研究[J].信息记录材料,
2017,18(03):34-36.
[3]严磊.安卓操作系统的安全性研究[J].电脑与信息技术,2016,24(05):
39-41+63.
[4]罗来曦,朱渔.试论安卓系统的安全性及提升策略[J].信息系统工程,2014
(11):65.
[5]诸姣,李宏伟,彭鑫,赵文耘.安卓应用系统的功能与权限相关性研究[J].计算
机应用与软件,2014,31(10):27-33.
科|学|技|术
—科教导刊(电子版)·2017年第33期/11月(下)—246