XCodeGhost源码:
https://github.com/XcodeGhostSource/XcodeGhost
XCodeGhost攻击原理:
从传统的利用应用漏洞攻击转为利用编程语言灵活性及开发工具配置修改的攻击,攻击手法隐蔽,攻击代码逆向分析非常具有迷惑性。
#本次攻击不是利用某个应用的漏洞进行攻击,而是修改XCode软件的加载动态库配置文件(具体哪个文件不介绍了,毕竟知道的人越少越好),使得所有使用被修改过的XCode软件开发的APP都被感染。
#利用Object-C的扩展类功能从而重写UIWindow父类的makeKeyAndVisible函数,从而导致在系统应用启动时调用自己写的makeKeyAndVisible函数从而启动恶意代码。其它面向对象语言如Java,C++没有此功能。
XCodeGhost检查及防范:
1、检查Xcode
检测方式是恶意 Xcode 包含有如下文件:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/Library/Frameworks/CoreServices.framework/CoreService
正常的 Xcode 下面无 Library 目录,为如下形式:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
命令查找
find /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs –name "CoreService"
为了防止app被插入恶意库文件,开发者除了检测”/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs” 目录下是否有可疑的framework文件之外,还应该检测一下Target->Build Setting->Search Paths->Framework Search Paths中的设置。看看是否有可疑的frameworks混杂其中:
另外因为最近iOS dylib病毒也十分泛滥,为了防止开发者中招,支付宝的小伙伴还提供了一个防止被dylib hook的小技巧:在Build Settings中找到“Other Linker Flags”在其中加上”-Wl,-sectcreate,__RESTRICT,__restrict,/dev/null”即可。
很多开发者们担心最近下载的Xcode 7也不安全。这里笔者没有使用任何下载工具的情况在苹果官网上下载了Xcode_7.dmg并计算了sha1的值。
http://adcdownload.apple.com/Developer_Tools/Xcode_7/Xcode_7.dmg
$ shasum Xcode_7.dmg
4afc067e5fc9266413c157167a123c8cdfdfb15e Xcode_7.dmg
建议从mac app store下载Xcode,检查Xcode来源:终端执行
spctl --assess --verbose /Applications/Xcode.app
如果 Xcode 从 Mac App Store 下载,会返回:
/Applications/Xcode.app: accepted
source=Mac App Store
如果从苹果开发者网站下载会返回:
/Applications/Xcode.app: accepted
source=Apple
或:
/Applications/Xcode.app: accepted
source=Apple System
2、检查app,framework
find . -type f |xargs grep "http://init.icloud-analysis.com"
参考:
XcodeGhost截胡攻击和服务端的复现,以及UnityGhost预警
参考ppt(附件)