从webview看移动支付风险,再谈APP应用克隆的几点思考


来源:移动支付网    作者:DPLSLab    2018-1-22 10:56

1月9日,腾讯玄武实验室的一场“低调”发布会成为了近期业界乃至社会大众讨论的热点。发布会通过安卓手机与APP应用间多个已知漏洞,无需植入任何木马或恶意代码,“随机”组合多个安卓系统漏洞便完美呈现了一场针对支付宝支付的远程攻击,一时间业界舆论一片哗然。笔者针对这一巨头间司空见惯的攻讦并无意做过多评价,况且相信以二者的技术实力,这样“秃子头顶上的虱子”般的漏洞们早就在发布前便完成了修复,不然也不会在旧版应用上演示完成。

然而,就技术实现而言,DPLS Lab作为信息安全独立第三方实验室中的一员,针对目前所有在媒体和官方渠道上所公开的漏洞信息和技术细节,笔者结合自身多年从事支付安全研究的浅薄见解,还是做了一番深入思考,就此形成的所谓的可能结论,还是产生了些许不安:这一由于系统漏洞通过短信传播方式实现的针对二维码支付的远程攻击方式,还会影响多少无硬件保护的软件APP移动支付方式?

第一、短信传播,点击中招。回述发布会中的攻击过程,我们看到这一攻击过程的起点源自于被攻击者(用户)点击了收到短信中的抢红包引诱链接,虽然其最终呈现在手机上的是看似“正常”的抢红包界面,但殊不知其所使用的被攻击目标APP已经通过恶意代码并结合安卓系统漏洞将用户合法登录凭证等敏感信息连同配置文件等等一并传回了攻击者的手机上,借助这些文件和信息攻击者无需二次登录和校验,便可以方便的使用目标APP进行任意消费和交易,整个过程一气呵成毫无违和感。然而攻击者究竟使用了什么方法,使得原本无懈可击的支付应用被轻松攻破?

一番探究后,笔者发现其针对目标APP成功实施攻击两个最重要前提是:

其一、为了更好的用户体验感,包括安卓操作系统在内的智能手机厂商和系统开发方为便于用户新旧手机切换时原有数据、文件、APP和配置信息等等用户个人化数据的迅速迁移,纷纷在其操作系统中预留了此类用户个人化数据自动迁移的类“应用克隆”接口(现在看来已成为系统漏洞)。

其二、就是所谓的Android WebView存在的跨域访问漏洞,且由于APP开发过程中所存在的一些“不明智”举措,促使该漏洞成为可被进行“应用克隆”攻击的最大帮凶。该漏洞的原本设计用意仅旨在通过网页URL访问唤醒第三方APP应用,这一设计方式亦被广泛的应用场景所使用,从而成为启动各类APP的重要入口方式之一,如点击链接启动视频播放APP播放一段视频就是一个司空见惯的应用场景。

有了以上两个前提,黑客们结合自己对于恶意链接传播的娴熟技巧与用户们或是好奇或是占便宜的心态相结合,一次完美的攻击便可以一蹴而成。而本次攻击的实施过程中的技术细节可笼统的理解为:此类攻击的目标多为通过登录账户进行保护的APP,当用户收到恶意短信后,点击非法链接(URL)唤醒支付应用APP,存在上述WebView漏洞的APP运行过程中所产生的的敏感数据和隐私文件(包括用户账户登录凭证等)被通过链接加载的外部可控HTML文件非法跨域file访问,并被传输到指定远端服务器,从而实现“应用克隆”攻击。

更多技术细节可访问:http://www.freebuf.com/articles/terminal/160544.html

第二、二维码扫码直接中招。值得注意的是,如果希望上述攻击过程如数实现,除了技术化的漏洞切实存在于设计“不明智”的APP以外,无风险防范意识的用户操作也是其必要条件之一。但是,中国的广大用户接触互联网及其周边产品已经超过30年,移动互联网趋势下国内日益增多的电信诈骗手段和屡见不鲜的案例通过媒体的不断曝光早已司空见惯,相信如果不是设计精妙,一个普通用户在对莫名短信产生信任感之前,冒然的对短信中的未知链接进行点击,恐怕这样的行为在当下应该不会成为大概率事件。

