序幕
近日,筆者閑暇時(shí)光下載了一個(gè)小游戲進(jìn)行玩耍,游戲結(jié)束后沒再管它,當(dāng)下次點(diǎn)亮手機(jī)時(shí),驚奇的發(fā)現(xiàn)在手機(jī)主界面中心有一應(yīng)用推薦輪播的懸浮窗。對(duì)于移動(dòng)端技術(shù)人員來說,手機(jī)就像自己的GF,這種匿名的流氓行為是決不能忍的。對(duì)其進(jìn)行了解剖,發(fā)現(xiàn)其核心源碼竟然只有一個(gè)APP類,經(jīng)調(diào)查,此應(yīng)用是一款盜版應(yīng)用,運(yùn)用多dex動(dòng)態(tài)加載,反射,NDK開發(fā),數(shù)據(jù)加密,代碼混淆等多種技術(shù)手段,這讓我聯(lián)想起了我們耳熟能詳?shù)恼婕倜篮锿踔械牧J猴,與正版應(yīng)用相比,也算是神通廣大了。
諦聽察聽
如何判定這款游戲是盜版應(yīng)用呢,我們要像西游記中的諦聽一樣伏地聆聽。Android 開發(fā)中每個(gè)應(yīng)用都有自己唯一的簽名,為了辨別應(yīng)用的真?zhèn)危覀儊淼秸?guī)的應(yīng)用商店進(jìn)行了下載,對(duì)其應(yīng)用的簽名信息和證書信息進(jìn)行了比對(duì),比對(duì)的結(jié)果如圖1-1所示:

圖1-1 簽名和證書信息比對(duì)
就是這樣的一款盜版應(yīng)用,它都不能默默的帶有羞恥心的低調(diào)行事。在對(duì)其行為進(jìn)行研判時(shí),發(fā)現(xiàn)它申請(qǐng)了二十多項(xiàng)權(quán)限,這種行為增大了技術(shù)人員對(duì)它的疑心。經(jīng)技術(shù)人員研判發(fā)現(xiàn),此應(yīng)用安裝之后,會(huì)發(fā)送大量的短信,其中很多是服務(wù)訂購短信,會(huì)給用戶造成惡意扣費(fèi)其次,此應(yīng)用還會(huì)在多處地方設(shè)置監(jiān)聽和內(nèi)容觀察者,會(huì)監(jiān)聽用戶的短信信息,獲取用戶的手機(jī)號(hào)等隱私信息,給用戶的隱私安全帶來威脅;之后,就是“默默奉獻(xiàn)”、“不辭辛勞”的頻繁給用戶推廣各種應(yīng)用,經(jīng)研判多數(shù)為病毒應(yīng)用,在用戶碰觸到廣告懸浮窗時(shí),直接下載推廣的應(yīng)用,給用戶帶來流量損失和精神折磨。
獼猴之七十二變
上文已經(jīng)介紹過,此款盜版軟件在運(yùn)用技術(shù)(其中包含病毒反檢測(cè)技術(shù))上具有多樣化,在病毒行為上更是瘋狂,如同六耳獼猴同樣具有美猴王的七十二般變化一樣。下面我們就其技術(shù)和惡意行為進(jìn)行簡(jiǎn)單的分析和介紹。
2.1 獼猴之虛空其身
為了搞清楚這款軟件的行為,首先必須是對(duì)其進(jìn)行反編譯,直接查看其源碼,對(duì)比正版應(yīng)用,看其做了哪些改變,想要實(shí)現(xiàn)哪些目的。打開其源碼的一剎那,有些吃驚,應(yīng)用并未進(jìn)行加固,代碼卻少的可憐,只有一個(gè)啟動(dòng)的APP類,為了防止安全應(yīng)用檢測(cè),也算是煞費(fèi)苦心,我們稱之為“虛空其身”。正版軟件的代碼結(jié)構(gòu)我們不方便貼出,盜版病毒軟件的代碼結(jié)構(gòu)如圖2-1所示:

