科普 | 拒绝羊毛党:运营同学必看的防薅羊毛技术完全解读
如果再抽象一点,可以分成手动和自动两大类。手动的薅羊毛,即人肉薅羊毛,靠各种群集合起来,有羊头组织和派发任务,其他人只要抽出些碎片时间参与即可。自动的就是要建立一套程序,在特定活动时开启,或者针对某些平台长期运行。
本文主要讨论如何防范自动化的薅羊毛,因为除了黑客之外,这种羊毛党危害最大。而防范黑客的话题太大,也没有什么固定的解决方案,讨论也没啥用。而对于人肉薅羊毛,做任务、刷单等,目前也没有太好的办法,毕竟都是真实的用户,除非有明确的行为数据模型可以命中,否则只能当做正常用户。这个后面会提到。 2. 通过运营手段防范 我们都知道羊毛党的危害非常大,尤其对于运营活动来说,最常导致的问题就是运营成本失控、数据样本失真、垃圾账号混淆、公正性失信等等。其中运营成本失控,如果把握不好,拖垮公司都是有可能的。而数据统计的失真,也导致无法清晰判断后续的运营策略。羊毛党的蜂拥而至,也会降低真实用户的积极性这忠诚度,榨干平台。要想防范羊毛党,最主要的还是控制利益的诱惑,避免直接利益,比如红包话费等。而对于优惠券之类,用户需要购买才能使用的,诱惑就没那么大了。除非是五折以上或者是大额现金券。此外,购物也需要填写明确的收货地址及其他个人信息,羊毛党会相对谨慎一些。因此,在制定营销活动时,必须制定完备的业务规则,必须要有相应的活动门槛和限制,例如:2.1 用户群体限制定义哪些类型的用户能参与活动,指定清晰的分界线。对于特定的活动,可以适当提高参与门槛,比如 V2 以上会员可以参与,有过购买记录的可以参与等等。这种主要针对特定群体会员做运营,对于被排除在外的用户,体验就没那么好了。通过技术手段薅羊毛,最常见的就是高频刷接口,恶意注册账号,撞库等。而这类羊毛党,一般会大量养卡,或有很多虚拟的打码平台,可以提供手机号+验证码服务。有的可能还会拥有大量动态IP地址,海外服务器,以及批量的身份证等。还有专业的设备,称作“猫池”、“卡池”。对于移动端的业务,许多这类公司还购入大量实体手机,再通过软件批量控制,称为“群控”,这个我在《微信里的赚钱路子》文章里提到过。对于这种羊毛党和黑灰产,传统的防护手段一般有三种:封IP,封用户,增加验证码。下面分别进行讲解。
3.1 封禁 IP 或 IP 段针对异常 IP,我们可以通过技术手段直接封掉。目前大部分网站的接入层都是 Nginx,那么可以考虑使用 deny 配置封禁 IP 或 IP 段:验证码有很多种,往往加在重要操作流程中,比如注册/登录/绑卡/支付等环节,大家应该都体验过五花八门的验证码。比如注册用户时的拼图滑块、Google 的 I'm not robot、手机验证码、图片验证码等等。第三方授权的功能也是一道天然屏障,比如微信授权、QQ登录授权,这样恶意用户需要先经过第三方验证一道,起码在访问频率和账号真实性上多了一道屏障。如果业务允许的话,还可以要求用户进行实名认证,密保问题校验等等。当然,步骤越多体验就越差。
验证码的主要作用就是区分操作者到底是人还是机器。但是不同的验证码难度千差万别,普通的手机验证码,有专门的打码平台可以提供 手机号+验证码 服务,而且都是程序对接,自动化执行。而对于一般的图片验证码,也有很多公开的图片验证码识别服务。因此才会导致各个平台的验证码越做越复杂,到了人类都很难辨认的程度,体验很差。
3.4 系统限流限流只能一定程度上缓解,或者说让风险可控。主要是防止恶意请求流量、恶意攻击,或者防止流量超出系统的峰值,破坏系统。前面第 1 小点封禁 IP 也可以理解为限流的一种,在接入层直接拒绝,对于系统资源的损耗最小。而对于网络流量,可以使用 Nginx 的 limit 模块进行限制,防止过大的流量穿透到后端应用。常用的限流算法有两种:令牌桶算法,漏桶算法。令牌桶算法,是一个存放固定容量令牌的桶,单位时间内,拿到令牌的才能通过,多余的不派发令牌;漏桶算法则是单位时间内流出的数量固定,流入无所谓。那么无论对于网络请求的数据量,还是用户新增的数量,奖品发放的数量,都可以使用这两种思路进行限制。这里是系统架构的知识,不再赘述。3.5 离线数据分析如果活动已经在进行,或者活动已经结束,但是总感觉不对劲,这时候就要采用离线数据分析的方法,仔细辨别是否有羊毛党的存在。那么数据从哪里来呢?前面提过,除了活动必须的数据之外,如果想更深入地分析用户行为,那么在需求设计阶段就要想好,希望记录哪些行为,便于后续分析。如果系统没有提供这些能力,显然也没有相关的数据可以分析了。3.6 综合解决方案完整风控解决方案,不仅要考虑用户体验,同时又要兼顾效果,需要考虑很多方面。因此有很多大小公司都专门提供了这方面的解决方案。比如腾讯、阿里、网易等等,此外还有许多提供这种业务的公司,搜索“防薅羊毛”就会出现很多。这些解决方案的基本原理与上述技术无异,只是数据基数更大,再加上机器学习和大数据分析,可以更加准确识别出恶意用户和黑产用户。以下内容(3.6.1 - 3.6.4)来自网易易盾《全链路风控解决方案深度解读》中提到的风控服务,不代表本人观点,仅供参考,文末参考文献中有文章链接,感兴趣的同学可以前往查看。事前预防:通过数据采集收集用户侧信息、通过业务规则来限定参与活动的门槛、通过身份核验来确认用户身份等手段,防止风险事件的发生。事中检测处置:通过实时在线的手段来检测风险,并做相应的风险处置,防止风险事件的发生。事后分析回馈:基于长周期的离线数据分析,计算用户侧、设备侧、IP侧、业务侧的各种风险特征,并作用于事前风控和事中风控。3.6.1 事前预防事前预防主要有三个层面的事项:数据采集、业务规则、身份核验。a) 数据采集在业务活动的各个阶段,都需要埋点采集数据,主要有设备指纹、操作行为、网络数据、业务数据、第三方数据等。采集的数据主要用于事中的风险监测和事后的离线分析。b) 业务规则在制定营销活动时,必须制定完备的业务规则,必须要有相应的活动门槛和限制,例如:用户群体限制:定义哪些类型的用户能参与活动,指定清晰的分界线。比如:电商大促经常出现的神券,可以限制账户等级>3、年度内购物次数>2才能领取等等。APP版本限制:定义哪些APP版本能参与,比如:拉新活动要求必须使用最新版APP注册才给奖励。参与次数限制:明确定义账户级、设备级、实名信息级能参与活动的上限和参与活动的频率等。c) 身份核验身份核验主要是为了确保是用户自己来参与活动,主要手段包括:手机短信校验;验证码校验;密码校验;密保问题校验;本机校验:校验手机号对应的SIM卡是否在当前设备中使用;实名认证,有三种:1)身份证OCR校验;2)身份证OCR、人脸校验;3)身份证OCR、活体检测;个人信息。3.6.2 事中检测处置事中检测主要依赖人机识别、风控引擎、风险处置三个手段。a) 人机识别人机识别主要区分是人,还是机器自动化的行为。客户端与后端的数据交互过程中,增加如下的数据保护手段,一旦发现数据有问题,则都是机器行为。数据合法性校验;数据加解密;数据篡改检测。b) 风控引擎事中检测的核心工具就是风控引擎,风控引擎主要的工作是识别风险,一般的风控引擎都需要如下几个功能:名单服务:建立黑、白、灰名单;画像服务:建立基于IP、手机号、账户等层级的画像服务;指标计算:一般包括高频类统计、求和、计数、求平均值、求最大值、求最小值等等;风控模型:基于采集到的数据,建立风控模型,比如:设备模型、行为模型、业务模型等;规则引擎:最终的风控数据进入规则引擎,由规则引擎判断是否存在风险。风控运营需基于业务建立各种风控规则,以识别风险。c) 风险处置识别到风险之后,需要对风控进行处置,处置手段一般有:二次校验:比如,正常用户无需二次校验,有风险的用户需再次校验手机短信等;拦截:拒绝当前业务操作;降低奖励:比如,正常用户的奖励金是1元,风险用户奖励金是0.01元;拉黑:直接进黑名单;名单监控:进灰名单监控;风险审核:进入人工审核,比如:电商场景的订单业务,一般嫌疑类风险订单,都会安排人工审核。3.6.3 事后分析回馈事后主要是做离线分析,分析结果可作用于事中实时检测和事前预防。对于T+N的业务(比如:拉新奖励金提现),离线分析之后,若识别出风险,也可以做拦截(拒绝此次提现)。离线分析主要有几个方面:离线指标:基于长周期、大数据的离线指标计算;关联分析:基于前后关联业务、关联数据做关联分析,识别风险用户、风险操作;复杂网络:基于用户数据、设备数据、网络数据、业务数据,建立复杂关系网络,基于数据与数据之间的关系,来识别风险;模型训练:基于机器学习、深度学习技术来构建业务模型、设备模型、行为模型,或文本类模型(异常地址检测、异常昵称检测)等;名单库:通过离线分析,积累、沉淀各种名单库;数据画像:基于离线分析,对账户、IP、设备、手机号等构建数据画像。3.6.4 全链路布控全链路风控解决方案另一个非常重要的过程是:全链路布控。若只是构建了全链路风控模型(工具),未做全链路部署,那也是大材小用。全链路布控主要要做到:多业务布防:在业务的各个环节都需布控防刷手段,一般的营销活动都需先注册、登录,再参与营销活动。所以,可以在注册、登录、营销活动各个环境都布控风控检测。联防联控:前置业务为后置业务产出事前特征,避免后置业务风控检测冷启动;后置业务为前置业务提供事后特征,比如:准实时、中长周期的风险特征。3.6.5 第三方解决方案的弊端第三方解决方案的弊端就是对系统的侵入,需要我们在自己的系统里嵌入许多外部代码。那么带来的风险就是,系统数据全部开放给外部,用户数据风险,业务经营数据风险,系统可用性风险等。一旦外部系统出现问题,可能导致我们自己的系统不可用,或者数据泄漏。如果不能接受这一点,或者无法信任第三方,或者公司政策不允许,那就无法使用这种服务。 4. 总 结 最后,我综合总结一下全文的梗概,如果前面都没仔细看的话,那么只看这里就可以了。1. 适用范围:主要针对自动化薅羊毛的防御。2. 业务逻辑设计:拉新活动要小心(拉新送、注册送、关注送、新用户立减、日常打卡、签到、获得积分、积分兑换、抽奖)。3. 系统设计:接入层:Nginx,限制频率,IP 黑名单(代理IP识别);应用层:redis,漏桶,令牌桶算法;接口层:访问控制,防重入 token(token是用户一次操作的唯一标识),模糊的响应迷惑恶意请求;业务层:验证码,黑/白名单机制(大数据),设备指纹,行为数据,全链路布控;界面层:提高破解门槛,防自动化(按键精灵等);数据分析:分析历史作弊数据,优化活动奖励,采用堵不如疏的策略,与其强硬的一刀切,不如提升攻击成本,减少获利;机器学习,大数据反作弊平台,GCN、Node2V、Louvain、GAN、GBS、LSTM等模型,我也看不懂了~以上,就是防范羊毛党相关技术的全部内容,建议收藏。最后,我们再回顾一下文章脉络:
本文转载于微信公众号:姬小光(ID:hi-laser),已经取得作者授权,未经作者授权,禁止转载。