天天看點

警惕!國内某廣告SDK内置“後門”功能,Google Play商店已強制下架

本文講的是<b>警惕!國内某廣告SDK内置“後門”功能,Google Play商店已強制下架</b>,

警惕!國内某廣告SDK内置“後門”功能,Google Play商店已強制下架

新聞摘要

Lookout安全團隊近日發現了個信的廣告軟體開發工具包(SDK),可以通過下載下傳惡意插件,借助其他合法app對使用者實施監控。 目前Google Play上有500多種app使用了個信廣告SDK。雖然目前還不敢确認這500多種app都受到了感染,但有一點可以确認,隻要個信願意,随時就可以把它們變為監控軟體,目前受影響的app下載下傳量已超過1億。

監控行為分析

目前許多新出現的惡意軟體開發者都會選擇通過向官方應用商店送出無害的app來嘗試逃避檢測,等成功上傳之後,然後通過遠端伺服器下載下傳惡意代碼。 

不過通過Lookout安全團隊地分析,個信廣告SDK的開發人員本身并沒有進行建立惡意功能的意圖,也沒有預料到目前會發生惡意有效載荷的執行。目前可以确定,這個惡意有效載荷執行功能來自于由個信控制的伺服器。

受影響的app:

針對青少年的遊戲app(下載下傳量為5000萬至1億次)

天氣app(下載下傳量為100萬至500萬次)

網際網路廣播(下載下傳量為50萬至100萬次)

照片編輯器(下載下傳量為100萬至500萬次)

除此之外,還有教育,健康和健身,旅遊,表情符号,家庭錄影機app等都受到了影響。

目前,Lookout使用者已經對此威脅進行了預防,并向Google通報了該威脅。目前, Google以将這些app從商店中删除或将其進行了更新。

惡意執行過程還原

通常,移動app都會使用廣告SDK,以便app開發人員輕松利用廣告網絡宣傳自己産品。像許多廣告網絡一樣,個信的廣告服務服務非常具有針對性,但要做到這一點,就要收集使用者的興趣,職業,收入和位置資料。

警惕!國内某廣告SDK内置“後門”功能,Google Play商店已強制下架

至于Lookout研究人員為什麼會發現其中的問題,這還要從他們日常進行的可疑流量調查說起,作為與以前提供惡意軟體的某些IP和伺服器通信的app的正常審查的一部分。個信SDK本身的流量并未出現異常,因為許多惡意軟體由于各種原因會生成合法服務的流量。

在http://sdk[.]open[.]phone[.]igexin.com/api.php(它是一個使用的端點)對REST API進行一系列初始請求後,研究人員觀察到一個app下載下傳了大量的加密檔案。

這種流量通常是惡意軟體在安裝最初的合法app後下載下傳并執行代碼的結果,目的就是為了避免被檢測到。加密的檔案下載下傳和com.igexin namespace中的調用會存儲到Android的dalvik.system.DexClassLoader(用于從.jar或.apk檔案加載類),這就保證了惡意軟體的隐藏是多麼深入,隻有通過有效載荷才能發現隐藏的痕迹。

警惕!國内某廣告SDK内置“後門”功能,Google Play商店已強制下架

以前在Google Play上受感染的應用示例,目前已無法使用。

收集個人資料使用者依賴于app的權限;移動安全解決方案和隐私政策,安全公司會這些條件來評估app收集的個人資料是否合理。例如,社交app的位置分享肯定是合法的,但如果在其它不需要使用位置資訊的應用中使用位置消息,就要進行商榷了。

應用開發者最終負責在應用隐私政策中披露應用收集的所有個人資訊。開發人員還負責審查嵌入式第三方代碼,并披露隐私政策中所有嵌入式第三方代碼的資料收集功能。

但許多app開發人員不知道嵌入個信的廣告SDK可能會從客戶的裝置中洩露個人資訊。而發現這一漏洞,就需要對app和廣告SDK進行深入分析。否則,該功能不僅難以被發現,而且随時可從遠端伺服器中被更改。。

SDK功能

其實,并非所有版本的個信廣告SDK都提供惡意功能。惡意版本要實作一個插件架構,就必須允許用戶端加載任意代碼,如針對托管在http://sdk[.]open[.]phone[.]igexin.com/api.php上的REST API端點發送請求得到的響應。

對這個端點的請求和響應都是編碼的JSON資料,以下是該API的解碼響應,會訓示用戶端在兩個加密的JAR檔案中下載下傳并運作代碼:

警惕!國内某廣告SDK内置“後門”功能,Google Play商店已強制下架

這些響應消息中的相關字段是:

警惕!國内某廣告SDK内置“後門”功能,Google Play商店已強制下架

在從伺服器接收到響應後,SDK将使用API調用提供的密鑰對檔案進行解密,并将其儲存在裝置上。然後它利用Android的dalvik.system.DexClassLoader和映像來從JAR檔案加載指定的類:

警惕!國内某廣告SDK内置“後門”功能,Google Play商店已強制下架

所有的插件都包含實作com.igexin.push.extension.stub.IPushExtension界面的一個類,該界面定義了一個boolean init(Context)方法,而該方法則被調用來初始化插件。

要注意的是,所有API流量都被編碼(未加密),并以純文字形式發送和接收。

插件功能下載下傳的類中包含的功能在運作時完全處于遠端伺服器控制之下,并且可以根據攻擊需要随時進行功能更新。遠端API請求發出後,使用者和app開發人員就無法控制在裝置上執行的操作了。

Android權限系統會對運作的内容進行限制,也就是說,研究人員從這些插件中觀察到的最嚴重的行為是通過通信記錄得到。

研究人員發現,如滿足以下2個條件,則所下載下傳的大量插件都會通過init方法注冊一個PhoneStateListener:

1.存儲在内部SQLite資料庫中的設定将被啟用;

2.該app具有“android.permission.READ_PHONE_STATE”權限。

滿足以上條件,PhoneStateListener将儲存:

1.通話時間

2.電話号碼

3.呼叫狀态(空閑、響鈴、占線)

警惕!國内某廣告SDK内置“後門”功能,Google Play商店已強制下架

該資料定期被發送到HTTP請求體中的http://sdk[.]open[.]phone[.]igexin[.]com/api.php端點,消息在解碼時将采用以下格式:

警惕!國内某廣告SDK内置“後門”功能,Google Play商店已強制下架

如果以Base64解碼BIData,就能看到通過PhoneStateListener收集到的資料格式是管道分隔記錄:

警惕!國内某廣告SDK内置“後門”功能,Google Play商店已強制下架

字段四是呼叫的時間,字段六是呼叫狀态,第五個字段包含Base64編碼和RC4加密的電話号碼。第二個字段包含用于XOR加密的一部分密鑰(另一部分在app中是寫死的)。

使用該密鑰,研究人員可以将s6GYbkAUkOQPwK4P字元串解密為實際的電話号碼。

原文釋出時間為:2017年8月24日

本文作者:xiaohui

本文來自雲栖社群合作夥伴嘶吼,了解相關資訊可以關注嘶吼網站。

<a href="http://www.4hou.com/info/observation/7372.html" target="_blank">原文連結</a>

繼續閱讀