zoukankan      html  css  js  c++  java
  • 谈谈反作弊风控的实践经验

    有人的地方就有江湖,互联网行业中的黑产团伙早已见怪不怪了,产品团队精心设计的营销活动奖励全部被机器人抢走、大量账号24小时挂机薅羊毛,这些行为不仅让正常用户享受不到企业的优惠福利而且还大大损害了企业自身的利益。

    这种现象在笔者就职的公司也很普遍,笔者负责反作弊项目也有一段时间了,在与黑产做攻防斗争的过程中积累了一些心得体会,本文的目的是梳理自己反作弊的经验以及与大家分享交流自己反作弊的一些经验,欢迎指正!

    一、反作弊是啥?

    面对的群体:

    • 羊毛党:账号的背后是真人,这部分群体没有给平台做出贡献,但是只要有优惠活动就会一拥而上
    • 黑产:账号的背后只有一个或者少数几个真人,这部分群体主要通过技术手段模拟真人,羊毛党的危害之于黑产要小得多

    羊毛党和黑产的存在会导致:耗费巨资的拉新促活方案效果不佳、平台返利都被机器人抢走、黑产和羊毛党的活跃造成了一种虚假繁荣的业务景象……反作弊的职责就是充当平台中打击黑产和羊毛党的管理员。

    二、反作弊策略的几个思路

    1. 规则引擎
      • 已有策略
      • 日常指标监控:业务方面的比如刷量监控、异常设备注册、异常版本注册、小渠道注册、虚拟机
    2. 基于关联关系识别
      • 黑产也是有成本的,他们不可能在一批账号被封禁了之后就废弃设备,而是会在这些设备上重新注册新的账号,所以可以利用这个性质通过已有风险设备ID取关联出其他的同伙。但是这样做也有缺点,一个是打击面会越来越广,容易误伤,二是设备刷机了之后设备id相应地也会发生变化,导致策略失效
      • 对于确定性很高的特征:比如IP聚集性、异常版本聚集性等等也可以扩大打击面
    3. 基于行为或者物理特征
      • 行为上相似:黑产不同于羊毛党,黑产一般是通过机器控制大批量的账号,所以这些账号从行为日志数据上来看的相似度会很高,可以通过分析客户端日志事件,挖掘黑产是否有相似性,然而在实际中实际效果不太理想,容易误伤
      • GPS坐标、陀螺仪指标是否可疑
      • 设备机型是否是重点被关注的对象
    4. 基于网络或者机器学习:如标签传播(LPA)、图神经网络、GBDT等

    三、反作弊的三阶段工作流程

    (1). 防守阶段

    防守阶段是通过建设护城河直接把黑产挡在城外,让他们根本没有伤害我方的机会,比如通过第三方服务获取设备的风控标签、提高营销活动的参与门槛、增加二次校验防止恶意注册等手段,防止黑产进入到战场。

    (2). 攻击阶段
    1. 理解需要对抗的业务问题,找到一个小的切入点,找到一小部分的黑样本
    2. 从切入点或已有的黑样本突破召回一定数量的可疑账户并对其做验证分析
    3. 基于第2步,挖掘是否有新的特征并扩大召回的范围并重复第2步骤
    4. 监测反作弊的效果,搭建监测机制,量化指标异常设备量、可疑版本分布、TOP刷量等指标形成报表,非量化的则是用户反馈、是否有新的模式出现,然后工程师需要每天观察这些指标变化的情况
    5. 定期评估风控策略的效果
    (3). 打扫战场

    攻防阶段的过程中,黑产的进攻手段是在不断进化的,所以我们需要定期开展积累风控规则策略、总结黑产的攻击模式、积累设备黑名单列表等策略以升级现有的攻防策略。

    四、算法还是策略?

    反作弊不同于反欺诈,反作弊的原则是“宁可放过一百,不可错杀一个”,误杀对于用户的体验影响是巨大的,在与黑产和羊毛党的攻防对抗中风险与收益是并存的。

    那么,在反作弊的业务中算法和策略孰轻孰重?我觉得要分场景来考虑,打个比方,算法好比是导弹而规则策略则是一挺挺的机关枪,如果你的“战场”在一片巨大的区域,此时你面对的敌人是十万上百万数量级别,机关枪虽然好使但显然效率不高,如果你面对的仅仅是几千个好事之徒的挑衅,机关枪就足以对付,使用导弹反而容易伤及无辜。

    所以,到底是算法还是策略?有几个点需要考虑,第一是业务量,如果你的业务量不是特别大,算法模型就好比大炮打蚊子,第二是可解释性,解释性较好的模型更受青睐,工程师至少知道自己的弹药打到了哪个地方,如果解释性不佳那么处境就很尴尬。笔者在算法模型上也做过一些尝试,有精力了再跟大家分享。

    五、做好反作弊的关键

    1. 需要对业务问题有深刻的理解,比如拿到一个反作弊的需求,如何找到合适的切入点是非常关键的,哪怕是很小很小,不然无从下手。比如,笔者面对的群体就是黑产,那么首先需要思考黑产这个群体区别于其他正常人最大的特点是什么?经济流水正常不正常?IP地址有没有“聚集性”?
    2. 谨慎应对误伤,“宁可放过一百,不可错杀一个”,策略误杀对用户体量比较大的公司可能影响不大,对于体量较小的来说用户的不良反馈则是很影响用户体验的
    3. 考虑误伤对用户体验的影响,有的时候为了平台的热度或者引诱潜在的黑产,甚至可以适当考虑解禁小部分黑产账号

    阅读:

    该如何做大中型 UGC 平台(如新浪微博)的反垃圾(anti-spam)工作? | ZHANG RONG

  • 相关阅读:
    HttpRunnerManager使用(一)
    python入门(七):字符串
    python入门(六):函数
    python入门(五):切片列表元祖字典
    python入门(四):字符串、编码、random
    HttpRunnerManager安装部署
    python入门(三):循环
    python入门(二):isinstance、内置函数、常用运算等
    js 去掉空格
    JQ赋值
  • 原文地址:https://www.cnblogs.com/swordspoet/p/14773838.html
Copyright © 2011-2022 走看看