XCode編譯器里有鬼 –51CTO剖析“蘋果APP中毒事件”
原創(chuàng)一款隱藏在XCode編譯器里的病毒為剛剛推送的iOS9慶生。
蘋果中毒已經(jīng)不是***次了,但去百度“蘋果會(huì)中病毒嗎?”這個(gè)問題,絕大多數(shù)的答案是:不越獄根本不會(huì)。的確去年流行一時(shí)的WireLurker也才感染了30萬用戶,對(duì)于國(guó)內(nèi)數(shù)以千萬計(jì)的蘋果用戶拉說不值一提。這次,情況嚴(yán)重了許多。
9月17日上午,微博用戶@JoeyBlue_ 曝光稱,有開發(fā)者用了非官方渠道下載的Xcode編譯出來的應(yīng)用被注入了第三方的代碼,會(huì)向一個(gè)網(wǎng)站上傳數(shù)據(jù)。
51CTO記者***時(shí)間通過烏云知識(shí)庫(kù)作者蒸米了解到:對(duì)注入的病毒樣本“XcodeGhost“進(jìn)行分析,確認(rèn)了上述說法。經(jīng)分析,該病毒會(huì)收集應(yīng)用和系統(tǒng)的基本信息,包括時(shí)間、bundle id(包名)、應(yīng)用名稱、系統(tǒng)版本、語(yǔ)言、國(guó)家等,并上傳到init.icloud-analysis.com(該域名為病毒作者申請(qǐng),用于收集數(shù)據(jù)信息)。
隨后,18日上午,硅谷安全公司Palo Alto跟蹤事件后發(fā)現(xiàn)國(guó)內(nèi)知名應(yīng)用網(wǎng)易云音樂中招,當(dāng)前App Store上架的網(wǎng)易云音樂***版v2.8.3已經(jīng)感染病毒,會(huì)將手機(jī)隱私信息上傳至病毒作者的服務(wù)器上(Palo Alto還發(fā)現(xiàn)存在更多收集數(shù)據(jù)的域名)。
問題在于一款A(yù)PP從開發(fā)到上線進(jìn)入用戶手機(jī),當(dāng)中存在眾多環(huán)節(jié),那么這款隱藏于XCode編譯器里的病毒是如何通過一道道審查的呢?
暢通無阻的病毒
如前文所說,病毒就藏身于從第三方下載XCode編譯器里,以至釀成大禍。烏云白帽子王彪告訴記者:“由于用戶體驗(yàn)不佳,像網(wǎng)絡(luò)優(yōu)化不夠,許多開發(fā)人員覺得從Mac App store下載官方插件的速度相比于網(wǎng)盤和迅雷要慢許多,因此才選擇從第三方下載。”
不過一款A(yù)PP開發(fā)完成之后,從理論上說是需要進(jìn)行安全檢查的,而針對(duì)這款病毒只需要做一個(gè)簡(jiǎn)單的云端數(shù)據(jù)測(cè)試,來檢測(cè)數(shù)據(jù)是否都返回到自己這里就可以發(fā)現(xiàn)病毒所在。
王彪說:”尤其是在涉及到用戶敏感數(shù)據(jù)和支付業(yè)務(wù)時(shí),如果由于疏忽對(duì)用戶造成了損失是一件非常嚴(yán)重的事情。“
另外,不同于網(wǎng)站,APP的更新成本更高,絕大多數(shù)的APP都會(huì)對(duì)老版本提供支持,如果在上線之初沒有做好安全測(cè)試,對(duì)于用戶的傷害無疑是巨大且長(zhǎng)期的。
話又說回來,App Store的審核嚴(yán)格到變態(tài),所以相比于第三方應(yīng)用市場(chǎng)的Android應(yīng)用都要安全規(guī)范得多。為什么這次的病毒也騙過了App Store?
王彪分析:”因?yàn)檫@病毒收集信息包括時(shí)間、bundle id(包名)、應(yīng)用名稱、系統(tǒng)版本、語(yǔ)言、國(guó)家等,目前看到還沒有用戶敏感信息,加之國(guó)內(nèi)一些APP也會(huì)收集同樣的信息,蘋果可能有疏忽讓病毒趁虛而入。
長(zhǎng)懸的達(dá)摩克利斯之劍
說到這里,事情大致可以看清楚了。從開發(fā)到上線的每一個(gè)過程都恰巧被病毒鉆了空子。當(dāng)然信息安全問題也不是一天兩天了,它就像一把長(zhǎng)懸在用戶和APP頭上的達(dá)摩克利斯之劍。不過值得慶幸的是,王彪告訴記者這次隱藏在XCode編譯器的病毒暫時(shí)還沒有看到收集用戶的敏感信息,所以大家可以稍稍放心。不過也建議,蘋果用戶開啟iCloud二次驗(yàn)證功能,加強(qiáng)自身安全使用習(xí)慣。
安全問題總是被掛在嘴邊,卻沒有被提上日程。
附檢查方法(來自烏云)
惡意Xcode包含有如下文件“/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/Library/Frameworks/CoreServices.framework/CoreService”;正常的Xcode的SDK目錄下沒有Library目錄(來自@JoeyBlue_)
其次,還應(yīng)該檢測(cè)一下Target->Build Setting->Search Paths->Framework Search Paths的設(shè)置,看看是否有可疑的frameworks混雜其中(來自蒸米)