然而笔者仔细回想了攻击过程中的每一个细节,区别于以往电信诈骗、钓鱼网站、“李鬼”应用攻击手段的不同,此次黑客并未使用任何传统的木马病毒,攻击仅仅是通过针对存在于安卓操作系统和APP中的各个漏洞进行有机组合后,简单利用客户好奇心态神不知鬼不觉的完成了应用克隆攻击,而全部的交互过程仅仅停留在用户需要“配合”点击短信中的链接这一小概率操作即可。反复思考后笔者不禁发现,还有一个被遗漏的重点:针对存在漏洞APP的攻击是源自于用户冒然点击短信中的非法链接,从而促使安卓操作系统通过URL激活被攻击目标APP后完成的。然而URL的传输除了通过短信直接发送以外,还有一个更为直接且应用广泛的方式,那就是扫描二维码。无论是下载APP、电子支付、各类门票应用、商品溯源、点餐下单、公交购票、二维码导游等等,移动互联网浪潮下,二维码已然成为线下到线上的入口,每天我们身边围绕着各种各样的二维码应用,而这些二维码所传输的大多都是URL链接,而用户通过各种扫描APP软件通过这些入口激活更多的APP从而接入各种服务。

如此看来事情似乎要比之前分析的严重一些了,笔者作为一个有较强信息安全风险意识的普通消费者,也许可以对于各种短信、微信、邮件、网页中传递而来的未知链接心存芥蒂,可现如今的移动互联网世界中要笔者在日常生活中拒接扫描二维码,亦或是面对看起来“长得都很像”二维码URL扫描前加以甄别,这恐怕绝非易事。难不成扫码前先要启动某个手机杀毒软件先行验看一番吗?虽然面对两大互联网巨头企业的应用此类漏洞早已封堵,可毕竟拥有扫描功能的APP可绝非仅此二者而已,反观网上各类分析文章与公关稿件中,似乎也有不少作者意识到了此类衍生风险,然而应对之法除了教育用户及时更新APP以外,就只是草草丢下一句“切勿随意扫描不太确定的二维码”,可这“不太确定”又该让普通用户如何界定呢?毕竟生活中许多场景下扫描二维码已然成为一种默认的习惯,用户具有天然的习惯养成感和信任感,尤其当它与支付方式相连接后。

第三、实现移动支付远程攻击,无需root或窃取手持终端。基于手机所兴起的移动支付,在经历了几年的飞速发展之后,已然成为势不可挡的大势,从二维码到云闪付,从HCE到NFC,几年时间一个个原本生僻的技术专业词汇,已经成为家喻户晓、老少皆知的支付新方式。也正因为此,人们的生活连同支付方式发生了很多翻天覆地的变化。从货币交易到基于银行卡交易,中国老百姓的消费习惯用了十几年才完成支付电子化的改造,然而从卡片支付到无卡支付,再到移动支付,这一切的变化却发生在这短短几年之间。

回顾这几年间电子支付手段的变迁,笔者作为亲历者,可谓感触良多。简单回顾这一里程,笔者卓见可大体分为以下五个阶段:

【第一阶段】磁条卡兴起,电子化支付替代纸币交易。这一进程大多开始于改革开放后,随着存折的逐渐消失,磁条卡成为银行主要发行的账户载体和电子支付的主要手段。然而磁条卡缺少加密机制使其在交易中极易被伪造。

【第二阶段】IC卡迁移,银联搭建电子支付基础设施。2002年,随着我国自有支付卡组织银联的成立,电子支付受理环境得到了显著的改善,随之而来的银行卡IC化迁移,更是极大的改善了用户在日常电子支付中安全性与便利性。

【第三阶段】智能手机兴起,移动支付技术群雄逐鹿。2011年,随着当时的智能手机巨头与银联合作的首款基于SD卡的NFC移动支付手机的发布,借助IC卡与智能手机融合的移动支付风潮正式到来,一时间SIM卡、SD卡、手机壳、贴片卡、嵌入式SE、HCE等各项面向智能手机的移动支付改良方案纷纷在市场中出现,百花齐放。

【第四阶段】二维码支付出现,互联网巨头追捧。同样是在2011年,由互联网巨头企业支付宝推出的二维码支付技术,也加入到了移动支付的技术浪潮中,依托于便捷操作和纯软件轻量化部署等先天优势,最终在经历种种争议后逐渐被包括微信在内的众多互联网企业所推崇,并最终获得监管层认可,成为线下支付的重要补充部分。

【第五阶段】ApplePay入华,NFC三分天下。2016年,智能手机巨头苹果公司看准中国市场良好的非接触式IC卡受理环境,携NFC支付技术进入中国联合银联共同推广基于嵌入式SE芯片的所谓安全移动支付技术,并很快获得所有手机厂商的跟进,至此银行卡、二维码、NFC三大技术在中国电子支付市场三分天下。

