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