圖2-1 軟件源碼結(jié)構(gòu)
那么如此一個(gè)應(yīng)用肯定不是一個(gè)連Activity類都沒有的源碼實(shí)現(xiàn)的,我們就猜想它的源碼或許是動(dòng)態(tài)下載或者本地資源文件進(jìn)行加載的。我們對(duì)其assets文件進(jìn)行查看,得到的結(jié)果讓人想哭,未標(biāo)明文件后綴的文件近達(dá)300個(gè),后經(jīng)研究很多還是加密文件,如圖2-2所示:

圖2-2 assets文件
為了找到其真正的源碼文件,還是需要對(duì)其APP類進(jìn)行分析,根據(jù)DexClassLoader對(duì)其進(jìn)行追蹤和解密之后得到了下面這個(gè)字符串“assets/data/A816C5F3A07165F0D794BAE018C2D0C330734421”,由此我們可以知道,它是采用本地資源文件進(jìn)行了dex動(dòng)態(tài)加載,之后我們找到資源目錄下的A816C5F3A07165F0D794BAE018C2D0C330734421文件,添加dex文件后綴,進(jìn)行反編譯查看,得到了它的源碼如圖2-3所示:

圖2-3 dex反編譯源碼
如果我們以為A816C5F3A07165F0D794BAE018C2D0C330734421文件就包含了其全部源碼,就有點(diǎn)小看此“獼猴”了,在進(jìn)一步的分析中,我們會(huì)發(fā)現(xiàn)它很多地方都在動(dòng)態(tài)加載dex文件或通過反射技術(shù)調(diào)用apk文件,這些代碼文件都具有某一項(xiàng)單獨(dú)的功能,我們使用ROOT權(quán)限的ROM,從它本地文件files目錄中可以看到,files目錄文件如圖2-4所示:

圖2-4 files目錄文件
2.2 獼猴之偷金竊銀
作為技術(shù)人員,在6.0之前的Android系統(tǒng)上運(yùn)行安卓應(yīng)用,是不可能給你無關(guān)使用的權(quán)限的,所以第一次試玩還是比較友好的操作,但是如果用戶在安裝了此病毒應(yīng)用之后,授權(quán)了短信操作的一系列權(quán)限之后,那就別想好好的玩游戲了,因?yàn)槟銜?huì)不斷的被發(fā)送信息的提示和短信授權(quán)提醒所煩擾。訂購短信會(huì)一直持續(xù)的發(fā)送,直到你把此軟件卸載,如果你的手機(jī)未修改短信發(fā)送的服務(wù)中心號(hào)碼,最好不要輕易的嘗試,發(fā)到你“傾家蕩產(chǎn)”。這種惡意扣費(fèi)行為,如圖六耳獼猴使出“偷金竊銀”的手段,讓你防不勝防。
下面我們對(duì)其源碼進(jìn)行分析,直接切入其短信發(fā)送的地方,發(fā)現(xiàn)發(fā)送短信的位置有很多,這里尋找一個(gè)發(fā)送短信,并注冊(cè)短信監(jiān)聽的地方作為示例。在深入研究中,發(fā)現(xiàn)在本地文件files中一個(gè)k9ls.dex的dex文件也為注冊(cè)監(jiān)聽,操作短信的動(dòng)態(tài)加載文件,操作短信的代碼都一樣,這里不再做闡述,發(fā)送短信的源碼如圖2-5所示:

圖2-5 發(fā)送短信代碼
根據(jù)手機(jī)發(fā)送的訂購短信,數(shù)量和種類如此之多,數(shù)據(jù)可能是從網(wǎng)絡(luò)動(dòng)態(tài)獲取或者本地加密文件中存儲(chǔ),上面我們知道它的加密文件是很多的,經(jīng)過深入分析,我們追蹤到其是用SQLiteDatabase進(jìn)行了存儲(chǔ),但是對(duì)數(shù)據(jù)庫的操作地方均使用了代碼混淆技術(shù),操作SQLiteDatabase的混淆代碼如圖2-6所示:
圖2-6 短信相關(guān)數(shù)據(jù)庫操作混淆代碼
經(jīng)過對(duì)混淆代碼的處理,最終我們?cè)趹?yīng)用本地文件中找到了短信信息相關(guān)的兩個(gè)數(shù)據(jù)庫,分別是076311815970064文件和msg_com.yf.y.f.init.plugin.dao.DBOpenHelper.db數(shù)據(jù)庫文件,兩個(gè)數(shù)據(jù)庫中相關(guān)表的內(nèi)容如圖2-7和圖2-8所示:

