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