前言
香港中文大学的三位安全研究员ronghai yang、wing cheong lau、tianyu liu发现了一个极其危险的安全隐患,超过10亿的移动app(包括安卓版本和ios版本)都可以在用户完全不知情的情况下被远程劫持。
他们三位安全研究员发现大部分流行的移动应用程序都支持单点登录(sso)服务,也就是说用户只需登录一次就可以访问所有相互信任的应用系统,但是这些应用程序却以不安全的方式执行了oauth 2.0。
oauth 2.0简介
oauth 2.0是一个开放的认证标准,广泛应用在各个社交网站上。有了它,用户便可以直接通过谷歌、facebook、新浪账户登录其他第三方应用。用户完全不需要额外提供用户名或者密码就可以直接登录第三方应用。
当用户使用oauth 登录第三方应用时,应用会请求核对id。拿facebook举例,如果用户使用facebook账户登录第三方应用时,oauth 就需要从facebook拿到访问令牌,然后发送给第三方应用。
当访问令牌被传送到第三方应用上时,应用的服务器会请求查看来自facebook的用户认证信息,然后进行核实,最后才会允许用户以facebook账户登录第三方应用。
漏洞的影响及危害
香港中文大学的三位安全研究员发现,大部分的安卓应用的开发者都不会去核实来自谷歌、facebook、新浪的账户信息。这些应用的服务器不会验证oauth 信息(也就是用户的认证信息),它们只会检查这些id是否和从id供应商那里检索到的匹配。
基于这一天大的错误,远程攻击者可以下载一个存在问题应用,先用自己的信息登录,然后再将用户名更改成任意他想攻击的目标。之后,攻击者便可以完全控制住应用程序上的数据了。
影响是什么呢?如果黑客入侵进了受害者的旅游app,他们就能知道受害者的行程;如果他们入侵进酒店预订app,他们就可以预定一个房间,并且让受害者支付;或者是窃取受害者的个人信息,比如家庭住址、银行详细信息。
“oauth 协议非常的复杂,很多第三方开发者都是半桶水晃荡,没有什么能力。他们大部分都是借鉴使用谷歌和facebook的一些功能,但是如果他们不能正确的使用,那么他们开发出来的app将会出很大的安全风险。”
ronghai yang、wing cheong lau、tianyu liu已经在美国和中国发现了数百款安卓应用在使用sso服务,并且下载量超过24亿次,但是不幸的是都存在该问题。据安全研究员们估计,有超过10亿个不同的移动app账户存在被攻击者劫持的风险。
后记
安全研究员们还没有测试他们的exp在iphone手机上是否适用,但是他们相信他们的攻击方式对所有存在漏洞的应用都有效,包括ios移动操作系统。
“尽管我们现在的攻击方式只在安卓平台上进行了演示,但是exp本身就与平台无关,只要用户使用了基于oauth 2.0的sso服务,不管它是安卓版的移动应用还是ios版的移动应用,他都将受影响。”
ronghai yang、wing cheong lau在black hat europe公开了他们的这一发现。
详细细节文档:https://www.blackhat.com/docs/eu-16/materials/eu-16-yang-signing-into-billion-mobile-apps-effortlessly-with-oauth20-wp.pdf
试用申请