iOS 設(shè)備的安全一直為業(yè)界所重視,日前企業(yè)安全領(lǐng)域領(lǐng)導(dǎo)者 Palo Alto Networks 撰文分析了最近幾個月所發(fā)現(xiàn)的新木馬“TinyV”。在今年的 10 月份,Palo Alto 發(fā)現(xiàn)了一個惡意的負(fù)載文件瞄準(zhǔn)了 iOS 的越獄設(shè)備,經(jīng)過調(diào)查后發(fā)現(xiàn),Palo Alto 認(rèn)為該文件屬于一個名為“TinyV”的新型 iOS 木馬家族。在 12 月,有中國用戶指出他們的設(shè)備受到了這個惡意軟件的影響。
經(jīng)過進一步的深入研究后,Palo Alto 發(fā)現(xiàn)該惡意文件已經(jīng)被重新打包并植入到一些 iOS 應(yīng)用中,而這些 iOS 應(yīng)用往往可以通過多個渠道進行下載(非 App Store 渠道)。在接下來的篇幅里,我們將會討論“TinyV”是如何工作以及如何傳播的。
重新打包和傳播
“TinyV”被重新打包進一些為越獄設(shè)備而“準(zhǔn)備”的應(yīng)用中,受影響的 iOS 應(yīng)用不少。經(jīng)過重新打包后,這些應(yīng)用被上傳到網(wǎng)絡(luò)并提供用戶下載。
用戶有可能通過 xx 助手下載到這些受感染的應(yīng)用,在一些應(yīng)用的官網(wǎng)上供下載的應(yīng)用,也不見得是十分安全。我們往往在 iOS 設(shè)備上訪問這些網(wǎng)站的下載鏈接的時候會被跳轉(zhuǎn)到描述文件頁面并讓用戶安裝,這些被標(biāo)榜為企業(yè)級應(yīng)用的應(yīng)用往往需要用戶手動開啟驗證,才可以在設(shè)備上使用該應(yīng)用。
需要指出的是,“TinyV”重新打包的方式和之前的 iOS 或者 OSX 惡意應(yīng)用不太一樣(和之前著名的 WireLurker 也不一樣)。例如在某個受感染的播放器應(yīng)用的 iOS 安裝文件“com.某某.ipa”中,往往存在著兩個執(zhí)行文件。一個是主要的執(zhí)行文件 Mach-O ,而另一個則是名為“xg.png”的 Mach-O 動態(tài)庫文件。在主要執(zhí)行文件的導(dǎo)入表中,最后的導(dǎo)入入口是“@executable_path/xg.png”。這意味著在應(yīng)用被執(zhí)行后,“xg.png”的文件將會被加載。
而在其它受感染的應(yīng)用中,除了主要的 Mach-O 執(zhí)行文件外,也會出現(xiàn)一些額外的 Mach-O 動態(tài)庫文件:“dj.png”, “[email protected]和[email protected]” 。“TinyV”的作者修改了原來的應(yīng)用文件,并增加這些動態(tài)庫文件到導(dǎo)入表中。
被加載的“xg.png”文件將會通過調(diào)用方法來連接到 C2 服務(wù)器并取得配置信息。被 C2 提供的配置將會指向一個 ZIP 文件的 URL,并被指定為一個帶有“zipinstall”值的 “shName”。
在這個被感染的應(yīng)用中, “[email protected]” 將會訪問同一個 C2 服務(wù)器的另一個頁面來獲取其配置。這次“debUrl”值使用 XOR 算法加密。盡管代碼混淆,但使用關(guān)鍵的 “0xaf”加密,卻依然可以顯示相同的 URL。
惡意行為
從 C2 服務(wù)器獲得配置后,“TinyV”將會從授予的“debUrl” 值中下載 ZIP 文件。這里調(diào)查的 ZI P文件被托管在另一個 C2 服務(wù)器apt[.]appstt.com 上,目前該 URL 地址出現(xiàn) 404 錯誤。不過據(jù)說在 10 月底開始調(diào)查的時候,這個 URL 是可以訪問的,并且“deb.zip”文件也可以下載。
在這個“deb.zip”文件中,包含了 4 個文件
safemode.deb(saurik 官方提供的 MobileSafety 插件)
freeDeamo/usr/bin/locka(實施惡意行為的 Mach-O 執(zhí)行文件)
freeDeamo/Library/LaunchDaemons/com.locka.plist(一個 PLIST 文件,用于在 iOS 作為一個守護進程配置“locka”)
freeDeamo/zipinstall(命令進程文件)
下載和解壓這個ZIP文件后,xg.png 將會執(zhí)行 zipinstall 腳本來安裝 locka 和 com.locka.plist。
locka 文件主要執(zhí)行的“TinyV”惡意行為包括:
連接 C2 服務(wù)器來獲得遠(yuǎn)程指令
在后臺安裝指定的 IPA 文件或 DEB 文件
在后臺卸載指定的 IPA 應(yīng)用或 DEB 包
改變 /etc/hosts 文件
值得一提的是,研究人員還發(fā)現(xiàn)了一個名為“ClassStaticFunctionHook”的函數(shù),目前該函數(shù)只被用于鉤住廣告的 SDK 代碼。然而它有可能在被感染的應(yīng)用中產(chǎn)生更危險的后果。
影響
在 12 月 12 日,“TinyV”開始通過一個名為“XZ Helper”的插件來進行傳播,許多用戶都發(fā)現(xiàn)了 XY Helper 插件出現(xiàn)在他們的 iOS 設(shè)備中。由于“TinyV”的代碼執(zhí)行和大量的 C2 服務(wù)器指令,即使刪除了該插件還是會被重新安裝。不少用戶在威鋒論壇里指出了這個問題,目前受該惡意程序影響的設(shè)備似乎只出現(xiàn)在中國。
最后,Palo Alto 建議用戶如果沒有必要的話切勿輕易越獄,又或者是不要安裝任何來自未知來源的企業(yè)級應(yīng)用。