Pokémon Go 技術問題尷尬不斷:為何要「強奪」Google 帳號的完整權限?

作者 | 發布日期 2016 年 07 月 13 日 7:44 | 分類 app , 資訊安全 , 軟體、系統 follow us in feedly
Pokémon Go

《Pokémon Go》是任天堂 Pokémon(官方中譯名:精靈寶可夢)系列的最新遊戲,由 Niantic Labs 聯合開發,也是第一款 Pokémon 手遊。不需多說,看到這篇文章的你,多半正在玩或已經下載好了遊戲,或是等待正式在當地開啟。




但國外玩家發現,《 Pokémon Go》存在嚴重的帳號安全風險。

遊戲提供兩種登入方式:Google 或 Pokémon 訓練師俱樂部(pokemon.com)。在歐美幾乎人人都有 Google 帳號,而之前 pokemon.com 由於技術故障無法接受新使用者註冊,因而大部分玩家都在用 Google 帳號登入。

國外玩家 Adam Revee 注意到,使用 Google 帳號登入之後,《Pokémon Go》直接獲取了 Google 帳號的「完整帳戶許可權」(full access)。Adam Revee 在自己的部落格上記錄了這一發現,被 Twitter 上的資訊安全大師 @SwiftOnSecurity 轉發,引起了資安界的廣泛關注:

我在手機上檢查了自己的帳號,發現《Pokémon Go》的確標記為擁有整帳號許可權,相同待遇的只有 Chrome 瀏覽器。

pingwest 配置圖

為了重現這個事件,我打開遊戲,抓了附近的兩隻小精靈,等完伺服器同步(存檔)的過程,然後打開功能表,登出(sign out)自己的帳號,退出遊戲。接下來,我點擊上面的 Remove 按鈕撤銷了「Pokemon Go Release」的許可權。

然後我重新打開遊戲,並使用 Google 帳號登入。更嚴重的問題出現了:輸入 Google 帳號→輸入密碼並確認後,直接進入了遊戲的讀取介面,並沒有彈出一個許可權確認的功能表。

pingwest 配置圖

一般來說,使用 Google 帳號登入的協力廠商服務,在輸入帳號密碼之後會出現下圖這樣的介面,要求你確認協力廠商服務可使用的許可權。

pingwest 配置圖

▲ 以 Medium 和 Soundcloud 舉例,前者獲取了「電子郵寄地址」和「基本資料資訊」,後者僅需要「離線使用」許可權。這些許可權都需要確認允許才能獲取。

我嘗試了一下撤銷許可權還能不能玩遊戲,情況很複雜。有時候能玩,但遊戲地圖道路讀取不出來,只有飄在空中的 Pokéstop 和道場;有時候根本無法載入遊戲,或者顯示伺服器故障。

為什麼不讓用戶確認許可權?@SwiftOnSecurity 指出,登入介面的確是 Google 的 OAuth 介面,如假包換。但問題在於 Niantic Labs 可能設置了瀏覽器自動化,跳過了許可權確認頁面,自動幫使用者點了按鈕——這是嚴重的安全事故。

pingwest 配置圖

另外,協力廠商應用的開發者在設計使用 Google、Facebook、Twitter 或其他更流行的帳號體系登入時,通常應該遵循「最小權限原則」,只申請應用正常運轉所必須的許可權。《Pokémon Go》從目前的全部功能來看,並沒有獲取完整許可權的必要。現在這樣一上來就要求完整許可權,還不經確認,比「全家桶」有過之無不及。

Google 的帳號說明頁面上有一段這樣的描述:

當您向應用授予完整帳號許可權後,該應用幾乎可以查看和修改您 Google 帳號中的所有資訊(但不能更改密碼、刪除帳號,或以您的名義使用 Google 電子錢包付款)。

某些 Google 應用可能具有完整帳號許可權。例如,您可能會看到,您下載到 iPhone 的「Google 地圖」應用具有完整帳號許可權。

請僅將「完整帳號許可權」授予您完全信任且已安裝到您的個人電腦、手機或平板電腦上的應用。

更具體講,授予一個協力廠商應用「完整帳號許可權」,意味著它可以:

查看你的郵件;以你的身分發郵件;獲取你 Google Drive 雲端裡的所有檔案,包括已經刪除的;調取你的搜尋紀錄,包括地圖裡的導航紀錄;看任何你在 Google Photos 裡備份的照片,包括隱私照片;了解或修改其他各式各樣的資料;登入其他用 Google 帳號登入的服務。

至於由 Niantic Labs 和任天堂旗下 Pokémon Company 這兩家還算知名的公司聯合開發的遊戲,為何出現如此嚴重的帳號許可權事故,除了粗心大意,恐怕暫無其他解釋。前面也有提到,「某些 Google 應用可能具有完整許可權」,或許是 Niantic Labs 從 Google 旗下拆分之後,沒有及時更新自己的開發工具,仍然以為自己開發的是「Google 應用程式」吧?

身為架構工程師的 Adam Renee 表示,他並非懷疑 Niantic Labs 會拿著用戶 Google 帳號的完整許可權胡作非為。問題在於,Niantic Labs 的資料安全水準如何,在業界並沒有公開的資料。更何況現在《Pokémon Go》如此熱門,難免有駭客盯上這座資料金礦,誰也無法保證之前發生在網易、CSDN、Yahoo、Target 等公司內的資料洩露事故,不會發生在 Niantic Labs 身上(之前已經有駭客修改遊戲的 Android APK 安裝包,在遊戲裡添加惡意程式碼。)

目前 Niantic Labs 尚未對此做出回應。

(本文由 PingWest 授權轉載;首圖來源:Flickr/Eduardo Woo CC BY 2.0)

延伸閱讀:

發表迴響