圖2-7 076311815970064數(shù)據(jù)庫相關(guān)表數(shù)據(jù)

圖2-8 DBOpenHelper數(shù)據(jù)庫相關(guān)表數(shù)據(jù)
最后,通過對(duì)本地本地文件和數(shù)據(jù)庫的分析,我們知道它是通過網(wǎng)絡(luò)獲取短信port和cmd,存儲(chǔ)到本地?cái)?shù)據(jù)庫進(jìn)行使用和記錄。確定是網(wǎng)絡(luò)動(dòng)態(tài)獲取之后,我們抓取協(xié)議包進(jìn)行分析,最終在地址http://p*.*****.cc/index.php/MC/RP中獲取短信內(nèi)容的信息列表,共有22條業(yè)務(wù)短信內(nèi)容。經(jīng)常分析此類病毒的安全人員都知道,此病毒是使用了此域名所有者公司的電信業(yè)務(wù),在此不再對(duì)齊進(jìn)行溯源分析。短信內(nèi)容獲取的協(xié)議包,如圖2-9所示:

圖2-9 業(yè)務(wù)短信內(nèi)容獲取協(xié)議包
2.3 獼猴之“火眼金睛”
西游記中孫悟空的“火眼金睛” 是用來識(shí)別妖魔鬼怪的,而這里說的“火眼金睛”是用來窺探用戶隱私的,此病毒在其運(yùn)行期間,注冊(cè)多個(gè)監(jiān)聽,監(jiān)聽和操作用戶的短信,獲取用戶運(yùn)行的task,并獲取用戶電話號(hào)碼和設(shè)備信息。Android中獲取這些信息都有其流程和相應(yīng)API,這里不過多說明,只是把相應(yīng)代碼作為示例列舉。監(jiān)聽短信、獲取電話號(hào)碼和獲取sim卡信息(其他設(shè)備信息不再列舉)分別如圖2-10、圖2-11和圖2-12所示:

圖2-10 監(jiān)聽用戶短信接收

圖2-11 獲取用戶電話號(hào)碼

圖2-12 獲取用戶sim卡信息
2.4 獼猴之召喚妖孽
此病毒安裝之后會(huì)在手機(jī)上,匿名頻繁彈出懸浮窗,推廣多個(gè)病毒軟件和部分正常應(yīng)用,當(dāng)用戶不小心觸摸到懸浮窗時(shí),直接進(jìn)行推廣應(yīng)用下載。其推廣的軟件經(jīng)過研判,多數(shù)為病毒應(yīng)用,如同更多的“妖孽”一般。匿名懸浮窗輪播圖運(yùn)行界面如圖2-13所示:

圖2-13 匿名彈窗推廣軟件
我們對(duì)其懸浮窗推廣的應(yīng)用列表信息進(jìn)行追蹤,發(fā)現(xiàn)源碼中并不能方便的獲取到,因?yàn)槠浼用芪募臄?shù)量和代碼混淆以及數(shù)據(jù)加密做的防護(hù)措施,想要獲取其推廣列表并不是一件輕松的工作。關(guān)于是本地解密或聯(lián)網(wǎng)加密文件獲取還是聯(lián)網(wǎng)直接數(shù)據(jù)獲取,我們從最簡(jiǎn)單的聯(lián)網(wǎng)直接獲取進(jìn)行入手,還好我們有強(qiáng)大的協(xié)議包獲取分析工具,利用Charles發(fā)現(xiàn)其使用HTTPS協(xié)議進(jìn)行動(dòng)態(tài)的獲取推廣列表,獲得的推廣數(shù)據(jù)及其服務(wù)器地址https://q***.******.top/zutlkWrCr,如圖2-14所示:

