OAuth2.0部署不当,数十亿Android App账户存泄露风险

简介:

香港大学的三名安全研究人员发现,众多支持单点登录的App没有正确部署OAuth2.0认证协议,攻击者可利用此漏洞远程登陆任何用户的App账户。

Ronghai Yang、Wing Cheong Lau和Tianyu Liu调查了美国和中国最热门的600个Android应用,发现182个应用支持单点登录服务,这其中有41%没有正确部署OAuth2.0协议。

具体问题

OAuth认证是什么?

许多社交网络平台,包括新浪微博、Google、Facebook等,都在使用OAuth 2.0认证协议。这个认证协议可以让用户在一处登录后,通过认证已有的身份,登录第三方服务,而不需要提供其它信息。比如下图:

tripadvisor-sign-up-facebook-google-email.jpeg

App开发者应当如何实现OAuth认证 ?

当用户通过OAuth登录第三方应用时,该应用将检验用户ID提供方(比如新浪微博)是否提供了正确的认证信息。如果认证信息正确,OAuth将从微博处得到一个访问token,然后发放给第三方App的服务器。

访问token发放后,App服务器将向微博索取用户认证信息,进行验证,而后让用户使用微博登录信息登录这个第三方App。

App开发者实际如何部署OAuth认证?

研究人员发现,许多Android App的开发者并没有正确地核对微博等ID提供方发来的信息的有效性。

这些第三方App并没有验证上文提到的访问token,以核查用户与ID提供方是否关联;第三方App服务器只检查了这个信息是否由一个有效的ID提供方发出。

这种部署给了攻击者可乘之机,他们可以下载存在此漏洞的App,使用自己的信息登录,通过建立服务器,修改新浪微博等ID提供方发送的数据,将自己的用户名改为目标对象的用户名。

影响范围

攻击者可以利用这种方法,泄露用户敏感信息,或者以用户名义在相应App上操作。

在接受福布斯采访时,Lau表示OAuth2.0部署问题其实是个基础性的错误。但是,影响范围却可能很严重。攻击者如果黑入旅游App,可以获得用户的完整行程信息;如果黑的是酒店预订App,可以预定房间并让受害用户支付;攻击者也有可能盗取地址、银行账户等个人信息。

“OAuth协议挺复杂的。许多第三方开发商都是小本经营,他们没有能力。大多数时候,他们用的是Google和Facebook的推荐,但是如果他们不正确操作的话,他们的App就很容易受到攻击。”

研究人员发现有OAuth部署问题的各类App总共有24亿的下载量,专家估计将有10亿不同的手机App账户可能被劫持。下图列出了存在此漏洞的App类型:

是否影响iPhone用户?

研究人员并没有测试iOS设备,但他们认为这个攻击在苹果App上一样可以实现。

虽然他们的攻击是在Android平台演示的,但是这个exploit与平台无关:任何iOS或者Android用户,只要曾经用过存在此漏洞的App,都会受到影响。

Yang和Lau在2016欧洲黑帽子大会上展示了他们的研究成果,。

本文转自d1net(转载)

目录
相关文章
|
1月前
|
网络协议 关系型数据库 MySQL
如何实现无公网ip远程访问本地安卓Termux部署的MySQL数据库【内网穿透】
如何实现无公网ip远程访问本地安卓Termux部署的MySQL数据库【内网穿透】
|
4月前
|
XML 物联网 API
Android Ble蓝牙App(五)数据操作
Android Ble蓝牙App(五)数据操作
|
3月前
|
Android开发 开发者 iOS开发
APP开发后如何上架,上架Android应用市场前要准备什么
移动应用程序(APP)的开发已经成为现代企业和开发者的常见实践。然而,开发一个成功的APP只是第一步,将其上架到应用商店让用户下载和使用是实现其潜力的关键一步。
|
1月前
|
移动开发 负载均衡 小程序
代驾app开发丨代驾系统开发玩法详情丨代驾系统开发网页版/H5/小程序及源码部署
**司机/代驾员端**:司机可以通过APP接收订单,查看订单详情、路线和导航,提供现场服务并进行确认。
|
1月前
|
设计模式 测试技术 数据库
基于Android的食堂点餐APP的设计与实现(论文+源码)_kaic
基于Android的食堂点餐APP的设计与实现(论文+源码)_kaic
|
2月前
|
安全 Java 数据挖掘
当 App 有了系统权限,真的可以为所欲为? Android Performance Systrace
当 App 有了系统权限,真的可以为所欲为? Android Performance Systrace 转载自: https://androidperformance.com/2023/05/14/bad-android-app-with-system-permissions/#/0-Dex-%E6%96%87%E4%BB%B6%E4%BF%A1%E6%81%AF
30 0
|
3月前
|
Android开发
闲暇时间收集和整理的Android的一些常用的App
闲暇时间收集和整理的Android的一些常用的App
14 0
|
3月前
|
Android开发 UED 开发者
解释Android App Bundle是什么,它的优势是什么?
解释Android App Bundle是什么,它的优势是什么?
55 0
|
3月前
|
JavaScript Android开发
Cordova 后台运行 Android APP
Cordova 后台运行 Android APP