深圳幻海软件技术有限公司 欢迎您!

【NCTS峰会回顾】北大郭耀:移动应用生态系统的现状与挑战

2023-02-27

 2019年10月26日,由Testin主办的第二届NCTS中国云测试行业峰会在京召开,此次峰会以“AI+未来”为主题,汇聚来自国内外测试领域的知名专家学者、领先企业决策者、高层技术管理者、媒体从业者等,共同探讨高端云测试技术,帮助测试从业者了解最前沿行业趋势,及最新的行业实践。会上,北京

 2019年10月26日,由Testin主办的第二届NCTS中国云测试行业峰会在京召开,此次峰会以“AI+未来”为主题,汇聚来自国内外测试领域的知名专家学者、领先企业决策者、高层技术管理者、媒体从业者等,共同探讨高端云测试技术,帮助测试从业者了解最前沿行业趋势,及最新的行业实践。

会上,北京大学计算机科学技术系副主任郭耀教授做《移动应用生态系统:现状与挑战》主题演讲。郭耀教授分享了北京大学在移动应用领域的最新研究成果,并在现场呼吁,希望学术界和测试大咖能够携起手来,通过更完备的审查功能以及更好的分析测试技术,将存在恶意问题的应用尽早识别,共同努力改进国内移动应用生态。

以下为郭耀教授演讲实录:

非常高兴来到第二届NCTS中国云测试行业峰会,感谢Testin徐总的邀请,让我来作峰会的开场致辞。今年峰会来了很多人,祝愿本次云测试行业峰会能够圆满成功。

目前,北大也在做一些测试实践,我不是测试大咖,就在此分享一下我们这两年在移动应用领域的研究工作。我分享的题目是《移动应用生态系统:现状与挑战》。

中国的移动应用生态非常大,国内有上百个应用市场,APP经济超过千亿美元的规模。移动应用生态的组成,包括移动用户、手机、开发商,还有很大规模的APP和应用市场。在中国,市场移动用户规模巨大,手机版本也非常多,能统计到的开发者和真正有签名的开发商已经超过百万,还有成千上万的移动APP

整个市场非常复杂,国内市场的很多应用都存在着很多问题,用户在选择的时经常会不知道选哪一个更好。同时,虽然国内很多应用市场都号称做了非常严格的审查,但事实上,很多APP的应用质量都不尽如人意。这就需要做测试的同志们来帮助开发者把应用做得更好,帮助用户更好的理解应用到底怎么用。

在北大,我们这两年做了一些移动应用分析和测试的实践,构建了一个大规模的移动应用分析平台,尝试去理解移动应用生态面临的问题,并利用APP自动测试技术检测APP恶意行为。我们构建了一个平台,抓取了20多个应用市场,近千万的APK,其中包括不同版本的APP,我们有一套从下面开始预处理的平台,包括脱壳、反编译等功能,在此之上,我们搭建了一套静态和动态分析,包括自动化测试在内的技术,主要是面向安全隐私做第三方库的分析,其中包括恶意广告的分析和一些恶意应用的检测。

下面我向大家简要分享北大最近的研究成果。

中国移动应用生态很复杂,在国外,基本上一个Google Play就可以了。我们进行了大量数据的对比,Google Play下载了200万的移动应用,国内市场的数据稍微小一点,量级差不多。这里分析一些简单的数据,其中有非常好玩的发现。比如应用市场的应用评分,5分最好,1分很差,3分在中间。我们做了一个累计分布图(CDF),中间的蓝线是Google Play。如果我们看一下国内应用市场,除了Google Play之外的其他市场,70%,80%的应用评分都是零。下面这个市场是从2.5分下来的,很多评分是在中间的,这个评分不具备参考性,不是正规的评分的分布。

同时,用户在应用市场下载的应用很多版本都不是最新的,应用市场最新版本的比例,Google Play大概是95%,国内的应用更新不是很及时,只有50%的应用是最新版的,一半的应用都比市场上的要旧,这说明我们的应用市场还有很多的问题。

此外,因为汉化,破解这些原因,现在市场上还有很多虚假或者仿冒的应用。比如说虚假应用,Google Play是0.03%,非常低了,国内市场平均下来大概是0.6%,还是有20倍的差距。我们曾经找到过30个建行应用,看起来都是一样的,这对用户就会很麻烦。后面是克隆应用,拿来稍微改一改就变成自己的,最右面的这列,整个市场都是比较高的,包括Google Play也是有10%。还有一个用户都非常关心的,就是越权,到底有多少应用是申请了过多的权限?这个比例相对比较高, Google Play大概65%的应用会申请过多的权限,国内市场更高一点,大概达到80%,很多申请超过8、9个权限,都是在代码里不应该申请的权限。

