此次XcodeGhost病毒并不僅僅只篡改Xcode的dmg安裝文件,百度安全實驗室發現Unity3D也同樣被插入了惡意代碼。Unity是由Unity Technologies開發的用于創建諸如三維視頻游戲、實時三維動畫等類型互動內容的多平臺的綜合型游戲開發工具,Unity可發布游戲至Windows、OS X、Wii、iPhone、Windows phone 8和Android平臺。但目前安全實驗室搜集到的樣本只有感染iOS app,還未發現感染安卓或是Windows平臺代碼
目前我們觀察到Unity OS X平臺和Windows平臺的安裝包版本4.x至5.1.x(范圍可能更大), 64/32位版本均有被修改的現象,被修改后文件均沒有數字簽名,在文件安裝前可以很容易的區分開,對于OS X下dmg文件中包含的pkg文件,可以使用 pkgutil –check-signature Unity.pkg來進行檢查。這里附上Windows和OS X下正確版本數字簽名校驗的截圖:
病毒作者修改了libiPhone-lib-il2cpp.a
文件, 在其中增加了libiPhone-lib-il2cpp.a-arch-masterx.x.o
,其中arch為具體的架構名,并修改了project.pbxproj的配置信息。libiPhone-lib-il2cpp.a
在 mac平臺下位于./Unity/Unity.app/Contents/PlaybackEngines/iossupport/Trampoline/Libraries/ libiPhone-lib-il2cpp.a
,windows平臺上的路徑為:Unity/Editor/Data/PlaybackEngines/iossupport/Trampoline/Libraries/libiPhone-lib-il2cpp.a
。
快速自查方法:由于.a是復合的archive文件,解壓比較麻煩,可以直接檢查./iossupport/Trampoline/Unity-iPhone.xcodeproj/project.pbxproj
中,是否含有”-ObjC”字符串,如果有則屬于被感染版本。下圖左側為受感染文件,右側為正常文件。
整體來說,Unity上受感染的惡意代碼行為和XcodeGhost行為基本一致,更詳細的信息可參看之前關于XcodeGhost分析。通過這些分析,可以見到,惡意代碼作者有著很強的躲避檢測的動機。下圖是OS X平臺上的一個受感染文件libiPhone-lib-il2cpp.a-armv7-master.o
。
通過對于惡意DMG和官方DMG中的文件信息,我們能夠非常清楚的看到惡意代碼作者進行打包修改文件的時間,以unity-4.6.6.dmg
為例:
可以看出,UnityGhost作者在今年6月29日下午進行的修改操作。
下面是我們搜集到的官方發布版本和樣本篡改時間的時間軸: