“企業(yè)級(jí)”惡意程序開發(fā)者攪局移動(dòng)安全
陳宏偉
360高級(jí)手機(jī)樣本分析師
企業(yè)級(jí)的惡意程序擁有強(qiáng)大的開發(fā)能力、傳播能力,手段更加隱蔽,危害也更大,社會(huì)影響更大,企業(yè)級(jí)惡意開發(fā)者正在大顯身手,本文將解密他們的運(yùn)作機(jī)制,提出應(yīng)對(duì)策略,打擊惡意程序的發(fā)展鏈條,從而給移動(dòng)應(yīng)用者一個(gè)清平的世界。
惡意程序開發(fā)者,這個(gè)定義來源于360移動(dòng)平臺(tái)中的惡意開發(fā)者數(shù)據(jù)。從圖1可以看出,2013年,惡意程序的開發(fā)者數(shù)量,個(gè)人開發(fā)者的數(shù)量(2442個(gè))明顯要比“企業(yè)級(jí)”開發(fā)者(1496個(gè))多。2014年,個(gè)人開發(fā)者的量(1579個(gè))有所下降,“企業(yè)級(jí)”開發(fā)者的數(shù)量(1292個(gè))下降反而不是那么明顯。2015年,個(gè)人惡意開發(fā)者的數(shù)量出現(xiàn)銳減,僅為1114個(gè),反而企業(yè)開發(fā)者的人數(shù)更多一些。
我們得出一個(gè)結(jié)論,基于移動(dòng)開放平臺(tái)的惡意個(gè)人開發(fā)者的數(shù)量,是在減少,而“企業(yè)級(jí)”開發(fā)者,它的數(shù)量相對(duì)穩(wěn)定,而且還有一個(gè)增長(zhǎng)的趨勢(shì)。那么,為什么開發(fā)者會(huì)演變成為惡意開發(fā)者?
惡意開發(fā)者有幾類:第一,使用惡意廣告;第二,發(fā)布山寨應(yīng)用,發(fā)布低俗色情應(yīng)用,強(qiáng)制下載第三方應(yīng)用,無(wú)提示扣費(fèi)。當(dāng)然這也是其賺錢的方式。第三,窺探用戶隱私;第四,提交虛假的身份信息。為什么虛假信息也是惡意開發(fā)者的一項(xiàng)?因?yàn)樵?60移動(dòng)平臺(tái)提交應(yīng)用或者上傳App,需要做一個(gè)開發(fā)者信息校驗(yàn)的,而某一些人為了躲避校驗(yàn)就要上傳虛假信息,當(dāng)然他一旦上傳虛假信息就被拉黑了。但由此統(tǒng)計(jì)出來企業(yè)級(jí)惡意開發(fā)者的數(shù)量越來越多。
圖1 “個(gè)人”與“企業(yè)級(jí)”惡意程序的開發(fā)者數(shù)量歷年比較
那么,這些惡意開發(fā)者到底做了什么?
(1)流量僵尸木馬
2015年7月,我們發(fā)現(xiàn)有90余款游戲被植入了一段惡意代碼,這段代碼會(huì)在用戶不知情的情況下聯(lián)網(wǎng)下載一個(gè)模塊,這個(gè)模塊的目的是為給某收費(fèi)引擎和導(dǎo)航刷流量,于是便會(huì)下載另外一個(gè)列表,里面含有搜索關(guān)鍵字。其在后臺(tái)模擬一個(gè)完整用戶點(diǎn)擊的情況下去做一個(gè)搜索,而且每次解鎖之后都會(huì)做一次搜索,從而給用戶造成極大的流量損失。該行為是受云端所控制的,如同一個(gè)僵尸一樣,所以我們命名為流量僵尸。
流量僵尸木馬第一個(gè)模塊就是下載惡意模塊,其自身不能自動(dòng)實(shí)現(xiàn),需要?jiǎng)討B(tài)地從云端獲取代碼。我們截獲了它下載代碼的截圖,隨后拿到了模塊,發(fā)現(xiàn)其最重要的目標(biāo)是給搜索引擎帶點(diǎn)擊量,搜索內(nèi)容比較豐富,還有分類,包括娛樂、時(shí)政、新聞等。其關(guān)鍵詞非常精確,之所以這么做的原因就是在模擬一個(gè)真實(shí)的用戶,從而不會(huì)被搜索引擎的機(jī)制所發(fā)現(xiàn)。最后一步是模擬用戶做一個(gè)搜索的操作。針對(duì)流量僵尸這一批樣本,我們做了一個(gè)完整分析,發(fā)現(xiàn)有26%的應(yīng)用是這樣做的。
(2)暗扣木馬
2015年8月,某品牌的用戶擴(kuò)展更新,發(fā)現(xiàn)了截圖的情況,手機(jī)上憑空多了一個(gè)應(yīng)用,關(guān)了以后還會(huì)打開,刪了以后還會(huì)出現(xiàn)。有些用戶的手機(jī)還顯示了ROOT。那么到底發(fā)生了什么呢?
這個(gè)木馬經(jīng)過詳細(xì)的分析以后,發(fā)現(xiàn)大概是這樣一個(gè)執(zhí)行流程。首先它偽裝成某一款正常的軟件進(jìn)入到用戶的手機(jī)中,自帶ROOT模塊,進(jìn)入用戶手機(jī)就會(huì)把這個(gè)模塊釋放出來,在靜默的情況下ROOT用戶的手機(jī),如果用戶ROOT不了,它還會(huì)從云端繼續(xù)ROOT用戶的手機(jī)。如果ROOT不成功,它就不工作了,如果ROOT成功,它就會(huì)ROOT其他模塊。手機(jī)感染該木馬之后還會(huì)篡改系統(tǒng)文件,這就是為什么有用戶手機(jī)出現(xiàn)中了毒刪不掉的問題。它有強(qiáng)大的自我保護(hù)。
隨后我們進(jìn)行了徹底的大排查。我們?cè)谝粋€(gè)偽裝成游戲的軟件,daily racing的變種,在其運(yùn)行的衍生物中發(fā)現(xiàn)了名為ngsteamprf.xml的配置文件。這是fastmotay的文件,也是我們之前所說的最主要的核心病毒程序。在另一個(gè)變種的方式中,也發(fā)現(xiàn)了。當(dāng)然不僅是我們發(fā)現(xiàn)了,又過幾個(gè)月,國(guó)外FireEye在其博客中也發(fā)布了該惡意程序,指出這個(gè)惡意程序的作者來自一家中國(guó)公司。
fastmopay、ngsteam、xinyinhe,它們同隸屬于深圳一家公司。通過注冊(cè)信息,我們知道這家公司是深圳的,實(shí)際公司的總部在北京,在北京、上海設(shè)有站點(diǎn),它的核心研發(fā)在北京。這家公司員工人數(shù)100人左右,技術(shù)研發(fā)10人左右。這10個(gè)人都不是一般人,他們大多數(shù)來自互聯(lián)網(wǎng)跳槽的公司,都是技術(shù)高手。這家公司最鼎盛的時(shí)候,技術(shù)人員有50人左右。其他的人員都是以銷售和運(yùn)營(yíng)為主。那么,其業(yè)務(wù)是什么?線上廣告推廣、應(yīng)用計(jì)費(fèi);線下渠道,應(yīng)用、預(yù)裝和刷機(jī)。他們做的到底是什么?暗扣和流氓廣告。流氓廣告可能很多人都遇到過,使用安卓系統(tǒng)的手機(jī)上都會(huì)彈出幾個(gè)廣告,一碰就下載,一碰就扣錢。暗扣與流氓廣告的區(qū)別是錢從哪里來。流氓廣告賺的是廣告主的錢,暗扣賺的就是用戶的手機(jī)話費(fèi)。
暗扣的產(chǎn)業(yè)鏈如圖2所示。首先出現(xiàn)的是電信運(yùn)營(yíng)商。接下來是軟件公司,代理商,渠道商,以及內(nèi)容提供商。電信運(yùn)營(yíng)商作為一個(gè)服務(wù),它是一個(gè)服務(wù)提供者。軟件公司,是用正規(guī)的應(yīng)用申請(qǐng)計(jì)費(fèi)代碼。我們所說的計(jì)費(fèi)代碼都是短信的計(jì)費(fèi)代碼,發(fā)信息都是付費(fèi)的,比如發(fā)教育類的信息是多少錢,需要付費(fèi),就需要向運(yùn)營(yíng)商申請(qǐng)一套計(jì)費(fèi)代碼。如果軟件公司的信息額度用不完,剩下的信息條數(shù)就可以賣給代理商,而這個(gè)計(jì)費(fèi)代碼是嵌在應(yīng)用程序里面,那么,代理商需要找人把計(jì)費(fèi)代碼摳出來,賣給渠道商。知道的人越多越不好,它就會(huì)把這個(gè)代碼封裝成SDK,既方便它花錢,也方便它賺錢。渠道商把SDK又賣出去,給了內(nèi)容提供商,到這里錢就出來了。最終應(yīng)用會(huì)獲利,通過扣費(fèi)。這個(gè)錢一步一步往下返。按照行業(yè)內(nèi)部規(guī)則,誰(shuí)有話語(yǔ)權(quán)誰(shuí)就拿得多,大家都很高興,都拿到了錢。
圖2 暗扣產(chǎn)業(yè)鏈
手機(jī)暗扣
暗扣軟件指未經(jīng)用戶主觀意愿同意就發(fā)生扣費(fèi)的軟件。一般具有如下特征:1.安裝后或啟動(dòng)軟件后無(wú)任何資費(fèi)提示即開始扣費(fèi);2.部分客戶端安裝后不會(huì)立即扣費(fèi),而是延時(shí)或不定時(shí)扣費(fèi),讓用戶很難察覺;3.資費(fèi)提示模糊不清,誤導(dǎo)用戶點(diǎn)擊收費(fèi)按鈕;.資費(fèi)提示彈出時(shí),軟件左右菜單設(shè)計(jì)中無(wú)返回/退出按鈕,誤導(dǎo)性地強(qiáng)制用戶點(diǎn)擊收費(fèi)按鈕。
那么應(yīng)用怎么才能扣費(fèi)實(shí)現(xiàn)兌現(xiàn)呢?首先用戶是使用者。應(yīng)用是怎么來的?應(yīng)用無(wú)非三種渠道:第一種從應(yīng)用市場(chǎng)直接安裝;第二種從CP購(gòu)買一些低成本的應(yīng)用;第三種是收購(gòu)擁有穩(wěn)定用戶量的團(tuán)隊(duì)。當(dāng)然,收購(gòu)這樣的公司不是看好其App做得多么好,它真正在乎的只是你的應(yīng)用上有多少的用戶量。在拿到這個(gè)應(yīng)用后就會(huì)插入惡意代碼和計(jì)費(fèi)代碼,于是這個(gè)應(yīng)用就通過各種渠道下載并安裝到用戶手機(jī)上。當(dāng)然,他們會(huì)避開正規(guī)的應(yīng)用商店和網(wǎng)絡(luò)聯(lián)盟,他們有自己的地下渠道。以某公司為例,每周活躍的應(yīng)用在35款,所有的激活量在50萬(wàn),因?yàn)樗麄儔焊鶅翰豢紤]這個(gè)能不能被用戶留存,只要一點(diǎn)就達(dá)到目的,用戶愛卸就卸。
安裝之后需要人工觸發(fā),用戶很高興,下載了一個(gè)新應(yīng)用,點(diǎn)擊了一下。開始玩游戲,玩到高興的時(shí)候,有大紅包、獎(jiǎng)勵(lì),要不要領(lǐng)取一下。有一個(gè)領(lǐng)取全部,下面的小字用戶沒有看見,點(diǎn)擊領(lǐng)取全部獎(jiǎng)勵(lì),收費(fèi)人民幣10元。點(diǎn)擊之后,于是來了一條消息。而且可能短信也會(huì)被攔截,就這樣,神不知鬼不覺的,用戶的錢就去了其他人的口袋,如圖3所示。
圖3 “暗扣”兌現(xiàn)過程
為什么會(huì)出現(xiàn)流量僵尸這么一個(gè)產(chǎn)物?其實(shí)剛開始是一個(gè)公司的新業(yè)務(wù),幫搜索引擎導(dǎo)流量,通過導(dǎo)流量賺錢。開發(fā)者只有一個(gè)人,他用三天的時(shí)間完成了核心代碼,然后再有一個(gè)人負(fù)責(zé)上線,不到一周,這個(gè)應(yīng)用上線了,各個(gè)渠道轉(zhuǎn)發(fā)。但他們忘了一件事情,當(dāng)時(shí)那家搜索引擎買的量是十萬(wàn),一不小心,它一天導(dǎo)了五百萬(wàn)的流量,沒過兩天搜索引擎的銷售過來說你這個(gè)流量是不是假的,我說十萬(wàn),你導(dǎo)了五百萬(wàn)。沒過幾天這個(gè)應(yīng)用就下線了。但這種木馬卻流傳開來,截止到2015年,流量僵尸一共毀掉了48萬(wàn)部手機(jī)。
那么“幽靈疑云”是怎么回事兒?幽靈疑云并不是針對(duì)國(guó)內(nèi)的,是海外的一個(gè)旗艦產(chǎn)品,功能很全,主要針對(duì)海外。它導(dǎo)致某品牌手機(jī)在兩天之內(nèi)爆發(fā)了十萬(wàn)的感染量。那個(gè)ROOT模塊是該公司收購(gòu)了一個(gè)ROOT團(tuán)隊(duì),該品牌手機(jī)有自己的應(yīng)用商店,于是,在一個(gè)錯(cuò)誤的時(shí)間,從一個(gè)錯(cuò)誤的地點(diǎn)發(fā)到了錯(cuò)誤的應(yīng)用,很不巧的是它又在一個(gè)正確的時(shí)間把這個(gè)錯(cuò)誤的應(yīng)用更新上去了。
這就是為什么此前許多用戶提到手機(jī)更新后中毒,而該品牌手機(jī)廠商又發(fā)現(xiàn)壓根沒法殺,因?yàn)樗蠷OOT權(quán)限。有了ROOT權(quán)限,就可以將殺毒軟件的ROOT權(quán)限殺掉了。
先說說個(gè)人和小規(guī)模團(tuán)隊(duì)。企業(yè)開發(fā)者,與之相對(duì)的就是個(gè)人和小規(guī)模的團(tuán)隊(duì),它的特點(diǎn)就是技術(shù)門檻低,沒有什么難度,功能比較單一,要么拿你的隱私,要么扣你的錢,要么刪你的數(shù)據(jù),簡(jiǎn)單粗暴。
個(gè)人和小規(guī)模團(tuán)隊(duì),它的渠道比較單一,一般通過社交軟件、論壇、貼吧等,發(fā)個(gè)帖,發(fā)個(gè)二維碼,基本上是點(diǎn)到點(diǎn)的傳播。它能影響的人也就是社交群里、論壇里的某些人,不是所有人都會(huì)去關(guān)注。
我們?cè)倏纯雌髽I(yè)開發(fā)團(tuán)隊(duì),它有什么樣的優(yōu)勢(shì)。
首先,企業(yè)有人,有錢,有關(guān)系,有渠道,要什么有什么。在技術(shù)上,當(dāng)然要有技術(shù)門路,沒技術(shù)那跟小作坊沒什么區(qū)別。一般功能都比較復(fù)雜,代碼都會(huì)用大量的混淆、反射、加密,有些甚至有自己的私有盒來對(duì)抗。當(dāng)然它們的代碼也不是簡(jiǎn)單的,基本上采取加載的模式。傳播方式,它的渠道很多,比如做SDK(Software Development Kit,軟件開發(fā)工具包),某公司做SDK往下發(fā),讓大家去下載。剛才說到刷機(jī),用戶的手機(jī)從廠家出來以后還沒到用戶手里,已經(jīng)被刷了一點(diǎn)東西,甚至存在地下的一些渠道。它具有很強(qiáng)大的傳播能力。設(shè)想一下,它能控制整個(gè)華北地區(qū)的某品牌手機(jī)的銷售,所有的手機(jī)都由它經(jīng)手,這種傳播能力無(wú)疑是強(qiáng)大的。
應(yīng)對(duì)主要是這幾個(gè)渠道,開發(fā)者、手機(jī)用戶、手機(jī)廠商、應(yīng)用市場(chǎng)、政府機(jī)關(guān)和運(yùn)營(yíng)商。
開發(fā)者首先要謹(jǐn)慎選擇SDK,以免成為某些互聯(lián)網(wǎng)廠商的幫兇??蛻粢獜恼?guī)的市場(chǎng)下載應(yīng)用。正規(guī)的廣告都知道是什么規(guī)則。
安裝手機(jī)軟件,時(shí)刻保持手機(jī)在安全的情況。增強(qiáng)隱私保護(hù)無(wú)論硬件還是軟件都應(yīng)該加強(qiáng)。在移動(dòng)市場(chǎng),加強(qiáng)開發(fā)者的審查,最關(guān)鍵要從正規(guī)的渠道獲取應(yīng)用。
政府應(yīng)建立健全相關(guān)的法律法規(guī),加大打擊力度,提高作惡的成本。成本很重要,因?yàn)楝F(xiàn)在大部分惡意程序都是鉆空子。
運(yùn)營(yíng)商加強(qiáng)對(duì)提供商的服務(wù),加強(qiáng)計(jì)費(fèi)渠道的審查。
如果做到這些,我們的手機(jī)可能會(huì)更安全。
(本文整理自360高級(jí)手機(jī)樣本分析師陳宏偉在ISC2016“移動(dòng)安全發(fā)展論壇”上的演講)
中國(guó)教育網(wǎng)絡(luò)2016年10期