APP下载

Android移动设备管理系统的设计与实现

2016-04-08王亚东雷灵光周健向继

软件 2016年2期
关键词:信息安全

王亚东++雷灵光++周健++向继

摘要:为了确保移动终端在企业中的安全应用,企业移动管理系统(简称,EMMS)应运而生。然而,作为一个发展中的技术,EMMS的相关功能仍在完善中。特别地,在主流的Android4.*系统上,开放的MDM设备管控接口非常有限,不能很好地满足企业移动设备的安全管控需求。本文通过深入分析移动终端设备的管控需求以及Android平台的移动设备管控技术(简称,MDM)、Android系统的Activity管理机制等,设计并实现了一个较为完备的Android移动设备管理系统,实现了对相机、蓝牙、WIFI、恶意应用等可能造成敏感数据泄露的设备功能的全面管控。对系统的性能评估结果表明,其在内存、CPU、电池等方面的消耗均很小,不会对用户造成影响。

关键词:移动设备管控;Android;设备安全;信息安全;数据泄露

中图分类号:TP311

文献标识码:A

DOI:10.3969/j.issn.1003-6970.2016.02.003

引言

随着智能终端的成熟与普及,以手机、平板为代表的个人智能终端设备逐渐进入企业领域。据国际权威咨询公司Gartner预测,2016年全球将会售出超过16亿部智能移动设备,40%的工作人员将会使用移动办公,商务办公移动化进程即将进入高速发展阶段。

在移动办公为企业和员工带来极大的便利和效益的同时,安全问题成为其发展的最大威胁。安全研究中心Ponemon Institute和安全管理服务商Lumension发布的最新数据显示,有75%的IT行业专业人士认为在2014年,移动设备将会给企业安全带来重大的安全威胁。新闻爆出的手机泄密事件也层出不穷:一方面,员工可以“主动”通过移动设备的拍照、录音、网络传输等功能记录并传播敏感信息。另一方面,员工在终端设备遗失或被盗时未能及时清除企业数据导致“被动”泄密。比如Trustwave最新发布的《2014年度风险状态报告》指出在安全泄露事故6个最有可能的来源中心怀不满的员工和粗心大意或不知情的员工分列1、2位。

如何高效、完备地解决潜在的安全问题,确保企业放心地允许员工通过移动设备进行办公,是移动办公发展面临的最大挑战。为了解决移动办公安全问题,企业移动管理系统(简称,EMMS)应运而生,EMMS为企业提供集移动设备管理(简称MDM)、移动应用管理(简称,MAM)、移动内容管理(简称MCM)于一体的全方位解决方案,目标是提供移动设备的全生命周期安全管控、移动应用的安全下发及部署、移动终端内容的安全存储,查阅等全方位的移动办公安全支撑。然而,从目前来看,EMMS仍然是一个正在发展中的产业,相关的功能和技术仍然在不断的探索和完善中。比如,Google从Android 2.2版本开始提供MDM管控功能,但是截至到Android 4.4版本,仅能够支持相机禁用、企业数据擦除、设备锁定等非常有限的管控,而对于MAM和MCM功能还未提供任何支持。目前市面上也存在数款MDM产品,其中起步较早的有IBM公司推出的MaasS360,该系统提供了较为完整的MDM管控,但是Maas360的平台通用性较差,其中部分功能只适用于特定厂商的特定型号智能终端,另有部分功能需要Root权限才能完成。2013年12月,360发布了国内首个企业移动终端安全管理解决方案-360天机[9]。其MDM模块实现了一部分管控功能,如应用禁用、远程擦除、设备锁定、地理定位等。但在应用禁用的实现方式上用户体检较差,其通过强制安装、卸载的方式对完成对应用的禁用,不能满足上班禁用、下班开放这种需求。难以友好的实现对员工自带设备(BYOD)的管控。

鉴于商用MDM产品在通用性或功能支持方面的不完善,本文通过深入分析Android平台的移动设备管控技术以及移动终端设备的管控需求,设计并实现了一个较为完备的Android移动设备管理系统,该系统在Android平台本身对MDM支持的基础上,结合自主设计的MDM守护程序,实现了对相机、蓝牙、WIFI、恶意应用等可能造成敏感数据泄露的设备功能的全面管控。同时,所有的管控功能均在应用层实现,用户可以通过安装APP的方式使用该系统功能,确保了较好的平台兼容性和用户友好性。对系统的性能评估结果表明,其在内存、CPU、电池等方面的消耗均很小,不会对用户造成影响。

本文余下部分的结构如下:第1节,介绍Android系统MDM的背景;第2节,介绍系统的设计与实现;第3节,对系统的性能及有效性进行评估。第4节,总结本文的工作。

1 背景介绍

Android从2.2版本开始提供MDM管控功能,并随着新版本的发布,管控功能不断丰富。比如Android2.2版本仅有十几个管控API,Android 4.2版本增加到五十多个,而在最新公布的Android 5.0版本中已经有接近100个管控API可供调用。由于截止到目前,Android 5.0及以上版本设备的市场占有率还十分有限,普适性不高,故我们将以Android 4.4及以前版本作为主要研究对象。

