APP下载

基于Android 的移动应用安全实验平台建设

2015-11-30魏晓辉

吉林大学学报(信息科学版) 2015年3期
关键词:智能模块设备

郭 东,李 强,刘 健,魏晓辉

基于Android 的移动应用安全实验平台建设

郭 东,李 强,刘 健,魏晓辉

(吉林大学计算机科学与技术学院,长春130012)

针对移动应用安全领域教学科研的需要,开发建设了移动应用安全实验平台。选择Android作为实验系统,通过在计算机上创建虚拟机与智能设备相结合的方式构建实验单元,再由多个实验单元通过高速网络连接而成整个实验平台。根据移动应用安全的特点制订了实验设计策略,并依此策略设计了8个模块的24个具体实验,涵盖了移动应用安全的3个层面;以具体实验模块的应用为例介绍了平台的使用方法。实际应用表明,移动应用安全实验平台的建设与应用满足了移动应用安全领域教学与科研的需求,取得了较好的教学效果。

安卓系统;移动安全;实验平台

0 引言

随着智能移动终端的普及与性能的提高,传统的计算机应用出现了移动化的趋势,大量移动应用不断被开发并广为使用,使移动设备成为强大的通用型运算平台[1]。越来越多的用户和企业使用移动设备处理个人、金融和商务数据,或用其组织人们的工作和生活[2]。随着移动平台及应用的日益普及,它们对攻击者的诱惑也愈加强烈,特别是移动支付交易量与交易金额的不断攀升,更促使大量黑客从计算机转战到移动应用领域[3-5],最新的安全调查描述了迅速增加的移动攻击现状以及移动攻击的复杂性。移动安全正成为一个日益重要、需求日增的新兴安全领域,它是集计算机安全、无线通信、移动计算的交叉学科,涵盖了使用智能移动设备(特别是基于iOS和Android系统的智能手机和平板电脑)所涉及的各种安全威胁和保护[6-8]。

移动设备的盛行与移动安全威胁的快速增长产生了对移动应用安全领域人才的巨大需求,一些安全企业或组织(如360)已经开始开设关于移动安全的短期培训课程;越来越多的科研院校也将移动安全列入计算机及相关专业的本科生课程中。

作为一个全新的研究领域,目前国内外高校、科研院所关注并开设移动安全课程的很少,移动应用安全实验平台也较少。文献[9]介绍了一种移动安全的学习策略,并依据此策略在Android系统下开发了相应的实验平台。卡耐基梅隆大学开设了一门基于项目的移动安全课程,但开设该课程的目的是为学生进行课堂讨论与探索[10,11]。

Android系统及其编程开发类课程在国内外大学开设的很多,并且市场上也出现了很多Android系统的移动编程实验箱,如文献[12]提出了一套5个Android内核编程的项目和Android虚拟实验室教授学生入门级的操作系统课程。这些Android实验箱或Android虚拟实验室虽然很成熟,并也取得了较好的教学效果,但涉及移动安全的内容极少或没有。

针对这一全新的研究与应用领域,为满足社会对移动应用安全人才的需求,吉林大学计算机学院于2013年开设了移动应用安全课程,该课程定位为安全专业学生的实践必修课。但由于该研究与教学领域较新,目前没有相应的实验平台产品,不能给学生以直观的印象和对移动安全问题深刻的理解。为了更好地满足在移动应用安全领域的教学科研需要,笔者开发建设了移动应用安全实验平台。该平台紧密围绕着理论联系实际、提高学生动手能力的原则,充分利用了实验室现有的软硬件资源,基于Android移动系统设计了24个实验项目,涉及了移动应用安全的各个层面。

1 平台设计

1.1 平台移动操作系统

目前主流的移动智能操作系统有Android和苹果公司的iOS。Strategy Analytics发布的最新数据显示,2014年第2季度苹果iOS和Android的市场份额总和达96%,其中iOS和Android市场份额分别为11.9%和84.6%[13]。因此,为使所实现的移动应用实验平台具有典型意义,应从Android和iOS中进行选择。本平台选择Android系统作为实验平台智能设备的操作系统,基于以下几点原因:

1)苹果的iOS系统有许可限制,而Android系统是免费开源的,非常适合作为教学系统;

2)Android目前是市场占有率排名第1的移动系统,并且发展前景广阔;

3)由于Android系统的广泛应用,已成为越来越多的恶意黑客的主要攻击目标;

