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

更新时间:2024-05-30 17:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

摘 要: android做为全球最受欢迎的智能手机平台,由于源码开放、可编程软件框架、网络化设备的特点,很易受到智能手机病毒的攻击,从linux机制、android特有的安全机制、其它保护机制三个角度分析android安全机制,为加强恶意软件检测和系统底层访问控制,提出基于主机的入侵检测系统(hids)和selinux(security-enhanced linux)。 关键词: android;安全机制;权限

android平台是google于2007年推出的一种基于linux 2.6核心的开源智能手机操作系统。在智能机平台的竞争中android目前占有较大的优势,受到了业界的广泛关注。它主要有操作系统、用户界面和应用程序三部分组成,不仅包括移动电话工作所需的全部软件,而且不存在任何以往像专有权等阻碍移动产业创新的障碍。由于该系统自身具备的开放源码的特征,所以它的安全性能正在成为信息安全领域研究的一个重要课题。 1 android系统架构

android os的整体架构分为以下4个层次: 1.1 应用程序层applications

application层是android os的用户应用层,它包括一系列核心应用程序包,应用程序是用java语言编写的,且运行在虚拟机上的程序,例如email客户端、sms短消息程序、浏览器等。 1.2 应用程序框架层application framework

该层是android平台专门为应用程序的开发而设计的,应用程序框架都是由java语言编写,允许开发人员完全访问核心应用程序所使用的api框架,它是开发者进行android开发的基础。它由一系列的服务和系统构成,主要由view、通知管理器、活动管理器等由开发人员直接调用的组件组成。

1.3 本地库及运行环境libraries(核心库)和android rutime(虚拟机)

android本地库居于linux内核上面,是一套c/c++库,被上层各种各样的系统组件调用。在android应用程序内通过java本地调用(jni)实现合并这些库。android运行环境包括libraries(核心库)和android rutime(虚拟机)。核心库由java语言编写,提供了大量的java 5 se包的子类和一些android特有的库。android rutime(虚拟机)运行.dex(dalvik-executable)文件,一种被认为比java类文件更加简洁和节省内存的文件。 1.4 linux内核层linux kernel

android的内核为linux 2.6内核,它主要提供安全性、驱动、进程管理、内存管理、网络协议栈等核心系统服务等等。android框架详细结构如下图1所示。 2 android安全机制

在实际应用中,手机的安全问题主要是由手机病毒引起的,其主要危害可以归纳为两个部分:数据安全和系统安全。google为android平台配备了多个安全机制。本文主要研究系统安全和数据

安全机制。

2.1 android的系统安全机制

android一开始采用的是经过定制的linux 2.6的内核,android的系统安全通过linux 2.6的安全机制来实现。linux 2.6版的内核又加入了安全模块的安全机制来增强linux系统的安全性从而提供诸如安全、内存管理、进程管理、网络管理、驱动模型等多种核心服务。android系统的应用软件都是运行dalvik之上的java软件,而dalvik是运行在linux中的,在一些底层功能比如线程和低内存管理方面,dalvik虚拟机是依赖linux内核的。 在linux 2.6中,内核已经可以抢占,因而实时性得到了加强,但是内核中仍有大量的不可抢占区域,如果当前任务运行在内核态,即使当前有更紧急的任务需要运行,目前正在运行的任务也不能被抢占,很大程度上,抢占延迟具有非常大的不确定性和不稳定性。

2.2 android的数据安全机制

android的数据安全机制涉及到两个概念:用户标识和权限许可,并且应用层安全机制也是围绕着这两个安全标识来实现的。 用户标识,user identifieation,即uid。安装在android中的每个程序都会被分配给一个属于自己的linux用户id,并且为它创建一个沙箱,以防止影响其它程序(或者其它程序影响它)。每个应用程序都自己的uid,只有带着此uid,才一能存取该uid所涵盖的有关资料。

权限许可,permission,权限许可是android为保障安全而设定的安全标识,同时也是程序实现某些特殊操作的基础。一个基本的android应用程序没有与其相关联的权限,意味着它不能做任何影响用户体验或设备中的数据的有害操作,藉此用户一些“敏感”数据不被某些未经授权的程序所损害。

尽管android的安全机制经过良好设计,但仍然存在以下几种攻击方式:基于硬件的攻击、基于linux内核的攻击、基于系统核心程序的攻击和基于应用程序的攻击。 3 解决方案

通过对android安全机制分析,android的安全防护不应仅仅局限于单一攻击方式,需从硬件到应用程序各个层次进行防护。以下将从基于主机的入侵检测框架(hids),selinux在android上的实施两个方面探讨android的安全解决方案。

3.1 hids(host-based intrusion-detection system) 基于主机的入侵检测系统包括异常检测(anomaly detection)和基于知识的时间抽象方法(knowledge-based temporal abstraction)。

异常检测是指入侵检测系统框架持续采样各种各样的系统参数指标,采用机器学习(machine learning)和时序推理(temporal reasoning)的方法分析采集的数据。通过收集系统参数指标,与已知的恶意软件引发的系统参数指标作对比,检测相同点,进而发现先前未曾遇到的新的恶意软件。

基于知识的时间抽象方法(kbta)是指使用kbta,结合时间抽象知识基础,持续测量数据和事件,用来从面向时间的原始的安全数据抽象得出高层次的有意义的概念和模式。 3.2 selinux(security-enhanced linux)

selinux是基于“域一类型”模型的用于强制访问控制的安全系统是一种混合的安全性策略,安全性策略的逻辑和通用接口一起封装在与操作系统独立的安全服务器中,通过替换安全服务器,可以支持两种不同的安全策略:目标(targeted)策略,严格(strict)策略。目标策略仅针对部分系统网络服务和进程执行selinux策略。严格策略是执行全局的nsa默认策略,此时几乎所有的网络服务都受控。 4 结束语

随着手机朝着智能化方向的发展,android智能手机操作系统越来越被人们所关注。android会在应用中不可避免出现大量针对其的攻击行为和恶意软件,但是攻防演绎是一个呈双螺旋增长过程。随着时间的推移,android平台的漏洞会越来越少,系统越来越安全、可靠。

参考文献:

[1]罗伯特莱莫斯,android手机安全性成难题[j].麻省理工科技创业,2011(3).

[2]shabtai a,wiess y,kanonov u,et al.andromaly:a behavioral

mal-ware detection framework for android devices.intelligent information systems,2011:7-22.

[3]杨杰,基于linux的强制访问控制研究[j].电脑与电信,2008(11):48-51.

本文来源:https://www.bwwdw.com/article/gr96.html

Top