單點登出,你在哪兒?一個基於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 27 th 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/