第三方應用程式商店竟可以藏身在 iOS App Store?!
iOS生態系通常被描述為封閉性的生態系統,處在 Apple的嚴格控制之下。但有心人士還是有辦法跳脫這嚴格的控制。還記得 Haima 應用程式嗎?它利用Apple所發放的企業憑證 – 這成本很高,因為所需的憑證要頻繁地改變。
趨勢科技最近發現一個可以從官方 iOS App Store下載的記帳應用程式,該應用程式帶有日文字,但應用程式商店本身是用中文。此外,它也出現在多個國家的App Store內。這個軟體名稱為為「こつこつ家計簿 – 無料のカレンダー家計簿」,也就是家庭記帳軟體。看起來是個家庭財務助手軟體,但實際上是一個第三方應用程式商店。透過這個第三方商店,可以下載被蘋果禁止的越獄應用程式,Apple已經將它從App Store中刪除。
圖1、iOS App Store內的家庭記帳軟體
圖2-4、應用程式啟動的各階段
程式碼(如下圖5)顯示當它首次啟動時會檢查系統使用者設定 plist 內的 PPAASSWOpenKey 鍵值。該應用程式利用這鍵值確認之前是否執行過:如果沒有,就不會有鍵值存在。該應用程式會轉去執行其他動作,要求資料使用權限來存取第三方商店。因為 iOS的權限機制,這請求需要由使用者(圖2)同意。第一次請求失敗讓應用程式轉成記帳本畫面,偽裝成合法應用程式(圖3)。圖3的文字聲稱資料存取權限是從應用程式匯出資料所必須。
圖5、切換成記帳本畫面的程式碼(點擊放大)
只要應用程式沒有關閉或切換到背景,應用程式會保留在記帳本畫面。不過一旦進入背景執行,它會再次嘗試連到第三方商店。一旦連現成功,使用者不會看到記帳本,而是第三方應用程式商店(圖4)。
圖5、切換成第三方應用程式商店畫面的程式碼(點擊放大)
為什麼第三方應用程式商店作者需要這特殊的行為?將自己的應用程式商店放到Apple的官方商店可以讓潛在使用者更容易使用,所以需要這做法來通過Apple審查。
安裝應用程式
成功進入App Store後,第三方應用程式商店接著需要能夠安裝應用程式。應用程式作者利用一般使用企業憑證安裝應用程式的方法做到。
這方法需要建立一個plist檔案用來安裝應用程式。圖7顯示出範例plist檔案(請注意,此檔案並非該第三方應用程式所使用的那一個)。
圖7、範例plist檔案
接著建立如下連結:
- itms-services://?action=download-manifest&url=https://{web server address}/install_app.plist
藉由打開網址來安裝應用程式。對於用Apple憑證簽章的應用程式有另一個要注意的地方:應用程式必須已經由使用者的Apple ID購買。這就是為什麼應用程式要求使用者Apple ID,這樣它才可以完成購買流程:
圖8-11、應用程式安裝階段
圖12、建立plist檔案和安裝連結的程式碼(點擊放大)
圖13、建立應用程式安裝程序的程式碼(點擊放大)
派送惡意軟體
除了已經存在App Store的應用程式,它也可以販賣通常不能從App Store下載的應用程式。不幸的是,這可能包括惡意軟體和其他不想要的應用程式。
一個例子是「PG Client」應用程式,這是個iOS裝置越獄工具。它曾經出現在App Store過,但已經被刪除。它仍然可以透過第三方應用程式商店下載:
圖14、PG Client
其他惡意應用程式常常會要求用戶下載PPHelper到電腦上,這也是個iOS越獄工具。這會安裝在PC/Mac上,然後要求使用者將iOS設備連到該PC/Mac。PPHelper在設備上取得跟使用者授權相關的檔案,然後以iTunes的身分和設備溝通,有效繞過在一些iOS的DRM保護。
圖15-17、要求使用者接上PC Helper應用程式的階段
圖18-19、要求使用者設備授權的程式碼
為錢行銷其他應用程式
這並非我們在App Store唯一看到有問題的應用程式。我們還發現另一個應用程式「爱应用助手」被用來行銷已存在App Store的應用程式。這可以有效繞過Apple應用程式搜尋跟付費搜尋廣告的設計。這應用程式可以向想推廣自己產品的開發者收錢,而無需透過Apple的行銷服務。
iOS提供各種讓開發者展示自己應用程式畫面的API。LoveApp用它來輕易的將使用者從自己的列表導到被行銷應用程式的App Store畫面:
圖20、安裝被行銷的應用程式
「LoveApp」在背景執行,而被行銷應用程式的App Store視窗出現在畫面上。可以在下圖看到程式碼:
圖21、打開App Store視窗的程式碼(點擊放大)
從隱私角度來看,LoveApp有許多問題。首先,在安裝過程中,它將部分使用者屬性上傳到自己的伺服器,包括廣告識別碼(IDFA)。這主要是用來計算下載次數。
圖22、被上傳的使用者屬性
此外,它還採用了稱為TalkingData的第三方軟體開發套件。它可以收集有關使用者行為的資訊:
圖23、呼叫TalkingData
但是這軟體開發套件有許多侵略性的API。可以取得許多的使用者系統資訊(包括無線網路名稱、正在運行的程序和IP地址)。如果使用者手機已經越獄,該軟體開發套件還可以收集使用者的Apple ID和安裝的應用程式。這足以讓我們認為這是個潛在有害程式。
圖24、其他的侵略性API(點擊放大)
風險及對策
我們建議使用者要小心從第三方應用程式商店下載的軟體。Apple並無法認證來自第三方商店軟體的安全性,而這會讓使用者將自己暴露於各種安全威脅下(包括惡意軟體和其他不想要的應用程式)。企業應該要制定政策來減少這些惡意應用程式,像是封鎖未經批准的應用程式商店和防護個人設備。
趨勢科技已經通知Apple關於文中所提到出現在iOS App Store上的這些應用程式。
下列檔案跟此事件有關:
SHA256雜湊值 | 偵測名稱 |
212015dbae6e36c703c513f762413ffe fe5ad58720c22abb696bca94f3b6c14b |
IOS_FakeAppStore.A |
adcfa3d540f78297dde3dcbf0191271d 8592911d71703ce853b6de622421c1fb |
IOS_JailBreakTool.A |
c75777079d72c43516adc7bdee4db447 f22bbd25af26c08bcee42f885a820866 |
IOS_FakeAppStore.A |
@原文出處:Third-Party App Stores Delivered via the iOS App Store