讓微信等知名 APP 都中招的 XcodeGhost 事件全面詳細回顧

伯小樂發表於2015-09-20

9月18日,我們在「iOS大全」(iOShub)微信已做過首次彙總。19日晚,「程式設計師的那些事」主頁君根據當前網上相關資訊,按照時間線,再次做一次更全面彙總。

 

2015-09-14

據騰訊安全響應中心的文章稱,是他們發現問題後上報國家網際網路應急中心(CNCERT):

不久前,我們在跟進一個bug時發現有APP在啟動、退出時會通過網路向某個域名傳送異常的加密流量,行為非常可疑,於是終端安全團隊立即跟進,經過加班加點的分析和追查,我們基本還原了感染方式、病毒行為、影響面。

隨後,產品團隊釋出了新版本。同時考慮到事件影響面比較廣,我們立即上報了CNCERT,CNCERT也馬上採取了相關措施。所以從這個時間點開始,後續的大部分安全風險都得到了控制——可以看看這個時間點前後非法域名在全國的解析情況。

2015-09-14

國家網際網路應急中心正式釋出預警

不過這個公告,絕大多數開發者,也是18日開始才知道的。

2015-09-16

騰訊安全響應中心稱,「發現 App Store上的 TOP5000 應用有 76 款被感染,於是我們向蘋果官方及大部分受影響的廠商同步了這一情況。」

 

2015-09-17

XcodeGhost 事件在網上升溫發酵

【9:45】唐巧 發了一條微博:

隨後很多留言的小夥伴們紛紛表示中招,@誰敢亂說話表示:”還是不能相信迅雷,我是把官網上的下載URL複製到迅雷裡下載的,還是中招了。我說一下:有問題的Xcode6.4.dmg的sha1是:a836d8fa0fce198e061b7b38b826178b44c053a8,官方正確的是:672e3dcb7727fc6db071e5a8528b70aa03900bb0,大家一定要校驗。”另外還有一位小夥伴表示他是在百度網盤上下載的,也中招了。

 

【17:43】阿里的蒸米、迅迪釋出了他們文章:《 XCode 編譯器裡有鬼,XCodeGhost 樣本分析

@程式設計師的那些事 主頁君注:內容為節選,有刪減)

雖然 XCodeGhost 並沒有非常嚴重的惡意行為,但是這種病毒傳播方式在iOS上還是首次。也許這只是病毒作者試試水而已,可能隨後還會有更大的動作,請開發者務必要小心。

這個病毒讓我想到了UNIX 之父 Ken Thompson 的圖靈獎演講 “Reflections of Trusting Trust”。他曾經假設可以實現了一個修改的 tcc,用它編譯 su login 能產生後門,用修改的tcc編譯“正版”的 tcc 程式碼也能夠產生有著同樣後門的 tcc。也就是不論 bootstrap (用 tcc 編譯 tcc) 多少次,不論如何檢視原始碼都無法發現後門,真是細思恐極啊。

根據熱心網友舉報,投毒者網名為『coderfun』。他在各種iOS開發者論壇或者weibo後留言引誘iOS開發者下載有毒版本的Xcode。並且中毒的版本不止Xcode 6.4,還有6.1,6.2和6.3等等。

【大約24:00】國外安全公司 paloalto 發現了 XcodeGhost 問題,併發布了分析報告

(更新:之前遺漏了時差,已補上。paloalto 的分析晚於蒸米的。)

 

2015-09-18

第一批受感染的 APP 陸續被曝光

【14:14 】開始,@圖拉鼎  在微博持續釋出了由他測試驗證受感染的 APP,至少包括如下:

  • 網易雲音樂
  • 滴滴出行
  • 12306
  • 中國聯通手機營業廳
  • 高德地圖
  • 豌豆莢的開眼
  • 網易公開課
  • 下廚房
  • 51卡保險箱(金融應用)
  • 同花順
  • 中信銀行動卡空間

這個列表出來後,令人震驚。

【15:43】網易雲音樂發公告

摘幾個網友對該公告的評論:

@吳明prfc :

這公告,用被小偷改造的工具,導致被偷。給你說小偷走了,沒威脅了,大家放心

@祝佳音:

翻譯:雖然我們愚蠢又無能,也不知如何收拾殘局,但不知道為什麼,好像敵人暫時沒動靜了。這件事就當沒發生,就當沒發生!

【19:17】@Saic 童鞋釋出《XcodeGhost 實際用途猜測分析》,給出了 XG  木馬的邏輯:

在使用者安裝了目標應用後,木馬會向伺服器傳送使用者資料。

伺服器根據需要返回模擬彈窗。

彈窗可以是提示支付失敗,請到目標地址付款,也可以是某個軟體的企業安裝包。

使用者被誘導安裝未經稽核的安裝包後,程式可以呼叫系統的私有 API,實現進一步的攻擊目的。

 

木馬中還有一些呼叫應用內購的攻擊邏輯,就不展開說明了。

如果之前有遇到任何程式彈出非系統需要輸入 Apple ID 或密碼的網站,並輸入過密碼的,還請儘早修改。

全文:http://weibo.com/p/1001603888503866975286

 

【21:02】微博上曝光了第二份受感染的 APP 列表:


(右側是版本資訊)

 

【21:43】中招的@騰訊微信團隊 在微博發宣告,裡面提到:

1.該問題僅存在iOS 6.2.5版本中,最新版本微信已經解決此問題,使用者可升級微信自行修復,此問題不會給使用者造成直接影響。

全文:http://weibo.com/p/1001603888540667758451

 

2015-09-19

【凌晨 4:39】自稱 XcodeGhost 作者的網友在微博發宣告,稱只是實驗專案,無任何威脅

以下引用部分微博上針對該宣告的評論:

@唐巧_boy:我剛剛看了一下作者放出的原始碼,和逆向出來的程式碼行為一致,應該是真的。

@南非蜘蛛:你有點小調皮,想進監獄了是吧?

@Daniel_K4:作者是實驗麼?持續傳播了半年,我不太相信。。。現在才出來釋出說明,應該是被定位到嚇壞了吧。

@Livid:一個程式設計師出於試驗目的做的修改版 Xcode.dmg 能夠通過自然分發的方式裝到那麼多重要 App 的開發環境裡,也是一件挺不可思議的事情。

@Easy:翻一下就是「我就配了把你家鑰匙。還沒開始偷東西呢,當然是無害了」。

@tombkeeper 事鬧大了,就會變成公安部督辦案件,就幾乎一定能破案,幾乎一定能抓到人。這時候無論自首還是跑路都比發“澄清”有意義得多。

@onevcat:算個賬,微信使用者總數 5 億日活70%。每天每人就算5個POST請求,每個請求300Byte,日流入流量就接近500G,以及17.5億次請求。據說伺服器扔在亞馬遜,那麼資費算一下每個月應該是儲存$450,請求$260K。這還只是單單一個微信,再算上網易雲音樂等等,每月四五十萬刀僅僅是苦逼iOS開發者的個人實驗?

2015-09-19  上午

為避免給更多使用者造成可能是傷害,蘋果公司開始下架受感染的 APP,並給相應開發商發郵件

圖來自@小小小小_燦,可能看不清。在郵件中,蘋果也說明了重新上架的條件:

  1. 從官方下載 Xcode;
  2. 重新編譯打包;
  3. 提交等待稽核;

 


【開發圈和安全圈的事後討論】

(不分時間順序)

@Saic:

蘋果以稽核嚴格著稱,為何會允許應用上架???

 

惡意程式碼載入到程式中後,將收集到的使用者資訊加密,傳送到遠端伺服器。

收集的資訊包括系統版本,程式名稱,使用者的唯一識別 ID,語言等非敏感資訊。

對蘋果來說,這段程式碼與普通的第三方統計程式碼並沒有區別,甚至你在使用一些程式內的微博登陸或微信分享功能時,微博和微信都可能會收集這些資訊到自己的伺服器。

因為沒有涉及到蘋果禁止開發者使用的介面,一切看起來都很正常,所以帶有惡意程式碼的應用可以正常釋出到 App Store。

 

對我有什麼影響???

根據目前的研究進展以及自稱是開發者公佈的惡意程式碼原始碼,程式碼主要做了以下事情:

在使用者安裝了目標應用後,木馬會向伺服器傳送使用者資料。

伺服器會返回一些可以讓程式彈出提示的控制程式碼,例如:

  • 使用者名稱密碼錯誤,請到以下地址修改,使用者確認後跳轉到一個偽造的釣魚網站
  • 彈出 App Store 官方的應用下載頁面,誘導使用者下載
  • 程式有升級,使用者確認後可以利用非官方渠道、修改過的應用替換掉當前應用
  • 其他非官方應用程式的推廣和下載

因為彈窗是從使用者信任的應用裡彈出,很多時候不會多做懷疑就會授權或確認下載。