4)在Android系统上运行、开发基于Java的安全应用程序,学生具有较好的语言与编程基础;

5)Android系统中发现的许多重要移动威胁对所有的移动系统都是共有的,尽管攻击和防御的实现方式有所不同。对Android系统的安全威胁分析和保护实践能帮助学生理解其他系统中的移动安全问题。

1.2 平台体系结构

图1 实验平台体系结构Fig.1 The architecture of the experiment platform

移动应用实验平台的体系结构如图1所示。平台由大量实验单元组成并通过高速网络路由器连接在一起,另外由一台高性能的Web服务器和Ftp服务器为实验(涉及到网络、Web等的相关实验)提供必要的服务支持。实验单元是实验平台的主体,并可根据学生的人数动态扩充,以满足不同规模教学的需要。

1.3 实验单元

实验单元的硬件由一台高性能计算机和一个运行Android系统的移动设备组成。计算机通过USB接口与移动设备相连接,计算机通过软件与智能移动设备进行通讯,并实现智能移动设备的管理和实验项目。

在实验单元中,计算机起着重要作用。

1)虚拟机载体。在计算机中可以通过虚拟机软件,如Google的Android SDK(Software Development Kit)[14]的AVD Manager工具创建Android虚拟机。虚拟机上可完成绝大多数实际移动设备上所能完成的实验项目。本实验平台应用虚拟机进行实验出于以下目的:①实验演示平台。将一些第3方提供的安全软件和自开发软件预装于虚拟机中,学生可直接在虚拟机上运行,查看实验现象与结果。虚拟机可通过复制的形式发布出去,只要在一个虚拟机上安装演示软件就可迅速发布到各个实验单元。②安全项目开发测试平台。学生在开发安全实验项目时,初期的项目调试、测试工作在虚拟机上进行,开发成功后再安装到智能设备上进行实验。这样能有效地保护智能设备,避免不当代码损毁设备的软硬件资源。

2)安全项目开发与调试平台。通过在计算机上安装Android SDK和Eclipse等开发工具,在计算机端进行安全实验项目的开发与实践,并发布到虚拟机或智能移动设备中。

3)安全实验与观测平台。部分实验(如沙箱实验、共享UID实验、权限漏洞检测实验)需要通过计算机上的软件工具(如adb)向虚拟机或智能移动设备发送指令,并在计算机上观测实验结果。

智能移动设备是各项实验的载体,通过USB连接线与计算机相连接;同时智能移动设备需要开启USB调试模式,接收并执行计算机的各种命令(如安装移动应用,执行移动应用等)。一个实验单元默认配置一个智能移动设备,当需要两个移动设备配合实验(如短信分析、短信拦截)时,由实验单元自由组合,交互进行实验。

1.4 平台软件环境构建

实验单元中计算机的操作系统为Microsoft公司的Windows Xp,并安装了 Google公司提供的 Android SDK和Java集成开发环境Eclipse(见图2)。学生在Eclipse中可以编写各种安全实验项目程序,并可在Android SDK的帮助下提交给虚拟机/设备运行。

Android SDK中的两个重要工具为AVD manager和adb,AVDmanager可以创建、运行android虚拟机,作为安全实验的运行平台;adb是在cmd命令行下使用的工具,通过它可以实现Android虚拟机/智能设备的控制,包括:安装卸载应用程序;修改Android系统的环境设置;查看实验Android虚拟机/智能设备上的实验结果。

图2 实验平台软件环境Fig.2 The software environment of the experiment platform

2 实验设计

移动应用安全实验平台中的安全实验是实现平台的关键,它关系到学生能否深入理解该领域的基础知识并应用到实践中去。

2.1 实验设计策略

在设计安全实验时,按照以下策略进行。

1)现有软件与自开发相结合的策略。移动应用安全已经在学界和产业界得到了广泛重视,并产生了一些优秀的移动安全软件,如运行于Android系统下的查看应用配置文件的Manifest浏览器、Android平台评估工具Mercury、系统漏洞检测工具X-RAY等。这些工具具体针对移动应用安全的某个层面,并且经过了严密地测试,具有较好的可用性。因此,这些工具将被采用并预安装于计算机中的演示虚拟机内。与此同时,更多的安全威胁没有可供演示的安全软件或即使有也因非开源无法深入其工作原理和运行机制,不适用于教学。针对这些安全威胁的实验项目,由平台建设团队自行开发建设,不但要有实际运行的攻击与防护程序,还要有程序的原理、流程与代码,以便向学生进行详细地讲解。

