當失控的預裝行為以非正當手段伸向行貨機時_北京鼎開預裝刷機資料統計apk(rom固化版)分析
作者:395B5B28E44BAAE80F68968A88ADC6CAD702851B
0x00 背景
本報告僅代表個人觀點,與所在公司、所屬團隊、所在職務無關。因考慮人身安全,本節選由wooyun知識庫代為匿名釋出;全文待諮詢相關人士後再決定是否公佈。
2013年8月,在一大型電商網購聯想A820t(屬移動定製機型號)行貨後,發現預裝應用出現了異常:按道理,該機器本應有可解除安裝的移動預裝應用,但實際上並沒有,而多出了許多無法解除安裝的其它應用。經過技術分析,發現和鼎開存在關聯。在接下來的數週內,連續或零散進行了實體店和網路調查,並形成了約50頁報告並持續反饋給CNVD。
2013年9月後,該事件連同報告移交由CNCERT和CNVD處置;2014-2-14,ANVA進行初步處置披露(http://www.anva.org.cn/webInfo/show/1181);2014-3-15,央視315晚會進行了部分曝光。本文為本報告的技術部分和普通使用者處理方法節選。
本報告致謝如下人員:CNCERT、CNVD 相關工作人員;dex2jar、apktool、jdgui作者;大型城市公共交通系統(地鐵、巴士、縣際班車等);手機實體店員工;其它在網路上進行相關主題討論和問題諮詢的網友。
本報告不希望成為新一輪口水戰的起點,更希望成為每個參與網際網路事業的人員反思自身的一個驛站——在這場搶佔移動網際網路使用者和入口的大戰中,每個人都有罪過。
0x01 應用名稱、版本、許可權演化歷史、渠道區分
com.android.tunkoo.scan一般被放置於/system/app/目錄下,故而這類被惡意刷機的的行貨無法對其解除安裝。其名稱具有偽裝性,目前已經發現兩個。
應用名稱 | 版本號 | 檔案sha1值 |
---|---|---|
SystemScan | 1.1 | 1485f3944756655ff23361ee7f4ab0ace9f110c1 |
SystemServer | 1.2 | 43cc56679117fcc58d1b1f2515ff163f26301026 |
表:com.android.tunkoo.scan版本歷史
這兩個版本的apk均以“DINGKAI.RSA”簽名, openssl列印資訊均一樣。以簽名頒發者“beijing dingkai”為關鍵詞搜尋,初步認為是北京鼎開聯合資訊科技有限公司。
兩者所申請的許可權如下,其中 “SystemServer”作為高版本,比“SystemScan”多申請了聯絡人和簡訊讀取許可權。從Android 3.1開始,應用要接收Android廣播(比如開機自動啟動),必須要讓使用者至少執行一次,並且沒有在設定中“強制停止”;但com.android.tunkoo.scan被放置於/system/app,因此即使沒有入口讓使用者啟動過,也可以無視該規定,作為系統應用自動開機執行。
表:com.android.tunkoo.scan所申請的許可權列表和演化
為了區分不同的刷機渠道,每個com.android.tunkoo.scan中的AndroidManifest.xml中,使用友盟SDK的UMENG_CHANNEL欄位定義了刷機ROM標識字串,同時還有一個SHOP_ID欄位標識推廣渠道id。
圖:兩個樣本的AndroidManifest.xml值
0x02 上報分析
概述
com.android.tunkoo.scan除了使用友盟SDK作簡單渠道統計外,還有一套自己的上報機制,主要目的是持續監測使用者行為並進行上報。為了逃避快速沙箱檢測,com.android.tunkoo.scan組合使用定時器(Alarm)、廣播(Broadcast)和服務(Service)機制,對監測行為進行了延後或輪訓;為了阻止手工快速分析,這些上報資訊在手機儲存和傳送到伺服器中,均運用了不同的對稱加密方法和金鑰。
透過對傳送加密前的日誌進行分析,相關的上報內容被分成三大類發往不同的統計介面。
第一類為手機基礎資訊上報,上報時機為插入SIM卡且每次連線網路。上報內容有:
A. 手機硬體資訊:手機型號、手機WIFI MAC地址
B. 運營商識別資訊:IMEI、IMSI(若有插入SIM卡)、手機號碼
C. 手機軟體基礎資訊:安卓版本號、root情況
D. 手機軟體列表資訊:已安裝應用列表
E. 鼎開刷機標識:ROMID、shop_id、device_IOS
第二類為使用者使用行為資訊上報,上報時機為每次連線網路、或手機開機兩小時後每兩小時。上報內容有:
A. 運營商識別資訊:運營商資訊
B. 手機上網執行資訊:上網型別、歷史上網ip
C. 手機軟體執行資訊:正在執行的應用列表、曾經連線過網路的應用和流量
D. 手機軟體其它資訊:安裝解除安裝應用歷史
E. 定位資訊:透過網路定位獲取使用者的地理座標
第三類僅存在於“SystemServer”,為特定資訊挖掘上報,上報時機為每次連線網路、或手機開機兩小時後每兩小時。上報內容有:
A. 15個簡訊關鍵詞命中計數
B. 11個聯絡人關鍵詞命中計數
C. 手機QQ應用資訊:使用該手機登入過的QQ號、所有QQ聯絡人的頭像圖片檔名、所有QQ群的頭像圖片檔名
以下詳細講解其上報時機、格式和運作機制。
手機基礎資訊上報
這是預裝統計最基礎的內容上報,依據各種條件判斷,上報到以下url中的其中一個:
http://x.xxxx.com/api.aspx?t=1 (“SystemScan”、“SystemServer”)
http://xxxxxxx.xxxx.com/?p=daoda3 (“SystemServer”)
http://x.xxxx.com/api.aspx?t=6 (“SystemScan”)
http://xxxx.xxxx.com/rec.aspx?t=0&iszip=false (SystemScan,SystemServer)
一條完整的上報統計格式如下:
ROMID={ROMID}||device_IOS={device_IOS}||device_IMEI={device_IMEI}||MAC={MAC}||os_Version={ os_Version }||shop_id={ shop_id }||device_IMSI={device_IMSI}||device_Model={device_Model}||device_Number={device_Number}||device_app_list={device_app_list}||nettype={nettype}||isrooted={isrooted}||postdataindex={postdataindex}||allsendindex={ allsendindex}||TIME1={TIME1}||TIME2={TIME2}||TIME3={TIME3}||
表:手機基礎資訊上報欄位名含義和示例值
主要的上報邏輯有:
1. 在開機後,週期性檢測手機是否插入SIM卡(TelephonyManager.getSimState() != SIM_STATE_ABSENT)。如果條件不成立,則潛伏不執行(即使存在wifi連線)。
2. 插入SIM卡後,如果發現有網路連線(GPRS/WiFi等),並且距離上一次傳送已經超過10分鐘,則在連線後傳送一個統計心跳維持包。該心跳包僅包含ROMID、IMEI、MAC三個欄位資訊,其餘欄位均賦值為null。一個日誌資訊如下(敏感資訊已用示例值替代):
3. 如果期間有安裝或者解除安裝過應用,會在下一次連線上網路後傳送完整統計包,此時心跳包內所有null值均被替換為完整資訊。此處上報的手機個人敏感資訊最為詳細。一個日誌資訊如下(敏感資訊已用示例值替代):
4. 如果週期內統計傳送失敗,會延長時間重試3次,延長時間分別為2分鐘、20分鐘、2小時。
使用者使用行為資訊上報
這是持續跟蹤使用者使用行為並進行上報的機制。依據不同版本,上報到以下url中的其中一個:
http://xxxxxxx.xxxx.com/?p=caiji3(“SystemServer”)
http://x.xxxx.com/api.aspx?t=3(“SystemScan”)
當使用者點選連線網路(GPRS/WiFi)、或手機開機兩小時後每兩小時,都會進行一次這樣的上報。如果上報失敗,會將待上報的內容,以數字編號檔案形式存入“/data/data/com.android.tunkoo.scan/files/s
”目錄,並在後續邏輯中按檔案順序重新上報。故如果使用者頻繁開關機、或者長時間待機,會在此目錄積累大量的待上報內容。
圖: 使用者使用行為上報資訊快取檔案
一條上報統計示例如下,根據上報時間時採集到不同的使用者行為,會有所變化:
TIME=2013-09-20 18:27:05||IOS=com.android.tunkoo.scan_3_8c81a411||IMEI=477777777777777||IMSI=83333333333333333333||SHOPID=8798||ROMID=8798_201308111529_471.0||MAC=00:0d:08:07:c6:a5||MODEL=Lenovo A820t||IP=172.0.0.1||LA=0||LO=0||APPUSE=com.speedsoftware.rootexplorer,d2481498,2013-09-20 18:25:53,2013-09-20 18:26:26&&||APPFLOW=||NETTYPE=,WIFI,net,2013-09-20 18:25:51,2013-09-20 18:26:26&&||APPINSTALL=||IP=172.0.0.1,2013-09-20 18:25:51&&||
表:使用者使用行為上報欄位名含義和示例值
由於每種使用者行為的頻率不一樣,故部分引數的行為採集頻率(定時器設定間隔)、儲存位置並不一致。
表:使用者使用行為上報部分欄位名的採集頻率、目的和存放位置
特定資訊挖掘上報(僅存在於SystemServer)
這是“SystemServer”新增的資訊上報類別,為此該版本新增請求許可權“android.permission.READ_CONTACTS”(讀取聯絡人)和“android.permission.READ_SMS”(讀取簡訊)。當使用者點選連線網路(GPRS/WiFi)、或手機開機兩小時後每兩小時,都會進行一次上報檢測,若檢測到兩次上報之間大於5小時,則向http://xxxxxxx.xxxx.com/?p=xincaiji3 進行一次上報。
一條上報統計示例如下:
IMEI=477777777777777||MAC=00:0d:08:07:c6:a5||MODEL=Lenovo A820t||Contact=1,0,0,0,0,0,0,0,0,0,0,||MSGSend=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,||MSGRec=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,||NumberFoldList=555555,||_HDList=AEEE,BEEE,||_THDList=KEEE,LEEE,
表:特定資訊挖掘上報欄位名含義和示例值
該上報有兩個關鍵要點:
該上報涉及讀取手機聯絡人和簡訊這兩個強隱私資訊,但只是進行關鍵詞計數上報,而沒有上報具體內容。
其中對聯絡人列表進行掃描時,使用11個關鍵詞進行包含匹配測試並計數:“老婆、寶貝、孩子、女兒、兒子、老公、老爸、老媽、爸爸、媽媽、老師”。 比如說,如果Contact上報的內容為“1,0,0,0,0,0,0,0,0,0,0,”,則表示所有聯絡人中,有1個號碼的聯絡人名稱包含“老婆”這個詞,其它關鍵詞均沒有命中。 而對傳送簡訊和接收簡訊的掃描中,除了上面11個聯絡人關鍵詞之外,還新增了4個關鍵詞專門匹配簡訊內容:“先生、女士、消費、還款”。 比如說,如果MSGRec上報的內容為“0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,”,則表示自上次上報新接收的簡訊中,有3條簡訊內容包含“先生”這個詞,其它關鍵詞均沒有命中。
該上報非常關注手機QQ軟體在sdcard的目錄資訊。
由於手機QQ執行時的檔案較多,難以放到/data對應的應用目錄下,故這些檔案都放到了sdcard目錄下。但sdcard目錄允許被任何應用讀取,故導致可被“SystemServer”掃描相關目錄並上報。猜測這個目的是為了嘗試收集該手機使用者的QQ使用習慣和使用者喜好。
圖:“SystemServer”掃描手機QQ目錄獲取所有登入過的QQ號
圖:“SystemServer”掃描手機QQ的聯絡人頭像快取檔名列表
圖:“SystemServer”掃描手機QQ的群頭像快取檔名列表
0x03 危害和查殺情況
com.android.tunkoo.scan的危害主要在於持續監測和上報,洩露了使用者各種隱私資訊和行為。在這個過程中由於大量使用定時器掃描和進行網路連線,故會持續消耗電量和網路流量;特別的,如果沒有申請運營商流量套餐又誤用GPRS上網,將會出現扣費問題。另外在某些情況下,可能會由於大量的掃描,引起系統緩慢和失去響應。
圖:百度知道中有關“SystemScan”流量問題的提問
對com.android.tunkoo.scan的查殺情況,則進行了兩次驗證。第二次驗證為2013-9,在測試機上進行了“SystemServer”(原版apk)查殺測試,仍然無法檢出。截圖從左到右:騰訊手機管家(病毒庫20130922B)、金山毒霸(庫檔案版本2013.9.12.1947 + 啟發掃描)、LBE(病毒庫20130918.f)、360(病毒庫20130922B)。此處對手機毒霸有個疑問,那就是無論掃描結果中的“耗電軟體”(後臺自啟動應用列表)、還是應用行為管理,均找不到“SystemServer”應用可供管理或禁用。
圖:2013-9在測試機上對“SystemServer”的查殺情況
0x04 鼎開的行貨刷機手段
鼎開的惡意刷機,是在/system/vendor/operator/app/內的應用全部刪除(此目錄下的定製應用可被使用者解除安裝),再在/system/app內放入無法解除安裝的應用。
圖:聯想A820t惡意刷機前後/system/vendor/operator/app/目錄對比。左:S115廠商包;右:問題手機
圖:高階手機預裝聯盟服務流程
在新浪微博搜尋中,以“鼎開 刷機”進行搜尋的結果顯示,鼎開似乎成為了行貨刷機的公開幕後渠道,日刷機量至少5萬,其最初的主要目標是三星行貨(但後來也許也兼營其它品牌,比如聯想),並且可能有大型網際網路公司的參與。而這些資訊,至少從去年底就開始存在,但並沒有引起很大的反響。
圖:微博上搜尋“鼎開 刷機”資訊
根據百度搜尋的結果,鼎開至少從2012年開始,在智聯招聘、趕集網、58同城等網站釋出不同地區的招聘資訊,比如廣東深圳的rom編輯人員(2013-08-22),還有河南鄭州(2012-05-29)、河北石家莊(2013-08-22)、廣東深圳(2013-08-05)等地的安卓系統刷機操作專員,其中明顯提到,刷機的操作流程需要有“拆包-封包”等破壞和偽造行貨包裝完整性的行為。
圖:鼎開在石家莊招聘安卓系統刷機操作專員,其中提到的刷機流程
根據遊戲葡萄的文章,除了鼎開之外還有其它的刷機公司,分佈在不同的品牌和價位;至於刷機方法,已有一整套成熟的自動化工具。
圖:刷機公司的工具
綜合以上資訊,可以看到失控的預裝行為,早已經以非正當的方式,伸向了已漸趨理性、並且消費者一貫信賴的行貨機。而從鼎開的合作模式和刷機操作來看,可以肯定渠道出現問題的可能性極大——有某些渠道商非法聯合刷機商,私自拆開行貨包裝重刷一遍,刷完後用行貨的封條縫合,外觀上沒看出動過,以此欺騙下游渠道商和終端使用者。這樣的行為已經明顯損害了購買行貨的消費者權益。
0x05 基於網路和實體店的感染情況與分佈調查
為了摸清楚受鼎開刷機所影響的範圍和分佈情況,從2013年8月開始,針對城鄉結合部區域進行了持續一週的實體店調查,在後續的週末中,也斷續進行零散調查;同時在這個過程中,針對性進行網路搜尋。
調查的結果如下:
1. 無論線上電商購買還是線下實體店購買,都有可能購買到被鼎開或其他刷機商惡意刷機的聯想或三星行貨。
2. 網路購物中,幾乎所有知名電商,都或多或少存在以“行貨正品”的形式銷售被刷機手機。
3. 實體店調查中,有銷售鼎開刷機的手機店,其區域分佈廣泛,且發現存在其它形式(非鼎開)的刷機。
4. 每部被惡意刷機的預裝應用列表,隨刷機時間、手機型號和推廣渠道的不同而不同。這其中確實有大型網際網路公司參與其中。
5. 如果一部運營商定製型號行貨被刷機,不明就裡的消費者會更大機率怪罪運營商、手機制造商,而不是真正的刷機商。
0x06 普通使用者的解決方法
為了讓使用者確定自己是否遭受鼎開刷機,作者開發了一個“應用安裝資訊報告”(com.example.forensics.systemapp)。該應用可安裝在Android 2.2及以上機器,在進入應用後點選“收集…”按鈕並稍候。如果結果中出現“[重要提示!]發現疑似鼎開刷機的證據”、並且下面列出的安裝包中出現“com.android.tunkoo.scan”或者“com.easyandroid.widgets”等(暫不判斷是否為系統應用),那麼恭喜你,很大機率中招了……
圖:“應用安裝資訊報告”執行結果
表:“應用安裝資訊報告”的結果資料夾含義
中招的解決之道,簡單的方法是在設定中停用“SystemScan”或者“SystemServer”;但唯一最徹底的方法是重新刷機,如果對刷機不熟悉,最好帶上發票,直接找當地的售後服務網點進行。即便自己懂得刷機,也需要做好個人資料(比如手機通訊錄、簡訊等)的備份,同時也要承擔操作失誤而變磚、或者因為root/刷機計數增加等而失去保修的風險。另外:
1. 如果手機是MTK晶片的話,會容易出現因為MTK手機晶片特性而導致刷機後丟失IMEI號、手機SN號、wifi mac地址、藍芽mac地址等這些手機唯一特徵值的問題,從而引發系統問題,故建議使用紙筆或電子檔案備份好以上手機唯一特徵值。
2. 三星安卓手機會檢查手機是否在官方行貨狀態,包括是否沒有 root、是否為官方 recovery 等。一旦發現不符合條件,系統狀態將會從“官方”變成“定製”狀態。這種改變的結果,會導致失去保修資格。另外, 三星安卓手機存在一個刷機計數器(ODIN 刷機介面中的“CUSTOM BINARY DOWNLOAD”), 當使用者自行刷機時,計數器加 1並在開機介面顯示黃色感嘆號告警,這樣的結果同樣是失去質保。
在刷機之外,消費者也可以積極做好和最終購買渠道的售後溝通和投訴,如有必要,也可考慮向手機制造商舉報這個購買渠道存在問題。
對於還沒有購買手機的使用者而言,如果無法承受網購所帶來的風險,那麼去實體店購買的時候,一定要到當地知名的正規連鎖店購買,並且仔細考察店內各種展示機裡面的應用列表,如發現存在有疑問的應用,應及時諮詢;在購買時,仔細檢驗包裝,開機後檢查應用列表是否有問題,並提防基於門店的渠道安裝。當然比起網購,實體店由於種種原因,價格會比較貴——尤其是一款有一段上市時間的手機,此時網上的價格會比實體零售店的價格差距,很有可能會拉得非常大。
如果對自己網購能力有信任,那麼請務必不要貪圖小便宜,同時認真看網購評價,尤其是中差評,有可能會看出一些端倪。
0x07 附錄:關於利用刷機方式植入“手機預裝馬” 進行使用者資訊竊取的情況通報(2014-2-14)(節選)
透過對該手機預裝馬進行持續監測,截至2014年1月CNCERT發現全國範圍內感染該手機預裝馬的使用者數達2167148個。感染使用者按照區域分佈和運營商分佈情況分別如圖2和圖3所示。
圖2 感染“手機預裝馬”使用者按照區域分佈情況
圖3 感染“手機預裝馬”使用者按照運營商分佈情況
目前,CNCERT已協調域名註冊商中國萬網對“手機預裝馬”所用於採集使用者資訊的3個伺服器域名x.xxxx.com,xxxxxxxxxx.xxxx.com,xxxxxx.xxxx.com進行停止解析處理,並協調電信增值企業網宿科技對伺服器所使用的IP地址進行停止接入處理。
由於“手機預裝馬”在執行時具有明顯特徵,安卓手機使用者可透過檢查當前手機程式資訊中是否含有名為“com.android.tunkoo.scan”的“SystemScan”程式,如果含有該程式則說明手機中已被植入“手機預裝馬”,使用者須及時解除安裝“SystemScan”應用。
圖4 “手機預裝馬”所執行的惡意程式資訊
同時使用者可以透過由CNCERT負責日常運營的中國反網路病毒聯盟ANVA(www.anva.org.cn)[email protected],[email protected]資訊,以便CNCERT開展處置工作。
檢測APK:com.example.forensics.systemapp.zip
相關文章
- 影馳獻禮開學季,購卡裝機正當時!2019-08-28
- 安裝w10系統會當機怎麼辦_安裝w10系統總當機修復方法2020-06-13
- JVM當機分析2024-06-10JVM
- 如何預測隨機網路的行為2024-06-24隨機
- Android機型rom下載,刷機方法2024-09-08Android
- 智慧雲解析的當機切換是如何實現的?如何有效預防伺服器當機?2022-10-12伺服器
- 『預計2020年全球智慧手機出貨量將比預期減少10%』今日資料行業日報(2020.03.04)2020-03-04行業
- 喜迎虎年|開源正當時!2022-02-04
- 今日資料行業日報(2020.09.24)『預計2020年華為智慧手機出貨下降10%至1.7億部』2020-09-24行業
- 微軟開始推送Win10快速預覽版19559系統更新:修復綠屏當機Bug2020-02-07微軟Win10
- win10系統開機後不執行任何程式會當機如何解決2020-03-13Win10
- w10裝軟體後當機怎麼辦_win10裝軟體老是當機修復方法2020-07-01Win10
- 解Bug之路-記一次對端機器當機後的tcp行為2020-09-21TCP
- 今日資料行業日報(2021.02.20)『預計2021年華為手機出貨量7000萬臺 同比下滑62%』2021-02-20行業
- 印刷機械行業裝置遠端監控及故障預警診斷系統2020-12-24行業
- 小米不再允許行貨和國際版互刷ROM:21款產品在列2018-09-29
- 智慧資料時代,機器資料分析五大趨勢預測2019-02-14
- App資料分析小心預載入機制2021-07-23APP
- 開展網路行為風險分析的五種手段2022-03-28
- 今日資料行業日報(2020.06.15)『預計2020年全球智慧手機出貨量為12億部 同比下滑11.9%』2020-06-15行業
- vue中當資料為空時的處理2018-10-30Vue
- Java 虛擬機器中的執行時資料區分析2020-04-26Java虛擬機
- 上篇 | 使用 ? Transformers 進行機率時間序列預測2023-02-22ORM
- 下篇 | 使用 ? Transformers 進行機率時間序列預測2023-02-22ORM
- 一次ODA當機分析2021-05-06
- 通用資料湖倉一體架構正當時2024-04-21架構
- SpringBoot程式預裝載資料2022-04-28Spring Boot
- 物聯網中的預測分析:當IoTDA遇上ModelArts2024-04-09
- ADAMoracle預言機為你的資料安全護航2021-10-10Oracle
- windows 開機執行 springboot 專案/安裝為 windows 的服務2019-02-08WindowsSpring Boot
- windows10系統執行steam出現當機的解決方法2018-10-02Windows
- 統計中進行預測的方法2018-08-05
- 品牌出海正當時,行雲集團搭建品牌出海高速通道2021-12-24
- vb6 access資料庫當機2020-10-15資料庫
- 獲取當前修改的行記錄資料2019-07-23
- 各位 PHPer,Serverless 正當時2022-01-20PHPServer
- 『預計2019年華為手機銷量或2.15–2.25億部』今日資料行業日報(2019.06.14)2019-06-14行業
- 『預計2019年全球資料相機出貨量約1500萬部 同比下降20%』今日資料行業日報(2019.12.31)2019-12-31行業