2016年8月17日,ISC2016移动安全发展分论坛在北京国家会议中心召开,论坛由奇虎360公司与InForSec(网络安全研究国际学术论坛)联合举办。主题是“谁在窥探我的财富和隐私”,论坛旨在从系统安全、数据隐私、移动互联网黑产、移动支付安全等多个备受业内外人士关注的话题出发,揭秘移动生活中面临的重重新威胁,并提供新的解决思路。超过400名安全行业人士与会并参与讨论。
加州大学戴维斯分校计算机系教授陈浩分享了他在移动广告中安全领域的研究工作——“移动广告中的安全和隐私危险和对策”,他介绍了在移动广告中存在的一些安卓问题,主要是两个方面:第一克隆应用对原作者的影响,第二,广告欺骗对广告商的影响。他认为:“移动广告是整个移动应用的基石,如果移动广告的安全出了问题,大家不再使用移动广告,我们就不能再继续使用免费的移动生态系统。”他着重分析移动广告中的用户隐私、克隆应用和移动广告的关联,以及广告欺骗,然后讲解如何设计工具自动检测这些恶意行为,最后讨论有效的防御手段。他通过分析量化克隆应用对原应用开发者的广告收入造成的损失和对其利益造成的损失,从17个应用市场上下载了约26万个应用,根据每个市场上下载应用的情况,开发了一个检测克隆应用的系统。同时,针对广告欺骗,从19个市场上,检查了15万个应用,开发了一个可大规模地检测广告欺骗的系统。通过网络抓包,获得所有和广告有关的流量,通过特征分析与机器学习的方式,从而检测出哪些是合法的流量,哪些是欺骗流量。
以下内容为陈浩教授报告速记整理全文:
我们的工作是研究移动广告的安全和隐私问题领域。移动广告是移动生态的基石,因为大部分的移动生态系统是免费的,安卓系统也是免费的,它们的主要收入来源是移动广告。如果移动广告的安全出了问题,大家不再使用移动广告,我们就不能再继续使用免费的移动生态系统。
移动广告是非常复杂的系统,有四大组成成员。第一是移动用户,第二是移动软件的开发者,第三是广告的提供商,第四是进行广告分发的运营商。在移动广告的生态系统里面,有以下几个主要的安全问题:
第一,安全问题是移动应用开发者,它之所以开发应用,是因为它有广告收入。如果它的广告收入被黑客截留,那么它就可能会减少或者不开发移动应用。
第二,对于广告商来说,他们投放广告是希望有市场效应。如果他们看见广告是虚假的,没有市场效应,就会对广告的收入打很大的折扣。
在具体讲我们的工作之前,先简单回顾一下移动广告系统的流程。在移动广告中,开发者在应用里面嵌入一个广告库,在运营的时候广告库会向广告提供商发送一个traffic。我们在研究中发现,有很多的应用其实是克隆其他的应用,一开始我们觉得很奇怪,竟然这些应用都是免费的,那么应用的克隆会给克隆者带来什么样的好处?后来我们发现克隆者的目的是为了截获广告收入,它们通常将一个原来的广告库克隆,将原来的广告库换成克隆者的广告库,广告收入就归克隆者所有。克隆应用对原作者的利益是有损害的。同时克隆应用使得用户很难找到真正的应用。我们的工作有以下几个主要目的:第一个目的是我们想知道这些克隆的应用有哪些特性,比如说在应用市场上,哪些市场的克隆应用比较严重。二是我们想量化这些克隆的应用对原开发者的影响到底有多大。
我们从17个应用市场上下载了约26万个应用,大概可以看一下每个市场上下载应用的数量,然后开发了一个检测克隆的应用。这个检测克隆的应用,如果只是简单用一一对应的方法是不行的。如果共有100万的应用,这样算会非常慢。从这些应用中,我们导出了大约5000个克隆的样本,在这些样本里的应用是类似的。同时,还有44000个左右的独立应用。
上面这张图显示了这些克隆应用的来源,这张图里面有一些节点和一些线条。每个节点代表一个应用市场,每个线条代表了在这两个应用市场的之间有多少的克隆应用。这个市场有两种颜色,蓝图的代表美国的市场,红色的代表中国的市场。线条上的数字代表了在这一对应用市场之中有多少对应用是被克隆的。这张图显示了在这些不同的应用市场上,克隆的数量和克隆的百分比。红线代表了有多少个是克隆的,蓝线代表在每个应用市场上有多少个是克隆的。这是第一部分工作。
第二部分工作,这些克隆的应用对原作者带来的影响到底有多大?在每一个应用对应哪一个应用来说,它被多少应用克隆。可是被多少个应用克隆,并不能够反映克隆对原作者带来的损失。假如说这些克隆应用很少被用户装载,这样的话对原作者的损失是非常小。只要克隆应用被用户大量的装载,这时候才会对原作者带来巨大的损失。所以我们想知道有多少用户克隆应用,而不是用原版的应用。
为了回答这个问题,我们需要回答三个子问题。第一个子问题是,我们需要知道有多少个用户运行每一个APP。第二,我们需要知道在这些APP里面,哪些是原作,哪些是克隆的。第三,我们需要知道每一个应用它的作者是谁。
第一个问题是我上面讲的主要问题。我们如何知道每一个用户的手机上,他运行的APP到底是原作还是克隆的。这取决于我们的观察,如果说我们的软件运行在每一个手机上,比如说我们能和手机厂商合作,在每个用户手机上安装一些安全卫士,它能够检测到每一个用户手机上运行着什么样的软件,我们可以回答这样的问题。可是我们有一个条件,我们没有办法在大批的用户手机上安装我们的软件。
第二个方法我们可以和应用厂商合作,在它的应用服务器上可以记录有多少用户用它的应用。但是这种也有困难,因为我们想检测克隆的软件,很显然克隆的发布者不会和我们合作,不会给我们提供有多少用户用他们克隆的软件。
第三种方法,我们被动的在网络上进行检测。
我们第一步在网络上通过对每一个应用的流量进行检测,我们检测这个应用是哪一个应用。刚才大家已经看见了,在每一个广告库发出广告请求的时候,在广告请求里面,它给我们标出这个广告收入归谁,广告里面会有一个Client ID,这样我们就知道了这是哪一个应用,向这个广告发出请求,这样我们就抓住了应用的所有者。第二步,在我们的实验室里面,我们通过静态分析的方法,将Client ID抽出,我们通过Client ID将网络上的每一个流量和在实验室中我们所检测的每一个应用结合起来。这样我们就知道在网络上的每一个请求是从哪一个Client ID发出的。
下图为系统的流程图。左边是网络分析部分,在网络分析部分上,我们和美国的一个主要无线运营商合作,在它的实验室里面抓取网络数据。我们从网络数据里面进行分析,抽取出Client ID。右边的工作是在我们自己的实验室里面做,我们从应用市场上下载APP,通过静态分析找出这个里面的Client ID,和这个APP之间的克隆关系。最后通过client ID把网络流量和APP联系起来。
这是我们的结果,左边的这张图是说明,从我们收集的数据里面,我们估计由于克隆应用,原作开发者损失了百分之多少的收入。右边的三张图显示了由于克隆应用,软件开发应用开发者损失了百分之多少的用户群。在每张图里面,我们有三个直线图。这三个直线图,代表了我们通过不同的方法估计收入和用户群体的损失。
这是我们工作的第一部分,这部分是量化克隆应用对原应用开发者的广告收入造成的损失和对利益造成的损失。这是从原作开发者的角度看,克隆应用这样恶意行为对他造成的损失。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。