2)实验移动威胁与保护相结合的策略。为提高学生学习的效率和针对性,对大多数特定的移动威胁,采取了实验移动威胁与保护相结合的策略。即首先设计一个实验让学生体会一个攻击实例,然后启发学生实现一个保护方案并付诸于实验,查看防护效果。保护方案实验可以是移动应用程序开发(如垃圾短信的过滤和拦截),开源安全工具应用(如使用特定工具检查系统的权限提升漏洞),或是修改应用的配置(如给特定组件增加调用权限,避免串谋攻击的发生)。

通过让学生体验实际的安全攻击与威胁,能使学生对该领域知识获得更深入的了解,从而促使他们充分开动脑筋设计和实现更好的保护方案。

3)实际智能设备实践的策略。虽然在Android虚拟机上执行攻击与防护实验也能取得较好的效果,但真实的移动设备更贴近学生在实际生活中的概念和应用。学生在虚拟机上开发调试成功实验应用程序后,即可将他们安装在实际设备上并查看实际运行效果。这样能帮助学生从动手实践中获得知识的满足和信心,在学术学习和学生的现实生活之间建立强烈的关联性,使学生参与到学习移动安全知识中,不断摸索创建自己的安全防护应用程序,提高他们对安全编程原则的意识和理解。

为了让所设计的实验在实际设备上稳定、健壮地运行,需要从大量的实验项目中进行甄别,并对一些项目的代码进行修改,以适应实际设备。

2.2 具体实验设计

笔者所设计的移动应用安全实验项目紧密围绕着Android安全的3个层面[15],即系统安全、程序发布安全与应用运行安全进行设计,取材来自于笔者所在教学科研团队在移动应用开发与信息安全方面的教学经验和最新的移动安全学术材料及报告;项目实验的类型既有验证性项目又有开发类、设计类与综合类项目。平台实验项目共分为8个模块,每个模块包括实验项目涉及的基础理论知识、实验的设计与步骤、实验报告与拓展作业。表1给出了本平台的8个实验模块,从移动安全的3方面涵盖了重要的移动威胁,包括:1)移动系统安全,与实体设备和移动操作系统中安全问题相关的移动威胁;2)移动应用发布安全,移动应用发布时的安全威胁;3)移动应用安全,与移动应用程序的开发和运行安全问题密切相关的移动威胁。

表1 实验平台中的实验模块Tab.1 Modules in the experiment platform

表1中各个实验模块如下。

M1:系统漏洞检测与root权限获取。该模块给出Android系统每个版本存在的权限提升漏洞,指导学生应用软件工具检测这些漏洞;给出移动设备一键root的概念,指导学生应用软件获得设备的最高管理权限。

M2:文件系统访问与敏感信息窃取。该模块的实验需要在M1模块成功获取管理员权限的基础上进行。该模块用于Android文件系统的结构与特殊权限挂载,指导学生通过管理员权限从文件系统中获取用户敏感数据信息。

M3:密钥创建与项目签名。该模块用于Android应用发布的签名验证机制,指导学生应用工具创建密钥库及密钥,并对应用进行发布签名。

M4:沙箱机制与共享UID(User I'dentification)。该模块为Android系统的进程间的安全保护机制-沙箱,指导学生通过adb工具查看沙箱的外在表象,指导学生创建共享UID的两个应用项目,并验证其资源互访能力。

M5:权限机制与调用保护。该模块给出Android环境下使用资源及组件权限的管理机制,包括权限的申请与权限的定义。指导学生在项目中申请权限和定义权限并应用其进行组件和资源保护,演示串谋权限攻击实例,给出避免串谋权限攻击的程序设计方法,应用已有的安全软件检测系统中存在的权限漏洞指导学生进行实现。

M6:Android四大组件安全,包括Activity、Broadcast Receiver、Service和Content provider的安全。通过几个实例让学生观察组件存在的安全漏洞,并进一步让学生实践弥补漏洞的方法。演示Activity劫持实例,并给出防范方法。

M7:内存与外存存储安全。该模块给出Andriod系统内部存储器与外部存储器的读写安全机制,通过实例验证内外存的读写安全。

M8:短信息安全。该模块分析移动设备中短信息的工作原理、基于短信息的攻击及保护方案。演示短信窃取实例,指导学生开发基于过滤器的保护方案。

目前这8个模块已全部应用于教学实践中,并取得了较好的效果。未来将探索设计更多的模块,如GpS(Global position System)定位安全模块等。

3 平台实验案例

本节以模块M4为例给出应用本平台进行学习与实验方法。模块M4的实验步骤如下:

1)通过多媒体课件向学生讲述Android沙箱机制的原理和实验方法;

