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