独家|神秘SDK暗刷百度广告 植入数千款APP
4月22日,雷鋒網(wǎng)(公眾號(hào):雷鋒網(wǎng))從騰訊安全了解到,騰訊安全反詐騙實(shí)驗(yàn)室追蹤到暴風(fēng)影音、天天看、塔讀文學(xué)等眾多應(yīng)用中集成的某SDK存在下載惡意子包,通過(guò)webview配合js腳本在用戶無(wú)感知的情況下刷百度廣告的惡意操作。
該惡意SDK通過(guò)眾多應(yīng)用開(kāi)發(fā)者所開(kāi)發(fā)的正規(guī)應(yīng)用,途經(jīng)各中應(yīng)用分發(fā)渠道觸達(dá)千萬(wàn)級(jí)用戶;其背后的黑產(chǎn)則通過(guò)惡意SDK留下的后門(mén)控制千萬(wàn)用戶,動(dòng)態(tài)下發(fā)刷量代碼,大量刷廣告曝光量和點(diǎn)擊量,賺取大量廣告費(fèi)用,給廣告主造成了巨額廣告費(fèi)損失。
根據(jù)安全人員詳細(xì)分析,此惡意SDK主要存在以下特點(diǎn):
1、該SDK被1000+千應(yīng)用開(kāi)發(fā)者使用,通過(guò)應(yīng)用開(kāi)發(fā)者的分發(fā)渠道抵達(dá)用戶。主要涉及的應(yīng)用包括掌通家園、暴風(fēng)影音、天天看、塔讀文學(xué)等,潛在可能影響上千萬(wàn)用戶;
2、刷量子包通過(guò)多次下載并加載,并從服務(wù)器獲取刷量任務(wù),使用webview加載js腳本實(shí)現(xiàn)在用戶無(wú)感知的情況下自動(dòng)化的進(jìn)行刷量任務(wù)。
此類(lèi)流量黑產(chǎn)給傳統(tǒng)的廣告反作弊帶來(lái)了極大挑戰(zhàn),傳統(tǒng)通過(guò)IP、曝光頻率、點(diǎn)擊率等表象數(shù)據(jù)形成的反作弊策略難以識(shí)別這種控制大量真實(shí)設(shè)備做’肉雞’的刷量作弊,使得大量廣告費(fèi)用流入黑產(chǎn)手中,卻無(wú)法給廣告主帶來(lái)應(yīng)有的廣告效果。
SDK作惡流程和影響范圍
此惡意SDK集成在應(yīng)用中的那部分代碼沒(méi)有提供實(shí)際功能,其在被調(diào)用后會(huì)定時(shí)上報(bào)設(shè)備相關(guān)信息,獲取動(dòng)態(tài)子包的下載鏈接,下載子包并加載調(diào)用。然后由子包執(zhí)行相應(yīng)的惡意行為。
惡意SDK作惡流程示意圖:
受惡意SDK影響的主要應(yīng)用列表:
惡意SDK作惡行為詳細(xì)分析
此惡意SDK被眾多的中小應(yīng)用開(kāi)發(fā)者集成,我們以應(yīng)用塔讀文學(xué)為例,對(duì)其惡意行為進(jìn)行詳細(xì)分析。
惡意SDK代碼結(jié)構(gòu)
????
此sdk代碼較少,沒(méi)有什么實(shí)際的功能。其在被加載調(diào)用后,會(huì)設(shè)置定時(shí)任務(wù),每隔3600秒(1小時(shí))啟動(dòng)GatherService,上報(bào)設(shè)備相關(guān)信息,獲取動(dòng)態(tài)子包__gather_impl.jar的下載鏈接
GatherService鏈接服務(wù)器,獲取__gather_impl.jar的下載鏈接?
請(qǐng)求鏈接:http://gather.andr****.com:5080/gupdate/v1
請(qǐng)求數(shù)據(jù):包括uid、應(yīng)用包名、設(shè)備id、應(yīng)用版本、手機(jī)廠商、型號(hào)、系統(tǒng)版本、imei、sdk版本等內(nèi)容
返回內(nèi)容:包括子包的版本、下載url、文件md5
動(dòng)態(tài)加載下載的__gather_impl.jar?
子包__gather_impl.jar代碼結(jié)構(gòu),此子包的主要功能有:1、上傳用戶設(shè)備信息,2、下載并動(dòng)態(tài)加載子包stat-impl.jar
?
1)、鏈接服務(wù)器,上傳用戶設(shè)備信息?
服務(wù)器鏈接:http://userdata.andr****.com/userdata/userdata.php?(此url在分析時(shí)已失效,無(wú)法鏈接)
上報(bào)內(nèi)容:包括位置信息(經(jīng)緯度),用戶安裝列表(軟件名、包名),設(shè)備信息(廠商、型號(hào)、fingerprint,是否root),deviceid、手機(jī)號(hào)、運(yùn)營(yíng)商、imei、mac等。?
2)、再次請(qǐng)求服務(wù)器,獲取stat-impl.jar的下載鏈接
請(qǐng)求鏈接:http://iupd.andr****.com:6880/wupdate/v1
請(qǐng)求數(shù)據(jù):包括uid、imei、sdk版本、手機(jī)廠商、型號(hào)、系統(tǒng)版本、應(yīng)用包名、設(shè)備id、設(shè)備指令集等內(nèi)容?
返回內(nèi)容:包括子包的版本、下載url、文件md5
?子包下載完成后,調(diào)用native方法動(dòng)態(tài)加載此子包
stat-impl.jar的代碼結(jié)構(gòu):
?
stat-impl.jar子包被加載后,線程com.drudge.rmt.g會(huì)被啟動(dòng),其作用主要是用來(lái)聯(lián)網(wǎng)獲取刷量任務(wù),并調(diào)度任務(wù)的執(zhí)行。
?
主要的刷量任務(wù)包括:1、刷百度搜索的關(guān)鍵字,2、使用js腳本實(shí)現(xiàn)自動(dòng)點(diǎn)擊、滑動(dòng)來(lái)刷百度廣告和億量廣告的點(diǎn)擊,3、使用webview刷網(wǎng)頁(yè)訪問(wèn)。
1、刷百度關(guān)鍵字搜索
此任務(wù)會(huì)根據(jù)獲取json字符串,進(jìn)行相應(yīng)的操作,包括設(shè)置BAIDUID、更新配置、添加任務(wù)、設(shè)置剪切板和使用關(guān)鍵字刷百度搜索
?
設(shè)置關(guān)鍵字,使用webview加載對(duì)應(yīng)的url
捕獲到的刷百度關(guān)鍵字的webview加載請(qǐng)求:?
?
鏈接服務(wù)器http://tw.andr****.com:6080/wtask/v1獲取相關(guān)任務(wù),并將任務(wù)內(nèi)容存入[package]/cache/volley目錄下?
2、使用js腳本刷百度廣告
使用webview加載http://mobads.baidu.com/ads/index.htm,并在加載完成后執(zhí)行js腳本實(shí)現(xiàn)自動(dòng)滑動(dòng)、點(diǎn)擊、保存等操作來(lái)自動(dòng)刷廣告
相關(guān)的js腳本
1)、js函數(shù)定義滑動(dòng)、點(diǎn)擊、保存等操作?
Java層解析并實(shí)現(xiàn)js層傳遞過(guò)來(lái)的操作命令
?
2)、js函數(shù)判斷并獲取頁(yè)面元素?
...
?
3)、js函數(shù)計(jì)算頁(yè)面元素相對(duì)位置,并進(jìn)行滑動(dòng)、點(diǎn)擊操作?
...
捕獲到的刷百度廣告的webview加載請(qǐng)求:
3、使用webview刷網(wǎng)頁(yè)訪問(wèn)
此任務(wù)向服務(wù)器請(qǐng)求需要訪問(wèn)的url鏈接,在獲取到相應(yīng)的網(wǎng)頁(yè)url后,使用webview加載進(jìn)行訪問(wèn)。
請(qǐng)求需要訪問(wèn)的url鏈接
?
請(qǐng)求鏈接
http://us.yiqimeng.men:8080/geturls?k=beike-xinshiye&c=5
返回內(nèi)容
["http://m.xinshiye.cc/cars/17/10/21/707989.html?content_id=707989u0026key=x2HAJuZaaa9YWpVa8EXTqOmHHUxhSnj75xhhAS7f6tveQsphsCm3jc9xrhV4RZbRzgm%2FQqzCVcw2dvukMqw25Q%3D%3Du0026_t=1511190410",
"http://m.xinshiye.cc/cars/17/10/11/234818.html?content_id=234818u0026key=NzLZyHQXsCdpS6bkAWab2LSzd2XApbGOJYUuN%2Bm4PFsoWk1l%2FnZSD8M1yp1cuhz%2FdL0uoNG93TVt8ai6zEU%2BQw%3D%3Du0026_t=1511190560",
"http://m.xinshiye.cc/cars/17/11/26/1769446.html?content_id=1769446u0026key=8KLxL1fm2gwNDxqT6nsSAbQ07kcEZRHBrekhzNSJcNaAg1nZmbW49pQ3EaEYJfMUeMlwSX4KzdliXJ3O37fs9g%3D%3Du0026_t=1513046929",
"http://m.xinshiye.cc/cars/17/10/31/1444661.html?content_id=1444661u0026key=mODVhDy0zyzBGH1G6sTwDYXqiy3D7pDfymsirda6s5%2BW8tarfIDPjuhT3mkqeMMDKzKr%2BFVC2Py2gzsNkMniHw%3D%3Du0026_t=1509589907",
"http://m.xinshiye.cc/cars/17/12/09/1921549.html?content_id=1921549u0026key=0XFxkCX0Bn4k%2Fw5%2FqvlSIOCREqEWoJ5jimqn%2BZAeJIwksQzydyT0AZFAVZJAritm3hpGza4TFNlONZDtoY%2BfTA%3D%3Du0026_t=1513045278"]
使用webview訪問(wèn)獲取url
?
捕獲到的刷求醫(yī)不如健身網(wǎng)的webview加載請(qǐng)求:?
相關(guān)URL整理
安全建議和防范手段
從近期Android端惡意應(yīng)用的作惡手法來(lái)看,惡意開(kāi)發(fā)者更多地從直接開(kāi)發(fā)App應(yīng)用轉(zhuǎn)向開(kāi)發(fā)SDK,向Android應(yīng)用供應(yīng)鏈的上游轉(zhuǎn)移。通過(guò)提供惡意的SDK給應(yīng)用開(kāi)發(fā)者,惡意開(kāi)發(fā)者可以復(fù)用這些應(yīng)用的分發(fā)渠道,十分有效的擴(kuò)大影響用戶的范圍。而在惡意SDK的類(lèi)別方面,黑產(chǎn)從業(yè)者主要把精力放在用戶無(wú)感知的廣告刷量和網(wǎng)站刷量等方向,通過(guò)使用代碼分離和動(dòng)態(tài)代碼加載技術(shù),可以完全從云端下發(fā)實(shí)際執(zhí)行的代碼,控制用戶設(shè)備作為“肉雞”進(jìn)行廣告、網(wǎng)站刷量等黑產(chǎn)行為,具有很強(qiáng)的隱蔽性。
這類(lèi)流量型黑產(chǎn)逐漸增多,不僅對(duì)手機(jī)用戶造成了危害,同時(shí)也給移動(dòng)端廣告反作弊帶來(lái)了很大的挑戰(zhàn),傳統(tǒng)基于IP、曝光頻率、點(diǎn)擊率等表象數(shù)據(jù)形成的反作弊策略難以識(shí)別這種控制大量真實(shí)設(shè)備做’肉雞’的刷量作弊,難以保障應(yīng)用開(kāi)發(fā)者和廣告主的正當(dāng)權(quán)益。
針對(duì)終端用戶,有如下安全建議:
1、盡可能使用正版和官方應(yīng)用市場(chǎng)提供的APP應(yīng)用;
2、移動(dòng)設(shè)備即使進(jìn)行安全更新;
3、安裝手機(jī)管家等安全軟件,實(shí)時(shí)進(jìn)行防護(hù)。
本研究報(bào)告由騰訊安全研究團(tuán)隊(duì)輸出,授權(quán)雷鋒網(wǎng)編輯。
雷鋒網(wǎng)
總結(jié)
以上是生活随笔為你收集整理的独家|神秘SDK暗刷百度广告 植入数千款APP的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java爬虫抓取极客时间专栏页面
- 下一篇: DNS解析与域名服务安全防护策略