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 安全机制分析与解决方案初探