Android 4.4版本提供的MDM管控功能如表1所示,主要包括:设备管控、密码策略、功能禁用、高级查询四类,具体的API接口可以参考Android开发官网。

虽然Android在设备管控方面投入了很大力度,并随着系统版本的升级不断完善,但依旧有一些迫切需要的功能没有相应接口或是提供了相应的接口,但只支持较高版本的系统,并不适用于绝大多数设备。

我们对这些迫切需要的功能进行了总结和归纳,将其分为两类:1)系统提供了开启/关闭的功能,但并未提供禁用功能,所以这并不能阻止用户再次开启或关闭,如禁用/开启wifi、蓝牙等。2)系统未开放此方面的任何API,如应用黑白名单。详情如表2所示:

2 系统设计及实现

本节介绍该系统的架构设计,以及关键功能的实现。

2.1 系统架构设计

如图1所示,移动设备管理系统总体包含两部分:服务器端和客户端。企业管理员通过服务器端制定各种管控策略并下发至对应的客户端设备(比如,禁用部门A所有员工设备的相机功能、蓝牙功能;禁用部门B所有员工设备使用聊天软件)。员工通过安装的客户端程序,接收服务器端的管控请求,并实施具体的管控。

服务器端无特殊要求,通过搭建一个通用的、支持通知下发功能的Web网站即可实现。本文重点关注客户端的设计和实现。如图1所示,客户端主要包含三个模块:1)指令策略解析器:用于解析来自于服务器端的最新策略,对策略分类并交由API管控模块以及轮询管控模块进行后续处理;2)API管控模块:主要通过调用Android系统提供的API实现相应管控功能;3)轮询管控模块:主要用于实现系统API不支持的管控功能。整个系统的工作流程为:

(1)企业管理者从服务器端向客户端(移动设备)发送指令以及策略;

(2)客户端通过MDM应用中的解析器对指令和策略进行解读并分别交由系统API或轮询管控模块实施策略;

(3)系统API模块通过对比策略和设备当前状态判断设备是否合规,如有不合规项,调用相应API接口,将其修正;

(4)轮询管控模块通过每隔一段时间对设备状态进行轮询并修正的方式,保证其余策略的正确实施。

2.2 关键功能实现

企业移动管理系统的关键在于客户端管控功能,本节对具体的实现过程进行阐述。实现平台采用当前应用最为普及的Android 4.*版本(谷歌公布的Android系统各个版本的市场占有率统计结果显示,截止到2015年4月,Android系统中4.*版本的使用比例达到83.4%)。客户端为具有设备管控功能的Android应用程序(.apk文件)。

2.2.1 API管控模块实现

通过Android系统本身提供的MDM管控API,开发者可以方便快速地实现MDM管控功能,并且具有较好的平台兼容性。本系统的API管控模块通过调用Android开放的MDM管控接口实现,具体实现过程如下:

(1)客户端应用程序首先实例化一个设备管理实体,在后续的管控操作中该实体会被作为管控的发起人。通过注册一个广播服务类(继承自DeviceAdminReceiver)组件完成实例化操作,该组件为实现设备管控的基类,包含一系列特定事件发生时触发的回调方法,如设备管理权限被激活、更换密码等。开发者可以重写这些回调方法来实现状态改变时的通知或其它功能。

(2)为设备管理实体申请管控权限,具体步骤如下:

申请管控权限,即android.permission.BIND_DEVICE_ADMIN;

添加设备管理权限被激活时的事件监听,即在中添加

声明需要管控的项,图2为一个示例,声明该应用程序会进行密码限制、强制锁屏、擦除数据等管控操作。

android.com/apk/res/android ” >

(3)激活该应用的设备管理权限。开发者选择在合适的时刻提示用户激活该应用的设备管理权限,该提示会明确声明该应用的所能管控的功能,如图3所示。只有在用户选择“激活”后,该应用才真正具有设备管理权限。

(4)实施管控。该应用获取设备管理权限后,开发者可以通过使用系统提供的策略管理类(DevicePoIicyManager)实施管控。该类所具有的管理功能已在表中罗列。图4所示为初始化DevicePolicyManager对象,以及基于该对象进行相机禁用和设备锁定的实例代码。需要注意的是,在调用管控API之前,首先应查看该应用是否具有设备管理权限,若无,则无法完成相应的管控操作,此时需要再次通知用户激活设备管理权限。

DevicepolicyManager manager=

(DevicepolicyManager)gerSystemService(DEVICEPOLICYSERVICE);

ComponentName madminName-new componentName(

getApplicationContext (),MyAdmin.class);

//锁定设备

