单点登出,你在哪儿?一个基于Web的SSO账户劫持与会话管理的实证分析

作者:{LIG}@ArkTeam

原文作者:Mohammad Ghasemisharif, Amruta Ramesh, Stephen Checkoway, Chris Kanich and Jason Polakis

原文标题:O Single Sign-Off, Where Art Thou? An Empirical Analysis of Single Sign-On Account Hijacking and Session Management on the Web.

原文会议:The Proceedings of the 27th USENIX Security Symposium.

SSO(单点登录)的出现使得网络变得紧密相连,使得用户不用为复杂的网站账户注册和管理而费神。然而它的广泛使用带来了巨大的安全风险,IdP(身份提供商,如Facebook)中的账户被入侵后,攻击者能够控制用户在其他RP(依赖方,如第三方网站)中的账户。因此本文对这一攻击进行了实证研究,并提出了”Single-Sign-Off”这一缓解方案。

首先,本文设计了一个工具Puppeteer用来爬取Alexa上前1M的网站,对其中采取IdPs进行SSO的网站进行一个大规模研究。主要提出了两种RP账号劫持攻击。第一类攻击针对于用户使用自己的IdP账号在RP上注册了账号的场景,攻击过程如图1所示:


图1 RP账户劫持攻击过程

1)a,b: 攻击者通过钓鱼攻击或者WiFi嗅探获取到用户IdP的密码或IdP的cookie,用于之后的攻击。

2)使用IdP或将用户被劫持的会话cookie以”Login With IdP”的方式登入RP。

为了保持长期的访问权限,攻击者在入侵用户的RP账户之后,替换其绑定邮箱为自己的进行重置密码,在重置密码完成之后,再将邮箱还原为用户的。或者将用户的RP绑定两个独立的IdP账户,其中一个IdP账户是攻击者的账户。

第二类攻击是先发制人的账户劫持攻击。这类攻击针对于用户还未注册使用RP网站的服务的场景。攻击者在窃取到用户的IdP账户的凭证后,使用此凭证在RP上进行注册。由于在注册账户时,用户会收到注册账户的邮件提醒。为了避免此问题,攻击者在获得用户IdP的访问权限后,将自己的邮箱添加进用户的IdP账户中,并提高其优先级,使得注册账户的提醒邮件发到攻击者的邮箱中。在完成注册后,攻击者再将自己的邮箱从用户的IdP中移除。

紧接着本文通过对此两类攻击的研究发现了主流的SSO方案的固有局限性,即用户在发现自己的IdP账号被入侵之后,大多数的RP服务缺乏允许用户修复账户被劫持之后的功能。即使提供了此功能,对于用户而言,他无法进行大规模地修复所有的相关的RP账户。因此提出了”Single-Sign-Off”协议,用于撤销与用户被劫持的IdP账户相关联的所有账户的访问权限。

在SSO为互联网的集成做出重大贡献的同时,它也一直努力避免使IdP成为单点故障。尽管此属性并不是一个漏洞,但它确实将用户暴露在大量危险而隐蔽的攻击之下。本文作者希望借此呼吁社区对此的关注,并尝试思考解决现有SSO方案的缺点。

注:

    1.爬取数据的工具:https://github.com/ GoogleChrome/puppeteer, 2017.

    2.数据集:https://www.cs.uic.edu/~sso-study/

发表评论

电子邮件地址不会被公开。 必填项已用*标注