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(转载)

目录
相关文章
|
3月前
|
安全 Java 应用服务中间件
【Azure 应用服务】App Service 默认页面暴露Tomcat版本信息,存在安全风险
【Azure 应用服务】App Service 默认页面暴露Tomcat版本信息,存在安全风险
|
4月前
|
XML 自然语言处理 Android开发
🌐Android国际化与本地化全攻略!让你的App走遍全球无障碍!🌍
【7月更文挑战第28天】在全球化背景下,实现Android应用的国际化与本地化至关重要 for 用户基础扩展。本文通过旅游指南App案例,介绍全攻略。步骤包括资源文件拆分与命名、适配布局与方向、处理日期时间及货币格式、考虑文化习俗及进行详尽测试。采用Android Studio支持,创建如`res/values-en/strings.xml`等多语言资源文件夹,使用灵活布局解决文本长度差异问题,并通过用户反馈迭代优化。最终,打造一款能无缝融入全球各地文化的App。
195 3
|
3月前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
84 0
|
3月前
|
搜索推荐 Java Android开发
打造个性化安卓应用:从设计到部署的全栈之旅
【8月更文挑战第31天】在数字化时代的浪潮中,移动应用已成为人们日常生活的一部分。本文将带你走进安卓应用的开发世界,从设计理念到实际编码,再到最终的用户手中,我们将一起探索如何将一个想法转变为现实中触手可及的应用。你将学习到如何利用安卓开发工具包(SDK)和编程语言(如Kotlin或Java),结合Material Design设计原则,创建出既美观又实用的应用。此外,我们还将讨论如何通过Google Play将应用发布给全球用户,并确保应用的安全性与维护性。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识和启发。
|
3月前
|
搜索推荐 Java Android开发
打造个性化安卓应用:从设计到部署的全攻略
【8月更文挑战第31天】在这篇文章中,我们将一起探索如何从零开始构建一个安卓应用,并为其添加个人特色。我们将通过实际的代码示例,学习如何使用Android Studio进行开发,以及如何将应用发布到Google Play商店。无论你是编程新手还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧,帮助你打造独一无二的安卓应用。
|
4月前
|
消息中间件 Android开发 开发者
🔍深度剖析Android内存泄漏,让你的App远离崩溃边缘,稳如老狗!🐶
【7月更文挑战第28天】在 Android 开发中,内存管理至关重要。内存泄漏可悄无声息地累积,最终导致应用崩溃或性能下滑。它通常由不正确地持有 Activity 或 Fragment 的引用引起。常见原因包括静态变量持有组件引用、非静态内部类误用、Handler 使用不当、资源未关闭及集合对象未清理。使用 Android Studio Profiler 和 LeakCanary 可检测泄漏,修复方法涉及使用弱引用、改用静态内部类、妥善管理 Handler 和及时释放资源。良好的内存管理是保证应用稳定性的基石。
78 4
|
4月前
|
XML 缓存 Android开发
🎯解锁Android性能优化秘籍!让你的App流畅如飞,用户爱不释手!🚀
【7月更文挑战第28天】在移动应用竞争中,性能是关键。掌握Android性能优化技巧对开发者至关重要。
42 2
|
5月前
|
ARouter IDE 开发工具
Android面试题之App的启动流程和启动速度优化
App启动流程概括: 当用户点击App图标,Launcher通过Binder IPC请求system_server启动Activity。system_server指示Zygote fork新进程,接着App进程向system_server申请启动Activity。经过Binder通信,Activity创建并回调生命周期方法。启动状态分为冷启动、温启动和热启动,其中冷启动耗时最长。优化技巧包括异步初始化、避免主线程I/O、类加载优化和简化布局。
83 3
Android面试题之App的启动流程和启动速度优化
|
4月前
|
Android开发
Android面试题经典之如何全局替换App的字体
在Android应用中替换字体有全局和局部方法。全局替换涉及在`Application`的`onCreate`中设置自定义字体,并创建新主题。局部替换则可在布局中通过`ResourcesCompat.getFont()`加载字体文件并应用于`TextView`。
80 2
|
5月前
|
缓存 JSON 网络协议
Android面试题:App性能优化之电量优化和网络优化
这篇文章讨论了Android应用的电量和网络优化。电量优化涉及Doze和Standby模式,其中应用可能需要通过用户白名单或电池广播来适应限制。Battery Historian和Android Studio的Energy Profile是电量分析工具。建议减少不必要的操作,延迟非关键任务,合并网络请求。网络优化包括HTTPDNS减少DNS解析延迟,Keep-Alive复用连接,HTTP/2实现多路复用,以及使用protobuf和gzip压缩数据。其他策略如使用WebP图像格式,按网络质量提供不同分辨率的图片,以及启用HTTP缓存也是有效手段。
91 9

热门文章

最新文章

下一篇
无影云桌面