APP下载

移动APP安全及检测体系分析

2018-01-26赖海超张君朱晨鸣

计算机时代 2018年1期
关键词:移动APP安全

赖海超+张君+朱晨鸣

摘 要: 基于安卓APP的安全现状,分析了移动APP安全问题频发的原因。从系统环境安全、程序安全、数据安全、业务安全、程序应用漏洞等五个方面构建一个全面准确的移动APP安全检测体系,构筑防范恶意应用的第一道防线,大大提高移动APP开发和运营企业的安全意识,提升移动APP的安全性。

关键词: 移动APP; 安全; 恶意应用; 安全检测体系

中图分类号:TP393.08 文献标志码:A 文章编号:1006-8228(2018)01-27-03

The analysis of mobile application safety and security test system

Lai Haichao, Zhang Jun, Zhu Chengming

(Zhejiang Provincial Testing Institute of Electronic information Products, Hangzhou, Zhejiang 310007, China)

Abstract: According to the security status of Android application, the causes of frequent occurred mobile application security problems are analyzed. Building a comprehensive and accurate mobile APP security test system with environmental safety, safety procedures, data security, business security and application vulnerability prevention five aspects, the first line of defense against the malicious applications is constructed, which greatly enhances the safety awareness of mobile APP developer and operation enterprise, enhances the security of mobile APP.

Key words: mobile application; safety; malicious application; security test system

0 引言

随着移动互联网信息技术的飞速发展,智能手机、平板电脑等移动终端用户数量呈爆发式增长,2017 Mary Meeker的互联网趋势报告[1]指出中国移动互联网用户数量突破7亿,同比增长12%,移动互联网用户每日在线时长合计超过25亿小时,同比增长30%。移动APP极大地方便了用户的日常工作、生活和学习,提供丰富多彩的娱乐内容,但也带来了较大的安全问题[2]。由于安卓生态圈的开放性,安卓应用更容易被破解[3],本文基于安卓应用,根据移动APP安全现状分析移动APP安全问题频发的原因,针对现有的移动安全问题,构建一套全面准确的移动APP检测体系[4-5]。

1 移动APP安全现状

移动APP近年来呈井喷式发展,作为一个新兴的领域,移动APP开发者为了快速响应市场的需求,并没有将信息安全纳入到软件的生命周期中,对移动APP的业务逻辑、功能模块处理不严谨,甚至个别开发者预留应用后门收集用户信息,导致市场上部分移动APP存在漏洞、后门等安全隐患。同时,由于Google Play在国内使用不方便,催生了大量第三方应用商城,其中部分第三方应用商城对上线的移动APP审核不严,造成用户下载含恶意行为的移动APP。目前大量移动APP主要存在下列问题。

⑴ 隐私泄露

恶意应用在用户不知情的情况下,读取用户的通话记录、通讯录信息、短信信息和视频图片等用户隐私信息,并将读取收集的信息上传至恶意应用开发者。部分移动APP将用户敏感数据存放在外部存储空间中,如果存储空间权限的限制不严格,也会导致敏感数据的泄露。

⑵ 仿冒盗版

盗版应用通过伪造LOGO、名称等误导用户安装,通常知名度较高、用户群庞大以及银行类移动APP容易被仿冒盗版。

⑶ 篡改打包

不法分子对市场上比较火爆的移动APP进行二次打包,将二次打包后的移动APP通过论坛、第三方商城等途径诱导用户下载安装,通过插入广告、木马、病毒等方式窃取用户隐私、吸资扣费、耗费流量。二次打包后的盗版APP与正版APP完全相同,用户肉眼无法分别。

⑷ 流氓行为

恶意应用可能在后台运行,强制占用系统内存和CPU資源,使智能终端运行缓慢,部分恶意应用甚至无法被删除。卸载。这类型恶意应用严重损害用户体验和用户的合法权益。

⑸ 安全漏洞