2)指导学生应用Eclipse创建两个Android项目ShareidA和SharedidB,并在项目ShareidA中加入在ShareidB文件目录中创建文件的代码;

3)将ShareidA和ShareidB用相同的密钥签名,安装到同一Android虚拟机/智能设备上运行;

4)使用ADB工具在命令行上打开Android虚拟机/智能设备的shell,使用ps命令查看ShareidA和ShareidB的进程号p ID和用户号UID;执行ShareidA中在ShareidB目录中创建文件的代码,在ADB shell中查看文件创建结果;

5)在ShareidA和ShareidB各自的配置文件AndroidManifest.xm l中,分别指定共享UID名为shareid;

6)将ShareidA和ShareidB用相同密钥签名后安装到同一Android虚拟机/智能设备上运行;

7)查看ShareidA和ShareidB的进程号p ID和用户号UID,执行ShareidA中在ShareidB目录中创建文件的代码,在ADB shell中查看文件创建结果;

8)将ShareidA和ShareidB用不同密钥签名后安装到同一Android虚拟机/智能设备上运行;

9)查看ShareidA和ShareidB的进程号p ID和用户号UID,执行ShareidA中在ShareidB目录中创建文件的代码,在ADB shell中查看文件创建结果。

要求学生将实验步骤4)、7)、9)的实验结果写在实验报告上,同时分析步骤4)、7)、9)产生不同实验结果的原因。

通过上述实验在实验设备上的实验结果对比,学生能深刻认识Android进程保护沙箱机制的原理,并且能根据需要创建共享UID的程序共享资源,同时也能理解在进行移动应用开发时不应滥用共享UID,避免安全隐患。

4 结语

笔者针对移动应用安全领域教学科研的需要,选择Android系统为实验系统,开发建设了移动应用安全实验平台。详细探讨了实验平台的建设内容,包括平台移动实验系统的选择、硬件体系结构、平台的实验单元和软件环境的搭建;给出了平台中实验设计的策略,并依此策略设计了8个模块的24个具体实验,涵盖了移动应用安全的3个层面;以具体实验实例的方式给出了平台的使用方法。移动应用安全实验平台的建设与应用顺应了计算机科学在安全领域的发展潮流,满足了移动应用安全教学与科研的需求,通过实际应用取得了较好的教学效果。

[1]陈捷,何志坚,宋占伟,等.Android应用中即时视频图像放大显示方法[J].吉林大学学报:信息科学版,2013,31(2):152-157. CHEN Jie,HE Zhijian,SONG Zhanwei,et al.Real-Time Video Image Magnification Method in Android Application[J]. Journal of Jilin University:Information Science Edition,2013,31(2):152-157.

[2]董立岩,隋鹏,辛晓华,等.基于Android的智能家居终端控制系统[J].吉林大学学报:信息科学版,2014,32(3):303-307. DONG Liyan,SUI peng,XIN Xiaohua,et al.Implementation of Smart Home Terminal Control System Based on Android platform[J].Journal of Jilin University:Information Science Edition,2014,32(3):303-307.

[3]Lookout,Inc.Lookout Mobile Security Report 2011[EB/OL].[2014-11-15].(2011-10-12).https:∥www.mylookout. com/mobile-threat-report.

[4]Juniper Networks,Inc.2011 Mobile Threats Report[EB/OL].[2014-11-16].(2012-03-01).http:∥www.juniper.net/us/ en/local/pdf/additionalresources/jnpr-2011-mobile-threats-report.pdf.

[5]杨欢,张玉清,胡予濮,等.基于多类特征的Android应用恶意行为检测系统[J].计算机学报,2014,37(1):15-27. YNAG Huan,ZHANG Yuqing,HU Yupu,et al.A Malware Behavior Detection System of Android Applications Based on Multi-Class Features[J].Chinese Journal of Computers,2014,37(1):15-27.

[6]王少辉,王超,孙国梓.DroidDefence:细粒度的Android应用权限管理系统[J].四川大学学报:工程科学版,2014,46(6):14-18. WANG Shaohui,WANG Chao,SUN Guozi.DroidDefence:An Extended Fine-grained Android Application permission Management System[J].Journal of Sichuan University:Engineering Science Edition,2014,46(6):14-18.

