移动广告作弊技术研究
APP安装类的广告作弊手段分为三类:
点击作弊: 虚假点击、真实用户
安装作弊: 虚假点击、虚假用户
合约作弊: 真实点击、真实用户
下图中红色表示作弊,灰色表示真实的。
点击作弊
在真实用户的设备上进行模拟点击时,即使真实广告没有显示或者被点击,也会让广告主相信广告已经被点击。这是一种高回报的欺骗方式,因为它只需要一个虚假的点击操作就可以获得广告收入。如下图,某安全产品就采用了模拟点击的方式作弊。
当欺诈者在一个真实用户的设备上进行模拟点击,一旦用户自己安装了APP,则他们就会获得广告主的信任。因为这种用户是真正对这些app感兴趣的人,他们的行为就像典型的自然流量用户一样,不会留下可疑的痕迹。
(1)点击填充
通过这样做,作弊者将用户作一个标记(tag),即把这些用户作为他们自己的用户(也就是说是他们把这些用户推荐给广告主的),实际上这些下载应用的用户与作弊者的行为根本就没有关系,只是因为作弊者采用了强制点击的手段,APP安装的功劳就归于他们了。这跟web时代的“cookie stuffing”很相似。
(2)可见性作弊
这是一种使用广告堆叠和像素填充等方式导致用户没有机会看到正常广告内容的流量欺骗方式。
广告堆叠是多个广告堆叠在一起,所以只有顶层的广告是可见的,底层的广告是不可见的。像素填充是在用户的手机屏幕上只展示1个像素大小的广告。这种广告,用户看不 见,但统计工具可以统计到,仍然会作为曝光广告与广告主结算,给广告主带来经济损失。其它类似于“1 像素广告”的作弊方式还体现为私自替换广告主的广告素材、私自修改广告素材篇幅等等,花样百出。
(3)点击劫持
当有应用被安装(自然安装)的时候,Android系统会发出一个广播,恶意APP(含有广告欺骗代码的APP)就会利用这个广播进行点击劫持。当恶意APP接收到这个广播的时候,就会在新安装的APP打开之前运行恶意代码触发点击事件。这样,看起来像是作弊者展示的广告使用户产生了最后的“点击”事件,从而可以获得广告收入。
换句话说,作弊者通过恶意APP劫持用户的设备,在恰当的时机创建一个看起来合法的“adclick”,从而获取CPI收入。
(4)点击刷量
自然流量安装用户对APP开发者有着巨大的价值,因为这些用户是在没有任何广告互动的情况下下载的APP,他们之所以下载很可能是出于自己的兴趣,或者是通过APP口碑推荐。
自然流量安装用户通常比其他用户的质量更高,他们使用应用的时间更长,并且可能比付费用户拥有更高的终身价值。跟踪APP的自然流量安装用户数量的增减通常是了解应用程序整体健康状况的一个好方法。然而,当作弊者试图将自然流量用户充当为他们的用户时,这种情况就发生了变化。部分自然流量被当作作弊流量,使得APP广告主需要为那些自然流量安装付费。这种做法通常被称为“自然流量窃取”或“点击刷量”。
当用户登陆手机网页或作弊者操作的APP时,“自然流量窃取”就开始了。从那一刻起,任何一种作弊行为都可能发生:
- 移动web页面可以在没有用户可见的广告,或者没有可以与之交互的广告的情况下在后台执行单击操作。某无感知广告sdk就是用的这种方式,在后台通过webview加载js代码执行点击操作
- 当用户使用APP时,刷量软件就开始在后台进行点击操作,看起来像是用户与广告互动过
- 如果作弊者运行的APP是7*24小时在后台运行的(如Launch,内存清理工具,电池优化工具等),则可以在任何时候产生点击。
- 作弊者可以上报广告展示和点击事件,使得某个view好像与用户进行了互动。
- 刷量人员可以通过伪造的设备id或者通过从其他广告商获得的重发列表公然发送点击信息让广告主跟踪。
这些方法的共同之处在于用户并不知道他们已经与广告进行了交互。事实上,他们什么也没看到。
安装作弊
安装作弊是指欺骗广告主追踪并未在真实设备上发生的安装,这种形式的欺骗可以快速的扩大用户基数。然而这些用户对这些安装的APP并不感兴趣,他们要么是不怀好意的真实人类,要么只是产生无效流量的机器人。
(1)安装农场(app install farms)
APP安装农场通过雇佣“农民”让他们在提供的移动设备上手动频繁地安装和卸载APP。他们进行这些操作的目的并不是要使用这些APP,而只是想在APP内模拟真实的流量。
(2)僵尸网络
作弊者利用人工方式或网络传播方式将木马/具有再分发能力的应用植入到用户手机,形成僵尸网络,通过在后台利用云控技术对僵尸网络发送统一的命令,在用户无感知的情况下,完成App的下载、激活和删除等一系列操作。
(3)SDK欺骗
SDK欺骗(也称为“重放攻击”)是一种看起来进行了安装实际没有进行任何真正的APP安装,以此骗取广告主酬金的欺诈行为。
为了进行SDK欺骗,欺诈者必须劫持被跟踪SDK及其后端服务器的SSL加密通信,进行“中间人攻击”(MITM攻击)。在完成MITM攻击之后,欺诈者将为他们想要伪造的APP生成一系列用于测试安装的URL。因为此时可以清晰的读取URL请求,从而知道在APP里头,哪些URL调用代表了哪些特定操作,比如首次打开、重复打开,甚至如购买或升级等不同的应用程序内事件。通过研究这些url的哪些部分是静态的,哪些是动态的,然后保留静态的部分(比如事件token等)数据不变,测试诸于广告ID等动态变化的部分,然后再捕获实时请求获得的返回结果。
开发人员可以通过提交安装事件相关请求然后将其与真实的安装会话进行匹配来测试其构造的数据是否正确。如果成功地追踪到了安装事件,就可以证明已经成功破解了安装逻辑。因此,SDK欺骗仅仅是对几十个变量进行简单的试错。一旦一次安装过程被成功追踪,欺诈者就可以据此构造出一个URL,然后成功的进行安装伪造。
(4)模拟器安装作弊
这种作弊方式通常通过数据中心使用模拟器进行。模拟器作弊又分为电脑模拟器、手机软件模拟、脚本模拟。
- 电脑模拟器作弊是指在一台或多台机器上开很多的虚拟机跑模拟器进行刷量,稍微有实力的作弊者可自己开发模拟器并有专门的服务器挂在全国各地的机房,或者使用VPN不断变化IP,进行24小时不间断的刷量。
- 手机软件模拟作弊是指在手机上安装模拟器进行作弊,软件可以从非法渠道买到,也可以根据自已要求定制。经过几年的发展,手机软件模拟刷量一键安装运行已成为标配。部分模拟器甚至能动态修改机型唯一性标识,即使是小白用户也可轻松伪造新增用户。部分刷量玩家结合PC 时代的技术,编制自动化脚本,单台PC 单日可伪造数百上千新增用户。更有甚者,可深度定制化模拟器,将伪造新增流水线化,
- 脚本模拟就是利用一些脚本来模拟用户的行为进行作弊,这类目前占比比较多,常用的一些方法就是使用ACC、IS、IF、IG插件,录制用户的行为生成脚本,并设置循环任务,如果会使用LUA语言并懂点业务,再对用户行为有研究的话,做出一个模拟真实用户使用的脚本应该不是很困难,市面上已经有些脚本跟真实的用户行为几户没太大差别,很难从技术上分辨。
合约欺骗
这种类型的作弊的特征是,在广告主同意的条款之外的条件或环境中投放广告。这种手段被用来吸引更低价的流量,同时欺骗广告主从而获取更多收入。这种形式的欺诈吸引的虽然是真实的用户,但因为他们并不是广告主的目标客户,所以这些广告的质量或产生的价值并不是广告主所期望得到的。
(1)环境欺骗
这种类型的欺骗是指将广告投放在错误的环境中或者以错误的格式投放广告。举个例子,虽然广告平台将广告投放在一个有着很大访问记录的网站上,但这些人并不是广告主所期望的目标用户。所以这被认为是一种合约欺骗,因为广告并没有投放在合适的环境中。
(2)未公开的流量激励
流量激励是指当用户点击某个广告或者安装某个APP的后,就会得到一定的奖励,这样更能吸引用户,但是并不能保证用户对这个广告感兴趣。如果广告平台提供流量激励,而广告主提出不允许提供流量激励,那么这就是一种合约作弊。
(3)以次充好
流量的价格通常会根据用户所在的区域(国家)不同而有所区别。如视频类广告一线城市受众较二三线城市往往溢 价售卖。一线城市的库存经常紧缺。出于牟利动机,部分媒体会将广告主原本定向的一线城市用户偷偷换 成二三线城市用户,达到以次充好的目的。地域是标示用户的刚性标签(多方易于达成共识),而类似高收入群体这样的定向,若发生以次充好,在举证环节的沟通成本将极高。
(4)未公开的重新代理
未公开的重新代理就是广告平台违反协议将广告转卖给第三方。这种情况下,当广告最终被展示时,它可能无法到达预期的目标受众面前,广告主也可能无法透明地知道广告最终被投放到哪里。一些广告主不希望他们的广告被转让,这样便于掌控他们的品牌和信息。
(5)欺诈套利
套利是商业广告一个必要的组成部分,以较低价格买入,以较高的价格出售,即“低买高卖” 。套利本身不被认为是欺诈的。 在许多情况下,广告网络使用套利来有效地提高效率和规模,这也是合约作弊的一种形式。
(6)诱导性广告
这种形式的欺诈主要是指在误导性的语境中展示广告。它会让用户不小心点击,或者包含一个诱饵诱导用户点击,但点击结果并不是用户所想要的。诱导性广告通过诱导性的信息欺骗用户与广告进行互动,这通常是在广告主和广告平台的合约规定之外。
(7)域名欺骗
在实时竞价过程中,欺诈者可以使用域名欺骗来有意地用一个更理想的域名来替换他们的域名,以吸引优质流量,虽然广告主认为他们的广告显示在某个通过域名识别的流量源上。其实他们的广告偷偷地被显示在另外一个不同域名的流量源上。
参考资料:
https://www.tune.com/blog/types-of-advertising-fraud/
http://www.199it.com/archives/703479.html
《2017广告反欺诈白皮书》