企业为了追逐移动互联网红利,更加关注的是移动APP的开发上线速度,而非开发规范和移动APP的安全性,这导致绝大多数移动APP都存在安全漏洞,同时开发的安卓生态圈也导致安卓系统存在安全漏洞。不法分子利用这些安全漏洞窃取用户隐私、远程控制用户智能终端。

2 移动APP安全问题的根源分析

移动APP的生态链主要包括智能终端、应用商城和移动APP本身,所以移动APP安全问题的根源也来自于这三个环节。究其原因,主要有以下几方面。

⑴ 简单的应用市场安全审查

Google Play在国内使用不方便,催生出大量第三方安卓市场,其中大部分安卓市场对上线的移动APP审查不严,导致大量仿冒盗版、二次打包等恶意应用上线,同时,由于安卓生态圈的开放性,各种论坛也是移动APP传播的重要途径,论坛的审核机制相对于应用商城更加薄弱。endprint

⑵ 有限的系统级安全监测

安卓系统是开源的,其系统权限把控不严,移动APP上线时一般都拥有大部分的系统权限,如果智能终端的系统是ROOT的,那么系统权限更多更核心。系统权限的过度开放对用户隐私保护、恶意行为防范等方面造成很大风险。

⑶ 粗粒度的应用安全机制

移动互联网发展快速,企业为了紧跟市场的脚步,主要关注的是移动APP的开发速度和需求实现,而忽略了移动APP的安全性。大量移动APP在功能实现后,直接在应用商城上线,未对移动APP采取代码混淆、加固等安全保护措施,这样不法分子能够很简单的将这里移动APP进行破解和二次打包。

3 移动APP安全检测体系研究

针对基于移动APP突出的安全隐患,一方面,需要将安全机制贯穿到移动APP生态链的每个环节;另一方面,全面、准确、有效的移动安全检测体系也是移动APP安全的重要保障。移动安全检测体系主要从系统环境安全、程序安全、数据安全、业务安全、程序应用漏洞5个方面对移动应用进行安全评估。

3.1 系统环境安全

⑴ 会话安全

移动APP客户端与服务端连接应进行超时设置。

⑵ 终端ROOT利用漏洞

移动APP运行時应对终端是否ROOT进行检测,检测到root权限时,应进行相应的提醒或者禁止软件运行。

⑶ 输入监听漏洞

移动APP在敏感数据输入时不应使用不安全的系统键盘。移动APP在进行重要数据、敏感数据输入时如果未使用专业的安全键盘而使用系统键盘的话,则会存在被输入时屏幕截屏/录屏、数据输入拦截/劫持、数据输入篡改等风险。

3.2 程序安全

⑴ 移动APP反向编译

移动APP的核心关键文件应采用加花保护,防止移动APP被反向编译导致核心业务逻辑泄露。

⑵ 移动APP篡改

移动APP应进行加固,避免被篡改后二次打包。

⑶ 权限滥用检测

移动APP应遵循权限最小化原则,仅开放移动APP业务相关的系统权限,避免权限滥用。

⑷ 代码混淆检测

移动APP的代码应进行过混淆,避免出现出现被反编译窃取逆向代码还原到源工程的危险。

⑸ 应用完整性检测

移动APP应进行完整性验证保护,防止移动APP被非法篡改、非法删除、非法新增恶意文件等。

⑹ Intent检测

移动APP应规避Intent组件隐式调用风险,应用创建Intent传递数据到其他Activity,如果创建的Activity不是在同一个Task中打开,就很可能被其他的Activity劫持读取到Intent内容,跨Task的Activity通过Intent传递敏感信息是不安全的。

3.3 数据安全

⑴ 存储安全性检测

移动APP的敏感数据不应采用外部存储(如sdcard卡),任何有权限访问Sdcard的应用均可以访问sdcard卡存储的数据,容易导致敏感信息泄漏。

⑵ H5文件明文存储检测

移动APP中的H5资源文件应进行混淆加固,避免泄露页面基本布局和一些重要的信息。

