[Zhi-Wei Cai] 政府推行的 App 資安審核機制到底可不可行?

關於「XcodeGhost」這個在 Xcode SDK 內植入惡意程式碼,進而影響編譯出的執行檔使其夾帶後門或惡意功能的作法,其實並不是首創。很久之前,在 Delphi 開發工具上就出有了類似的東西:受感染的開發環境下會編譯出夾帶惡意程式的執行檔。

圖說明
圖片來源:Shutterstock

但是,為何像是 Xcode 這種,只經由 Apple 官方提供的開發工具,也會發生相同的問題,甚至連微信(WeChat)等知名軟體都中標?我們可以從政經因素來分析前因後果:

1. 中國有防火長城

中國對外網站連線品質很不穩定,導致長期以來中國用戶習慣用「境內第三方載點」取代「境外官方載點」,包含 Xcode、iTunes 等。這類第三方的檔案一般人使用前通常不會做 hash 驗證,給了第三方攻擊者完美的攻擊機會。只是令人意外的,包含微信在內的大型中國開發商,對安全重視的程度是如此的低落。

2. Xcode 本身對自己沒有強制的簽章檢查驗證

為了配合 Mac App Store 策略,Xcode 將過去把開發工具安裝在根目錄(/Developer)的作法,改為包裝在程式內部(/Applications/Xcode.app/Developer),如此一來,為了保留彈性給開發者對 SDK 做修改,Xcode 勢必須要犧牲掉自己的簽章檢查,這當然又給了攻擊者「加料」的機會。而 SDK 如此龐大,一般人很難真的去一一檢查是否被惡意修改。

3. Apple 的官方檢查形同虛設

Apple 上架審核期長達一至兩週,然而很顯然的,這類的檢查其實無法查出軟體是否包含異常情況。惡意程式只要秉持著遵守開發者規章的原則,即使被加料的軟體依然可以安全地通過審核上架。

所以,政府推行的 App 資安審核機制到底可不可行?現在很顯然的是否定的,而這個事件便是最好的證明。如果廠商對被加料的程式進行保護(例如:加殼),甚至要查出是否被感染都有困難,亦無法進行修正。

這個事件告訴我們,請只從可信賴的來源取得軟體,盜版軟體等亦時常發生類似的情況,免錢的通常最貴。目前 Apple 已經將受感染的 324 個架上軟體做了相關處理,而 Android 用戶現在可以很驕傲地說,iOS 連惡意程式的出現都慢 Android 一步。

參考文章:微信躺著也中槍,iOS 版本遭植入木馬

追蹤我們