if(manager.isAdminActive(mAdminName》

manager.lockNow () ; if

(manager.isAdminActive ( mAdminName》

manager.setCameraDisabled(mAdminName,true);

2.2.2 轮询管控模块实现

对于表中这些不能通过调用系统API实现的管控功能,我们通过分析Android系统的相关机制,设计了一个专门用于实现以上功能的MDM守护程序,该程序能长时间驻留后台,并且不会造成明显的性能消耗。其工作流程如图6所示。MDM守护程序作为后台的监控程序,不断轮洵当前策略是否合规,并在检测到不合规项时及将其修正,轮询的具体步骤如下:

(l)通过MDM守护程序从本地或服务器端获取最新策略。

(2)通过相关的API接口,查询wifi、蓝牙、音量等设置的当前状态是否符合策略要求,如不满足,立即做出相应调整。

(3)通过捕捉前台界面组件(Activity)错误!未找到引用源的方式判断当前正在运行的应用程序并获取其包名。首先,MDM守护程序会获取当前运行栈栈顶Activity。Android系统用栈的形式管理Activity,当新的Activity被创建时,会被放置到栈顶,这个Activity会进入到运行状态,而前一个Activity则会被压入栈,直到新的Activity退出,否则不会出现在前台。需要注意的是,执行此步操作,需要添加获取栈顶界面组件权限,即android.permission.GET TASKS。其次,通过Activity名称获取前台运行的应用的包名。

(4)查看包名对应的应用是否存在于应用黑名单中,如果存在,则弹出“该应用已被禁用!”的警告对话框,如图5所示,浏览器应用被禁用。该对话框会覆盖在用户正在使用的应用上方,用户无法继续查看或使用该黑名单应用,当用户点击对话框中的“确定”按钮时,会自动跳转至桌面,从而实现禁用应用功能。

为了避免轮询造成太大的性能损耗,我们引入轮询频率调整机制。根据本轮查询结果对轮询频率做出相应调整,如果存在违规现象,则适当增加轮询频率,反之,则减少轮询频率。

通过上述流程,可以看出守护进程需要被放置在一个能长时间驻留系统的组件中运行,Android系统4大组件中的服务(Service)组件恰好为该守护程序提供了合适的运行环境。Service是一个没有用户界面、在后台运行执行耗时操作的应用组件。并且Service组件可以通过响应开机事件完成自启动,这为全方位的设备管控提供了极大便利。我们利用Service的以上特性,将守护程序放入Service中执行并为其添加对系统开机事件(即android.intent.action.BOOT COMPLETED广播)的响应,使其能在开机时完成自启动工作。

3 性能评估

本节将对该MDM系统有效性和能耗方面进行评估。我们选取了市面上5款主流Android手机,版本号从4.1到4.4.4不等,并且包含root的手机和非root的手机,具体如表3所示。

3.1 有效性

我们首先对MDM系统的有效性进行测试评估,以验证该方案是否能在不同Android平台上正确实施管控。具体测试评估过程如下:

(l)预先设计一套实施全面管控的策略并直接写入程序;

(2)将MDM管控系统应用安装在这5部手机中并分别激活其设备管理器;

(3)设置轮询时间,并在程序中开启MDM守护程序;

(4)查看手机中不符合策略项是否被纠正;

(5)在手机符合策略的前提下,反复进行违规操作,查看是否会修改或弹出违规提示框。

实验结果如表4所示。可以看出,无论是通过系统API进行管控的功能还是通过MDM守护程序进行管控的功能,均能正常工作,并且手机root与否未对结果造成影响。

3.2 性能损耗

在各项功能均能有效执行的前提下,我们从能耗、CPU/内存开销等方面对系统的性能进行评估。在程序中,我们假定当前所有的系统设置都处于不合规状态,并在每次轮询中将其纠正,以此可以检测出系统的最大消耗。在实验中,我们分别选取了0.5秒、1秒、2秒作为轮询的时间间隔。实验数据如错误!未找到引用源。所示。

电池损耗方面,通过表5可以看出,随着轮询间隔的缩短,电能的消耗线性增加。在轮询间隔为2秒时,各个手机中MDM应用的开销分别相当于后台运行的System进程的1.40%、2.34%、3.58%、6.28%、1.02%。可以看jH,大部分手机中该应用的电能消耗只占到System进程的5%以内,这不会对手机的使用时间造成明显影响。

内存使用方面,随着轮询间隔的缩短,相应的内存开销不会有明显改变,并且在实验中该应用使用的内存均未超过15MB。目前绝大多数手机的内存总量在IGB到3GB之间(IGB=1024MB),几MB到十几MB的内存消耗,并不会增加手机负担。

CPU使用方面,MDM应用在CPU的使用上最高时也只有不到1.5%,并且占用率和轮询频率保持线性关系。所以该应用也不会对CPU增加明显负担。

综上所述,根据实际的安全要求将轮询间隔设定在0.5秒到2秒之间是可行的,一方面,该轮询间隔不会对设备性能增加明显负担,另一方面满足安全管控的需求。

4 结束语

随着移动设备的普及,移动办公逐渐成为一种趋势。本文关注于移动办公面临的安全问题,设计并实现了一套可靠性高、性能损耗小的Android移动设备管控系统,该系统能够对用于移动办公的终端设备实施有效管控,使得企业管理员可以放心地允许员工通过移动设备进行办公。

猜你喜欢

信息安全
《信息安全与通信保密》征稿函
信息安全专业人才培养探索与实践
保护信息安全要滴水不漏
高校信息安全防护
保护个人信息安全刻不容缓
信息安全