Epic Games 公布《 Fortnite 》 Beta 版讓 Samsung Galaxy 手機用戶和受邀請玩家率先試玩,令 Android 手機用家興奮雀躍。不過今次測試版下載方法是採用邀請制,不是在 Google Play Store 上下載,而是到 Epic Games 的官方網站上下載。但就有人發現 Epic Games 提供的安裝程式存在漏洞,可以讓駭客有機可乘,安裝任意的惡意程式,並且在沒有通知用戶下取得手機存取權限。到底箇中原理是怎樣的?
Google 在 8 月 15 日通知 Epic Games 發現這個漏洞的,而 Epic Games 就在 8 月 17 日推出了修正版。本來 Epic Games 是要求 Google 給予 90 時間才公開這個漏洞的,不過 Google 就決絕地表示由於修正檔已推出了 7 日,所以會以標準的慣例將漏洞的細節公開。 Epic Games 的 CEO Tim Sweeney 雖然感謝 Google 告知漏洞,不過他認為不少玩家都未進行更新, Google 這麼快公開漏洞細節實在太不負責任。
那麼《 Fortnite 》 Android Beta 版安裝程式裡的漏洞是怎麼運作的呢?舉報的人是這樣解釋的:
首先,由於這個程式不是經 Google Play Store 下載的,所以要安裝它就要開啟「允許安裝未知來源的應用程序」設定,這是 Google 不推薦的做法。
然後,由於安裝程式要將《 Fortnite 》下載到外部儲存裡,所以本身就需要寫入外部儲存 WRITE_EXTERNAL_STORAGE 的權限。不過,原來得到了這個權限後,這個 App 就可以在下載和驗證程式後,立即將下載來的 APK 檔替換掉。所以只要用 Android 的 FileObserver 檔案監視物件,就可以立即將下載回來的檔案換成別的惡意程式,讓《 Fortnite 》安裝程式去安裝。
在 Samsung 手機上,《 Fortnite 》安裝程式是透過一個私有的 Galaxy Apps API 來無聲無色地安裝 APK 的,這個 API 會檢查安裝了的 APK 檔的 Package 名稱是不是叫「 com.epicgames.fortnite 」,因此,惡意程式只要有同一個 Package 名稱就可以靜俏俏地安裝了。
假如那個惡意 APK 還指定了 targetSdkVersion (目標 Android SDK 版本,本來是用作保證程式向前兼容的)在版本 22 或以下的話,惡意 APK 就可以在安裝時取得所有它請求的權限。
[row][third_paragraph]
[/third_paragraph][third_paragraph]
[/third_paragraph][third_paragraph]
[/third_paragraph][/row][row][third_paragraph]
[/third_paragraph][third_paragraph]
[/third_paragraph][third_paragraph]
[/third_paragraph][/row][row][double_paragraph]
[/double_paragraph][double_paragraph]
[/double_paragraph] [/row]
這種漏洞容許手機上的程式騎劫《 Fortnite 》安裝程式,去安裝惡意 APK ,並取得所有通常要用戶批准的權限,Google 稱這種漏洞叫做「 man in the disk (碟中人)」。
[ot-video][/ot-video]
如果你是 Samsung 手機用戶,又已安裝了,或是打算安裝《 Fortnite 》安裝程式的話,要注意幾點:
- 未安裝的話,只應該安裝官方的最新安裝程式,而不要胡亂到不知名網站下載不明來歷的安裝程式,因為就算不是惡意軟件也可能是舊版本的;
- 已安裝的話,一定要檢查更新,安裝 8 月 17 日後推出的版本。