安卓终端常见安全问题以及规避方法分析
2015-01-10吴进王洁
吴进,王洁
安卓终端常见安全问题以及规避方法分析
吴进,王洁
(西安邮电大学 电子工程学院,陕西 西安 710121)
随着Android系统市场份额的持续增加,安卓移动终端在为用户提供方便的同时,也正遭遇着越来越大的安全挑战和威胁,严重地威胁着用户的使用安全。尽管目前Android系统巳经拥有了比较好的安全机制来确保用户的使用安全,但在巨大的商业利益的诱导下,大量的攻击者针对系统以及软件的漏洞,以各种各样的方式对Android用户展开攻击。本文在移动安全漏洞调查的基础上,对出现比例较高的几个漏洞做出了浅显的分析,并提出了相应的规避方法。
Android系统;终端安全;系统漏洞;规避方法
0 引言
2014年年末12306铁路客户服务中心的用户信息泄露事件[1],导致大量用户的身份证号﹑银行卡号﹑银行卡密码﹑手机号码等重要敏感信息泄密事件;2015年春节过后仿冒美团红包木马事件[2],用户受到红包的极大诱惑,安装了仿冒木马应用之后,将个人的身份证号﹑银行卡号﹑银行卡密码﹑手机号码等重要信息上传到指定的服务器,被不法之徒窃取盗用;赶集网﹑58同城等安卓客户端漏洞导致大量用户重要信息泄露。
这些发生在我们身边的重大信息安全事件,给我们敲响了终端信息安全问题的警钟[3]。拥有全球最大用户使用量的安卓操作系统,同样也面临着严峻的安全威胁[4],不论作为安卓的开发者还是安卓的用户本身,都迫切地希望安卓系统安全问题能够更早的被发现和解决。
文章首先对安卓终端安全问题进行了调查研究[5],并在得出调查结果的基础上,一方面对占总体漏洞比例最大的安卓数据存储安全问题做了简要的分析[6],并给出了响应的规避方法[7],希望开发者在开发应用程序过程中可以避免该类安全问题;另外一方面,从用户的角度出发,给出了用户安全使用安卓移动终端的几点建议,希望用户可以减少不必要的安全隐患。
1 2014年度安卓系统安全调查
从2014年度各安全软件的安卓系统安全反馈调查报告[8]中统计得出,安卓系统感染的病毒数呈现上升趋势,从第一季度的3732034个增加到第四季度的8966602个;受到病毒感染的设备量也呈现明显上升趋势,从第一季度的2377712台增长到第四季度的7370278台,平均每7.6台安卓设备中就有1台设备被感染病毒。图1展示了2014年四个季度安卓病毒数量和安卓设备感染量的趋势图。
在病毒样本方面[9],恶意扣费类的病毒样本所占得比例仍旧很高,达52%之多,比上一年上涨大约23%。在病毒感染的用户量方面,流氓行为类的病毒感染用户所占比例最高,达46%之多;隐私窃取类的病毒感染用户所占比例明显上升,达24%之多,比上一年上涨了大约85%;短信劫持类的病毒感染用户所占的比例明显下降,仅占3%,相比上一年下降了81%。图2展示了病毒感染情况的调查情况。
图1 2014年度安卓设备感染病毒趋势图Fig.1 FY2014 Android devices infected trends
图2 病毒感染情况调查Fig.2 Infection Situation
之所以有越来越多的设备感染各种各样的病毒[10],是由于安卓本身暴露的诸多系统或者软件漏洞被很多不法之徒利用,所以解决安卓系统安全问题的首要任务是找出这些漏洞,并能够很好的规避掉这些漏洞,不让攻击者有机可乘。
1.1 各行业应用漏洞类型调查
在2014年度安卓用户使用情况反馈的调查报告中统计[11]得出,大约有86%的移动应用存在漏洞,其中高风险的漏洞占33%,且热门应用的漏洞更多,各行业排名top5的应用平均有25个之多的漏洞,图3展示各行业应用top5的漏洞情况。
1.2 热门行业移动应用漏洞调查
在移动应用的漏洞中,以应用数据的存储为主,占48%的比例,大多数知名的应用含有该漏洞,若此漏洞被黑客利用,则会影响数以亿计的用户,图4展示了11个热门行业top10移动应用的漏洞情况。
图3 各行业应用top5的漏洞情况Fig.3 The top5 vulnerability of the sectoral application
图4 11个行业top10移动应用的漏洞情况Fig.4 The top10 Vulnerability case of mobile applications in 11 industries
本文在对2014年移动安全漏洞调查的基础上,针对各行业的top5的应用中漏洞比例最大的Android数据存储,给出了简要的描述和分析,并提出了相应的规避方法。其中,Android数据存储涉及Shared Preferences安全风险﹑Database配置模式安全风险﹑Content Provider文件目录遍历漏洞和Internal Storage安全风险。这些在后面的章节中都会讲到。
2 安卓常见安全问题研究
2.1 Shared Preferences安全风险漏洞
A.安卓Shared Preferences存储安全风险描述
Shared Preferences一般主要用于储存来自应用的配置信息, 是一种基于XML文件的数据存储方式。Shared Preferences存储漏洞一方面是由于开发者在创建文件的时候,没能够正确地选取适合的创建类型进行授权[12];另一方面是由于开发者在开发软件的过程中,过分的信赖Android系统内部的安全存储机制,将用户信息﹑用户密码等敏感信息的明文存储在Shared Preferences文件中。这样就导致攻击者可以通过对手机root来查看用户信息。
B.安卓Shared Preferences存储安全的影响范围
Android所有系统
C.安卓Shared Preferences存储安全风险分析
1)风险位置:
SharedPreferences.getSharedPreferences(String prefName, int mode);
2)风险触发条件:
a)选取MODE_WORLD_READABLE的模式来创建Shared Preferences文件;
b)选取MODE_WORLD_WRITEABLE的模式来创建Shared Preferences文件,并包含有“android∶ sharedUserId”属性的值以及测试签名。
风险原理:
a)选取MODE_WORLD_READABLE模式来创建Shared Preferences文件,以使其他应用对该Shared Preferences文件具有可读的使用权限;
b)选取MODE_WORLD_WRITEABLE模式来创建Shared Preferences文件并包含有“android∶ sharedUserId”的属性值,以使其他应用对该应用的Shared Preferences文件具有可写的使用权限;
c)具有root权限的程序以及用户对通过任何模式来创建的Shared Preferences文件都具备有可读并且可写的使用权限。
D.Shared Preferences存储安全风险规避方法
1)避免选取MODE_WORLD_WRITEABLE和MODE_WORLD_READABLE模式创建进程间通信的文件;
2)不建议选取全局可读写模式创建进程间通信的文件;
3)不要将密码等重要数据信息以明文存储在Shared Preferences中;
4)避免滥用“android∶ sharedUserId”的属性,与此同时,对应用软件使用测试签名,这样其他拥有“android∶ sharedUserId”的属性值和测试签名的应用,都将不会访问到内部存储数据。
2.2 Database配置模式安全风险漏洞
A.Database配置模式安全风险描述
Database配置模式的安全风险,主要源自于开发者在创建数据库[13]时,没能够正确的选取合适的创建模式进行权限控制,从而导致了数据库中内容被恶意的读写篡改,造成用户身份﹑密码等其他重要信息的泄露。
B.Database配置模式安全的影响范围
Android所有系统
C.Database配置模式安全风险分析
1)风险位置:
openOrCreateDatabase(String fileName, int mode, CursorFactory factory);
2)风险触发条件:
选取非MODE_PRIVATE的模式来创建数据库文件。
3)风险原理:
a)选取MODE_WORLD_READABLE的模式来创建数据库文件,以使其他应用程序对该数据库中的文件具有可读的使用权限;
b)选取MODE_WORLD_WRITEABLE的模式来创建数据库文件,以使其他应用程序对该数据库中的文件具备可写的使用权限。
D.Database配置模式安全风险规避方法
1)避免选取MODE_WORLD_WRITEABLE和MODE_WORLD_READABLE模式创建数据库。
2.3 Content Provider文件目录遍历漏洞
A.文件目录遍历安全漏洞描述
Android Content Provider存在有文件目录遍历的安全漏洞[14],该漏洞主要源自于对外暴露了Content Provider组件的应用。一方面忽略了对Content Provider组件的访问权限的控制;另一方面,没有对所访问的目标文件的Content Query Uri进行有效的判断,攻击者则利用了该应用程序暴露的Content Provider的openFile () 接口来进行文件的目录遍历,从而达到其访问任何可读文件的目的。
B.文件目录遍历安全漏洞的影响范围
Android所有系统
C.文件目录遍历安全漏洞分析
1)漏洞位置:
ContentProvider.openFile(Uri uri, String mode) ;
2)漏洞触发条件:
a)向外界暴露了Content Provider组件实现的openFile()接口;
b)忽略了对所访问的目标文件的Uri进行有效的判断。
3)漏洞原理:
向外界暴露了Content Provider实现的openFile()接口,因此其他具有调用该Content Provider权限的应用可随意调用该接口进行文件数据访问。如果没有对Content Provider的访问权限进行控制,没有对所访问目标文件的Uri进行有效的判断,那么攻击者则利用文件目录遍历方法来访问任意可读文件。
D.文件目录遍历安全漏洞规避方法
1)将不必要导出的Content Provider设置为不导出;
2)除去不必要的openFile()接口,如果应用的Content Provider组件没有必要实现openFile()接口,建议移除该Content Provider中不必要的openFile()接口;
3)限制跨域的访问,对所访问的目标文件的路径进行有效的判断;
4)选用签名验证的方法来控制Content Provider共享数据的访问权限。
2.4 Internal Storage安全风险漏洞
A.内部存储(Internal Storage)风险描述
内部存储是指开发者使用设备内部的存储器来创建和保存文件,默认的情况下,以这种方式所创建的文件只能被当前的应用程序访问,而不可以被其他程序或用户访问。当用户卸载此程序的同时,这些文件也会随之被删除。如果在开发过程中,没有选用正确的创建模式来创建内部存储文件,将会导致用户身份﹑密码等重要信息泄露。
B.内部存储(Internal Storage)风险影响范围
Android所有系统
C.内部存储(Internal Storage)风险分析
1)风险位置:
openFileOutput(String fileName, int mode);
2)风险触发条件:
a)选取了“android∶ sharedUserId”属性;
b)选取MODE_WORLD_READABLE模式创建内部存储文件;
c)选取MODE_WORLD_WRITEABLE模式创建内部存储文件;
d)Android设备被root。
3)本地数据存储风险原理:
a)选取了“android∶ sharedUserId”属性,使得其他拥有该属性值的应用程序对该内部存储文件具有可读的使用权限;
b)选取了MODE_WORLD_READABLE模式来创建内部存储文件,使得其他的应用程序对该内部存储文件具有可读的使用权限;
c)选取了MODE_WORLD_WRITEABLE模式来创建内部存储文件,使得其他的应用程序对该内部存储文件具有可写的使用权限;
d)获取root权限后的应用或者用户对任何模式创建的内部存储文件都具备有可读可写的使用权限。
D.Android本地数据存储风险规避方法
1)避免选用MODE_WORLD_WRITEABLE和MODE_WORLD_READABLE模式来创建进程间通信的内部存储文件,如果必须与其他进程的应用程序进行数据共享,请考虑使用content provider;
2)避免滥用“android∶ sharedUserId”属性,与此同时,对应用程序使用测试签名,否则其他拥有“android∶ sharedUserId”属性值以及测试签名的应用程序,将可以访问到内部存储数据;
3)避免将用户的密码等重要信息以明文存储在内部存储文件中,尽管Android系统内部的存储安全机制,使得系统内部存储文件不会被其他应用程序读写,但是在Android系统root之后,该安全机制也会随之失效,从而导致信息泄露。
3 用户安全使用移动终端的建议
下面针对安卓用户安全使用移动终端,给出我自己的几点建议:
1)不在公共场合接入不需要输入密码或者没有手机验证码的无线网络;
2)不信任的无线网络不要进行金钱﹑隐私的操作(后台可能也有交互,不可靠);
3)手机不ROOT(这个不是绝对的,ROOT也有好处);
4)在正规应用商店下载官网的应用软件;
5)不在陌生的应用软件上提交个人重要信息;
6)装一个必要的安全软件;
7)养成健康﹑良好的上网习惯。
4 总结
本文从安卓数据存储漏洞方面着手,简单的介绍了安卓系统中常见的安全问题及相应的规避方法,希望能对安卓开发者及安卓用户有所帮助。
对用户而言,具体的规避主要还是靠自己进行识别。平时注重安全意识,养成良好的使用习惯,出现问题时只要能够及时的发现,就可以比较容易的进行清除。
对于开发人员而言,要有良好的道德操守,不能被金钱利益所迷惑,做出违法犯罪的事情。平时也应该注意安全漏洞,不要让不法之徒有机可乘。
[1] 阿里聚安全.2014移动安全年度报告[EB/OL].(2015-01-05) [2015-05-28].http://jaq.alibaba.com/blog.htm? spm=0.0.0.0.Ml4qFD&id=44.Ali poly security.Mobile Security 2014 annual report[EB/OL].(2015-01-05) [2015-05-28].http://jaq.alibaba.com/blog.htm? spm=0.0.0.0.Ml4qFD&id=44.
[2] 黑客技术.安卓本地数据安全[EB/OL].(2015-03-10) [2015-05-28].http://www.hackdig.com/03/hack-19439.htm Hacking techniques.Android local data security[EB/OL].(2015-03-10)[2015-05-28].http://www.hackdig.com/03 / hack-19439.htm.
[3] 胡爱群.关于智能手机安全问题的若干思考[J].数据通信, 2012(2):22-26.A Q Hu.Reflections on smartphone security issues[J].Data communication, 2012(2):22-26.
[4] 孙伟.Android移动终端操作系统的安全分析[J].软件, 2013(34):105-108.W Sun.Safety Analysis of Android mobile operating system[J].Software, 2013(34):105-108.
[5] 许黎.基于漏洞检测的网络安全风险评估系统的研究与实现[D].成都:电子科技大学, 2007:37-57.L Xu.Research and implementation of network security vulnerability detection system based on risk assessment[D].ChengDu:University of Electronic Science and Technology, 2007:37-57.
[6] 邓艺璇.智能手机平台上的安全机制的分析与实施[D].北京:北京邮电大学, 2013:20-34.Y X Deng.Analysis and implementation of security mechanisms smartphone platform[D].BeiJing:Beijing University of Posts and Telecommunications, 2013:20-34.
[7] 刘海峰, 宋阿羚, 刘守生.基于安全及人为因素的高速公路换道模型设计[J].新型工业化, 2014(12):12-19.H F Liu, A L Song, S S Liu.Changing Model design in highway safety based on human factors[J].The Journal of New Industrialization, 2014(12):12-19.
[8] 张婷, 张辉极.智能手机安全问题及防护技术分析[J].技术研究, 2011(12):65-68.T Zhang,H J Zhang.Smartphone security and protection technology analysis[j].Research, 2011(12):65-68.
[9] 梁琛, 王忠民, 范琳.移动搜索终端用户行为调查研究[J].西安邮电大学学报, 2014(2):108-112.C Liang, Z M Wang, L Fan.Investigation of mobile search end-user behavior[J].Xi'an University of Posts and Telecommunications, 2014(2):108-112.
[10] 沈佳伟, 罗涛, 黄丽娜.基于802.11p的车辆通信系统频率同步研究与实现[J].新型工业化, 2014(10):31-37.J W Shen, T Luo, L N Huang.Synchronization and Implementation of the vehicle communication system frequency 802.11p[J].The Journal of New Industrialization, 2014(10):31-37.
[11] 朱文彩.基于智能手机的入侵检测技术研究[D].北京:北京邮电大学, 2013:18-33.W C Zhu.Intrusion Detection Based Smartphone[D].BeiJing:Beijing University of Posts and Telecommunications, 2013:18-33.[12] 贺炎, 杨爽, 王忠民.我国移动搜索产业共赢合作模式探讨[J].西安邮电大学学报, 2013(6):95-99.Y He, S Yang, Z M Wang.China's mobile search industry to explore win-win cooperation model[J], Xi'an University of Posts and Telecommunications, Xi'an University of Posts and Telecommunications, 2013(6):95-99.
[13] 吴进, 尚骁, 张金焕.目标定位监护器中GSM模块设计与实现[J].新型工业化, 2014(8):37-43.J Wu, X Shang, J H Zhang.Design and implementation of GSM module in targeting monitors[J].The Journal of New Industrialization, 2014(8):37-43.
[14] 曹承志.Android平台权限提升技术研究与实现[D].南京:南京邮电大学, 2014:16-25.C Z Cao.Android platform privilege elevation Research and Implementation[D].NanJing:Nanjing University of Posts and Telecommunications, 2014:16-25.
Android Terminal Common Security Issues and Workarounds Analysis
WU Jin, WANG Jie
(School of Electronic Engineering, Xi'an University of Posts and Telecommunications, Xi'an 710121, China)
With the continued increase in market share of Android system, Android terminals provide users with convenient, but also is experiencing growing security challenges and threats to users' safety.Although Android has already had a good security mechanism to ensure system security, but at a huge incentive commercial interests, many attackers for the system and software vulnerabilities in various ways to the Android user to expand the variety of forms of attack.This article is based on a survey research of mobile security vulnerabilities, gaving several vulnerabilities analysis, and the corresponding workarounds.
android system; terminal security; system vulnerabilities; workaround
杨吴进,王洁.安卓终端常见安全问题以及规避方法分析[J].新型工业化,2015,5(5):55-61
10.3969/j.issn.2095-6649.2015.05.08
:WU Jin, WANG Jie.Android terminal common security issues and workarounds Analysis [J].The Journal of New Industrialization, 2015, 5(5)∶ 55‒61.
国家自然科学基金项目(61272120)。
吴进(1975-),女,硕士,教授,硕士生导师,主要研究方向:信号与信息处理研究;王洁(1989-),女,硕士研究生,主要研究方向:电路与系统。