手机APP安全检测技术探究论文_刘林林

摘要:手机APP由于本身漏洞或系统漏洞,导致各类恶意攻击行为层出不穷,这严重损害了用户的切身利益。手机APP若不进行安全加固,则毫无安全可言。

0 背景

随着安卓、苹果手机及Ipad等移动设备的普及,越来越多的人习惯使用手机app客户端上网的方式,这不仅推动了移动互联网的发展,也进一步使得移动应用如火山喷发似的增长。目前部分APP存在漏洞,手机系统如安卓系统其因系统开放性,导致各类恶意攻击行为层出不穷,引发日益严峻安全问题,这严重损害了用户的切身利益。因此APP的安全对于信息安全来说尤为重要。

1 威胁

目前手机APP主要面临以下威胁:

(1)病毒;(2)木马;(3)恶意篡改;(4)钓鱼攻击;(5)二次打包;(6)账号窃取;(7)暴力破解;(8)资源修改;(9)广告植入;(10)信息劫持。

图1 APP主要面临威胁

以Android客户端钓鱼攻击为例:

目前部分手机APP应用或多或少存有钓鱼劫持风险。假如应用程序没有做防钓鱼劫持安全技术措施,黑客或不法分子可通过劫持应用程序的登录界面,可以获取用户的账号和密码,部分注册页面劫持可导致用户姓名、身份证、银行卡账号、微信、手机号、邮箱、支付宝账号等重要个人信息的泄露。Android钓鱼原理:当Android启动某一个Activity的时候,会给Activity加入一个标志位FLAG_ACTIVITY_NEW_TASK,从而能使它置于栈顶且立即呈现给用户。设计时忽略了一个弱点,假如这个Activity是用于盗号的伪装Activity,会有怎样的后果?XcodeGhost事件中已经证明可以进行此操作。在Android系统运行时,安装的程序可以枚举当前运行的进程而不需要声明其他权限,这样的话,通过编写一个不断地扫描当前运行的进程的后台程序,一旦觉察目标进程启动运行时,立即启动一个已经伪装的Activity。如果这个Activity恰好是手机APP的登录界面,账号密码便可轻易从中获取。

2 测试技术

随着科学技术的日新月异,测试工具与技术层出不穷。常用的应用系统风险评估工具如AppScan、Web Vunerability Scanner、Burp Suite,手机端测试工具如Drozer、iOSSecAudit、AppMon、及百度移动云测试中心、捉虫猎手、聚安全、通付盾APP云安全平台等,以及我们的开发环境工具,都可以用来测试。主要的手机APP安全检测技术如下:

(1)安装包证书合法性检验

主要是通过查找客户端及服务端证书的合法性。我们也需要在客户端代码中对服务端证书进行合法性校验。可以使用工具模拟中间人攻击方法。如果客户端对于证书没有校验而能正常调用,则存在安全隐患。同时我们需要有方法来确保服务端下发的明文数据不被篡改。通常开发侧的实现方式是对数据进行数字签名并在客户端进行校验。我们可以模拟后台返回进行相关的测试工作。

(2)证书加密测试

查看证书文件目录下的密钥是否是未做加密明文存储。若未明文存储,密钥较容易被获取,进行加密存储才能增加安全性。进行二进制查看,查看证书文件是否进行了加密处理。

(3)登录界面劫持测试

黑客或不法分子可通过二次修改后劫持安装包,修改文件界面并上传到应用市场供用户下载(尤其是安卓市场,常见的是恶意加入宣传广告赚取费用或者获取用户输入提交的账号、密码等信息)。如通过调试工具进行加载后修改,生成新的APK文件,可检测是否被二次修改。

(4)登录过程测试

进行登陆测试,检测登陆过程中是否可以截取源代码,若可以截取,需进行安全加固。同时可以检测是否可以任意账号注册或简单密码注册等安全弱点。

(5)日志打印测试

通过安装文件代码反编译,查看代码中是否含有日志打印调用函数,若发现需对代码进行安全处理。