圖2-14 推廣軟件獲取協(xié)議包
從上面我們可以看到它的推廣軟件下載服務(wù)器和備用服務(wù)器地址分別為http://cdn.***.******.top/upload/和http://cdn.***.******.top/upload。為了大家直觀的感受它的推廣狀態(tài),如廣告的id和type等,我們找到它本地存儲(chǔ)的數(shù)據(jù)庫qgg.db進(jìn)行數(shù)據(jù)展示,如圖2-15所示:

圖2-15 推廣軟件本地?cái)?shù)據(jù)庫數(shù)據(jù)展示
3 獼猴身世之謎
躲避安全軟件病毒檢測(cè),做到動(dòng)態(tài)加載dex,代碼混淆和數(shù)據(jù)加密等多重技術(shù)為了推廣應(yīng)用和業(yè)務(wù)訂購謀取暴利的到底是何方神圣呢?就像那個(gè)永遠(yuǎn)討論的話題“六耳獼猴的身世之謎”。我們通過研究得到的三個(gè)服務(wù)器地址,分別是https://q***.m*****.top/zutlkWrCr、http://cdn.a**.w*****.top/upload/和http://cdn.***.f****.top/upload,對(duì)其域名進(jìn)行溯源追蹤,能夠獲得相應(yīng)的一些信息,如聯(lián)系電話和郵箱,但是是否是創(chuàng)造者或者傳播者都需要更多的證據(jù)支持。對(duì)域名的whois反查的結(jié)果如圖3-1、圖3-2和圖3-3所示:

圖3-1 m*****.top域名反查結(jié)果

圖3-2 w******.top域名反查結(jié)果

圖3-3 f****.top域名反查結(jié)果
4 如來護(hù)體金光
盜版病毒應(yīng)用,不僅侵害了開發(fā)商的利益,也給我們用戶帶來重大影響,針對(duì)這個(gè)問題我們相應(yīng)的也從開發(fā)商和用戶兩個(gè)方面給出安全防護(hù)建議。
開發(fā)商在開發(fā)應(yīng)用時(shí)可以從以下幾個(gè)方面做出安全防護(hù):
Ø 對(duì)應(yīng)用進(jìn)行安全加固,采用現(xiàn)在主流的安全加固廠商的企業(yè)加固方案。
Ø 對(duì)應(yīng)用進(jìn)行嚴(yán)格的簽名保護(hù),采用應(yīng)用重打包防護(hù)檢測(cè)。
Ø 對(duì)源碼采用高級(jí)混淆機(jī)制,禁止別人二次使用。
Ø 對(duì)應(yīng)用數(shù)據(jù)和協(xié)議包數(shù)據(jù)進(jìn)行加密。
Ø 增加維權(quán)意識(shí),堅(jiān)決維護(hù)自身利益。
用戶在使用應(yīng)用時(shí),可以從以下幾個(gè)方面避免此類應(yīng)用:
Ø 建議用戶提高警覺性,使用軟件請(qǐng)到官網(wǎng)下載。到應(yīng)用商店進(jìn)行下載正版軟件,避免從論壇等下載軟件,可以有效的減少該類病毒的侵害。
Ø 關(guān)注”暗影安全實(shí)驗(yàn)室”公眾號(hào),獲取最新實(shí)時(shí)移動(dòng)安全狀態(tài),避免給您造成損失和危害。
Ø 安全需要做到防患于未然,可以使用恒安嘉新公司的APP威脅檢測(cè)與態(tài)勢(shì)分析平臺(tái)進(jìn)行分析對(duì)Android樣本提取信息并進(jìn)行關(guān)聯(lián)分析和檢測(cè)。
Ø 用戶發(fā)現(xiàn)感染手機(jī)病毒軟件之后,可以向“12321網(wǎng)絡(luò)不良與垃圾信息舉報(bào)受理中心”或“中國(guó)反網(wǎng)絡(luò)病毒聯(lián)盟”進(jìn)行舉報(bào),使病毒軟件能夠第一時(shí)間被查殺和攔截。
|