信息來源:4hou
Symantec研究人員發(fā)現(xiàn)了一款惡意安卓應用程序——Xhelper。該程序可以隱藏自己,下載其他的惡意app,展示廣告。還有最重要的一點,Xhelper是永久的。用戶在卸載了Xhelper后,惡意軟件可以重新安裝,并能實現(xiàn)隱藏自己,并不出現(xiàn)在系統(tǒng)的啟動器中。在過去6個月,Xhelper已感染超過4.5萬設(shè)備。
研究人員在許多在線論壇發(fā)現(xiàn)了許多用戶發(fā)帖抱怨隨機彈窗廣告,即使手動卸載后惡意軟件仍然可以顯示廣告。
圖 1. 用戶在論壇抱怨Xhelper (上: Google, 下:Reddit)
Xhelper
Xhelper并不提供普通的用戶接口。惡意軟件只是一個應用組件,也就算說并不會在設(shè)備的應用啟動器中出現(xiàn),如圖2所示。因此,惡意軟件很容易可以執(zhí)行惡意活動。
圖 2. 用來從應用啟動器中移除app的代碼(上)啟動器中的app(下)
因為啟動器中沒有app圖標,因此Xhelper無法手動啟動。在該例中,惡意app 是通過外部事件來啟動的,比如當被黑的設(shè)備連接或斷開電源,設(shè)備重啟或app安裝或卸載時。
圖 3. Xhelper的manifest代碼顯示可以觸發(fā)惡意軟件的事件
惡意軟件啟動后,會將自己注冊為前臺服務,這就降低了在內(nèi)存太小時被kill掉的概率。為了實現(xiàn)駐留,惡意軟件會在服務停止時重啟服務,這也是移動惡意軟件常用的方法。
圖 4. Xhelper將自己注冊為前臺服務,在停止運行時重啟服務
Xhelper在受害者設(shè)備上立足后,就解密嵌入在包中的惡意payload到內(nèi)存中來執(zhí)行其核心惡意功能。然后,惡意payload會連接到攻擊者的C2服務器并等待命令。為了防止通信被攔截,攻擊者在客戶端設(shè)備和C2服務器之間所有的通信上都使用了SSL certificate pinning。
圖 5. 含有SSL certificate-pinning特征的Xhelper代碼
成功連接到C2服務器后,惡意軟件會下載其他payload到被感染的設(shè)備,比如釋放器、點擊器、rootkit等。研究人員認為C2服務器上有不同的惡意軟件,惡意軟件包含有不同的功能,這樣就給了攻擊者不同的選擇,包括數(shù)據(jù)竊取或完全控制設(shè)備。
圖 6. Xhelper獲取下載payload的配置數(shù)據(jù)的HTTP POST請求
Xhelper發(fā)展
研究人員最早是在2019年3月發(fā)現(xiàn)Xhelper的。當時惡意軟件的代碼還很簡單 ,其主要功能是讓用戶訪問廣告頁。隨著時間的推移,代碼也在不斷地更新和改進。剛開始的時候,惡意軟件連接到C2服務器的能力是直接寫入惡意軟件中,但隨后該功能移動到了加密的payload,這是為了嘗試繞過基于簽名的檢測。一些老版本的變種中還有空的沒有實現(xiàn)的類,但這些功能在之后的版本中都啟用了。
研究人員有理由相信惡意軟件的源碼仍然在開發(fā)中。比如,研究人員發(fā)現(xiàn)許多類和常量變種都標記為Jio。這些類都是沒有實現(xiàn)的,研究人員懷疑攻擊者可能正在計劃攻擊Jio用戶。
圖 7. Xhelper源代碼中提到Jio的類和包
Xhelper下載資源
研究人員并沒有在Google play應用商店中找到本文中分析的樣本,研究人員猜測Xhelper惡意軟件是從其他未知源處下載的,研究人員相信可能有很多的分發(fā)方法。
研究人員還發(fā)現(xiàn)這些惡意app在許多特定手機品牌中安裝地頻率很高,因此研究人員猜測攻擊者可能正在關(guān)注某些特定的品牌。還有用戶對設(shè)備中惡意軟件的駐留進行抱怨。雖然這些app可能并不是系統(tǒng)應用程序,這表明有另一個惡意系統(tǒng)app可能會下載惡意軟件,研究人員目前還在調(diào)查中。
圖 8. 用戶抱怨無法完全卸載Xhelper
Xhelper感染
統(tǒng)計數(shù)據(jù)表明,Xhelper惡意軟件目前已經(jīng)感染了超過45000個設(shè)備。上個月,平均每天有131個設(shè)備被感染,整個月有2400個設(shè)備被永久感染。惡意軟件主要影響印度、美國和俄羅斯的用戶。