香港大學(xué)的三名安全研究人員發(fā)現(xiàn),眾多支持單點(diǎn)登錄的App沒有正確部署OAuth2.0認(rèn)證協(xié)議,攻擊者可利用此漏洞遠(yuǎn)程登陸任何用戶的App賬戶。
Ronghai Yang、Wing Cheong Lau和Tianyu Liu調(diào)查了美國和中國最熱門的600個(gè)Android應(yīng)用,發(fā)現(xiàn)182個(gè)應(yīng)用支持單點(diǎn)登錄服務(wù),這其中有41%沒有正確部署OAuth2.0協(xié)議。
具體問題
OAuth認(rèn)證是什么?
許多社交網(wǎng)絡(luò)平臺(tái),包括新浪微博、Google、Facebook等,都在使用OAuth 2.0認(rèn)證協(xié)議。這個(gè)認(rèn)證協(xié)議可以讓用戶在一處登錄后,通過認(rèn)證已有的身份,登錄第三方服務(wù),而不需要提供其它信息。比如下圖:
App開發(fā)者應(yīng)當(dāng)如何實(shí)現(xiàn)OAuth認(rèn)證 ?
當(dāng)用戶通過OAuth登錄第三方應(yīng)用時(shí),該應(yīng)用將檢驗(yàn)用戶ID提供方(比如新浪微博)是否提供了正確的認(rèn)證信息。如果認(rèn)證信息正確,OAuth將從微博處得到一個(gè)訪問token,然后發(fā)放給第三方App的服務(wù)器。
訪問token發(fā)放后,App服務(wù)器將向微博索取用戶認(rèn)證信息,進(jìn)行驗(yàn)證,而后讓用戶使用微博登錄信息登錄這個(gè)第三方App。
App開發(fā)者實(shí)際如何部署OAuth認(rèn)證?
研究人員發(fā)現(xiàn),許多Android App的開發(fā)者并沒有正確地核對(duì)微博等ID提供方發(fā)來的信息的有效性。
這些第三方App并沒有驗(yàn)證上文提到的訪問token,以核查用戶與ID提供方是否關(guān)聯(lián);第三方App服務(wù)器只檢查了這個(gè)信息是否由一個(gè)有效的ID提供方發(fā)出。
這種部署給了攻擊者可乘之機(jī),他們可以下載存在此漏洞的App,使用自己的信息登錄,通過建立服務(wù)器,修改新浪微博等ID提供方發(fā)送的數(shù)據(jù),將自己的用戶名改為目標(biāo)對(duì)象的用戶名。
影響范圍
攻擊者可以利用這種方法,泄露用戶敏感信息,或者以用戶名義在相應(yīng)App上操作。
在接受福布斯采訪時(shí),Lau表示OAuth2.0部署問題其實(shí)是個(gè)基礎(chǔ)性的錯(cuò)誤。但是,影響范圍卻可能很嚴(yán)重。攻擊者如果黑入旅游App,可以獲得用戶的完整行程信息;如果黑的是酒店預(yù)訂App,可以預(yù)定房間并讓受害用戶支付;攻擊者也有可能盜取地址、銀行賬戶等個(gè)人信息。
“OAuth協(xié)議挺復(fù)雜的。許多第三方開發(fā)商都是小本經(jīng)營(yíng),他們沒有能力。大多數(shù)時(shí)候,他們用的是Google和Facebook的推薦,但是如果他們不正確操作的話,他們的App就很容易受到攻擊。”
研究人員發(fā)現(xiàn)有OAuth部署問題的各類App總共有24億的下載量,專家估計(jì)將有10億不同的手機(jī)App賬戶可能被劫持。下圖列出了存在此漏洞的App類型:
是否影響iPhone用戶?
研究人員并沒有測(cè)試iOS設(shè)備,但他們認(rèn)為這個(gè)攻擊在蘋果App上一樣可以實(shí)現(xiàn)。
雖然他們的攻擊是在Android平臺(tái)演示的,但是這個(gè)exploit與平臺(tái)無關(guān):任何iOS或者Android用戶,只要曾經(jīng)用過存在此漏洞的App,都會(huì)受到影響。
Yang和Lau在2016歐洲黑帽子大會(huì)上展示了他們的研究成果,。