<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tips/1169

            作者: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,因此即使沒有入口讓用戶啟動過,也可以無視該規定,作為系統應用自動開機運行。

            enter image description here

            表:com.android.tunkoo.scan所申請的權限列表和演化

            為了區分不同的刷機渠道,每個com.android.tunkoo.scan中的AndroidManifest.xml中,使用友盟SDK的UMENG_CHANNEL字段定義了刷機ROM標識字符串,同時還有一個SHOP_ID字段標識推廣渠道id。

            enter image description here

            圖:兩個樣本的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}||
            

            enter image description here

            表:手機基礎信息上報字段名含義和示例值

            主要的上報邏輯有:

            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”目錄,并在后續邏輯中按文件順序重新上報。故如果用戶頻繁開關機、或者長時間待機,會在此目錄積累大量的待上報內容。

            enter image description here

            圖: 用戶使用行為上報信息緩存文件

            一條上報統計示例如下,根據上報時間時采集到不同的用戶行為,會有所變化:

            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&&||
            

            enter image description here

            表:用戶使用行為上報字段名含義和示例值

            由于每種用戶行為的頻率不一樣,故部分參數的行為采集頻率(定時器設置間隔)、存儲位置并不一致。

            enter image description here

            表:用戶使用行為上報部分字段名的采集頻率、目的和存放位置

            特定信息挖掘上報(僅存在于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,
            

            enter image description here

            表:特定信息挖掘上報字段名含義和示例值

            該上報有兩個關鍵要點:

            1. 該上報涉及讀取手機聯系人和短信這兩個強隱私信息,但只是進行關鍵詞計數上報,而沒有上報具體內容。

              其中對聯系人列表進行掃描時,使用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條短信內容包含“先生”這個詞,其它關鍵詞均沒有命中。

            2. 該上報非常關注手機QQ軟件在sdcard的目錄信息。

            由于手機QQ運行時的文件較多,難以放到/data對應的應用目錄下,故這些文件都放到了sdcard目錄下。但sdcard目錄允許被任何應用讀取,故導致可被“SystemServer”掃描相關目錄并上報。猜測這個目的是為了嘗試收集該手機用戶的QQ使用習慣和用戶喜好。

            enter image description here

            圖:“SystemServer”掃描手機QQ目錄獲取所有登錄過的QQ號

            enter image description here

            圖:“SystemServer”掃描手機QQ的聯系人頭像緩存文件名列表

            enter image description here

            圖:“SystemServer”掃描手機QQ的群頭像緩存文件名列表

            0x03 危害和查殺情況


            com.android.tunkoo.scan的危害主要在于持續監測和上報,泄露了用戶各種隱私信息和行為。在這個過程中由于大量使用定時器掃描和進行網絡連接,故會持續消耗電量和網絡流量;特別的,如果沒有申請運營商流量套餐又誤用GPRS上網,將會出現扣費問題。另外在某些情況下,可能會由于大量的掃描,引起系統緩慢和失去響應。

            enter image description here

            圖:百度知道中有關“SystemScan”流量問題的提問

            對com.android.tunkoo.scan的查殺情況,則進行了兩次驗證。第二次驗證為2013-9,在測試機上進行了“SystemServer”(原版apk)查殺測試,仍然無法檢出。截圖從左到右:騰訊手機管家(病毒庫20130922B)、金山毒霸(庫文件版本2013.9.12.1947 + 啟發掃描)、LBE(病毒庫20130918.f)、360(病毒庫20130922B)。此處對手機毒霸有個疑問,那就是無論掃描結果中的“耗電軟件”(后臺自啟動應用列表)、還是應用行為管理,均找不到“SystemServer”應用可供管理或禁用。

            enter image description here

            圖:2013-9在測試機上對“SystemServer”的查殺情況

            0x04 鼎開的行貨刷機手段


            鼎開的惡意刷機,是在/system/vendor/operator/app/內的應用全部刪除(此目錄下的定制應用可被用戶卸載),再在/system/app內放入無法卸載的應用。

            enter image description here

            圖:聯想A820t惡意刷機前后/system/vendor/operator/app/目錄對比。左:S115廠商包;右:問題手機

            enter image description here

            圖:高端手機預裝聯盟服務流程

            在新浪微博搜索中,以“鼎開 刷機”進行搜索的結果顯示,鼎開似乎成為了行貨刷機的公開幕后渠道,日刷機量至少5萬,其最初的主要目標是三星行貨(但后來也許也兼營其它品牌,比如聯想),并且可能有大型互聯網公司的參與。而這些信息,至少從去年底就開始存在,但并沒有引起很大的反響。

            enter image description here

            enter image description here

            enter image description here

            圖:微博上搜索“鼎開 刷機”信息

            根據百度搜索的結果,鼎開至少從2012年開始,在智聯招聘、趕集網、58同城等網站發布不同地區的招聘信息,比如廣東深圳的rom編輯人員(2013-08-22),還有河南鄭州(2012-05-29)、河北石家莊(2013-08-22)、廣東深圳(2013-08-05)等地的安卓系統刷機操作專員,其中明顯提到,刷機的操作流程需要有“拆包-封包”等破壞和偽造行貨包裝完整性的行為。

            enter image description here

            圖:鼎開在石家莊招聘安卓系統刷機操作專員,其中提到的刷機流程

            根據游戲葡萄的文章,除了鼎開之外還有其它的刷機公司,分布在不同的品牌和價位;至于刷機方法,已有一整套成熟的自動化工具。

            enter image description here

            圖:刷機公司的工具

            綜合以上信息,可以看到失控的預裝行為,早已經以非正當的方式,伸向了已漸趨理性、并且消費者一貫信賴的行貨機。而從鼎開的合作模式和刷機操作來看,可以肯定渠道出現問題的可能性極大——有某些渠道商非法聯合刷機商,私自拆開行貨包裝重刷一遍,刷完后用行貨的封條縫合,外觀上沒看出動過,以此欺騙下游渠道商和最終用戶。這樣的行為已經明顯損害了購買行貨的消費者權益。

            0x05 基于網絡和實體店的感染情況與分布調查


            為了摸清楚受鼎開刷機所影響的范圍和分布情況,從2013年8月開始,針對城鄉結合部區域進行了持續一周的實體店調查,在后續的周末中,也斷續進行零散調查;同時在這個過程中,針對性進行網絡搜索。

            調查的結果如下:

            1. 無論線上電商購買還是線下實體店購買,都有可能購買到被鼎開或其他刷機商惡意刷機的聯想或三星行貨。
            2. 網絡購物中,幾乎所有知名電商,都或多或少存在以“行貨正品”的形式銷售被刷機手機。
            3. 實體店調查中,有銷售鼎開刷機的手機店,其區域分布廣泛,且發現存在其它形式(非鼎開)的刷機。
            4. 每部被惡意刷機的預裝應用列表,隨刷機時間、手機型號和推廣渠道的不同而不同。這其中確實有大型互聯網公司參與其中。
            5. 如果一部運營商定制型號行貨被刷機,不明就里的消費者會更大概率怪罪運營商、手機制造商,而不是真正的刷機商。
            

            0x06 普通用戶的解決方法


            為了讓用戶確定自己是否遭受鼎開刷機,作者開發了一個“應用安裝信息報告”(com.example.forensics.systemapp)。該應用可安裝在Android 2.2及以上機器,在進入應用后點擊“收集…”按鈕并稍候。如果結果中出現“[重要提示!]發現疑似鼎開刷機的證據”、并且下面列出的安裝包中出現“com.android.tunkoo.scan”或者“com.easyandroid.widgets”等(暫不判斷是否為系統應用),那么恭喜你,很大概率中招了……

            enter image description here

            圖:“應用安裝信息報告”運行結果

            enter image description here

            表:“應用安裝信息報告”的結果文件夾含義

            中招的解決之道,簡單的方法是在設置中停用“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所示。

            enter image description here

            圖2 感染“手機預裝馬”用戶按照區域分布情況

            enter image description here

            圖3 感染“手機預裝馬”用戶按照運營商分布情況

            目前,CNCERT已協調域名注冊商中國萬網對“手機預裝馬”所用于采集用戶信息的3個服務器域名x.xxxx.com,xxxxxxxxxx.xxxx.com,xxxxxx.xxxx.com進行停止解析處理,并協調電信增值企業網宿科技對服務器所使用的IP地址進行停止接入處理。

            由于“手機預裝馬”在運行時具有明顯特征,安卓手機用戶可通過檢查當前手機進程信息中是否含有名為“com.android.tunkoo.scan”的“SystemScan”進程,如果含有該進程則說明手機中已被植入“手機預裝馬”,用戶須及時卸載“SystemScan”應用。

            enter image description here

            圖4 “手機預裝馬”所運行的惡意程序信息

            同時用戶可以通過由CNCERT負責日常運營的中國反網絡病毒聯盟ANVA(www.anva.org.cn)[email protected][email protected]?信息,以便CNCERT開展處置工作。

            檢測APK:com.example.forensics.systemapp.zip

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线