Android安全机制分析与解决方案初探

Android安全机制分析与解决方案初探
预览:

序的生命期间,它将不会被移除,即使声明此权限的源程序被删除。

(3)一个系统内两个不同的权限可以共用相同的名字,以至于他们中的其中一个权限可以在未声明的前提下正常使用[5]。

2.1.2组件包装

Android应用程序(假设它们拥有不同的用户ID)把组件包装在程序内容内,阻止其他应用程序访问它们。这主要通过定义组件的“exported”属性来实现。如果“exported”属性被设置为“false”,这个组件只能被拥有它的应用程序访问(和其它通过sharedUserID属性共用同一个用户ID的应用程序)。如果设为“true”,该组件便可以被其它外部程序调用。这些程序的调用受到前面章节提到的权限机制的控制。开发者应该手动地设置“exported”属性值,因为属性的默认值可能与期望的值不一致。2.1.3数字签名

所有的应用程序都必须有数字证书,Android系统不会安装一个没有数字证书的应用程序。An-droid程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证。如果要正式发布一个Android应用程序,必须使用一个合适的私钥生成的数字证书来给程序签名。数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。sharedUserId机制和权限机制都用到签名方法来执行signature和signatureOrSystem权限。

2.3其它保护

周围的技术环境(如硬件设备、编程语言、手机载体的基础设施)也提供了一些加强Android设备安全性的机制。如内存管理单元(MMU)保障每个用户进程都拥有自己的独立的地址空间,减少了特权升级(Privi-lege Escalation)的可能性;编程语言的类型安全特性能使编写的程序不易受到专制的代码执行(arbitrary code execution)的影响;电话系统的AAA系统(authentica-tion,authorization和ac-counting)用于识别用户,监控操作,和向客户收取费用等。

3安全解决方案

文献[1]提出许多减轻恶意软件损害移动设备的方法。根据这些方法在Google Android上被实施和评估的结果,我们优先选取SELinux访问控制机制、入侵检测和Context-aware访问控制,而次要选取数据加密、垃圾邮件过滤、可选择性的Android权限机制、远程管理,虚拟专用网络(VPN)和身份验证等方案。以下将从基于主机的入侵检测框架(HIDS),SELinux在Android上的实施两个方面探讨Android的安全解决方案。

3.1HIDS(Host-based intrusion-detection system)在文献[6—9]创新地提出一个在移动设备上检测恶意软件的基于主机的入侵检测系统(Host-based intrusion-detection system),且对其进行评估。该框架(如图4)依靠一个轻型的代理(依据CPU、内存和电池消耗量)在设备上持续对各种各样的特征取样,采用机器学习(machine learning)和时序推理(temporal reasoning)的方法分析采集的数据,进而推断设备的状态。发送信息、打电话和应用程序等的特征属于应用程序框架类别,通过框架提供的A-PIs提取;而键盘、触感屏幕、时序安排和内存等属于Linux内核类别。下面介绍处理器分别为异常检测和KBTA的入侵检测系统

图4基于主机的入侵检测系统框架

3.1.1异常检测(Anomaly Detection)

文献[6]中的入侵检测系统框架持续采样各种

3536

26期廖明华,等:Android安全机制分析与解决方案初探