⑶ 资源文件_篡改分析

移动APP中的资源文件如未做资源加密、包签名验证、包完整性验证等措施,重要资源存在被篡改风险的风险,造成程序被直接修改资源打包成山寨应用。

3.4 业务安全

⑴ 证书监测检测

移动APP的证书信息应加密处理,避免证书被盗用,对网络加密传输数据进行解密,造成用户账号、密码等重要信息泄露。

⑵ 异常处理检测

移动APP应具备异常处理机制,在异常出现时能够捕捉到异常信息,并将异常信息记录下来,或者上传到异常分析服务器进行分析。

3.5 程序应用漏洞

⑴ 病毒检测

移动APP上线时,应对APK进行病毒检测。

⑵ APK静态反编译漏洞

检测移动APP是否存在APK静态反编译漏洞,APK文件可以被apktool等反编译工具直接反编译为smali代码,如smali代码未做任何防护措施,存在软件破解、内购破解、软件逻辑修改、插入恶意代码、替换广告商ID等风险。

⑶ 数据库注入漏洞

检测移动APP是否存在数据库注入漏洞。由于Content provider组件读写权限设置不当,并且未对sql查询语句的字段参数作过滤判断,移动APP数据库可能被注入攻击。这种风险可能导致存储的敏感数据信息泄露,例如账户名,密码等,或者产生查询异常导致应用崩溃。

⑷ allowBackup安全漏洞

检测移动APP是否存在数据越权备份风险。Android API Level 8及其以上Android系统提供了为应用程序数据的备份和恢复功能。一旦移动APP支持备份和恢复功能,攻击者可在其他智能终端恢复该APP,并查看聊天记录等敏感信息。对于支付金融类应用,攻击者可通过此来进行恶意支付、盗取存款等。

⑸ WebView远程代码执行漏洞

检测移动APP是否存在WebView远程代码执行漏洞。Android API level 16以及之前的版本存在远程代码执行安全漏洞,该漏洞源于程序没有正确限制使用WebView.addJavascriptInterface方法,远程攻击者可通过使用Java Reflection API直接操作移动APP的JAVA函数接口。

⑹ 敏感数据内存运行安全

检测移动APP是否存在代码动态调试风险。Android C层代码动态调试漏洞是指,在程序运行过程中,恶意程序或者人工可以通过动态调试技术,对程序进行内存调试跟踪,可以窃取目标进程的数据信息,从而了解到移动APP的业务逻辑,获取用户的隐私内容信息。

4 结束语

移动APP已经深入到人们的工作、生活、学习和娱乐中,恶意应用严重损害用户的合法权益,移动APP安全检测是防范恶意应用的一道重要的防线。本文基于安卓应用,从智能终端、应用商城和移动APP本身三个环节分析移动应用安全问题出现的原因,通过分析移动APP系统环境安全、程序安全、数据安全、业务安全、程序应用漏洞,构建出一个全面准确的移动APP安全检测体系。

参考文献(References):

[1] Mary Meeker,2017 Internet Trends[Z].Mary Meeker,2017.

[2] 郑威,移动互联网应用安全的问题分析与建议[J].现代电信

科技,2012.9:27-32

[3] 张玉清,王凯,杨欢,方喆君,王志强,曹琛.Andriod安全综述[J].

计算机研究与发展,2014.7:1385-1396

[4] 陈希,刘颖卿,叶蕴芳.构筑移动应用安全评估体系[J].电信工

程技术与标准化,2015.12:11-16

[5] 费会.移动应用安全检测系统的设计与实现[D].北京邮电大

学硕士学位论文,2015.endprint

猜你喜欢

移动APP安全
信息技术环境下会计专业教学模式的构建
高校学习者对日语学习APP使用状况的研究调查
大学生利用移动APP自主学习英语的现状调查研究
移动APP融入高职服务外包课程英语教学研究
移动APP在英语教学中的应用研究