在今年的 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 月,有中國用戶指出他們的設(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)到描述文件頁面并讓用戶安裝,這些被標(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)庫文件。在主要執(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)庫文件:“dj.png”, “macro_off@2x.png和zippo_on@2x.png” 。“TinyV”的作者修改了原來的應(yīng)用文件,并增加這些動(dòng)態(tài)庫文件到導(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è)頁面來獲取其配置。這次“debUrl”值使用 XOR 算法加密。盡管代碼混淆,但使用關(guān)鍵的 “0xaf”加密,卻依然可以顯示相同的 URL。