移动应用安全防护技术研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
移动应用安全防护技术研究
常玲,赵蓓,薛姗,马力鹏
(中国移动通信集团设计院有限公司,北京 100080)
摘 要 本文首先分析了移动应用的安全现状,提出了移动应用安全评估方法,包括客户端安全评估、服务器安全评
估和业务流程安全评估,最后给出了移动应用典型安全漏洞及其检查方法与加固建议,包括敏感数据暴露、鉴权机制缺陷、代码保护不足、公共组件漏洞和应用配置错误。
关键词 移动应用;安全评估;鉴权机制;代码保护
中图分类号 TN929.5 文献标识码 A 文章编号 1008-5599(2016)09-0086-06
收稿日期:2016-02-25
1 引言
近年来我国移动互联网产业发展迅速,移动互联网用户规模不断扩大。相应的,移动互联网应用软件产业也在飞速发展。在Google Android 开放平台的强力冲击和苹果公司的稳步发展下,国内外官方和第三方的应用商店不断涌现,每时每刻都有数款新的移动应用发布、下载、更新。
2 移动应用安全现状
来自比达咨询发布的报告显示,中国智能手机操作系统中,Android 占74%,iOS 占24.4%,Windows Phone 占1%。智能手机操作系统市场形成了Android 和iOS 的两霸格局。在移动平台应用程序中,Android 和iOS 系统占据了明显的优势。
移动应用商店作为在移动端获取和更新应用程序的主要渠道,在目前移动互联网产业链中位于相当核心的
位置。苹果公司首创移动应用商店APP Store 模式获得了巨大的成功,谷歌和微软也相继推出Google Play 与Windows Phone Store,移动互联网中的应用程序基本上是通过应用商店下载的。在我国,由于iOS、Android 系统的官方市场,尤其是Google Play 在国内下载不便等原因,国内同时出现了很多非官方商店(即第三方商店)。第三方商店审核机制不完善、安全检测能力差等问题,使得恶意程序得以发布和扩散。
某些应用会在用户下载安装后,在用户不知情的情
况下,后台进行收发恶意短信、传播不良信息以及破坏用户系统等行为;还有些应用程序会在用户使用其服务的过程中非法获取用户的隐私信息、账号密码等。部分恶意应用并非真正的开发者所为,而是黑客将正常应用篡改所致。在利益的驱使下黑客将正常应用程序破解、加恶意代码、添加广告再重新打包,并重新在应用商店中发布,这些应用本身没有恶意行为,只是在传播过程中遭到了恶意篡改,但是用户很难有效识别正常的移动应用软件,恶意软件往往会乔装成某一类正常应用软件,
并发布到应用商店中。用户下载安装后,这些恶意程序会在用户不知情的情形下,触发恶意扣费、系统破坏、隐私窃取、访问不良信息等恶意行为,给用户带来经济损失和信息安全问题。
移动智能终端应用安全形势越来越恶劣,一旦对安全轻视,将会导致严重的后果,对移动智能终端恶意程序进行有效地防范和控制,关系到用户的切身利益以及我国网络安全产业的成长发展。因此,对移动应用进行安全分析及防护技术研究有重要的意义。
3 移动应用安全评估方法
移动应用安全防护技术研究,应建立在全面安全评估的基础上,分析应用的安全状况,是否存在安全漏洞,针对存在的各种安全漏洞,采用相应的安全防护手段对移动应用进行加固。3.1 评估方法概述
通过对移动应用软件正常运行所需的总体环境进行分析,移动应用安全评估主要包括三方面,即客户端安全评估、服务器安全评估和业务流程安全评估,如图1所示。
其中,客户端安全评估主要包括评估APP 客户端程序自身的安全性、客户端数据的安全性、以及客户端与服务器之间数据传输的安全性。服务器安全评估主要包括评估服务器主机系统安全性,Web 服务安全性,数据库、Web Service 接口安全性等方面。业务流程安全
评估主要包括分析应用系统架构,业务流程、业务逻辑
设计等方面是否存在缺陷。由此分析得出移动应用安全评估的总体框架,如图2所示。3.2 客户端安全评估
客户端安全评估包括4个方面的安全评估工作,即程序安全、数据安全、认证安全和传输安全。
其中,程序安全是对客户端安装程序进行反编译,检查是否存在源代码、接口信息和敏感数据暴露。
数据安全是检查移动应用的配置文件、用户数据文件等是否可以被非法读取或者篡改。
认证安全是检查客户端软件登录认证是否可以被绕过等。
传输安全是检查客户端与服务器之间的通信数据是否能被解密、篡改等。3.3 服务器安全评估
服务器安全评估包括评估主机安全、Web 软件安全、中间件安全、第三方组件安全、数据库安全和Web 框架安全等。
其中,主机安全是检查服务器操作系统的帐号、口令、日志等是否存在安全漏洞,以及对服务器进行系统
漏洞扫描等。
Web 软件安全是检查是否存在敏感信息泄漏、跨站、SQL 注入、文件上传、文件包含等安全漏洞。
中间件安全是检查服务器的中间件,包括Tomcat、
Weblogic、Jboss、Apache、Ngnix 等是否存在安全漏洞。
图2 移动应用安全评估框架
图1 移动应用软件运行总体环境
第三方组件安全是检查服务器的第三方组件,包括DeDecms、DirectAdmin、HttpFile、PhpMyAdmin、PhpShop、WordPress等是否存在安全漏洞。
数据库安全是检查服务器数据库的帐号权限、口令、访问控制、日志等是否存在安全漏洞。
Web框架安全是检查服务器的Web框架,包括Structs2、Thinkphp、Spring、Hibernate等是否存在安全漏洞。
3.4 业务流程安全评估
业务流程安全评估包括评估移动应用软件的权限分配合理性、操作合理性和流程设计合理性等。
其中,权限分配合理性是检查应用软件是否存在将业务功能开放给不合理的用户等。
操作合理性是检查应用软件在业务流程中是否存在某些不合理操作。
流程设计合理性是检查业务流程中是否存在某些环节可以省略或者绕过。
4 移动应用典型安全漏洞、检查方法及加固建议
在实际应用中,移动应用的典型安全漏洞包括敏感数据暴露、鉴权机制缺陷、代码保护不足、公共组件漏洞和应用配置错误。以下内容将对这5大典型安全漏洞进行简要描述,并给出检查方法和加固建议。
4.1 敏感数据暴露
敏感数据暴露主要表现在3个方面,即明文传输敏感信息、不安全的本地存储和边信道信息泄漏。
4.1.1 明文传输敏感信息
明文传输敏感信息即在客户端与服务器端交互过程中,明文传输用户名、密码、验证码、后台服务器地址等,导致用户敏感信息泄露。若后台服务器存在漏洞,则可控制后台服务器。
检查方法:
(1)确保Windows主机和测试手机均使用同一无线网络;
(2)在BurpSuite工具中设置proxy标签页中的options选项,对8080端口进行编辑,取消其对“listen on loopback interface only”选项的勾选,并确保BurpSuite状态是“intercept is on”,即监听功能开启状态;
(3)设置测试手机无线局域网中的HTTP代理,服务器是Windows主机地址,端口是8080。之后即可利用BurpSuite工具对测试手机的网络访问情况进行分组抓取分析,检查客户端与服务器端交互过程中,是否明文传输敏感信息。
加固建议:在被测应用与服务器交互过程中,对用户名、密码、验证码、后台服务器地址等敏感信息进行加密传输。
4.1.2 不安全的本地存储
不安全的本地存储即移动应用软件开发者使用多种方法存储数据,如果存储在本地的数据文件未加密,易造成敏感信息泄漏。
检查方法:
(1)在安卓应用软件中,Shared Preferences是用key-value来存储私有的原始数据的xml文件。数据类型有布尔型、浮点型、整形、长整型和字符串。
通常情况下存储的路径为:
/data/data/
(2)SQLite数据库是轻量级基于文件的数据库。这些文件通常以db或者sqlite结尾。移动应用的数据库一般存储在下面的地方:
/data/data/
(3) 检查SD卡目录中是否存在敏感数据。
加固建议:对存储在本地的数据文件进行加密。4.1.3 边信道信息泄漏
边信道信息泄漏即当移动应用处理用户或其他数据源输入的数据时,可能会把数据放在不安全的位置,导