背景
前兩周(2021年2月末),突然我的電腦(MacBook Pro v10.15.7)打開不了Safari,重啟之后又可以了。一開始沒在意,后面每次重啟電腦之后及時打開Safari,中間似乎莫名其妙被強制退出,中間咨詢Apple客服,回答模棱兩可(1.重置硬件SMC、安全啟動)似乎都沒效果。后面異常問題逐漸凸顯,最終鎖定是‘XCSSET Malware’。
XCSSET Mac Malware: Infects Xcode Projects, Performs UXSS Attack on Safari, Other Browsers, Leverages Zero-day Exploits - TrendLabs Security Intelligence Blog
事件經過
從問題開始到最終確定原因,大致花了半個月,以下是我個人的事件經過:
Safari異常
Safari無故被強退,重新打開后,沒法同步ITunes賬號信息,導致Safari的個人收藏無法顯示。同時程序塢出現兩個Safari圖標,一個可以點擊,另外一個無效
系統異常
系統的隱私多出很多com.net.core.xxx.app的異常APP程序,例如:/Users/yjs/Library/Application Scripts/com.apple.AddressBook.Shared
開機自啟動的進程,強制刪除這些進程,Safari可以正常打開
在“活動監視器”>“信息”>“打開文件和端口”中檢查
cwd / txt /Applications/Finder.app/Contents/MacOS/com.net.core.cputime.app/Contents/MacOS/applet txt /Library/Preferences/Logging/.plist-cache.r65cTIFH txt /usr/share/icu/icudt64l.dat txt /System/Library/Components/AppleScript.component/Contents/MacOS/AppleScript txt /Library/Application Support/CrashReporter/SubmitDiagInfo.domains txt /private/var/db/analyticsd/events.whitelist txt /private/var/db/timezone/tz/2021a.1.0/icutz/icutz44l.dat txt /System/Library/CoreServices/SystemAppearance.bundle/Contents/Resources/SystemAppearance.car txt /System/Library/CoreServices/SystemAppearance.bundle/Contents/Resources/DarkAquaAppearance.car txt /private/var/folders/h2/9pg_fk2x7sjbnskd5kn65xq40000gn/0/com.apple.LaunchServices.dv/com.apple.LaunchServices-1082-v2.csstore txt /usr/lib/libobjc-trampolines.dylib txt /System/Library/CoreServices/SystemAppearance.bundle/Contents/Resources/Assets.car txt /System/Library/Fonts/SFNS.ttf txt /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Resources/HIToolbox.rsrc txt /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Resources/zh_CN.lproj/Localized.rsrc txt /private/var/folders/h2/9pg_fk2x7sjbnskd5kn65xq40000gn/C/com.apple.IntlDataCache.le.kbdx txt /System/Library/CoreServices/SystemAppearance.bundle/Contents/Resources/FunctionRowAppearance.car txt /private/var/db/mds/messages/501/se_SecurityMessages txt /private/var/folders/h2/9pg_fk2x7sjbnskd5kn65xq40000gn/C/com.apple.scriptmanager2.le.cache txt /System/Library/CoreServices/SystemAppearance.bundle/Contents/Resources/DarkAppearance.car txt /System/Library/Fonts/PingFang.ttc txt /System/Library/Fonts/Helvetica.ttc txt /System/Library/Keyboard Layouts/AppleKeyboardLayouts.bundle/Contents/Resources/AppleKeyboardLayouts-L.dat txt /System/Library/ScriptingAdditions/StandardAdditions.osax/Contents/MacOS/StandardAdditions txt /usr/lib/dyld 0 /dev/null 1 /dev/null 2 /dev/null 3 /Library/Application Support/CrashReporter/SubmitDiagInfo.domains 4 /Applications/Finder.app/Contents/MacOS/com.net.core.cputime.app/Contents/Resources/applet.rsrc 5 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Resources/HIToolbox.rsrc 6 /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Resources/zh_CN.lproj/Localized.rsrc </pre>
對應打開的/Users/yjs/Library/Containers/com.apple.routerd/Containers/
還會隱藏在其他常見的APP,例如微信
同時還會偽裝成Finder.app在/Applications/Finder.app(實際位置:/System/Library/CoreServices/Finder.app)
有時候開機啟動自動彈出對應的腳本程序對話框
Xcode異常
剛好自己最近和小伙伴在開發一個Xcode項目(iOS混淆工具),前一陣子逐漸發現異樣。
項目build之后工程文件下出現:xcuserdata/.xcassets/Assets.xcassetsimage.pngimage.png
以及confuse_test.xcodeproj->project.pbxproj文件出現看似‘正常的Build Phase’
image.png
image.png
刪除又會報錯誤:
xcuserdata/.xcassets/Asset.xcasset: No such file or directory
image.png
一開始沒在意以為是新版Xcode一些特性,因為所有的項目都出現這個項目,同事也一樣(他的Safari又正常),可見這個病毒很雞賊啊。關鍵還是隱藏目錄,名字還Assets.xcassets
甚是親民,欺負誠實的程序員,套路很深。后面我好奇打開看了下,
妥妥的執行程序malloc準沒好事
image.png
關鍵是刪除之后,只要是其他項目打開有死灰復燃,打不死的小強image.png
別人拷貝你的項目,也會中招,類似新冠病毒XCSSET_Technical_Brief.pdf報告說了會影響很多地方,無奈啊
掙扎過程
問題找到了‘趨勢科技披露了一件與 Xcode 開發者項目有關的惡意感染事件’,原本想問問Apple能有什么靈丹妙藥,回復以下:
試了下malwarebytes,沒有掃出來,難道我用的方式不對。如果有小伙伴發現有用,麻煩告知一聲,多謝了。
朋友試了Trend Micro Home Security for Mac,好像沒啥用
查看哪些項目感染:命令執行
> sudo find 此處填寫文件夾路徑 -name '.xcassets'
> grep "xcuserdata/.xcassets" -rl 此處填寫文件夾路徑
> ps -ef | grep "com\..*\.core\..*\.app
> sudo find / -name '.xcassets'
/System/Volumes/Data/Users/yjs/Downloads/Swift-30-Projects-master/Project 22 - HonoluluArt/HonoluluArt.xcodeproj/xcuserdata/.xcassets
/System/Volumes/Data/Users/yjs/Downloads/Swift-30-Projects-master/Project 07 - PokedexGo/PokedexGo.xcodeproj/xcuserdata/.xcassets
...
> grep "xcuserdata/.xcassets" -rl ~/Desktop/coding520
/Users/yjs/Desktop/coding520/confuse_ios.zip
/Users/yjs/Desktop/coding520/confuse_mac/confuse_mac.xcodeproj/project.pbxproj
/Users/yjs/Desktop/coding520/confuse_template/confuse_template.xcodeproj/project.pbxproj
...
> ps -ef | grep "com\..*\.core\..*\.app"
501 58798 1 0 8:14下午 ?? 0:02.04 /Users/yjs/Library/Application Scripts/com.apple.AddressBook.Shared/Containers/com.service.core.graphics.app/Contents/MacOS/applet -psn_0_655520
501 61691 1 0 8:20下午 ?? 0:26.42 /Users/yjs/Library/Application Scripts/com.apple.AddressBook.Shared/Containers/com.net.core.security.app/Contents/MacOS/applet -psn_0_700587
501 61752 1 0 8:20下午 ?? 0:02.69 /Users/yjs/Library/Application Scripts/com.apple.AddressBook.Shared/Containers/com.net.core.bootcamp.app/Contents/MacOS/applet -psn_0_704684
501 76817 1 0 8:36下午 ?? 0:00.82 /Users/yjs/Library/Application Scripts/com.apple.AddressBook.Shared/Containers/com.net.core.graphics.app/Contents/MacOS/applet -psn_0_725169
501 82036 1 0 8:42下午 ?? 0:03.93 /Users/yjs/Library/Application Scripts/com.apple.AddressBook.Shared/Containers/com.service.core.security.app/Contents/MacOS/applet -psn_0_770236
501 82150 1 0 8:42下午 ?? 0:03.87 /Users/yjs/Library/Application Scripts/com.apple.AddressBook.Shared/Containers/com.service.core.bootcamp.app/Contents/MacOS/applet -psn_0_774333
...
我的全部中招
我的解決方式(很雞肋,待更新):
-
準備階段:
- 修改root密碼
- 壓縮備份代碼
- 創建備用倉庫,備份當前git歷史記錄
-
Xcode項目,解決方式兩種:
- 穩妥:移除Pod、.git,新建工程只拷貝源碼和自己的資源,xxx.xcodeproj丟棄,重置當前的倉庫
- 快捷:使用本人的開發‘工具’查殺,效果如下:
-
Mac系統:
-
慢慢移除非必要軟件,最后一口氣重裝系統(中毒太深了,無法保證徹底查殺)
image.png
-
最近了解
- 該惡意軟件最早現身于2020年8月,隱藏在托管在 GitHub 上的惡意 Xcode 項目中。
- 它被指利用了兩個 0day exploit。第一個用于竊取 Safari 瀏覽器 cookie,第二個用于繞過提示安裝開發者版本的 Safari 應用程序。
- 該 0day 打包為一個 AppleScript,可使惡意軟件繞過 Transparency Consent 和Control。它是一種 macOS 服務,每當 app 想要執行入侵行動時就會彈出權限提示,這些入侵行為包括使用攝像頭、麥克風或者記錄用戶的屏幕和按下鍵盤。
- XCSSET 惡意軟件團伙濫用 CVE-2021-30713 搜素 macOS 中其它 app 的 ID。這些 app 接受了一個危險權限,之后在其中一個合法 app 中植入一個惡意小程序執行惡意動作。
蘋果公司已經在 macOS Big Sur 11.4 安全更新中修復了 TCC。仍然運行老舊版本 macOS 的蘋果用戶易受攻擊,建議更新系統。
雖然 XCSSET 惡意軟件及其分發活動主要是針對開發人員,但其它惡意軟件團伙也可能利用報告中提供的信息更新代碼,并濫用 CVE-2021-30713 執行攻擊。這也是為何建議 macOS 用戶更新至最新版本 macOS Big Sur 11.4 的原因所在。
求助
有哪位大神能夠妙手回春,懇請閣下出山,拯救黎明蒼生,不勝感激
參考
- https://www.reddit.com/r/iOSProgramming/comments/i9mwqt/xcsset_mac_malware_infects_xcode_projects/
- https://www.trendmicro.com/en_us/research/20/h/xcsset-mac-malware--infects-xcode-projects--uses-0-days.html
- 年度盤點 | 2020重大網絡安全事件 · 互聯網篇
- https://www.trendmicro.com/en_us/research/20/h/xcsset-mac-malware--infects-xcode-projects--uses-0-days.html
- https://therecord.media/apple-fixes-macos-zero-day-abused-by-xcsset-malware/