0x01 问题描述和速查方法


此次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”字符串,如果有则属于被感染版本。下图左侧为受感染文件,右侧为正常文件。

0x02 代码逻辑


整体来说,Unity上受感染的恶意代码行为和XcodeGhost行为基本一致,更详细的信息可参看之前关于XcodeGhost分析。通过这些分析,可以见到,恶意代码作者有着很强的躲避检测的动机。下图是OS X平台上的一个受感染文件libiPhone-lib-il2cpp.a-armv7-master.o

0x03制作时间


通过对于恶意DMG和官方DMG中的文件信息,我们能够非常清楚的看到恶意代码作者进行打包修改文件的时间,以unity-4.6.6.dmg为例:

可以看出,UnityGhost作者在今年6月29日下午进行的修改操作。

下面是我们搜集到的官方发布版本和样本篡改时间的时间轴: