資料來源: http://drops.wooyun.org/news/8864

對岸有網友發現從某些非官方管道下載的 XCode 編譯器,會在編譯出來的 APP 中植入特殊的可執行碼。目前值入的可執行碼無害,只是會蒐集一些資訊回報給託管在 Amazon  的伺服器。但這可能只是試水溫的作品,未來很有可能會出現更強的應用。

目前被感染的 XCode 編譯器似乎是來自迅雷、百度等個人網路硬碟。按原文描述,散播該後門的人混跡於開發者社群當中,只要有機會就向人提供他自己網路硬碟上的「鏡像下載點」。例如當 XCode 官方發布新版本時,他也會好心的公告給社群中的人,並且提供下載位址。又或者有人詢問如何建立開發環境時,他也會藉機提供下載位置。

讓我覺得頗為驚訝的是,已知有若干大公司出品的 App 也中招,難道這些大公司的開發團隊或協力廠商不去官網下載 toolchain,反而使用陌生私人網路硬碟的二進制檔?

有一位網友提到一個耐人尋味的現象:「还是不能相信迅雷,我是把官网上的下载URL复制到迅雷里下载的,还是中招了。」如果這是真的,那麼對岸的網路硬碟服務就不是普通的恐怖。

我對 XCode 的 toolchain 完全不了解,不過看起來它是透過替換基礎程式庫的方式感染目標程式,這個方法相對簡單很多,影響層面也比較低。我的意思是,不至於像 Ken Thompson 示範的那樣在編譯階段改寫 AST,可以再傳染給用這個編譯器建置的編譯器。

以我比較熟悉的 GCC 來說,類似的做法大概是抽換靜態連結的 libgcc 或 crt。我以前做過類似的事,不過目的只是在於產出極小的二進制檔。技術不算難,難的是誘使其他人用你的 toolchain。現實中的 Linux distro 大都有固定的套件庫,或許 MinGW 比較有機會。

比較早的 GCC 做 AST 層次的改寫比較麻煩,近期的 GCC 已經支援 plugin,我想應該會簡單很多。


後續發展:

自稱作者的人在 github 上發言,指稱這只是一個無害的實驗。

https://github.com/XcodeGhostSource/XcodeGhost

然而根據近一步的分析,受感染的軟體會竊取使用者的密碼,許多跡象顯示,這應該是處心積慮的攻擊活動。作者很可能只是使用緩兵計,不希望驚動太多人以免已經收集的資料變為無效。

http://security.tencent.com/index.php/blog/msg/96
http://technews.tw/2015/09/20/more-info-about-xcodeghost/

《XcodeGhost:牆,感染,信任和欺騙》這篇文章分析了為什麼這種方式在中國行得通,主要還是因為對岸連外網速非常慢,許多人習慣使用境內的下載點。

http://www.letscorp.net/archives/95529

novus 發表在 痞客邦 PIXNET 留言(0) 人氣()