天天看點

小米手機藏後門可遠端安裝任意APP?真相如此驚悚嗎?

    這個鄉村愛情故事可能和今天要說的事情有點關系。

你可能已經習慣了這個場景——新手機會預裝一些app,怎麼删都删不掉。但是,手機制造商将這些app和服務安裝在你手機上是否會有特别的目的?這些預裝的應用又是否會威脅到機主的安全和隐私?  

荷蘭的一位小夥對此就頗有疑問。

他是小米4的使用者。小夥有一天發現,手機預裝了一個叫 analyticscore.apk(com.miui.analytics)的應用,會自動在背景運作。 小夥很生氣,他不喜歡未經許可收集使用者資訊的應用,是以對它進行了逆向工程,發現該應用每24小時會通路小米官方伺服器檢查更新,在發送請求時它會同時發送裝置的識别資訊,包括手機的imei、型号、mac位址、nonce、包名字和簽名。如果伺服器上有名叫analytics.apk的更新應用,它會自動下載下傳和安裝,整個過程無需使用者幹預。 如果應用安裝時沒有任何驗證,該漏洞能被黑客利用,或者小米隻需要将想要安裝的應用重命名為analytics.apk就可以将其推送給使用者,而且該裝置是通過http發送請求和接收更新,這意味着使用者很容易遭到中間人攻擊。

看樣子,一個大新聞要搞出來了!

小米手機藏後門可遠端安裝任意APP?真相如此驚悚嗎?

對此,小米的發言人表示,

analyticscore是内建在miui系統中的元件,主要用來分析資料以增強使用者體驗,比如說miui error analytics——小米的系統錯誤分析功能。 為了安全起見,miui會在軟體的安裝和更新期間檢查analytics.apk應用簽名,以確定載入的是擁有正确簽名的官方安卓軟體包。沒有官方簽名的安卓安裝包會被拒絕安裝,我們的軟體的自動更新功能都是為了更好的使用者體驗。 在今年四月到五月期間釋出的最新版本miui v7.3中,https協定能夠有效地保障資料傳輸安全,避免中間人攻擊。

究竟是怎麼回事?我們再來挖一下。

https,是以安全為目标的http通道,簡單而言,是http的安全版。即http下加入ssl層,https的安全基礎是ssl,是以加密的詳細内容就需要ssl。 它是一個uri scheme(抽象辨別符體系),用于安全的http資料傳輸。https:url表明它使用了http,但https存在不同于http的預設端口及一個加密/身份驗證層(在http與tcp之間)。

小米的老版本用的是http協定,确實埋了一個漏洞。某知名安全公司資深安全專家告訴雷鋒網(公衆号:雷鋒網)宅客頻道(微信公衆号 id:letshome),這是小米的一個預裝應用的更新機制沒有做好安全措施,24小時更新一次,期間可以被中間人劫持替換。

新版用了https協定後,就意味着“可能被劫持”這個問題被解決了嗎?

該專家表示,官方雖然說用了https更新就無法被中間人劫持了,但新版他也不确定,老版是http,24小時更新1次,場景對一般小黑客而言,要攻擊還是比較有限制,不過技術好點的黑客可以用ntp欺騙手機時間的方式攻擊,提高更新機率來劫持。

一旦發生劫持,惡意軟體就拿了一把鑰匙可以随意打開你家的門,在手機上安家落戶。

還有一個bug是,上傳裝置隐私資訊是明文。

這個問題在知乎也引起了讨論,知乎使用者 android framework認為:

小米不能背鍋。 所謂的漏洞,其實是小米開發的一個功能,會有簽名檢查一類的機制來盡量保障大家的裝置不被利用;所謂的資訊收集,我覺得其實是對小米的不信任,同樣的事情 google 在做,apple 也在做。
看到 @vczh 輪子哥關注了這個問題,正好有相關背景,回答一記。 利益相關: 米黑(小米1,小米4使用者)。 先說結論:這個鍋不能讓小米背。 很多 android 使用者很诟病的一點是國内 android 手機都沒有 gms 服務,并且稱其為“安卓”或者說是閹割版的 android。 有人說谷歌移動服務(簡稱gms,包括gtalk,gmail等)是android的精髓,沒有gms就不算真正的android,這個說法不太對,連谷歌自己都不是這麼認為的。谷歌開源的android代碼不包含任何gms應用;在谷歌内部,android和gms是兩個獨立的團隊,gms經常先推出iphone版然後才釋出android版的。 現在 google 已經越來越收緊對 android 的控制權限,aosp 中 cps(聯系人,電話,短信)應用已經萬年不更新,倒是這些子產品的 gms 版本都更新的很勤快,這不,最近連騷擾攔截這種 miui 幾乎從最初版本就有的“高大上”的功能也上線了。打個岔,聽說最近的 ios 10 也有這個功能了。 http://www.androidpolice.com/2016/07/25/googles-phone-app-now-shows-a-warning-about-spam-callers-and-makes-it-easy-to-block-and-report-them-apk-download/。 但是,有點實力的 oem 其實都不太關心這個了,因為大家要做差異化,要做使用者體驗,這些子產品當然自己開發了。比如 cps 好像是 miui 的重點,大家可以自行搜尋 11 年的舊聞 “雷軍揭秘小米:用cps重新發明手機”。 回到正題, 請問非小米的 android 使用者,你們的手機中在 /system/app 中有沒有一個 playautoinstallconfig.apk 的應用呢。(各位國産機和國行使用者就别找了,你們是肯定不會有的。因為,你們連 google 服務都沒有啊!) nexus 使用者: android.autoinstalls.config.google.nexus android.autoinstalls.config.google.fugu asus 使用者: android.autoinstalls.config.asus.pai htc 使用者: android.autoinstalls.config.htc.htc_pmeuhl-1 其他廠商的就不一一找出來列舉了。 aosp中包管理的程式是: packageinstaller.apk pkgname=com.android.packageinstaller 而帶有 gms 包中有 google 的一堆應用,其中包含: googlepackageinstaller.apk pkgname=com.google.android.packageinstaller 注意到了沒有?這兩個用于管理(安裝,解除安裝等)程式的程式是 不一樣 的! google play 靜默安裝
小米手機藏後門可遠端安裝任意APP?真相如此驚悚嗎?
google 在 android l 之後引入了一個新的功能"playautoinstalls",簡稱 pai。 相關功能介紹: android 5.0 lollipop feature: play auto installs bloatware removal http://www.androidpolice.com/2014/10/28/android-5-0-lollipop-feature-spotlight-carriers-can-now-have-google-play-install-their-crapware-automatically-which-is-good-maybe/ 官方開發者頁面戳這: https://developers.google.com/android-partner/reference/rest/v1/playautoinstalls 簡單來說,就家夥是在使用者第一次開機的時候,走開機引導流程,登入 google 賬戶的過程中,在背景默默的給你裝一些應用,一般來說會是營運商全家桶。本來嘛,這個功能就是為了 oem 适應不同的地區,不同的營運商做的。 當然, google 得知道你的一些資訊才能給你裝上對應的全家桶, 不然難道給一個聯通的使用者裝一堆移動或者電信的全家桶? 既然它可以在第一次開機的過程中做這些事情,那你們猜猜,不是第一次開機的時候它能不能做這些呢?給你們一次機會,我相信你們是不會猜錯的。 它不止可以在背景安裝程式哦,還可以修改你的桌面布局 https://android.googlesource.com/platform/packages/apps/launcher3/+/android-5.0.2_r1/src/com/android/launcher3/autoinstallslayout.java    static final string action_launcher_customization =            "android.autoinstalls.config.action.play_auto_install"; 如果非要說小米收集你的資訊了,那請仔細閱讀一下小米手機的《使用者協定》。 綜上, 不過話說回來,小米使用http進行連接配接,有點說不過去。 

上述專家認為,這個就看官方怎麼解釋這個app的功能了,如果是手機性能測試收集或者crash分析程式的話,算是正常。他指出,别的系統也有類似功能,比如程式crash了要分析上傳崩潰日志。

如何屏蔽這樣的秘密安裝呢?權宜之計是利用防火牆屏蔽掉所有通向小米相關域名的連接配接。

但這樣會有什麼後果?該安全專家提醒——隻屏蔽這個app的更新位址沒問題,如果把更新位址的整個域名都屏蔽了,就會影響miui的其他更新。

他表示:

如果他們的最新版本和他們聲明一樣,可以不用擔心黑客劫持更新和明文傳輸裝置隐私資訊這些事了。但是之前的屏蔽還是有效的,你繼續屏蔽也更新不到他們聲明的最新版本,哈哈!

你可能想多了。預裝app常常有最高權限,使用者可能删除不掉,而且靜默更新,你可能也意識不到需要提防。其他app雖然也可以有類似的問題,但一旦發現,删除起來容易多了!

繼續閱讀