大家都很关心,恶意应用会不会进市场,会不会到我们的手机上?VirusTotal上集成了约60个检测引擎,我们用VirusTotal分析了所有这些移动应用,发现国内市场恶意应用的比例是Google Play的十多倍,所以我们需要做测试、做分析的同事们及早发现这些问题。还有一个有趣的结果,我们想看看这些应用市场会不会发现这些恶意应用并删除他们。在8个月之后,我们对这些恶意应用进行了扫描,发现Google Play 84%的恶意应用已经删掉了,而国内某些市场一个都没有删,都还在那儿。

前面这部分工作关注的是国内市场的移动应用。接下来介绍和移动应用开发者相关的工作。因为大家是做测试的,对开发者生态非常关心。比如我们做了一个分析,总共找到了将近100万的开发者,这是所有应用下载量的累计分布图,基于开发者的下载量。可以看出,下载量超过10K的开发者是很少的,大概是百分之十几,如果是超过100万就更加少了,只有1%的开发者累计的下载量是超过300万的,这是在Google Play上,说明1%的开发者占据了80%的应用市场。

这些移动开发者中大概一半只在Google Play上发表应用,还有一半是在国内其它市场上发表应用,比如华为市场和Google Play之间,根据签名来判断,重叠度只有1%,基本上还是不同的开发者在这些市场在发布应用。

我们最近做了关于应用签名的实验,所有安卓应用都是需要签名的, Google Play提供了三个版本的签名,我们称之为V1、V2、V3。V1有很多漏洞,V2修复了漏洞,我们在V2发布近两年的时候做了一次分析,发现国内的市场里有93.7%的应用只用了V1的签名,这意味着,如果他们安装安卓7.0以前的系统,就会受到攻击。同时有一些下载量超过10亿的应用存在兼容性的问题,在有些版本的手机上无法安装,还有一些应用采用了公开的密钥签名,这意味着谁都可以修改。其实这是非常容易发现的问题,但是从开发到测试,一直到发布到应用市场上,都没有人发现,而且还有近亿的下载量。

我在前面主要讲的是一些问题,为了解决这些问题,还可以通过测试、机器学习、深度学习这些技术做更好的测试。我们自己也做了一些工作,对于动态测试,最早的时候大家是用Monkey随机点击,后来我们开发的工具Droidbot,可以根据UI的转换去点相应的UI,就比随机点要好。最近,我们把深度学习拿进来,根据用户点击过程的历史数据,我们可以来学习用户更喜欢点哪个地方,这样可以让自动测试工具像人一样进行点击,效果就会更好。

基于这些动态分析工具,我们还发现了其他问题。例如,广告欺诈的问题,很多广告会骗你点击,当你选择退出按钮的时候,你正要点广告就弹出来了,这就是广告欺诈。我们通过自动化的测试工具去找到这些行为,国内市场广告恶意欺诈行为非常多。我们还研究了恶意的下推通知,其中包含有下载应用,特别是恶意的,还有广告,这都是不允许的,但是现实中很多应用存在这些问题,违反了应用市场的政策,这说明我们的审查力度还是不够。

另外,还有很多恶意约会应用,搜索一下附近有很多美女和你聊天,正想聊的时候让你交钱,交完钱之后就不理你了。我们利用动态分析工具找了一下,就找到了几百个,而且我们都手动去确认了,我们的学生还花钱注册了,发现真的是恶意应用,这个市场非常大,一个月有上百万美金的流水,这类恶意应用在市场上非常多。

我今天的报告大概分析了一下国内的移动应用生态,说明应用市场还是非常复杂的。我希望学术界和在座的测试大咖们可以一起合作,通过采用更好的审查功能,过滤掉恶不应该有的应用,用更好的分析测试技术,把存在恶意问题的应用在进市场之前尽早的识别出来。另外,我们在用户和手机端也在做一些工作,包括细粒度的访问控制,帮助用户更好的去理解应用的功能和隐私访问的控制。

希望在座的各位能够携起手来,共同努力改进国内移动应用的生态。我的分享就到这儿,谢谢大家!