Android 软件行为监控系统的设计与实现 曾阳,邹仕洪** 作者简介:曾阳 (1988-),男,硕士研究生,主要研究方向:移动信息安全 通信联系人:邹仕洪(1977-),男,副教授,主要研究方向:移动信息安全. E-mail: zoush@bupt.edu.cn (北京邮电大学网络与交换技术国家重点实验室,北京 100876) 摘要:本文首先介绍了Android 5 操作系统的安全机制以及恶意软件的特征,引出了Android 软件行为监控系统的重要性。接着详细介绍了Android 系统的Binder 机制的架构和原理,软 件行为监控系统的简介和技术实现,该系统的总体架构,组成该系统的各模块的设计和对应 的功能。最后,根据真机的监控结果,总结了该系统的优缺点并且对该系统未来的发展做了 展望。 10 关键词:Android;软件行为监控;Binder 中图分类号:TP311 Design and implementation of software's behavioral-monitoring system on Android 15 Zeng Yang, Zou Shihong (State Key Laboratory of Networking and Switching,Beijing University of Posts and Telecommunications , Beijing 100876) Abstract: Firstly, this paper introduces security mechanism of Android and the characteristic of malware on Android, and then stresses the importance of software’s behavioral-monitoring system 20 on Android.Next, this paper introduces the Binder schema of Android and makes a detailed description of the design of the system and the technic implementation, including its structure, the design and function of each component. Finally, according to the monitoring result of this system on the real Android phone, this paper summarizes the advantages and disadvantages of the system and gives an outlook of the development of the system. 25 Key words: Android; Software’s behavioral-monitoring; Binder 0 引言 Android 是一个以Linux 为基础的半开源操作系统[1],主要用于移动设备,由Google 成 立的Open Handset Alliance(OHA)[2]持续领导与开发,主要使用于智能手机和平板以及其 30 他智能终端。2012 年7 月数据,Android[3]占据全球智能手机操作系统市场59%的份额,中 国市场占有率为76.7%[4]。随着智能手机的快速发展,智能终端上的恶意软件也越来越多。 而Android 平台作为目前市场上占有率最高的手机平台,成为杀毒厂商和黑客关注的重点。 Android 操作系统使用了沙箱(sandbox)机制,应用程序所需权限以列表的形式展现出 来,供用户查看。用户可以根据权限来考虑自己是否需要安装,用户只有在同意了应用程序 35 权限之后,才能进行安装。这种安全机制把安全问题寄希望于用户,但是普通用户往往不了 解软件权限的具体作用就安装了软件,由此带来了比较大的安全隐患。并且,Android 应用 的来源比较繁杂,除了官方的电子市场,还有很多第三方的电子市场和应用论坛,这些渠道 来源的应用程序未经审核就可以被用户下载安装并使用。相比之下,苹果的iOS 系统和诺基 亚的Symbian 系统则有对应的严格的保护措施。 40 到目前为止,研究人员已经发现超过30 个著名的Android 恶意软件家族,它们的安装 方式,激活方式,传播方式具备很多共同特征。从知名安全厂商网秦的安全报告中可以看到, Android 平台的恶意软件,主要通过以下几种途径:软件本身对用户宣称为正常功能,但具 有隐藏恶意行为,或者在正常软件中植入恶意代码,然后通过暗扣用户话费,暗自消耗用户 数据流量获取非法盈利。在未经用户许可条件下,获取并上传用户的隐私数据信息,例如用 户电话簿,短信45 息等,再将这些数据卖给需求方。内嵌恶意插件,例如恶意广告插件,以此 获得广告收入[5]。因此,在Android 平台上如何定位软件的恶意行为问题,是亟待解决的重 要问题。 本文主要从如何定位软件行为问题入手,分析Android 的Binder 通信机制[6],介绍 Android 软件行为监控技术的实现,Android 软件行为监控系统架构以及各模块的具体实现, 50 最后通过监控结果对Android 软件行为监控技术的作用做了总结。 1 软件行为监控系统简介 定位软件的恶意行为,一般是通过动态和静态两个方面来入手。静态分析即分析软件的 汇编代码和java 字节码并定位其恶意代码。动态分析是直接运行软件并通过监控系统捕捉 其行为,与静态分析的结果相印证,这种方式能有效确认应用软件的行为。软件行为监控系 55 统主要用于动态分析阶段,可全面监控手机上的敏感行为并实时记录到监控日志中。 2 Android 平台软件行为监控系统设计 Android 平台上的恶意软件与传统的PC 上的恶意软件的特点有很大的不同,一方面因 为手机上的恶意软件与传统的电脑病毒产生的危害并不一样,手机相对于电脑具有更多的用 户隐私信息以及直接涉及用户的账单费用;另一方面,Android 平台采用了基于Linux 系统 60 的文件访问控制模型和基于Linux 之上的Framework 权限访问控制的安全模型[7]。本文描述 的软件行为监控系统则是基于这一套安全模型之上的一套软件行为监控系统。 2.1 Android 平台的Binder 通信机制 Linux 系统采用的进程间通信方式主要有:共享内存、管道、信号量和Socket。而Android 平台进程间通信采用一种新的IPC 机制,来满足系统对通信方式,传输性能和安全性的要求, 65 这就是Binder 机制[8]。Binder 机制采用Client-Server 通信方式[9],采用了代理设计模式[10], 系统进程作为Server 提供相机拍照,短信收发,拨打电话,获取地理位置信息等服务;普 通应用程序作为Client 向Server 发起服务请求,调用这些服务。Android 系统中,为了向应 用开发者提供丰富多样的功能,大量地采用了这种通信方式,诸如媒体播放,视音频捕获, 以及各种让手机更智能的传感器(加速度、方位、温度、光亮度等)都由不同的Server 负 70 责管理,应用程序只需作为Client 与这些Server 建立连接便可以使用这些服务,程序设计者 花很少的时间和精力就能开发出令人眩目的功能。如图1 所示就是Android 平台的Binder 通信架构。 图1 Android 平台Binder 通信架构图 Fig. 1 The architecture of 75 Binder on Android Platform 2.2 Android 软件行为监控系统的功能 针对Android 平台上定位软件行为的问题以及Android 的Binder 通信模型,Android 软 件行为监控系统完成了如下行为的监控:(1)读取imei[11]或imsi;(2)发送短信,拨打 电话;(3)读取或者写入(通讯录,通讯记录,浏览器书签,设置等)系统数据库;(4)读 80 取GPS 信息;(5)连接摄像头服务;(6)连接录音服务。 2.3 Android 软件行为监控系统的实现方式 正常情况下,应用程序发出某个请求时,会首先向ServiceManager 发出getService 请求, 获取提供相应服务的的进程的Binder 引用,然后通过这个Binder 引用来对相应的服务进行 访问操作。以发送短信这一操作为例,应用程序需要调用短信服务发送短信时,首先向 85 ServiceManager 发出getService 请求获取短信服务的Binder 引用,然后通过这个Binder 引用, 向短信服务发起相应的请求,短信服务通过检查发送应用程序的相应权限,如果是合法的请 求,短信服务就会完成该请求内容,并且向发起请求的应用返回对应操作的执行结果。 Andorid 软件行为监控系统即是在Android 权限访问控制基础上为需要监控的服务增加了一 个访问控制模块,如图2 所示。这样,一个应用程序的访问请求,就会首先通过新增的访问 90 控制模块,然后再转发到对应的后台服务模块,以此完成对Android 软件行为的监控。 图2 Android 软件行为监控系统的实现方式 Fig. 2 The implementation of software’s behavioral-monitoring system on Android 2.4 系统总体架构 Android 软件行为监控系统主要由95 以下部分组成,中转服务模块(M***Service),中转服 务控制模块(Service Controller Module),安全策略检查模块(Security Policy Checking Module),日志模块(Log Module)以及给用户展示的主界面。如图3 所示,当应用程序发出 一个请求,这个请求被中转服务模块拦截下来,中转服务模块将该请求发送到中转服务控制 模块,中转服务控制模块向安全策略检查模块发起请求,安全策略检查模块根据设定的安全 100 策略,返回允许或者禁止,日志模块将该行为记录下来,实现对软件行为的监控,中转服务 模块根据返回的结果,如果是允许,则转发到对应服务,如果是禁止,则拒绝该请求的访问。 图3 系统总体架构图 Fig. 3 Architecture of the system 105 2.5 各模块描述 图4 行为监控模块数据流图 Fig. 4 Data flow of the behavioral-monitoring model 2.5.1 中转服务模块(M***Service) 110 该模块需要完成的功能是拦截系统的请求,并且把请求转发到中转服务控制模块 (Service Controller Module)。由于系统不同的服务可能在不同的进程里,这些服务通过ioctl 函数与Binder 驱动设备进行数据读写操作,从而完成该请求的Binder 通信,所以我们需要 将ioctl 函数里BINDER_WRITE_READ 消息读取到的buffer 中对应的服务的Binder 引用替 换为我们的中转服务模块(M***Service)的Binder 引用,这样,中转服务模块就接管了原来 115 的需要监控的服务。然后,中转服务模块把这些请求转发给中转服务控制模块,再把中转服 务控制模块返回的结果返回给原来的服务。具体的实现中,我们需要为需要监控的系统服务 开发对应的中转服务模块。 2.5.2 中转服务控制模块(Service Controller Module) 该模块需要完成的功能是接收中转服务模块转发的请求,将这些请求封装后发给安全策 120 略检查模块(Security Policy Checking Module)进行检查,然后将策略检查的结果返回给对应 的中转服务模块。 2.5.3 安全策略检查模块(Security Policy Checking Module) 该模块完成的功能是设置安全策略,存储安全策略,当中转服务控制模块(Service Controller Module)传递对应的检查请求过来时,根据传递的参数,判断对应的应用程序是否 125 符合当前安全策略,并且返回对应的响应,允许或者拒绝。 2.5.4 日志模块(Log Module) 该模块是与安全策略检查模块(Security Policy Checking Module)对接,当有请求发送过 来时,表明某个App 产生了一个我们监控的行为,通过安全策略检查模块处理后,日志模 块(Log Module)将该行为记录下来。日志模块记录该次行为所属的进程uid,用于定位该行 130 为是由哪一个App 发出,还有该行为的详细信息,例如发送的短信内容,想要拨打电话的 号码等,另外还要记录该行为发生的时间以及安全策略检查模块对此行为的处理方式。这样, 学术论文网Tag:代写论文 代发论文 代写代发医学 |