本文來自微信公眾號“嘶吼專業(yè)版”,作者/胡金魚。
一種名為“SoumniBot”的新Android銀行惡意軟件通過利用Android清單提取和解析過程中的弱點(diǎn),使用了新的混淆方法。
該方法使SoumniBot能夠規(guī)避Android手機(jī)中的標(biāo)準(zhǔn)安全措施并執(zhí)行信息竊取操作。
研究人員發(fā)現(xiàn)并分析后提供了該惡意軟件利用Android例程解析和提取APK清單的方法的技術(shù)細(xì)節(jié)。
欺騙Android的解析器
清單文件(“AndroidManifest.xml”)位于每個應(yīng)用程序的根目錄中,包含有關(guān)組件(服務(wù)、廣播接收器、內(nèi)容提供程序)、權(quán)限和應(yīng)用程序數(shù)據(jù)的詳細(xì)信息。
雖然惡意APK可以使用Zimperium的各種壓縮技巧來愚弄安全工具并逃避分析,但分析師發(fā)現(xiàn)SoumniBot使用了三種不同的方法來繞過解析器檢查,其中涉及操縱清單文件的壓縮和大小。
首先,SoumniBot在解壓APK的清單文件時使用無效的壓縮值,該值與負(fù)責(zé)該角色的Android“libziparchive”庫預(yù)期的標(biāo)準(zhǔn)值(0或8)不同。
Android APK解析器不會將這些值視為不可接受,而是默認(rèn)將數(shù)據(jù)識別為由于錯誤而未壓縮,從而允許APK繞過安全檢查并繼續(xù)在設(shè)備上執(zhí)行。
從APK中提取清單文件
第二種方法涉及錯誤報告APK中清單文件的大小,提供大于實(shí)際數(shù)字的值。
由于該文件在上一步中已被標(biāo)記為未壓縮,因此直接從存檔中復(fù)制該文件,并用垃圾“覆蓋”數(shù)據(jù)填充差異。
雖然這些額外的數(shù)據(jù)不會直接損害設(shè)備,但它在混淆代碼分析工具方面發(fā)揮著至關(guān)重要的作用。
報告錯誤的文件大小
第三種規(guī)避技術(shù)是在清單文件中使用非常長的字符串作為XML命名空間的名稱,這使得自動分析工具很難檢查到它們,而自動分析工具通常缺乏足夠的內(nèi)存來處理它們。
清單中的長字符串
Android官方分析實(shí)用程序APK分析器無法使用上述規(guī)避方法處理文件。
SoumniBot威脅
啟動后,SoumniBot從硬編碼服務(wù)器地址請求其配置參數(shù),并發(fā)送受感染設(shè)備的分析信息,包括編號、運(yùn)營商等。
接下來,它會啟動一個惡意服務(wù),如果停止,該服務(wù)每16分鐘就會重新啟動一次,并每15秒傳輸一次從受害者那里竊取的數(shù)據(jù)。
泄露的詳細(xì)信息包括IP地址、聯(lián)系人列表、帳戶詳細(xì)信息、短信、照片、視頻和網(wǎng)上銀行數(shù)字證書。數(shù)據(jù)泄露由惡意軟件通過MQTT服務(wù)器接收的命令控制,這些命令還對以下功能進(jìn)行排序:
·刪除現(xiàn)有聯(lián)系人或添加新聯(lián)系人
·發(fā)送短信(轉(zhuǎn)發(fā))
·設(shè)置鈴聲音量
·打開或關(guān)閉靜音模式
·打開或關(guān)閉設(shè)備上的調(diào)試模式
目前尚不清楚SoumniBot如何到達(dá)設(shè)備,但方法可能有所不同,從通過第三方Android商店和不安全網(wǎng)站分發(fā)到使用受信任存儲庫中的惡意代碼更新合法應(yīng)用程序。
SoumniBot主要針對韓國用戶,與許多惡意Android應(yīng)用程序一樣,它在安裝后隱藏其圖標(biāo),使其更難以刪除。其實(shí),它在后臺仍然活躍,并從受害者處上傳數(shù)據(jù)。