熱門遊戲pokémon go可通過令牌擷取使用者谷歌賬戶的完整賬戶通路權限,而不需要使用者許可。
前不久pokémon go移動應用釋出後,該遊戲的開發商niantic公司被迫修複該應用的ios版本,因為安全研究人員報告稱該遊戲自身會安裝令牌,并擷取對其谷歌賬戶的完全通路。雖然該app本身不能執行這種通路,但這個漏洞帶來了令牌交換攻擊的風險。
安全公司redowl analytics首席架構師adam reeve稱,當他使用其谷歌賬戶開始玩pokémon go時,他希望看到“該app将通路哪些資料”或者“該app将檢視你的電子郵件位址和姓名”的彈出消息,但他沒有看到任何這樣的消息,随後在他檢視該遊戲通路權限時感到非常震驚,他看到“pokémon go可完全通路使用者的谷歌賬戶”。
pokémon go允許通過pokémon trainer club網站或使用谷歌賬戶登入;然而,pokémon trainer club因大量新注冊使用者不堪重負,而暫停注冊,讓使用者隻有一個選擇:使用谷歌賬戶登入。這種完整權限通路僅發生在ios版的該應用中;android使用者沒有受到影響。
niantic承認了這個錯誤并解釋稱,盡管pokémon go得到了完全通路令牌權限,但該應用并不能通路所有谷歌賬戶資訊。
“我們最近發現,ios系統中pokémon go賬戶建立過程錯誤地要求使用者谷歌賬戶的完全通路權限,”niantic在其網站寫道,“但是,pokémon go隻會通路基本的谷歌賬戶資訊(即使用者id和電子郵件位址),不會對其他谷歌賬戶資訊進行通路或收集。在我們發現這個錯誤後,我們開始進行用戶端修複,僅請求通路基本的谷歌賬戶資訊,以及我們實際通路的資料。谷歌已經證明,pokémon go或niantic沒有收到或者通路其他任何資訊。谷歌很快會将pokémon go的權限降低到pokémon go需要的基本配置檔案資料,使用者不需要親自采取任何行動。”
reeve最初報告稱,pokémon go被授予的令牌可讓niantic讀取使用者的gmail,作為使用者發送郵件,通路和删除google drive中的檔案。事實上,谷歌自己表示完全賬戶通路權限允許應用執行很多潛在危險的行為。
“當被授予完全賬戶通路權限時,該應用可檢視和修改谷歌賬戶中幾乎所有的資訊(但它不能修改你的密碼、删除你的賬戶或者以你的名義用谷歌錢包支付),”根據該公司的支援頁稱,“如果你已對不信任的或識别應用授予完全賬戶通路,建議你點選撤銷按鈕取消這種權限。”
然而,其他安全專家後來發現,雖然pokémon go不能讀取或發送電子郵件,讓該遊戲隻能檢視基本谷歌使用者資訊,但該漏洞可能帶來令牌交換攻擊的風險。
slack公司産品安全進階工程師ari rubinstein在gibhub談到了這個漏洞,并指出這個漏洞可能用于交換令牌攻擊。雖然pokémon go不能使用其完整賬戶通路權限來通路使用者的gmail和月曆,rubinstein稱oauth通路令牌可被惡意交換為另一個更強大的令牌,被稱為uberauth。這将讓攻擊者能夠打開任何谷歌服務的網絡會話以及擷取真正的完全賬戶通路權限,這給谷歌的身份驗證系統帶賴了重大的安全漏洞。
rubinstein指出這種過度權限授權是niantic和谷歌的錯誤,不過這個權限還沒有被濫用。
“即使隻是最初建議,也很難使用這種權限,因為這種使用類型不是程式設計的(除非有另一個隐藏的api來授予api令牌)。省略這個範圍讓身份驗證被視為“基本使用者資訊”而不是“完整賬戶權限”,niantic可能會更新用戶端。身份驗證流程很混亂,并且,谷歌應該了解,使用這個範圍來登入可能讓令牌被交換。在我看來,谷歌不應該将這種權限範圍給予非谷歌應用。”
niantic此前屬于谷歌,去年它作為獨立實體從谷歌分離出去。目前我們還不清楚niantic如何獲得這種oauth範圍以及繞過權限通知(通常應用擷取完整賬戶權限都會有這種通知)。網絡公司trail of bits公司首席執行官dan guido表示,他和安全研究人員jay little試圖在谷歌的oauth playground開發者網站複制oauth令牌的使用,但沒有成功。
“這意味着oauth playground(谷歌用于測試其api通路的服務)無法準确複制pokémon go請求的權限,”guido寫道,“這可能是oauth 1.0 api的一部分,谷歌在2012年已經将其啟用,并在2015年關閉。如果是這樣的話,我們無法确認為什麼pokémon go還能夠使用它。我們檢查過,遷移到oauth 2.0 api的賬戶無法再通路較舊的1.0 api。”
現在,pokémon go權限問題似乎已經得到解決。rubinstein表示:“谷歌将重新限定令牌範圍來解決令牌交換攻擊的風險,pokémon go在未來幾天應該是安全可用的。”
其他pokémon go的安全問題
雖然niantic和谷歌已經修複ios版應用的權限問題,但還有其他安全問題。網絡安全公司proofpoint發現該遊戲受感染的android版本,攜帶droidjack遠端通路工具。
“雖然我們還沒有在實際環境中發現這種惡意android應用程式包,但在2016年7月7日09:19:17 utc被上傳到惡意檔案存儲庫服務,而該遊戲在紐西蘭和澳洲正式釋出還不到72小時。”
proofpoint指出,由于該遊戲還沒有在全球範圍正式推出,很多遊戲玩家希望遊戲在其地區釋出前通路該遊戲,這可能導緻它們從第三方下載下傳android應用程式包。
與此同時,微軟項目經理兼工程師dennis delimarsky稱pokémon go在連接配接公共wi-fi網絡時還可能遭受中間人攻擊。
====================================分割線================================
本文轉自d1net(轉載)