论文总字数:24344字
摘 要
随着Android智能手机的普及,人们在智能手机上的隐私行为和个人数据越来越多,例如电子支付在当今就十分常见。所以Android手机的安全性逐渐受到人们的重视,对Android智能终端安全能力的测试有助于更好地划分和约束应用程序的权限,防止应用程序在用户不知情的情况下擅自做一些并非用户本意的行动。大多数安卓恶意应用都是在后台用户不知情的情况下进行各种操作,从而达到窃取用户隐私,恶意扣费等目的。
本次毕业设计开发了一款可以检测安卓智能终端安全能力的应用软件,安全测试软件能够测试安卓智能手机的如下功能:拨打电话,发送短信,发送彩信,发送邮件,通话录音功能,本地录音,拍照/摄像功能,电话本数据读取等。通过测试软件功能的调用来观察系统是否给出明显的提示,如果系统要求用户确认或给出提示,则该操作系统是安全的,否则操作系统就是不安全的,并且在最后展示了在真机上运行测试软件的结果。通过这样的测试,我们能够发现智能手机系统上的一些安全缺陷,从系统上保证移动终端的安全性。
关键词:安卓 智能终端 安全测试
THE TEST OF ANDROID SMARTPHONE’S SECURITY CAPABILITY
Abstract
With the widespread of android smartphones, private behavior and data on them become more and more. For example, electronic payment is common nowadays.Thus android smartphones’ security capability is paid attention to gradually. The test of android smartphone’s security capability is good for distinguishing and constraining the permissions of apps, which can help prevent apps from some undesirable behaviors users can’t observe. Most android malicious applications’ operation are hidden from users so that they can steal users’ private data, deduct malicious charge and so on.
An app which can investigate android smartphone’s security capability is developed in my graduation project. The app for security testing is requested to investigate the following functions of android smartphones: dialing, sending SMS, sending MMS, sending emails, call recording, local recording, camera function, reading and writing contacts .etc. By observing the reaction from system, we can consider the system to be safe if we recevie obvious notifications.Otherwise, we can consider the system to be unsafe. At last, we can see the result after running the app on mutiple real devices. From this test, we can find some security defects of the smartphones’ systems and ensure the security of smartphones on the system-level.
KEY WORDS: android smartphone security testing
目 录
第一章 绪 论 1
1.1引言 1
1.2安卓智能终端安全现状及安全威胁 2
1.3安卓智能终端安全测试常用方法及优缺点分析 2
1.4本文的研究目的和主要研究内容 4
第二章 安卓开发环境及相关知识 5
2.1 安卓开发环境介绍 5
2.2 安卓开发平台搭建 5
2.3安卓使用的Java语言和API 5
2.3.1安卓使用的Java语言 5
2.3.2安卓支持的Java API 6
2.4安卓的系统架构 6
2.5安卓应用程序的组件 8
2.6 安卓活动的生命周期 9
2.6.1活动堆栈 9
2.6.2活动的生命周期 10
第三章 测试软件功能简介及试验方法 12
3.1测试软件总体结构 12
3.2通信类功能 13
3.2本地敏感功能 15
3.3状态提示类功能 19
3.4操作用户数据的功能 22
3.5其他功能 25
3.6权限列表 26
3.7测试方法 27
第四章 测试结果及结果分析 28
4.1测试结果 28
4.2结果分析 28
毕设总结与致谢 30
参考文献(Reference): 31
第一章 绪 论
1.1引言
当今,移动互联网飞速发展,移动终端用户规模和数量保持快速增长。截止2012年底,我国移动终端网民数量超过4.1亿(CNNIC);智能手机用户接近2.3亿(MIIT),未来智能手机的销量要会超过PC的销量。
图1-1移动终端用户规模
图1-2 移动互联网应用爆炸性增长
智能终端成为人们生活、娱乐甚至是工作的一个重要接入点,终端设备承载着越来越多的用户个人隐私数据。作为全球最活跃的移动终端平台,Android平台是恶意攻击者的首要目标,因此也是安全研究人员关注的焦点。由于Android系统开放性的特点,每个人都有机会编写并发布自己的Android应用,Android平台的恶意软件与日俱增。
安卓平台上的恶意应用有一个共同特点,即在用户不知情的情况下擅自做一些并非用户本意的行动,从而实现远程控制、恶意扣费、隐私窃取等功能。本次毕设的目的是对多厂商的安卓终端进行全面测试,寻找有无在用户不知情的情况下进行敏感操作,如拨打电话,发送短信,连接网络等,以其从系统层面去除恶意应用。
1.2安卓智能终端安全现状及安全威胁[1-4]
陈萍在《移动智能终端安全回顾与展望》[5]中回顾了2013年移动终端安全的一些问题:1.黑客们首选攻击安卓平台 2. 人们开始高度重视隐私窃取问题 3. 资费消耗成为首要安全威胁 4. 大量垃圾短信由伪基站发送 5. 二维码正日益成为恶意代码传播主要渠道之一;文章也从操作系统,硬件芯片,应用软件以及来自社会方面的问题来分析安全问题的产生并提出了未来移动智能终端安全发展趋势:1. 恶意代码隐藏自身恶意的能力增强并向立体化发展 2. 移动智能终端由于网络的不断发展安全风险也逐渐增加 3. 电子支付将成移动终端一个需要刻不容缓保证安全的问题。
移动智能终端常见安全威胁从接入端分为4类:1. 来自应用的安全威胁:应用中包含许多恶意代码和木马病毒,以及攻击应用商店和充作恶意应用商店的存在,终端生态系统会蒙受吸费、窃取隐私的巨大损失。2. 来自Web的安全威胁:随着Web2.0和HTML5的发展,终端生态系统安全威胁的入口转变为基于Web环境的业务和应用的攻击,终端生态系统会面临各种重要危害。3. 来自操作系统的安全威胁:终端操作系统由于操作系统漏洞和后门的存在在面对恶意攻击时变得脆弱,会造成控制系统和破坏系统的恶果,终端生态系统会由此受到巨大影响。4. 来自硬件的安全威胁:隐私数据由于终端的丢失或者故障而泄露或者丢失,硬件会受到恶意软件的破坏,终端生态系统将遭受重大损失。
安全威胁从造成后果又可以分为3类:1.资费损失类:目前“安卓吸费王”恶意插件变得越来越常见,根据最新数据显示,已有超过500款热门应用成为“安卓吸费王”的伪装对象。伪装成普通的应用软件欺骗用户安装的软件还有很多,例如“手机骷髅”病毒和“僵尸”病毒;2. 隐私窃取类:如:随身翻译机、血斩僵尸、贪吃蛇等等。这些恶意软件看上去是翻译或者娱乐功能,实际上它在暗地里搜集用户电话本信息、定位信息、位置信息,还可能盗取用户各种账户密码,为其它侵犯行为做准备。3.功能损坏类:“骷髅头”病毒会对移动终端自身操作系统造成严重的危害。手机资源会被这类病毒大量侵占,如果不对此类病毒进行预先的防范,就会大大影响用户对手机的使用效率。
1.3安卓智能终端安全测试常用方法及优缺点分析
随着人们对智能终端安全方面的研究,安全测试方法也变得多样化和系统化。常用的检测方法有5种[6-14]:静置检测、功能启动检测、特征码扫描、二进制代码逆向分析、动态行为检测,以下是关于这几种方法的说明。
1.3.1静置检测
静置检测首先要将应用软件安装在被测试的手机上,然后打开GPRS数据连接后将手机静置一段时间后再通过短信或者拨号的方式查询资费情况,如果资费有较大损失,说明该软件暗地里进行了恶意操作而智能终端系统没有给出明显的提示。静置检测主要用于确保智能终端满足如下要求:
I.在用户不知情的状况下,应用软件不能暗地里自动发送短信而且系统不给出明显的提示;
II. 在用户不知情的状况下,应用软件不能暗地里自动拨打电话而且系统不给出明显的提示;
III. 在用户不知情的状况下,应用软件不能暗地里自动连接到PS域(运营商不计流量的情况除外)而且系统不给出明显的提示;
IV. 在用户不知情的状况下,应用软件不能暗地里发送点播订制增值业务的短信而且系统不给出明显的提示;
V. 在用户不知情的状况下,应用软件不能暗地里自动确认订制增值业务的二次确认短信,从而完成增值业务的最后订阅,而且系统不给出明显的提示;
VI. 用户在订阅移动智能终端上自带的消费业务时,终端系统应给出相应服务的资费说明(仅包括短信订阅的情况)。
优点:静置检测通过静置手机一段时间后资费查询就能判断应用软件是否进行恶意消费,而且能观察智能终端系统在应用软件恶意消费时是否给出明显的提示,操作十分简单,不涉及终端系统和应用软件代码层面,能快速地发现问题。
缺点:静置检测需要静置很长一段时间,这样的话就不能经行其他检测,有时还要对不同品牌的手机卡在同一智能终端上验证,这就使测试的时间倍增。而且静置检测由于主要是通过资费查询来判断应用软件是否进行恶意消费,但如果应用软件进行了重要隐私数据窃取就无能为力了。现在还有些恶意软件平时表现为良性软件,需要很长的时间或者周期才会触发自己恶意的功能,这样的话测试的时间长短就不好确定了,很容易放过一些潜在的恶意行为。
1.3.2功能启动检测
功能启动检测是指观察启动智能终端的基本功能时系统是否带有明显的提示,如拨打电话时会出现常见的拨号界面,发送短信时会有系统弹框提示短信已发送,连接网络时屏幕上方会有明显的图标提示,打开摄像头时有拍照的界面等。
优点:功能启动检测在操作上简单易懂,能发现系统上的一些安全漏洞,而且只需了解系统各个基本功能的调用过程,代码实现比较简单。
缺点:功能启动检测只能检测出系统上的一些缺陷,如果没有提示的话可能会被一些恶意软件利用,而不能弥补系统的漏洞。如果系统本身存在漏洞,对于一些恶意软件制造多余的界面掩饰自己的背后操作很难检测。
1.3.3特征码扫描
特征码扫描的主要工作是先从已发现的恶意软件中得到实现恶意功能的关键代码,将这些关键代码总结生成一个可供查询的代码库,然后就可以将被测试的软件的代码和这个代码库进行比较,如果存在相似部分,说明这个应用软件存在恶意功能,但是如果是新型的恶意代码就不能检测出来了,所以这个代码库的更新至关重要,它只有保持不断更新,才能保证检测的成功性和说服力。
恶意代码库通过如下流程进行自己的完备性方面的扩充和完善:
搜集新的样本-gt;主动监控样本-gt;计算机智能分析-gt;人工分析-gt;恶意代码扩充到库中
优点:特征码扫描由于是通过计算机来进行扫描,在扫描程序可靠的情况下将减少很多人力,节省时间,使检测的效率和准确性都能得到提高。
缺点:特征码检测可以发现恶意代码库中已有的恶意代码,遇到没有的恶意代码就检测不出来了。恶意代码库需要实时更新,它的维护和更新需要耗费很多人力和资源。有些恶意软件擅长隐蔽自己的关键代码,这样就很有可能避免被检测出来。
1.3.4二进制代码逆向分析
二进制代码逆向分析主要由代码反编译模块、源代码分析模块、安全判定模块及恶意代码库组成,检测流程如下所示:
安卓应用程序-gt;代码反编译模块-gt;源代码分析模块-gt;安全判定模块-gt;更新恶意代码库
第一步,先将安卓程序的安装包置于代码反编译模块得到这个程序的java源代码;第二步,将这个程序的java源代码置于源代码分析模块中进行检测,可以得到这个程序调用的敏感数据和API;第三步,根据第二步的检测结果进行分析来判断改程序是否是恶意软件;第四步,如果检测出是恶意软件就将关键代码添加到恶意代码库实现代码库的不断更新。最重要的就是能够实现反编译模块。
优点:二进制代码逆向分析通过逆向编译检测应用的二进制代码,二进制代码更能完整显示出程序内部的行为特征,所以检测结果和应用程序的真实行为十分相似。
剩余内容已隐藏,请支付后下载全文,论文总字数:24344字
相关图片展示:
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;