【NCTS峰會回顧】北大郭耀:移動應(yīng)用生態(tài)系統(tǒng)的現(xiàn)狀與挑戰(zhàn)
2019年10月26日,由Testin主辦的第二屆NCTS中國云測試行業(yè)峰會在京召開,此次峰會以“AI+未來”為主題,匯聚來自國內(nèi)外測試領(lǐng)域的知名專家學(xué)者、領(lǐng)先企業(yè)決策者、高層技術(shù)管理者、媒體從業(yè)者等,共同探討高端云測試技術(shù),幫助測試從業(yè)者了解最前沿行業(yè)趨勢,及最新的行業(yè)實(shí)踐。
會上,北京大學(xué)計(jì)算機(jī)科學(xué)技術(shù)系副主任郭耀教授做《移動應(yīng)用生態(tài)系統(tǒng):現(xiàn)狀與挑戰(zhàn)》主題演講。郭耀教授分享了北京大學(xué)在移動應(yīng)用領(lǐng)域的最新研究成果,并在現(xiàn)場呼吁,希望學(xué)術(shù)界和測試大咖能夠攜起手來,通過更完備的審查功能以及更好的分析測試技術(shù),將存在惡意問題的應(yīng)用盡早識別,共同努力改進(jìn)國內(nèi)移動應(yīng)用生態(tài)。
以下為郭耀教授演講實(shí)錄:
非常高興來到第二屆NCTS中國云測試行業(yè)峰會,感謝Testin徐總的邀請,讓我來作峰會的開場致辭。今年峰會來了很多人,祝愿本次云測試行業(yè)峰會能夠圓滿成功。
目前,北大也在做一些測試實(shí)踐,我不是測試大咖,就在此分享一下我們這兩年在移動應(yīng)用領(lǐng)域的研究工作。我分享的題目是《移動應(yīng)用生態(tài)系統(tǒng):現(xiàn)狀與挑戰(zhàn)》。
中國的移動應(yīng)用生態(tài)非常大,國內(nèi)有上百個(gè)應(yīng)用市場,APP經(jīng)濟(jì)超過千億美元的規(guī)模。移動應(yīng)用生態(tài)的組成,包括移動用戶、手機(jī)、開發(fā)商,還有很大規(guī)模的APP和應(yīng)用市場。在中國,市場移動用戶規(guī)模巨大,手機(jī)版本也非常多,能統(tǒng)計(jì)到的開發(fā)者和真正有簽名的開發(fā)商已經(jīng)超過百萬,還有成千上萬的移動APP。
整個(gè)市場非常復(fù)雜,國內(nèi)市場的很多應(yīng)用都存在著很多問題,用戶在選擇的時(shí)經(jīng)常會不知道選哪一個(gè)更好。同時(shí),雖然國內(nèi)很多應(yīng)用市場都號稱做了非常嚴(yán)格的審查,但事實(shí)上,很多APP的應(yīng)用質(zhì)量都不盡如人意。這就需要做測試的同志們來幫助開發(fā)者把應(yīng)用做得更好,幫助用戶更好的理解應(yīng)用到底怎么用。
在北大,我們這兩年做了一些移動應(yīng)用分析和測試的實(shí)踐,構(gòu)建了一個(gè)大規(guī)模的移動應(yīng)用分析平臺,嘗試去理解移動應(yīng)用生態(tài)面臨的問題,并利用APP自動測試技術(shù)檢測APP惡意行為。我們構(gòu)建了一個(gè)平臺,抓取了20多個(gè)應(yīng)用市場,近千萬的APK,其中包括不同版本的APP,我們有一套從下面開始預(yù)處理的平臺,包括脫殼、反編譯等功能,在此之上,我們搭建了一套靜態(tài)和動態(tài)分析,包括自動化測試在內(nèi)的技術(shù),主要是面向安全隱私做第三方庫的分析,其中包括惡意廣告的分析和一些惡意應(yīng)用的檢測。
下面我向大家簡要分享北大最近的研究成果。
中國移動應(yīng)用生態(tài)很復(fù)雜,在國外,基本上一個(gè)Google Play就可以了。我們進(jìn)行了大量數(shù)據(jù)的對比,Google Play下載了200萬的移動應(yīng)用,國內(nèi)市場的數(shù)據(jù)稍微小一點(diǎn),量級差不多。這里分析一些簡單的數(shù)據(jù),其中有非常好玩的發(fā)現(xiàn)。比如應(yīng)用市場的應(yīng)用評分,5分最好,1分很差,3分在中間。我們做了一個(gè)累計(jì)分布圖(CDF),中間的藍(lán)線是Google Play。如果我們看一下國內(nèi)應(yīng)用市場,除了Google Play之外的其他市場,70%,80%的應(yīng)用評分都是零。下面這個(gè)市場是從2.5分下來的,很多評分是在中間的,這個(gè)評分不具備參考性,不是正規(guī)的評分的分布。
同時(shí),用戶在應(yīng)用市場下載的應(yīng)用很多版本都不是最新的,應(yīng)用市場最新版本的比例,Google Play大概是95%,國內(nèi)的應(yīng)用更新不是很及時(shí),只有50%的應(yīng)用是最新版的,一半的應(yīng)用都比市場上的要舊,這說明我們的應(yīng)用市場還有很多的問題。
此外,因?yàn)闈h化,破解這些原因,現(xiàn)在市場上還有很多虛假或者仿冒的應(yīng)用。比如說虛假應(yīng)用,Google Play是0.03%,非常低了,國內(nèi)市場平均下來大概是0.6%,還是有20倍的差距。我們曾經(jīng)找到過30個(gè)建行應(yīng)用,看起來都是一樣的,這對用戶就會很麻煩。后面是克隆應(yīng)用,拿來稍微改一改就變成自己的,最右面的這列,整個(gè)市場都是比較高的,包括Google Play也是有10%。還有一個(gè)用戶都非常關(guān)心的,就是越權(quán),到底有多少應(yīng)用是申請了過多的權(quán)限?這個(gè)比例相對比較高, Google Play大概65%的應(yīng)用會申請過多的權(quán)限,國內(nèi)市場更高一點(diǎn),大概達(dá)到80%,很多申請超過8、9個(gè)權(quán)限,都是在代碼里不應(yīng)該申請的權(quán)限。
大家都很關(guān)心,惡意應(yīng)用會不會進(jìn)市場,會不會到我們的手機(jī)上?VirusTotal上集成了約60個(gè)檢測引擎,我們用VirusTotal分析了所有這些移動應(yīng)用,發(fā)現(xiàn)國內(nèi)市場惡意應(yīng)用的比例是Google Play的十多倍,所以我們需要做測試、做分析的同事們及早發(fā)現(xiàn)這些問題。還有一個(gè)有趣的結(jié)果,我們想看看這些應(yīng)用市場會不會發(fā)現(xiàn)這些惡意應(yīng)用并刪除他們。在8個(gè)月之后,我們對這些惡意應(yīng)用進(jìn)行了掃描,發(fā)現(xiàn)Google Play 84%的惡意應(yīng)用已經(jīng)刪掉了,而國內(nèi)某些市場一個(gè)都沒有刪,都還在那兒。
前面這部分工作關(guān)注的是國內(nèi)市場的移動應(yīng)用。接下來介紹和移動應(yīng)用開發(fā)者相關(guān)的工作。因?yàn)榇蠹沂亲鰷y試的,對開發(fā)者生態(tài)非常關(guān)心。比如我們做了一個(gè)分析,總共找到了將近100萬的開發(fā)者,這是所有應(yīng)用下載量的累計(jì)分布圖,基于開發(fā)者的下載量。可以看出,下載量超過10K的開發(fā)者是很少的,大概是百分之十幾,如果是超過100萬就更加少了,只有1%的開發(fā)者累計(jì)的下載量是超過300萬的,這是在Google Play上,說明1%的開發(fā)者占據(jù)了80%的應(yīng)用市場。
這些移動開發(fā)者中大概一半只在Google Play上發(fā)表應(yīng)用,還有一半是在國內(nèi)其它市場上發(fā)表應(yīng)用,比如華為市場和Google Play之間,根據(jù)簽名來判斷,重疊度只有1%,基本上還是不同的開發(fā)者在這些市場在發(fā)布應(yīng)用。
我們最近做了關(guān)于應(yīng)用簽名的實(shí)驗(yàn),所有安卓應(yīng)用都是需要簽名的, Google Play提供了三個(gè)版本的簽名,我們稱之為V1、V2、V3。V1有很多漏洞,V2修復(fù)了漏洞,我們在V2發(fā)布近兩年的時(shí)候做了一次分析,發(fā)現(xiàn)國內(nèi)的市場里有93.7%的應(yīng)用只用了V1的簽名,這意味著,如果他們安裝安卓7.0以前的系統(tǒng),就會受到攻擊。同時(shí)有一些下載量超過10億的應(yīng)用存在兼容性的問題,在有些版本的手機(jī)上無法安裝,還有一些應(yīng)用采用了公開的密鑰簽名,這意味著誰都可以修改。其實(shí)這是非常容易發(fā)現(xiàn)的問題,但是從開發(fā)到測試,一直到發(fā)布到應(yīng)用市場上,都沒有人發(fā)現(xiàn),而且還有近億的下載量。
我在前面主要講的是一些問題,為了解決這些問題,還可以通過測試、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)這些技術(shù)做更好的測試。我們自己也做了一些工作,對于動態(tài)測試,最早的時(shí)候大家是用Monkey隨機(jī)點(diǎn)擊,后來我們開發(fā)的工具Droidbot,可以根據(jù)UI的轉(zhuǎn)換去點(diǎn)相應(yīng)的UI,就比隨機(jī)點(diǎn)要好。最近,我們把深度學(xué)習(xí)拿進(jìn)來,根據(jù)用戶點(diǎn)擊過程的歷史數(shù)據(jù),我們可以來學(xué)習(xí)用戶更喜歡點(diǎn)哪個(gè)地方,這樣可以讓自動測試工具像人一樣進(jìn)行點(diǎn)擊,效果就會更好。
基于這些動態(tài)分析工具,我們還發(fā)現(xiàn)了其他問題。例如,廣告欺詐的問題,很多廣告會騙你點(diǎn)擊,當(dāng)你選擇退出按鈕的時(shí)候,你正要點(diǎn)廣告就彈出來了,這就是廣告欺詐。我們通過自動化的測試工具去找到這些行為,國內(nèi)市場廣告惡意欺詐行為非常多。我們還研究了惡意的下推通知,其中包含有下載應(yīng)用,特別是惡意的,還有廣告,這都是不允許的,但是現(xiàn)實(shí)中很多應(yīng)用存在這些問題,違反了應(yīng)用市場的政策,這說明我們的審查力度還是不夠。
另外,還有很多惡意約會應(yīng)用,搜索一下附近有很多美女和你聊天,正想聊的時(shí)候讓你交錢,交完錢之后就不理你了。我們利用動態(tài)分析工具找了一下,就找到了幾百個(gè),而且我們都手動去確認(rèn)了,我們的學(xué)生還花錢注冊了,發(fā)現(xiàn)真的是惡意應(yīng)用,這個(gè)市場非常大,一個(gè)月有上百萬美金的流水,這類惡意應(yīng)用在市場上非常多。
我今天的報(bào)告大概分析了一下國內(nèi)的移動應(yīng)用生態(tài),說明應(yīng)用市場還是非常復(fù)雜的。我希望學(xué)術(shù)界和在座的測試大咖們可以一起合作,通過采用更好的審查功能,過濾掉惡不應(yīng)該有的應(yīng)用,用更好的分析測試技術(shù),把存在惡意問題的應(yīng)用在進(jìn)市場之前盡早的識別出來。另外,我們在用戶和手機(jī)端也在做一些工作,包括細(xì)粒度的訪問控制,幫助用戶更好的去理解應(yīng)用的功能和隱私訪問的控制。
希望在座的各位能夠攜起手來,共同努力改進(jìn)國內(nèi)移動應(yīng)用的生態(tài)。我的分享就到這兒,謝謝大家!