(6)敏感信息测试

使用测试账户和密码正常登录后,检测账号及密码等重要信息是否存在于内存中。信息若存储在内存中,则较容易被病毒、木马等获取,从而造成风险,若发现需及时进行安全处理。

(7)代码保护测试

查看文件代码是否进行了安全保护。如APK文件未进行安全保护,能通过代码调试程序轻易地进行反编译,获得存储信息。

(8)密码加密测试

用户的密码是否加密是非常重要的测试项。通过抓取加密的密码,对其进行破解,看加密方式及等级是否合格,部分加密方式可轻易被破解还原,如md5,国外很多网站可提供在线破解,准确率非常高。

(9)检测是否有测试文件

测试文件中大多含有敏感个人信息,对APP安全包文件的源代码进行反汇编,检查安装包文件内时候有测试文件没有被清楚。若发现需及时清理。

(10)代码中是否含有测试信息或漏洞

对APP安全包文件的源代码进行反汇编,查看文件内是否含有姓名、银行卡账号、手机号、微信号等重要的敏感信息,并及时处置。漏洞如WebView、Allowbackup漏洞等,可同时进行SQL Server注入测试。

(11)加密方式测试

通过对安装包文件进行测试,是程序发生以外的错误信息,查看错误信息是否暴露一些重要的安全信息,如密码的加密方式等。

(12)虚拟执行技术测试

部分APP安装包文件会开发电脑安装客户端,可引入虚拟机,打开客户端,对虚拟机里的文件系统、进程、注册表和网络行为等进行实时监控,判断文件中是否含有恶意程序等漏洞,从而对其进行捕捉、分析、漏洞、加固。

3 保护建议

目前手机APP都是基于现有编码语言编写,如安卓APP是基于Java程序开发,所以很容易遭到黑客或不法人员破解。APP若不进行安全加固,毫无安全可言。

手机APP保护的方法:

源码加密及保护:这是非常重要的底层解决手段之一。开发者通过对源代码进行加密包括文件保护、防二次打包、so文件保护和资源文件保护等(各个加密项目又会含许多小项目),对手机APP进行安全保护。通过对源代码进行较多的安全设计、测试,进一步降低手机APP在使用过程中容易出现的各种风险,从而降低安全事件发生几率,保护用户信息不被泄露。

应用加密保护:应用加密目前有较多的技术可以使用,如可使用log日志输入屏蔽和清场技术进行防护。使用场景如清场技术,此技术依赖于每次启动后及时通过云端及时更新本地的黑明单和白名单数据库数据,当检测到异常情况时,可及时对用户进行提醒,这样用能及时停止下一步操作,降低信息泄露风险。

数据安全保护:数据安全防护是重要的措施之一。数据安全防护可包括页面防劫持、内存数据查询、协议加密、为本地数据保护、截屏保护、虚拟键盘等。如可通过在登陆界面中添加代码来禁止相关函数任意调用,进一步防止页面被截取。当然随着信息技术的发展,会进一步涌现许多新的防范保护技术。

4 结束语

本文阐述了手机APP面临的主要威胁,进一步探讨了手机APP安全测试方法,希望能够对安全从业者在移动终端APP安全开发及评估方面提供参考,也希望能推动整个信息安全行业的发展。

随着移动互联网、5G技术的迅猛发展,各类企业或政府事业单位安全风险越来越复杂,他们在应对这些风险时越发吃力,移动APP开发者或使用者应树立良好的信息安全风险意识,时刻保持警惕,降低信息安全事件发生的机率,进一步降低安全事件造成的损失。

参考文献:

[1]刘林林,大数据时代数据分析与信息安全.网络安全技术与应用.2013年12期

论文作者:刘林林

论文发表刊物:《科学与技术》2019年第20期

论文发表时间:2020/4/28

标签:;  ;  ;  ;  ;  ;  ;  ;  

手机APP安全检测技术探究论文_刘林林
下载Doc文档

猜你喜欢