Author:360移動安全團隊
今年央視3.15晚會曝光了道有道科技公司通過推送惡意程序,使手機用戶被莫名扣費的問題,引起了廣大手機用戶的高度關注。
360移動安全團隊對道有道廣告SDK進行了分析與研究。截至2016年3月底,嵌入道有道廣告SDK的應用軟件累計達到80萬個,從月增樣本數量統計可以看出,在去年年中的一個月內就收錄了近10萬個。
在道有道的官網上,介紹了其廣告SDK的展現形式包括插屏廣告、Banner廣告和應用推薦廣告。
其官網展示的插屏廣告是在軟件內的插屏,實際上在其廣告SDK開發文檔中,還支持在自身軟件外彈插屏廣告,這也正是3.15曝光的展現形式。
這種外插屏的展現形式,侵犯了用戶的知情權,用戶不知道是哪個應用彈的廣告,并且點擊屏幕任何地方都會直接下載推廣的應用,除非準確點擊?才能關閉廣告。這種匿名且在自身應用外推送的廣告展現形式,不但容易造成用戶手機流量損失,還影響用戶手機正常使用,被我們定義為惡意廣告。
360移動安全團隊發現,借助道有道廣告SDK推廣的軟件,除了正常軟件外,還存在大量的惡意軟件,比如3.15曝光的色情視頻類惡意軟件。我們之前發布的“舞毒蛾”【1】和“百腦蟲”【2】木馬分析報告,都是借助色情視頻類惡意軟件傳播、感染用戶手機,并且難以清除干凈。
移動廣告平臺對推廣的應用審核不嚴,助漲了惡意軟件傳播,成為了其幫兇,最終造成用戶經濟損失、隱私泄露。
360移動安全團隊分析發現,道有道廣告SDK利用靜態和動態相結合的手段,與殺軟特征進行持續性的對抗,從而躲避殺軟的查殺。
1.1 組件名稱隨機化
從靜態角度,通過對比嵌入其SDK的兩個相似樣本的AndroidManifest.xml文件內容,可以發現其聲明的activity、service名稱都是隨機生成的,沒有任何含義,這與一般正常軟件的聲明方式有明顯的不同。
1.2 方法及字符串變形
SDK中的方法及字符串也在不斷的進行變化,來躲避殺軟靜態特征識別。下面以onKeyDown方法為例,來展示其不同版本的變化情況。
最初的版本,方法和字符串均未加密。
升級的版本,方法中的字符串進行簡單的Base64加密。
再后續的版本中,隱藏方式又有所加深,將方法名稱及字符串都保存在配置文件里。
1.3 核心代碼的隱藏
道有道廣告SDK的核心功能都是依靠動態加載的dex文件來實現,這也是躲避殺軟靜態特征掃描的一種手段。其主要采用本地文件釋放和代碼運行釋放兩種手段隱藏其核心代碼。
解析assets目錄下的資源文件,得到加載的dex文件。
將dex文件的二進制編碼到代碼中,在代碼運行過程中解碼釋放。
**2.1 URL變化***|
從動態角度,我們以時間軸和不同顏色的方式來展示其廣告聯網的URL變化情況。
api
”開頭,不同時間段后面分別是 “is”、“cp”、“info
”;jsp
”結尾,并且從“init
”、“in
”和“i1n2i3t4
”能夠看出有明顯的對抗變化;is
”變為“nis
”,從“_b
”變為“_tgb
”;api
”變為“ai
”;wa.*/bb
”變為“ai.wa.*/ia
”;以上這些URL的變化,都是在對抗沙箱等動態檢測技術。
移動廣告市場的快速增長導致國內涌現出上百家移動廣告平臺,他們主要依靠在移動應用中集成廣告SDK,收取廣告主的展示費來盈利。3.15曝光的移動廣告平臺問題,僅僅是冰上一角,這些廣告平臺大小不一,良莠不齊,他們提供的廣告SDK沒有統一的行業標準,給移動安全帶來了一定的風險和隱患。
360移動安全團隊發現,開發者嵌入廣告SDK需要的開發門檻極低,甚至有些廣告廠商為了方便開發者嵌入自家平臺的廣告,提供了廣告打包器,只要將開發的應用通過打包器,就可以制作出嵌有該平臺廣告的應用。
極低的二次打包成本在一定程度上助漲了盜版軟件的滋生。在360發布的《2015年Android手機應用盜版情況調研報告》【3】中指出,平均每款正版APP對應92.7個盜版。
廣告廠商借助移動應用平臺進行廣告投放,有責任對自身推廣的軟件安全性進行嚴格審查,避免廣告推廣給手機用戶帶來的不必要話費、流量損失。
我們建議用戶在選擇應用下載途徑時,應該盡量選擇大型可信站點,如360手機助手、各軟件官網等。同時,安裝360手機衛士定期查殺。