香港大学的三名安全研究人员发现,众多支持单点登录的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(转载)