安全不了的Android,想不明白的Google
二十六個(gè)字母都數(shù)到 P 了,然而 Android 生態(tài)的安全依然是一個(gè)讓人堪憂的狀況,而最近,這個(gè)情況更是集中爆發(fā)。
在今年的 Google I/O 大會(huì)上,Android 平臺(tái)安全負(fù)責(zé)人 David Kleidermacher 在推銷(xiāo) Project Treble 時(shí)透露,Google 將把安全補(bǔ)丁更新納入 OEM 協(xié)議當(dāng)中,以此讓更多的設(shè)備,更多的用戶獲得定期的安全補(bǔ)丁。
這是一個(gè)積極的行為,但細(xì)究下就并不值得表?yè)P(yáng)了,因?yàn)橹蕴岢鲞@一方案全因之前被人揭了短。
就在今年四月,Security 安全研究實(shí)驗(yàn)室在測(cè)試了 1200 臺(tái)不同品牌、不同渠道的手機(jī)后表示,安全補(bǔ)丁的安裝狀況并不盡人意,有些廠商甚至至少漏掉了 4 個(gè)月的安全補(bǔ)丁。
而就在這份報(bào)告發(fā)布前一個(gè)月,Kleidermacher 在接受 CNET 的采訪中剛說(shuō)完“Android 現(xiàn)在和競(jìng)爭(zhēng)對(duì)手一樣安全”。
友軍
用過(guò) Google Pixel 的人都會(huì)注意到,Google 每個(gè)在月都有一次安全推送的,而且不管你是否想要更新,但其實(shí)這個(gè)安全補(bǔ)丁 Google 并不僅僅推送給自家手機(jī)。
對(duì)于安全問(wèn)題,Google 現(xiàn)在會(huì)在每個(gè)月的第一個(gè)周一發(fā)布一份安全補(bǔ)丁公告,公告中會(huì)列出已知漏洞的補(bǔ)丁。而同樣是這份補(bǔ)丁,各大廠商一般會(huì)提前一個(gè)月收到,目的是讓 OEM 和供應(yīng)商——比如芯片廠——能夠在公告之前好修補(bǔ)漏洞。
這個(gè)設(shè)想是好的,并且如果友軍認(rèn)真執(zhí)行的話效果也不錯(cuò),比如 Essential 手機(jī),雖然銷(xiāo)量不好,但是它可以與 Google Pixel 同一天推送安全更新。
然而前面提到了,其他廠商并不都這么干的,具體各家差多少直接看圖吧:
Security 還指出,這一結(jié)果的背后芯片供應(yīng)商有很大責(zé)任,因?yàn)椴捎寐?lián)發(fā)科芯片的手機(jī)在獲得安全更新方面更顯糟糕:
這里更新和芯片供應(yīng)商的關(guān)系不是絕對(duì)的,比如 PingWest 品玩這就有一臺(tái)高通驍龍 835 的手機(jī),目前 Android 安全更新還停留在 2017 年 12 月 1 日。
在這一現(xiàn)象被揭露之后,Google 迅速就做出了回應(yīng),承認(rèn)了這項(xiàng)研究的重要性,并表示將會(huì)進(jìn)行核實(shí)。而最終的結(jié)果,就是這次 Google I/O 上宣布的事情了。并且 Google 這兩年一直在推行的 Project Treble 正好能夠用上,利用這一機(jī)制,廠商制作安全補(bǔ)丁更容易,成本更低。
一邊用政策來(lái)約束廠商,另一邊又許拉低抵觸心理,可以說(shuō)是個(gè)非常棒的套路。但估計(jì) Kleidermacher 怎么也想不到,在扶友軍的同時(shí),自家陣腳亂了。
自家
據(jù)老牌安全軟件賽門(mén)鐵克研究發(fā)現(xiàn),有一些曾經(jīng)被發(fā)現(xiàn)過(guò)的惡意應(yīng)用重登 Google Play 了,而且使用的方法非常簡(jiǎn)單:改名。
這次發(fā)現(xiàn)的惡意應(yīng)用程序有 7 個(gè),它們?cè)缭谌ツ昃捅粎R報(bào)給 Google 并下架過(guò)了,但現(xiàn)在,它們通過(guò)更改包名稱重新以表情符號(hào)鍵盤(pán)、空間清理、計(jì)算器等類型登錄 Google Play。
這里簡(jiǎn)單介紹下這些惡意應(yīng)用的表現(xiàn),大家注意下:
- 安裝后會(huì)進(jìn)入幾小時(shí)靜默期,以此避免被注意
- 頂著 Google Play 圖標(biāo)來(lái)索要管理員權(quán)限
- 把自己的圖標(biāo)改成 Google Play、Google 地圖這些常見(jiàn)應(yīng)用
- 通過(guò)提供內(nèi)容來(lái)獲利——比如重定向網(wǎng)站——并且這個(gè)形式是云端可控的
相對(duì)來(lái)說(shuō),這一次惡意軟件的行為其實(shí)并不重要,更危險(xiǎn)的是這次登錄 Google Play 的形式,Google Play 安全流程中的問(wèn)題。
首先,Google Play 的審核機(jī)制可以說(shuō)是漏洞百出。在應(yīng)用上架 Google Play 前的過(guò)程中,安全測(cè)試成了擺設(shè),自動(dòng)檢測(cè)算法根本沒(méi)起作用,人工審核就像個(gè)宣傳稱號(hào)——據(jù)賽門(mén)鐵克表示,這些應(yīng)用根本不能提供正常功能,所以人工審了什么?
其次,在上架及用戶安裝后 Google 宣傳的防護(hù)也沒(méi)起作用?;跈C(jī)器學(xué)習(xí)技術(shù)識(shí)別流氓軟件的 Google Play Protect,據(jù)稱每天會(huì)掃描數(shù)十億應(yīng)用,一樣被繞過(guò)了。
最讓人無(wú)法接受的是,這些體系還是被繞過(guò)兩次,而第二次僅僅是通過(guò)改名就饒過(guò)了。這難免不讓人聯(lián)想到 Google Play 的安全流程中是不是沒(méi)有“總結(jié)經(jīng)驗(yàn)”這一行為,所謂的機(jī)器學(xué)習(xí)是不是學(xué)和做分開(kāi)了。
而相對(duì)系統(tǒng)漏洞來(lái)說(shuō),惡意應(yīng)用要讓用戶更加不適一些。畢竟大多數(shù)人的設(shè)備被蓄意利用漏洞攻擊的可能性近乎為 0,但是裝錯(cuò)個(gè)應(yīng)用就直接中招了。
應(yīng)用
提到惡意應(yīng)用,很多人自然而然的就會(huì)聯(lián)想到流氓應(yīng)用,然后就會(huì)想到“全家桶”,進(jìn)而就會(huì)想到 Google 這幾年更新了幾個(gè)管理措施,更進(jìn)一步還會(huì)想到為什么還壓制不住他們。
其實(shí),這事還得怨 Google,因?yàn)?Google 一直沒(méi)想明白問(wèn)題重點(diǎn)。
以 Android 8.0 為例,Google 雖然推出了一個(gè)后臺(tái)控制特性,但是這個(gè)特性如果想完全正常使用有一個(gè)前提條件,應(yīng)用程序的封包 SDK 要達(dá)到 API 26(一個(gè)不面向用戶的開(kāi)發(fā)設(shè)定,和 Android 版本同步更新,目前正式版最高 API 27,Android P 是 API 28),直白點(diǎn)說(shuō)就是應(yīng)用是針對(duì) Android 8.0 開(kāi)發(fā)的。如果應(yīng)用沒(méi)這么做,那么結(jié)果就是新特性最多只能發(fā)揮一小部分作用,但并不會(huì)影響 App 的正常使用和濫用。
所以,控制權(quán)在應(yīng)用開(kāi)發(fā)者手里。如果他們認(rèn)為 Android 新機(jī)制非常棒,應(yīng)該遵守,那就上新的 API。而如果產(chǎn)品部、推送服務(wù)商覺(jué)得組成全家桶賣(mài)相好,那么就保持原樣。
PingWest 品玩測(cè)試了幾個(gè) Google Play 中的應(yīng)用后發(fā)現(xiàn),其中最低的居然可以低到 API 18,甚至 Google 自家的某些應(yīng)用也還停留在 API 24。而在 Google Play 之外,騰訊新推的 TIM,現(xiàn)在還在用 Android 4.0.3 時(shí)期的 API 15 玩的不亦樂(lè)乎。
可見(jiàn),在這種近乎君子協(xié)議的前提下,想指望廠商跟上腳步、自我約束,這在短期內(nèi)無(wú)異于癡人說(shuō)夢(mèng)。
至于這種情況什么時(shí)候能更進(jìn)一步的改善,還要看 Google 什么時(shí)候想明白強(qiáng)權(quán)的重要性。