然而,一直以来,电子支付尤其是移动支付技术,在给用户带来前所未有的便利体验同时,其支付安全性一直是一个备受瞩目的话题。首先有来自监管层的压力,毕竟金融安全关系国计民生;而作为技术践行者的金融机构、互联网企业和设备厂商更是首当其冲责无旁贷,无不使劲浑身解数让其支付技术越来越复杂,越来越安全,上述五个技术发展阶段变可见一斑;更重要的是来自广大用户的关注,毕竟谁丢了钱都不会善罢甘休。笔者还记着早年间与一位著名手机品牌的支付项目经理对话时,曾不厌其烦的阐述支付安全重要性的上述观点,无奈却被反讽道:用户的钱,放在钱包里尚可丢的,怎么放在我手机电子钱包内却丢不得了?可叹这浮躁社会下逐利者的无知与无畏,一招失算让这家企业在移动支付上起个大早却赶了晚集,至今表现低迷。

随着技术的日新月异,针对各类移动支付方式的恶意攻击手段也层出不穷,或争名或逐利其后每年的黑客大会和媒体报道中,都会见到有移动支付技术中招的新闻。为了更好的完善移动支付技术的安全性,增加攻击者的难度,智能手机厂商、互联网企业以及金融机构纷纷对原本依赖在用户名和密码保护的账户支付体系中,不断融入新的技术手段,以提高支付安全性门槛。总结来看无外乎云端不断完善的风控机制和随时更新的漏洞库,管道端日益增强的端到端加密体系的运用和结合令牌Token技术等的创新应用,终端启用生物识别技术唤醒和增加硬件可信根等。其后黑客们发现在重重保护下移动支付似乎并非那么轻易可被破解,即便最新暴露的针对指纹支付和智能POS机的攻击案例,黑客最大的难点来自于需要首先可以接触到用户的手机或POS机,从而才能达成指纹破解或取得root权限,而其后的攻击实施更多只是炫技,并无太多实操。更多技术细节可访问:

指纹攻击:https://mp.weixin.qq.com/s/0VJPz4ckWO11aD1sft2emA

而这一次的攻击方法,让笔者后怕的是:攻击过程从远程发起,通过短信或二维码传输,攻击者全程可无需接触手机,更无需取得Root权限。换而言之,此类攻击完全具备实操可行性,且易于复现与传播,更可怕的是众多具备扫描功能APP开发者并无短平快的破敌良方,甚至无所警觉,更不必说每天乐此不疲的广大扫码用户。

第四、现行标准尚待完善。攻击视频发出后,网络上很多技术流的评论其实纷纷给出了简单的修改建议,如封堵WebView漏洞、每交易上送“IMEI”或硬件指纹信息、增加随机密钥或动态验证机制以及APP执行交易前对其运行时环境进行扫码等等。笔者也第一时间就以上的漏洞和补救措施,与信息安全、支付安全行业内多家检测实验室、技术工程师、标准制定专家等进行沟通,基本得到相应的技术肯定。然而一番热烈讨论过后,当话题聚焦到:现行国内外众多移动支付技术标准和安全标准(如CC、EMV等)中针对此类漏洞可否存在防护要求或技术实现要求,大家往往无法立即给出积极答复。单单是谈到现行结合Token技术实现的二维码、HCE等纯软件支付技术手段中,针对上送报文中是否有“模拟卡”手机端“IMEI”或硬件指纹信息上送并校验要求时,得到的答案大多模棱两可。笔者匆匆查询了相关国际技术标准,发现标准中针对报文有要求的技术标准本身就不多,而提及终端信息上送的仅局限于受理POS终端,而对于模拟卡的手机似乎并不明确;而对国际相关安全标准研究后,笔者庆幸是在其针对使用在移动支付场景中的APP软件安全要求中,确实提及了相关运行时安全的检查要求。随后,笔者结合信息安全领域内全球使用最广泛的Common Criteria标准,针对此次黑客攻击进行了“纯属娱乐”的模拟实验室攻击评分,结果如下:

可见纯软件实现的支付技术其安全级别并不理想(仅供把玩)。

第五、二维码支付、HCE、共享、交通应用。最后,说一些题外话,二维码、HCE、NFC仅仅是实现移动支付的不同技术手段,虽安全性不尽相同,但其实施成本也成正比。在追求体验的商业氛围推动下,二维码技术不仅用于互联网公司的支付应用APP,众多商业银行如今也在各自的网银中添加了此类功能,以满足客户更多的需求,且不说还有现在风头正紧的交通领域应用和扫码共享经济的兴起。在笔者看来追求用户体验和安全的技术道路上二者只有相互平衡才能真正胜任不同风险威胁下的多样应用场景,切不可顾此失彼。

作者:DPLS Lab 安涛

本文为作者授权发布,不代表移动支付网立场,转载请注明作者及来源,未按照规范转载者,移动支付网保留追究相应责任的权利。
相关文章

月点击排行
关于本站    联系我们    版权声明    手机版
Copyright © 2011-2018 移动支付网    粤ICP备11061396号-5     粤公网安备 44030602000994号