支付SDK的安全问题——隐式意图可导致钓鱼攻击
该漏洞涉及到app所使用的intent和intent filter。
intent是一个可用于从一个app组件请求动作或处理事件的“消息对象”。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。
intent主要包括隐式意图和显式意图。调用Intent.setComponent()或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。没有明确指定组件名的Intent为隐式意图。Android系统会根据隐式意图中intent-filter设置的动作(action)、类别(category)、数据(URI和数据类型)找到最合适的组件来处理这个意图。
移动应用app和支付客户端app之间的通信存在一个漏洞:移动应用app使用隐式意图,可以被恶意应用通过一个高优先级的intent-filter拦截。Google IAP 2和3版本以及支付宝SDK 1.0版都存在该漏洞。
Google Wallet SDK的漏洞
使用Google Wallet SDK进行交易,app必须与设备上的Google Play app进行通信,以便Google Play把交易情况反馈给用户同时要求用户进行确认。
确认信息
然而, IAP SDK使用了隐式意图ACTION=”com.android.vending.billing.MarketBillingService.BIND”,可以被意图过滤器(intent-filter)action android:name=”com.android.vending.billing.MarketBillingService.BIND.”拦截,这样,一个恶意app就可以使用同样的intent-filter拦截该意图然后启动钓鱼界面,如下图所示:
钓鱼页面示例
支付宝sdk钓鱼
支付宝sdk与Google Wallet的支付过程相似。当用户点击“支付”按钮后,app就会与支付宝sdk进行通信以便支付宝sdk通知用户确认支付。同样,恶意app可以使用action android:name=”com.alipay.android.app.IAlixPay.”的intent-filter来拦截通信,然后向用户发送伪造消息。
伪造支付宝消息
第三方app为了完成支付,需要借助Google Wallet SDK或支付宝SDK,这些SDK的目的是发送支付intent到Google Wallet或支付宝。在这个过程中,恶意APP可以取代真正的Google Wallet或支付宝接收支付intent。用户通过第三方应用程序进行支付的时候,他们希望看到真正的Google Wallet或支付宝登录界面。然而在这个时候网络钓鱼APP就像真正的Google Wallet或支付宝一样出现在用户眼前,用户很可能不会产生怀疑从而输入他的密码和银行账号信息。
前面的例子表明了网络钓鱼攻击的可能性。然而,钓鱼攻击可能只是一个开始。一旦网络罪犯能够访问用户帐户,他们就可以继续窃取用户帐户上存储的其它信息,包括信用卡和其他支付信息。然后,他们可以自己使用或者在地下黑市贩卖这些信息。
此外,用户可能不会对这些恶意信息产生怀疑。由于APP需要处理支付,他们可能会认为这些消息只是在实际支付前简单的对账号进行确认。
修复建议
开发人员应该使用显示意图来处理敏感信息,这样,只有指定的app组件才能够接收和处理这些信息。但这是不够的,在与其它app通信之前,开发者应该检测其它app的签名以证明其调用来源的合法性。
参考链接:
支付SDK的安全问题——隐式意图可导致钓鱼攻击的更多相关文章
- 隐式意图启动一个Activity
隐式意图是通过指定一组动作或者属性实现,主要用于跨应用使用. 1.创建一个意图对象 Intent intent = new Intent(); 2.设置意图过滤器 intent.setAction(& ...
- Android 隐式意图和显示意图的使用场景
本文实现一个隐式意图的应用,激活短信应用 public void click4(View view) { Intent intent = new Intent(); intent.setAction( ...
- Android 隐式意图的配置
本文地址:http://www.cnblogs.com/wuyudong/p/5677473.html,转载请注明源地址. <Android 显示意图激活另外一个Actitity>一文介绍 ...
- Android 隐式意图激活另外一个Actitity
上篇文章<Android 显示意图激活另外一个Actitity>最后谈到显示意图激活另外一个Actitity会有一些局限性和弊端 本文介绍另一种方法:隐式意图激活另外一个Actitity ...
- 无废话Android之smartimageview使用、android多线程下载、显式意图激活另外一个activity,检查网络是否可用定位到网络的位置、隐式意图激活另外一个activity、隐式意图的配置,自定义隐式意图、在不同activity之间数据传递(5)
1.smartimageview使用 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...
- 隐式意图Intent
在我们想往下一个页面传递数据时,要想到显式意图和隐式意图,显示意图用于内部活动跳转时比较方便,而隐式意图用于应用程序中外部活动的跳转时较为方便,在使用隐式意图时我们要想到清单文件 代码如下: < ...
- 基础学习总结(八)--Intent中显示意图和隐式意图的用法
Intent(意图)主要是解决Android应用的各项组件之间的通讯.Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组 ...
- android intent 隐式意图和显示意图(activity跳转)
android中的意图有显示意图和隐式意图两种, 显示意图要求必须知道被激活组件的包和class 隐式意图只需要知道跳转activity的动作和数据,就可以激活对应的组件 A 主activity B ...
- android 21 隐式意图启动系统预定义activity
Intent intent=new Intent(LoginActivity.this, MainActivity.class);//显示意图启动,显示从一个activity到另一个activity, ...
随机推荐
- atitit.html5 拼图游戏的解决之道.
atitit.html5 拼图游戏的解决之道. 1. 拼图游戏的操作(点击法and 拖动法) 1 1. 支持键盘上.下.左.右键移动: 1 2. 支持点击空白模块中的上下左右箭头移动: 1 3. 支持 ...
- paip.日期时间操作以及时间戳uapi php java python 总结
paip.日期时间操作以及时间戳uapi php java python 总结 ///uapi Date 函数 | Day 函数 | Hour 函数 | Minute 函数 | Month 函数 | ...
- asp.net时间 日期(DateTime) 的格式处理
日期格式化{0:yyyy-MM-dd HH:mm:ss.fff}与{0:yyyy-MM-dd hh:mm:ss.fff}的区别 使用24小时制格式化日期:{0:yyyy-MM-dd HH:mm:ss. ...
- Socket通信实例(C#)
SOCKET原理 一.套接字(socket)概念 套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元.它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息: ...
- 安装Python图型处理库Python Imaging Library(PIL)
方法1: 在Debian/Ubuntu Linux下直接通过apt安装: $sudo apt-get install python-imaging Mac和其他版本的Linux可以直接使用easy_i ...
- 编写高质量代码改善C#程序的157个建议——导航开篇
前言 由于最近工作重心的转移,原来和几个同事一起开发的项目也已经上线了,而新项目就是在现有的项目基础上进行优化延伸扩展.打个比方,现在已经上线的项目行政案件的Web管理网站(代码还没那么多相比较即将要 ...
- WPA-PSK无线网络破解原理及过程(转)
本文将主要讲讲WPA-PSK类型的无线网络安全问题,首先我们看下802.11协议相关的基础知识. 802.11常见的几种认证方式: 1.不启用安全 2.WEP 3.WPA/WPA2-P ...
- input type=file美化
最近碰到input type=file 之前用模拟点击来实现美化,发现在IE7下会有bug导致图片上传不上去,最后改用直接美化的方法 <!DOCTYPE html> <html la ...
- Spring3 整合MyBatis3 配置多数据源 动态选择SqlSessionFactory
一.摘要 上两篇文章分别介绍了Spring3.3 整合 Hibernate3.MyBatis3.2 配置多数据源/动态切换数据源 方法 和 Spring3 整合Hibernate3.5 动态切换Ses ...
- SIFT 特征提取算法总结
原文链接:http://www.cnblogs.com/cfantaisie/archive/2011/06/14/2080917.html 主要步骤 1).尺度空间的生成: 2).检测尺度空间极 ...