[7]胡文君,赵双,陶敬,等.一种针对Android平台恶意代码的检测方法及系统实现[J].西安交通大学学报,2013,47(10):37-43. HUWenjun,ZHAO Shuang,TAO Jing,et al.A Detection Method and System Implementation for Android Malware[J]. Journal of Xi'an Jiaotong University,2013,47(10):37-43.

[8]CAREY NACHENBERG.AWindow into Mobile Device Security[EB/OL].[2014-11-10].(2012-03-01).http:∥www. symantec.com/content/en/us/about/media/pdfs/symc_mobile_device_security_june2011.pdf?om_ext_cid=biz_socmed_ twitter_facebook_marketwire_linkedin_2011Jun_worldwide_mobilesecuritywp.

[9]pRABIR BHATTACHARYA,LIYang,GUO Minzhe,et al.Learning Mobile Security with Labware[J].IEEE Security& privacy,2014,12(1):69-72.

[10]pATRICK TAGUE.Mobile Security-Fall 2010[EB/OL].[2014-11-10].(2012-02).http:∥wnss.sv.cmu.edu/courses/ 14829-f10.

[11]pATRICK TAGUE.Mobile Security-Fall 2011[EB/OL].[2014-11-10].(2012-02).http:∥wnss.sv.cmu.edu/courses/ 14829-f11.

[12]JEREMY ANDRUS,JASON NIEH.Teaching Operating Systems Using Android[C]∥proceedings of the 43rd ACM Technical Symposium on Computer Science Education.New York:ACM,2012:613-618.

[13]Strategy Analytics.Strategy Analytics:Android Captures Record 85 percent Share of Global Smartphone Shipments in Q2 2014[EB/OL].[2014-11-10].(2014-11-02).http:∥www.prnewswire.com/news-releases/strategy-analytics-android-capturesrecord-85-percent-share-of-global-smartphone-shipments-in-q2-2014-269301171.html.

[14]RONAN SCHWARZ,pHILDUTSON,JAMESSTEELE,etal.The Android Developer's Cookbook:Building Applicationswith the Android SDK[M].[S.l.]:Addison-Wesley Educational publishers Inc,2013.

[15]张玉清,王凯,杨欢,等.Android安全综述[J].计算机研究与发展,2014,51(7):1385-1396. ZHANG Yuqing,WANG Kai,YANG Huan,et al.Survey of Android OS Security[J].Journal of Computer Research and Development,2014,51(7):1385-1396.

(责任编辑:张洁)

Construction of Android Based Experimental platform for Mobile Application Security

GUO Dong,LIQiang,LIU Jian,WEIXiaohui

(College of Computer Science and Technology,Jilin University,Changchun 130012,China)

According to the needs of teaching and scientific research in the field ofmobile application security,the experimental platform of mobile application security is developed and constructed.Android is selected as the experimental system,and the experimental unit is constructed through creating a virtualmachine in the computer and combining with the intelligent device.And many experimental units are connected by the high-speed network to form the whole experimental platform.According to the characteristics of the mobile application security,the design strategies for the experiments aremade.24 specific experiments consisted of8 modules are designed on the basis of these strategies,covering three levels of the mobile application security.Based on the application of specific experimental module,the application method of the platform is introduced.The construction and application of the experimental platform for mobile application security meets the needs of the teaching and scientific research,and achieves a good teaching effect.

Android;mobile application security;experimental platform

Tp393

A

1671-5896(2015)03-0325-06

2014-11-25

吉林大学教改重大基金资助项目(419050550044);吉林大学实验技术研究重点基金资助项目(201308)

郭东(1975— ),男,吉林德惠人,吉林大学讲师,博士,主要从事移动应用安全研究,(Tel)86-13341581599(E-mail)guodong@jlu.edu.cn;魏晓辉(1972— ),男,长春人,吉林大学教授,博士生导师,主要从事云计算研究,(Tel)86-431-85167737(E-mail)weixh@jlu.edu.cn。

猜你喜欢

智能模块设备
谐响应分析在设备减振中的应用
28通道收发处理模块设计
“选修3—3”模块的复习备考
智能前沿
智能前沿
智能前沿
智能前沿
基于MPU6050简单控制设备
500kV输变电设备运行维护探讨
集成水空中冷器的进气模块