另外根據相關研究,程式碼可能存在多種變種 [ 3 ],可能存在直接竊取使用者 Apple ID 的版本,模擬系統登陸框在技術上是可行的。

Via: http://weibo.com/p/1001603888803550000430

 

@圖拉鼎:

對於 iOS 開發者的建議,立即刪除從不明來源下載的 Xcode,即使你是用官方地址然後在迅雷上下載的,最後從 App Store 安裝最新版本的 Xcode。有條件的公司應該在今天開始專門設定一臺有專人管理的 Build Server,所有釋出至 App Store 的 App 只能從該臺電腦 Build 併發布,以防止未來此類事件的再現。

 

@sunny_THU:

2. 這件事情是不是很嚴重

可以說很嚴重,也可以說不嚴重。說這件事情很嚴重,是因為我們把程式的控制權分享分享給了第三個人,他可以做任何程式內部的操作,包括監控輸入,支付,跳轉,使用者的內容等行為(但也僅限於單箇中毒的app內部,系統層的內容和別的app的內容是拿不到的,這裡就不得不感謝蘋果的沙盒機制,在機制上保護了一定的安全性),並且這次攻擊證明根本上蘋果軟體的開發和提交機制是有漏洞的,更嚴重的問題是會不會已經有了一些別的病毒在軟體中,只是沒有被發現。 不嚴重是因為這次的病毒如果按照木馬作者披露的原始碼,並沒有做嚴重損害使用者隱私的事情(一些安全機構逆向了原始碼,基本和作者公開的程式碼符合 http://security.tencent.com/index.php/blog/msg/96 )。

3. 怎麼避免這種事情

“程式最大的bug不是程式自身,而是人”。這次事件是各種因素一起影響的結果,開發者根本沒有意識到Xcode都會被攻擊,國內網路環境太差,公司不配備VPN等等。而開發者作為軟體的開發者和安全的負責人以及直接責任人更需要去規範和爭取,因為你比其他人知道的更多,也更清楚問題有多嚴重。

 

@tombkeeper:

2015 年 3 月 10 日的這篇文章透露:美國聖地亞國家實驗室在 2012 年 CIA 的祕密會議“Jamboree”上提出被稱作“Strawhorse”的攻擊方式:通過修改 Xcode 使開發商不知情地釋出帶有後門的 APP。“codefun” 開始散佈修改後的 Xcode 是在 3 月中旬,不知道是不是受了這個啟發。

 

@月光部落格:

迅雷的迴應如下:對於Xcode被植入惡意程式碼一事,有猜測稱迅雷伺服器受到感染,導致使用迅雷會下載到含有惡意程式碼的Xcode。迅雷第一時間安排工程師進行檢測,並對比了離線伺服器上的檔案,結果都與蘋果官方下載地址的檔案資訊一致。也就是說,官方連結的Xcode經迅雷下載不會被植入惡意程式碼。

XcodeGhost事件並不表明蘋果iOS的安全性相比安卓有什麼問題,實際上,就開發環境來說,安卓實際上也是一樣的,蘋果的開發軟體下載速度慢,而安卓的開發軟體不翻qiang根本無法從官網下載,大量安卓開發者都不是從官網下載的開發環境,很多開發工具來路不明,因此安卓很可能也存在類似問題。

 

@唐巧:

XcodeGhost 這件事情,蘋果自己也有責任,Mac App Store下載速度慢得要死,每次下Xcode花個幾十分鐘非常正常,這才造成大家都用迅雷和百度網盤這種非官方渠道。就說現在吧,我的Mac系統更新了一上午,還是處於卡頓無進度狀態。[淚]

 

@騰訊玄武實驗室:

雖然目前 init.icloud-analysis.com 等 XcodeGhost 相關域名已經不可訪問,XcodeGhost 的始作俑者可能也不會再利用其幹壞事,但這並不代表其他人不會。

有心幹壞事的人,可以通過 DNS 投毒、偽造 WiFi 接入點等手段,控制或大或小的一個地區對 init.icloud-analysis.com 等域名的解析,從而變成 XcodeGhost 的控制者。所以受影響的 APP 開發商還是應該儘快釋出乾淨的版本讓使用者升級。

 

 


【主頁君留言】:今天這篇耗時 2+ 小時。如果各位覺得不錯,請分享給其他朋友。

微訊號:iProgrammer

(長按上圖,可自動識別二維碼)

其他媒體和公號若轉載

必須保留全文完整內容,包括本段宣告和二維碼圖片

 

相關文章