摘要:当前,信息时代、大数据时代悄然来临,带动了网络技术、计算机技术和通信技术的发展,网络支付工具和方式层出不穷, 第三方支付如微信支付、支付宝支付给人们的生活带来了极大的便利。可以说网络支付已经被人们广泛接受,同时相对应地也产生了许多安全隐患。本文主要涉及网络扫码支付时存在安全问题相对应的攻击方式,并分析了产生安全问题的原因, 以二维码界面劫持的实验进行实操,再提出了面对支付安全问题时的应对策略。
关键词:扫码支付;安全问题;网络支付;支付安全;
目录
1 背景介绍
当前,社会各行各业都广泛应用第三方支付、银行转账等各种网络支付方式,从路边小摊扫码支付到大型超市刷卡支付等等,不知不觉中,可以说网络支付已经渗透进我们的生活当中。然而,支付安全成为当今的一大难题,并且成为阻碍网络支付技术发展的关键因素。特别是扫码支付的方式,由于二维码发布没有任何法律法规或高端技术的限制,生成十分简单,况且二维码生成器软件又随时可以在网上获得,因其生成没有难度,成本极低,因为有着极高的经济价值,于是易被恶意程序利用,易被某些不法分子利用,进而进行危害网络扫码支付的行为[1]。
我们每天扫过的二维码和生成的二维码可以说数不胜数,但二维码所包含的内容是否安全,是否会给我们带来风险,和我们密切相关的权益相挂钩。本文先是以网络扫码支付存在的安全隐患入手,解析扫码时攻击者所能用的攻击手段:使用户错扫二维码、支付界面网络钓鱼攻击、假App木马病毒攻击、收款、支付二维码被完全修改、二维码界面劫持攻击。再分析扫码者被上诉方式攻击的原因,再以二维码界面劫持的实验进行实操,进一步提出相对应的应对策略。
2 网络扫码支付存在的安全隐患
2.1 错扫收款、支付二维码
最简单的一种方法便是攻击者在原来正确的收款码或支付码旁边增加上攻击者收款的二维码。扫码者在扫取二维码的信息时,容易不慎扫到攻击者的收款二维码,这时手机就会直接跳转至给攻击者转账的界面并没有任何提醒,若再进行正常的交易操作,钱便轻而易举地汇入了攻击者的帐下,此时扫码者也变成了受害者。
2.2 支付界面网络钓鱼攻击
有些攻击者为了某些利益而制作出与官方网站极为相似的钓鱼页面,在支付时诱骗用户主动填写个人身份信息和银行卡资料,从而进一步获取用户钱财,如诈骗或者盗刷网银。在此过程中,如果事前利用二维码将用户重定向到网络钓鱼页面,便可以有效规避了旨在阻止此类攻击的安全解决方案和控制措施。比如先前发生在法国的网络钓鱼攻击,就是使用了二维码编码的URL来绕过分析和阻止可疑的安全软件。
2.3 假App木马病毒攻击
在日常使用手机时,有时一次误触或者是攻击者刻意为之,手机便被植入了木马病毒,随后在进行网上支付交易时,个人信息、付款信息甚至是银行卡信息等被截获,造成网上支付资金流失的后果。比如我们现在随处可见的共享单车,倘若原单车二维码被攻击者设计的假二维码覆盖,扫码租用时,“软件”提示用户需要“更新”才能租借使用。看似已“更新”,木马早已被植入。
2.4 收款、支付二维码被完全修改
我们日常生活中使用的支付工具和方式,最普遍的便是微信支付和支付宝支付,如果付款码和支付码被攻击者通过恶意程序修改,原来的二维码被覆盖成攻击者的收款二维码,即攻击者通过伪装支付界面获取用户信任,那么用户只有在交易完成后,才会意识到二维码被修改,但为时已晚,已经造成了不可逆的损失。
2.5 二维码界面劫持攻击
扫码软件依赖于定位图案与静区以确定二维码所在位置。有一种基于无痕嵌入的二维码不可见劫持攻击方案,通过对恶意二维码定位图案的修改,可以隐藏恶意二维码,从而对指定软件实施针对性的攻击;通过对静区的隐藏,可以使嵌入位置难以被发现。该方案可以在隐藏视觉特征的情况下实施有效的攻击,并可以实现对微信与支付宝的选择性攻击[2]。换句话说,就是在原来的二维码中隐藏嵌入恶意二维码,而改变原始二维码的功能,以获取利益。
3 扫码支付安全问题产生的原因
(1)二维码生成简单,缺乏监管,制作毫无难度,而且成本极低,但效益高、使用方便,易被不法分子利用。
(2)人们已普遍使用智能手机, 在支付过程或者是收款过程时,采取极为迅速的行动,忽略对二维码是否正确、支付环境是否安全的审查。
(3)网络环境相对较为不安全,无法及时告知用户二维码的安全性,比如被恶意修改,网络系统、数据库、支付渠道等软硬件设施也不是很完善,
(4)人们的防范意识薄弱, 在日常生活中忘记防范,使用时理所应当认为无害,这正是有高超的计算机黑客所利用的隐性信任,从而使不法分子频繁得手。
(5) 网络支付的相关法律法规还有待完善,有关部门监管不是很有效, 对于虚拟货币的限制和检测不严格, 反洗钱的监控和检测力度不够[3]。
4 实验:二维码界面劫持(以支付宝支付为例)
4.1 实验配置
一部已提前安装好XPosed和支付宝的手机。(这里不模拟植入木马过程)
4.2 支付宝界面劫持攻击解析
4.2.1 发现目标APP的活动状态
即收钱或支付的二维码所在的app accessibility有一个api可以获取前台运行程序的功能,当用户打开该app时,会告诉程序,并让程序做好下一步准备
4.2.2 判断当前APP是否在付款界面
就是通过监听用户点击来检测到用户进入到付款界面,所以植入的程序需要有监听用户、接收用户操作的功能。
4.2.3 伪造付款码
通过植入的程序,伪造一个可以满足攻击者获取利益的二维码,该二维码需要与真付款码相似度极高,以避免被用户识破而导致失败。
4.2.4 替换原付款码
当然这里不是真替换,而是遮住原来付款码。这里程序应当创建一个能检测点击事件的遮罩层,当用户点击进入付款二维码的时候,恶意软件监听到点击并弹出恶意二维码覆盖原二维码。
4.3 实验过程
图一:共享资料
Figure 1: Sharing information
通过网上的资料共享,有如图一的一个基于XPosed的工程项目,在实验的手机上安装XPosed插件项目,自动生成支付宝收款二维码并在打开支付宝付款码时遮住原来付款码,以达成目的,如图二所示。
图二:被攻击界面
Figure 2: Attacked interface
4.4 实验结果
可以看出,二维码生成容易,成本极低,但经济利益贼高,能推测极其容易被不法分子所利用,扫码支付存在一定的风险,所以,在扫码支付时,一定要关注扫码页面是否正常,支付码或收款码是否正常,支付环境是否安全,才能最大程度地避免被攻击,而造成不必要的经济损失。
5 基于扫码支付安全的应对策略
用户、相关部门、政府等可以做一些防御措施来最小化上述二维码攻击方式所带来的风险。
(1)加强监管机制, 不断完善自身程序,不断解决自身存在的问题,特别是支付宝、微信支付工具,以免发生问题时为时已晚;另一方面应采取强而有效的安全保护措施, 以防系统被不法分子攻破, 从而保障用户支付安全。
(2)网络安全部门要关注和重视此类扫码支付安全问题,事先做好防护和拦截工作;及时安装补丁、修复漏洞, 在遭受病毒入侵时, 立刻隔离此终端, 尽量避免更大损失。
(3)用户自我意识和安全意识有待提高, 比如不要随意点击不明来源和未知目的的网站, 以免进入实力强大黑客组织钓鱼网站,增加受害几率。
(4)用户扫码支付时,一定要关注扫码页面是否正常,支付码或收款码是否正常,支付环境是否安全,才能最大程度地避免被攻击,而造成不必要的经济损失。同时确保二维码是合法的,防止存在嵌入隐藏的恶意码。
(5)与网络支付相关的法律法规需要不断修改和完善,制定新规,不给不法分子有机可乘。
6 总结
本文通过对网络扫码支付存在的安全隐患进行介绍,特别是相关的攻击方式,阐述了出现支付安全问题的某些主要原因,同时以支付宝为例子的二维码劫持的实验,说明了用户了解攻击方式、提高自我防范意识和安全意识的重要性,在文章最后也对用户、相关部门、政府等提出了一些合理化的应对措施,可以最小化上述二维码攻击方式所带来的风险。净化网络支付环境,实现网络扫码支付的绝对安全,还有很长一段路要走,不仅需要政府和相关部门的努力,更需要我们每个人的共同努力,我相信,未来定能营造一个安全的网络支付环境!