【編者按】本文來自騰訊安全應急中心,作者Gmxp。
前言
這幾天安全圈幾乎被XCodeGhost事件刷屏,大家都非常關注,各安全團隊都很給力,紛紛從不同角度分析了病毒行為、傳播方式、影響面積甚至還人肉到了作者信息。拜讀了所有網上公開或者半公開的分析報告后,我們認為,這還不是全部,所以我們來補充下完整的XCodeGhost事件。
由于行文倉促,難免有諸多錯漏之處,還望同行批評指正。
事件溯源
事情要追溯到一周前。
9月12日,我們在跟進一個bug時發現有APP在啟動、退出時會通過網絡向某個域名發送異常的加密流量,行為非常可疑,于是終端安全團隊立即跟進,經過一個周末加班加點的分析和追查,我們基本還原了感染方式、病毒行為、影響面。
9月13日,產品團隊發布了新版本。同時考慮到事件影響面比較廣,我們立即知會了CNCERT,CNCERT也馬上采取了相關措施。所以從這個時間點開始,后續的大部分安全風險都得到了控制——可以看看這個時間點前后非法域名在全國的解析情況。
9月14日,CNCERT發布了這個事件的預警公告。我們也更新了移動APP安全檢測系統“金剛”。
(CNCERT發布的預警公告)
9月16日,我們發現AppStore上的TOP5000應用有76款被感染,于是我們向蘋果官方及大部分受影響的廠商同步了這一情況。
9月17日,嗅覺敏銳的國外安全公司paloalto發現了這個問題,并發布第一版分析報告,阿里移動安全也發布了分析報告。
接下來的事情大家都知道了,XCodeGhost事件迅速升溫,成為行業熱點,更多的安全團隊和專家進行了深入分析,爆出了更多信息。
被遺漏的樣本行為分析
1)在受感染的APP啟動、后臺、恢復、結束時上報信息至黑客控制的服務器
上報的信息包括:APP版本、APP名稱、本地語言、iOS版本、設備類型、國家碼等設備信息,能精準的區分每一臺iOS設備。
上報的域名是icloud-analysis.com,同時我們還發現了攻擊者的其他三個尚未使用的域名。
(上傳機器數據的惡意代碼片段)
2)黑客可以下發偽協議命令在受感染的iPhone中執行
黑客能夠通過上報的信息區分每一臺iOS設備,然后如同已經上線的肉雞一般,隨時、隨地、給任何人下發偽協議指令,通過iOS openURL這個API來執行。
相信了解iOS開發的同學都知道openURL這個API的強大,黑客通過這個能力,不僅能夠在受感染的iPhone中完成打開網頁、發短信、打電話等常規手機行為,甚至還可以操作具備偽協議能力的大量第三方APP。實際上,iPhone上的APP如果被感染,完全可以理解為黑客已經基本控制了你的手機!
(控制執行偽協議指令的惡意代碼片段)
3)黑客可以在受感染的iPhone中彈出內容由服務器控制的對話框窗口
和遠程執行指令類似,黑客也可以遠程控制彈出任何對話框窗口。至于用途,將機器硬件數據上報、遠程執行偽協議命令、遠程彈窗這幾個關鍵詞連起來,反正我們是能夠通過這幾個功能,用一點點社工和誘導的方式,在受感染的iPhone中安裝企業證書APP。裝APP干什么?還記得幾個月之前曝光的Hacking Team的iPhone非越獄遠控(RCS)嗎?
(控制遠程彈窗的惡意代碼片段)
4)遠程控制模塊協議存在漏洞,可被中間人攻擊
在進行樣本分析的同時,我們還發現這個惡意模塊的網絡協議加密存問題,可以被輕易暴力破解。我們嘗試了中間人攻擊,驗證確實可以代替服務器下發偽協議指令到手機,成為這些肉雞的新主人。
(存在安全漏洞的協議解密代碼片段)
值得一提的是,通過追查我們發現植入的遠程控制模塊并不只一個版本。而現已公開的分析中,都未指出模塊具備遠程控制能力和自定義彈窗能力,而遠程控制模塊本身還存在漏洞可被中間人攻擊,組合利用的威力可想而知。這個事件的危害其實被大大的低估了。
感染途徑
分析過程中我們發現,異常流量APP都是大公司的知名產品,也是都是從AppStore下載并具有官方的數字簽名,因此并不存在APP被惡意篡改的可能。隨后我們把精力集中到開發人員和相關編譯環境中。果然,接下來很快從開發人員的xcode中找到了答案。
我們發現開發人員使用的xcode路徑Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/Library/Frameworks/CoreServices.framework/下,存在一個名為CoreServices.framework的“系統組件”,而從蘋果官方下載的xcode安裝包,卻不存在這些目錄和“系統組件”。
(被感染惡意代碼的xcode包路徑)
原來開發人員的xcode安裝包中,被別有用心的人植入了遠程控制模塊,通過修改xcode編譯參數,將這個惡意模塊自動的部署到任何通過xcode編譯的蘋果APP(iOS/Mac)中。
水落石出了,罪魁禍首是開發人員從非蘋果官方渠道下載xcode開發環境。
通過百度搜索“xcode”出來的頁面,除了指向蘋果AppStore的那幾個鏈接,其余的都是通過各種id(除了coderfun,還有使用了很多id,如lmznet、jrl568等)在各種開發社區、人氣社區、下載站發帖,最終全鏈到了不同id的百度云盤上。為了驗證,團隊小伙伴們下載了近20個各版本的xcode安裝包,發現居然無一例外的都被植入了惡意的CoreServices.framework,可見投放這些帖子的黑客對SEO也有相當的了解。
(XCodeGhost作者在知名論壇上發布xcode的下載帖)
進一步來看,攻擊者做到的效果是只要是通過搜索引擎下載xcode,都會下載到他們的XCodeGHost,還真的做到了幽靈一樣的存在。
影響到底多大?
在清楚危害和傳播途徑后,我們意識到在如此高級的攻擊手法下,被感染的可能不只一個兩個APP,于是我們馬上對AppStore上的APP進行檢測。
最后我們發現AppStore下載量最高的5000個APP中有76款APP被XCodeGhost感染,其中不乏大公司的知名應用,也有不少金融類應用,還有諸多民生類應用。根據保守估計,受這次事件影響的用戶數超過一億。
后記
經過這一事件后,開發小伙伴們紛紛表示以后只敢下官方安裝包,還要MD5和SHA1雙校驗。而這個事件本身所帶來的思考,遠不止改變不安全的下載習慣這么簡單。
經過這兩年若干次攻擊手法的洗禮后,我們更加清醒的意識到——
黑產從業者早已不是單兵作戰的腳本小子,而是能力全面的黑客團隊。
總結來看,移動互聯網安全之路任重道遠。當然,這里的危機也是安全行業的機遇。