V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
seekseat
V2EX  ›  信息安全

关于黑产账号多开,设备和 IP 的识别方案

  •  
  •   seekseat · 219 天前 · 8436 次点击
    这是一个创建于 219 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近公司搞了一个新用户注册有奖活动,发现被职业羊毛党薅惨了,真实用户没有几个。

    由于之前没有这块经验,想请教各位前辈,这种防范方案,是公司自行开发,还是购买第三方的一些解决方案?

    搜了下没看到很成熟的方案,自己开发的话,能想到的主要是账号,设备和 IP 的打标。

    由于账号支持使用邮件注册,所以理论上很难据此判断用户是否是一人多账号,只能想到设备和 IP 。

    我是服务端,公司的产品有 web ,移动端。 前端同事说可以获取到浏览器指纹信息,客户端同学,Android 应该能拿到设备(相对)唯一的标识(但安卓改机貌似非常简单),iOS 则很难获取到。

    请教大家,都是怎么做的

    84 条回复    2024-05-22 14:34:07 +08:00
    pddgoods
        1
    pddgoods  
       219 天前
    加个审核功能,啥都解决了
    seekseat
        2
    seekseat  
    OP
       219 天前
    追加:忘了 IP 的信息。 目前是限制单单个 IP 最多注册 3 个用户,超过则打标为黑产。 但由于 ipv4 稀缺,很多公司或学校,几百上千人共用一个出口 ip ,这样是否会误伤真实用户?

    另外,使用路由器,或者手机热点,ip 不是固定的,黑产完全可以频繁重启路由器/热点来做到变更 ip 。
    seekseat
        3
    seekseat  
    OP
       219 天前
    @pddgoods 数量太大了,人工审成本吃不消
    kingmo888
        4
    kingmo888  
       219 天前
    手机号难道不算吗?
    8355
        5
    8355  
       219 天前
    杜绝不了,只是提高对方的伪装成本即可,提高门槛,同时降低奖励,没的赚就没人搞你了。
    ip 可以挂代理,手机号可以代接短信验证码,邮箱都是 1 分钟免费邮箱,其他的只要是代码端调用你的业务都是伪造信息。
    proxytoworld
        6
    proxytoworld  
       219 天前
    用第三方的吧
    NoOneNoBody
        7
    NoOneNoBody  
       219 天前
    大厂经验:开个 VVIP ,然后把之前的活动期间注册的 VIP 封号不承认其有效性
    wxw752
        8
    wxw752  
       219 天前
    @seekseat #2 这个思路完全不可行。会误伤的
    proxytoworld
        9
    proxytoworld  
       219 天前
    指纹都可以修改,你们没做过很容易绕过
    proxytoworld
        10
    proxytoworld  
       219 天前
    现在都是修改安卓系统来修改指纹,我有一个朋友在某大厂做这个,改指纹来做爬虫
    hopingtop
        11
    hopingtop  
       219 天前   ❤️ 6
    单纯的注册有奖,一定会被薅的,而且还支持邮箱注册。。。口子更大
    如果对于手机号可以买大厂的安全产品,灰产库
    IP 一般不作为绝对判定条件,只能作为辅助,提高刷的代价,比如要做什么任务,防止群控批量薅

    最重要的还是从业务侧去梳理,或者借第三方验证,比如支付宝,wx 支付,打款 0.1 元, 返回再返款。借大平台的风控来实现自己的风控。

    如果要完全做一套,代价是很大的。简单点的,就是 浏览器和客服端预埋点东西,客户端还可以取一些动态特征,然后自己来分析,分析过后才能领取奖励。
    egen
        12
    egen  
       219 天前
    建议上专业的防刷,网易和腾讯都有相应的服务
    starinmars
        13
    starinmars  
       219 天前
    大额加上实名,几块钱同一个地址限制频率、屏蔽机房 IP 、有问题的地址放入黑名单。
    RandomJoke
        14
    RandomJoke  
       219 天前
    一般要业务妥协吧, 用手机号稍微好点, 邮箱发奖励那没什么办法, 设备 IP 这些都能造
    kenvix
        15
    kenvix  
       219 天前   ❤️ 3
    最低成本的是注册接入微信或支付宝,转移成本到第三方
    vivisidea
        16
    vivisidea  
       219 天前
    我司就是做这个的。你需要风控解决方案……在设备端、浏览器嵌入设备指纹 sdk ,有兴趣可以了解下😁
    dada88xyxy
        17
    dada88xyxy  
       219 天前
    试过做有奖活动,得奖者直接发微信红包。然后在微信红包开启防刷等级设置为高(没有拦截多少,但是心理安慰,用微信支付来拦了一部分)
    potatowish
        18
    potatowish  
       219 天前 via iPhone
    注册奖励可以设置为手动领取,领取时需要填写身份证号和人脸识别
    LsLsLsLsLs
        19
    LsLsLsLsLs  
       219 天前
    接口加密
    AK2022
        20
    AK2022  
       219 天前
    用的比较多的是数美
    aagaguai
        21
    aagaguai  
       219 天前
    只允许特定邮箱注册,比如 qq 邮箱
    seres
        22
    seres  
       219 天前
    手机号绑定做第一道门槛,提现用实名认证做第二道
    249239432
        23
    249239432  
       219 天前   ❤️ 2
    ip-----代理 ip 每天几十万不等
    识别浏览器指纹------指纹浏览器
    识别设备指纹----云手机一键改设备指纹
    -------------------------注册成本高低分割线------------------
    手机号识别------灰产卡商一个人手上几千到上万不等的手机卡,每天还有更新新卡
    手机号注册完以后发短信校验------这个能很大程度提高成本,大部分灰产卡商都是只收不发
    人脸识别----这个能极大提高注册成本
    tomczhen
        24
    tomczhen  
       219 天前
    如果短时间内就能自研一套解决问题,就不会有那么多羊毛党了。
    lonelykid
        25
    lonelykid  
       219 天前
    可以搞个 1 分钱领取,通过支付渠道过滤,每个支付渠道账号只能领取一次。
    chendl111
        26
    chendl111  
       219 天前   ❤️ 1
    手机号与身份证实名,不够吗?一个邮箱也是实名后才能领取奖励
    HFX3389
        27
    HFX3389  
       219 天前
    要不试试接入微信登录?在现有条件下加入微信扫码后绑定微信提供的 Openid 之类的?
    利用微信的风控实现自己的风控
    qikexiu
        28
    qikexiu  
       219 天前
    1 、收集客户端指纹; web 端的浏览器环境 [document.all 、webrtc 等等这种 node 环境下很难补(烦琐);安卓、IOS 可以直接用 webview ,当然也可以在 native 收集更多的指纹 [http.proxyHost 、XposedBridge 、getProperty 、重要的文件目录 hash(/data/system 、/vendor/firmware)、frida 检测...] ,接入数美之类的专业安全产品效果更佳]
    2 、客户端根据收集到的客户端指纹标记用户环境是否可信,对于有风险的客户端拒绝下发奖品(后端风控)
    3 、更多的"蜜罐",在客户端每个请求之后添加一个 log 请求,大数据统计只请求业务接口没日志接口记录的用户
    4 、用户注册、邀请码接口 ja3 判断是否为单客户端批量注册

    以上都是在一定程度上增加黑灰产的逆向难度,国内大厂给出了更低成本的解决办法:+86 实卡注册 + 人面实名
    ChefIsAwesome
        29
    ChefIsAwesome  
       219 天前
    搞个微信注册就完事了。微信都防不住的,你也防不住。
    woldfoll
        30
    woldfoll  
       219 天前 via iPhone
    @kenvix 职业薅羊毛的也有成千上万的微信号
    xguanren
        31
    xguanren  
       219 天前
    上风控呀 现在一大堆这种平台。
    kenvix
        32
    kenvix  
       219 天前 via Android
    @woldfoll 是 所以只是成本最低的 更好的得加钱
    xinsu
        33
    xinsu  
       219 天前
    最有效;
    手机号,实名认证;
    你想到其他的什么 ip 这些,这是最基础的。
    最后,可以对接平台的防羊毛功能。
    winterpotato
        34
    winterpotato  
       219 天前
    浏览器指纹能够帮到一些,比如说这个 https://fingerprint.com/ 但是也很容易被 绕过去就是了。

    实名认证当然最有效了,不过也也很麻烦
    sakujo
        35
    sakujo  
       219 天前
    有嫌疑的全砍单,有真实用户找你反馈你再给他就完了,羊毛党是不会一个一个找你的
    icloudguizhou
        36
    icloudguizhou  
       219 天前   ❤️ 1
    @winterpotato icloud keychain 可以设备指纹唯一的 ID
    @qikexiu
    yueji
        37
    yueji  
       219 天前
    在网上找到的一个工具,应该是你需要的
    APT 检测_1.1.zip
    https://url76.ctfile.com/f/54460876-1246914520-a5b937?p=5712 (访问密码: 5712)
    w3xse7en
        38
    w3xse7en  
       219 天前
    客户端其实有,指纹浏览器,虚拟机等手段进行规避
    支持邮箱的话一般都是面向海外了,很难用人脸以及实名之类国内手段的来规避这种攻击
    提供一些些思路

    1. 服务端需要加上比较复杂的验签机制,例如动态下发对称加密的内容,客户端解密后再进行复杂的组合签名
    2. 客户端上比较困难的图形验证码手段,例如 3d 旋转图片,匹配特定文字等,尽量用多种方案,可动态控制弹出不同类型的验证方式
    3. 注册时的验证码做成语音式的,而不是文本类的
    4. 业务流程上可以做些改进,例如采用邀请码的形式,并针对邀请码进行一些限制
    5. 做好注册的流量监控,通常来说注册的流量不会很大,一般是稳定的,如果短时间增量过大,应该是受到攻击,可以开启 IP 限流、强制困难验证码校验,限制一段时间内获奖的总量等手段
    6. IP 限流可以做成滑动窗口的,例如 30s 内某 IP 尝试注册 5 次以上则封禁 6 小时
    seekseat
        39
    seekseat  
    OP
       219 天前
    @8355 ip 代理也要成本吧,也不是无限 ip 供应。提高对方成本,高于能薅到的羊毛,应该就没动力了
    seekseat
        40
    seekseat  
    OP
       219 天前
    @proxytoworld 发现居然没有很合适的
    seekseat
        41
    seekseat  
    OP
       219 天前
    @wxw752 会再加上设备信息,二者作一个”唯一索引“去筛人
    seekseat
        42
    seekseat  
    OP
       219 天前
    @proxytoworld 指纹指的是浏览器端的 user agent 啥的吧
    seekseat
        43
    seekseat  
    OP
       219 天前
    @hopingtop 想和老哥探讨下最后这段,这算是用户行为分析吗? 主要是正常用户可能日常活跃度并不比灰产高到哪里,最多会每天多打开几次,恐怕很难有效甄别二者
    seekseat
        44
    seekseat  
    OP
       219 天前
    @egen 他们这种防刷,是指的防 DDOS 的高防吧
    seekseat
        45
    seekseat  
    OP
       219 天前
    @vivisidea 好的,怎么联系下
    seekseat
        46
    seekseat  
    OP
       219 天前
    @dada88xyxy ”微信红包开启防刷等级设置为高“ 微信红包还有这功能吗
    seekseat
        47
    seekseat  
    OP
       219 天前
    @249239432 学到了,感谢!
    seekseat
        48
    seekseat  
    OP
       219 天前
    @chendl111 很多用户对实名有抵触
    xguanren
        49
    xguanren  
       218 天前
    @seekseat 海外的话上一个 5 秒盾 akamai 国内的话 数美 极验 易盾 人机验证平台很多的 多上几个.基本上就能过掉一大批的黑产账号了.如果你们项目产值特别高的话 那只能是带上实名手机号之类的.发现黑产账号报警处理 物理打击
    linyongxin
        50
    linyongxin  
       218 天前
    实名手机号+微信
    vivisidea
        51
    vivisidea  
       218 天前
    @seekseat 网易易盾,直接联系客服就行
    incubus
        52
    incubus  
       218 天前
    机器人检测
    skull
        53
    skull  
       218 天前
    注册加个只能人工识别的校验码,加大薅羊毛的成本
    runking
        54
    runking  
       218 天前
    注册不行,得后续比如充值些,根据你们的产品来提高羊毛党的成本
    GOliberation
        55
    GOliberation  
       218 天前
    建议 IP + 浏览器唯一 ID + 身份证 + 手机号 做唯一验证。
    EsWann
        56
    EsWann  
       218 天前
    如果你们是支持邮箱注册的话,Github 有临时邮箱的列表项目,可以将这类邮箱后缀列入黑名单。
    esee
        57
    esee  
       218 天前 via Android
    浏览器指纹没用,现在我们都可以随便变更浏览器指纹,你怎么搜集呢,这是防君子不防小人,除非转接到支付宝微信实名认证,否则你能想到的方法都有相应的对策。人家干了这么多年的灰产哪有你那么容易对付的
    hopingtop
        58
    hopingtop  
       217 天前
    @seekseat #43 我说一个简单的指标,然后你去扩展思路,因为有些东西不能说的太明白了。
    第一个的系统级的 API 版本验证,比如说灰产或者群控大多数设备,客户端等级都比较低
    第二个是客户端的传感器,比如光感,陀螺仪,这些随环境变化而变化的。

    举个例子,你玩手机怎么玩的,群控玩手机怎么玩的。当然这些也是一些比较简单的思路。

    防灰真的是系统工程,但是有一定的防护能拦截大部分。

    如果你们的业务本身不是灰,可以去了解一下大厂的方案,看看投入回报比
    hopingtop
        59
    hopingtop  
       217 天前
    @seekseat #43 在补充一点,如果要防灰,最好是在一些放开的口子看是否能收回,如果不能收回,那就要区别对待,比如说你们的邮箱注册,验证邮箱可能就不要是单纯的验证码了。比如来一份答题,学习一下 B 站的模式。 这种至少来说可以部分防止批量注册, 如果用户真上心,也会搞,但是会慢很多。

    因为你整体领取流程加长了,那么在这个过程中,就非常有利于 你们业务本身 去埋点,去获取特征,做具体的分析防御
    Greatshu
        60
    Greatshu  
       217 天前
    招几个电话客服,联系客户完成一个问卷后再给奖励
    seekseat
        61
    seekseat  
    OP
       217 天前
    @qikexiu 3 是为了防止接口刷吗? 但看起来都是 app 点击的,不知道是不是用啥按键精灵之类的
    seekseat
        62
    seekseat  
    OP
       217 天前
    @icloudguizhou 这个应用开发者拿不到吧。。这边做 ios 的同事说,苹果把这些信息都作为用户隐私
    seekseat
        63
    seekseat  
    OP
       217 天前
    @yueji 这个不是一回事
    seekseat
        64
    seekseat  
    OP
       217 天前
    @w3xse7en 因为用户主要面向校园,很多学校出口 ip 就一个。不敢对 ip 限制太多...
    seekseat
        65
    seekseat  
    OP
       217 天前
    @xguanren 这报警用啥理由...证据不绝对充分不太行吧
    seekseat
        66
    seekseat  
    OP
       217 天前
    @vivisidea 我理解易盾是验证码啥的,没法识别设备和 ip 吧
    seekseat
        67
    seekseat  
    OP
       217 天前
    @esee 怎么检查自己的浏览器指纹?这个一般不好换吧
    seekseat
        68
    seekseat  
    OP
       217 天前
    @hopingtop B 站这个答题太劝退了...
    esee
        69
    esee  
       217 天前
    @seekseat 那些做跨境的经常用到一种浏览器,可以模拟各种浏览器环境,方便应付各个电商的一些简单检测,这都是很商业化的技术了,只要变了一些参数,浏览器指纹就变了。这对于用代码来实现模拟请求的,更方便
    vivisidea
        70
    vivisidea  
       217 天前
    @seekseat #66 有的,我们有智能风控的业务 https://dun.163.com/product/risk-engine
    xguanren
        71
    xguanren  
       216 天前
    @seekseat ...报警有什么理由..公司权益被侵犯了..提供各种记录,又不是没抓过.之前各种 app 拉新.钱包什么的.而且这种一抓基本上都涉及买卖个人信息.警察蜀黍乐易抓这种 现在严抓侵犯个人信息.因为这种拉新 app 都需要实名.黑产的需要刷你活动.肯定需要买各种身份证 手机号 一抓一长溜..为什么不抓?
    xguanren
        72
    xguanren  
       216 天前
    @seekseat 识别设备 id 是易盾那边做的事.不光是验证码.还涉及到行为验证.设备指纹.你可以理解为 易盾那边验证通过之后 会告诉你服务器 这个人没问题 他是真人.你再入库.至于识别设备和 ip 易盾那边已经做了 不需要你操心.
    egen
        73
    egen  
       216 天前
    @seekseat #44

    腾讯天御 活动防刷
    网易易盾
    llsquaer
        74
    llsquaer  
       216 天前
    可以注册随便薅,但是实际 领物品/领金额 需要实名认证。 就是前面步骤等他们折腾。。到最后需要公司实际兑付奖励的时候,再去对接支付宝或者微信的实名。

    这些人能搞到很多微信,但是很难搞到实名后的微信、支付宝。除非你的奖励给的真的太高了。
    proxytoworld
        75
    proxytoworld  
       216 天前
    @seekseat ua 不是随便改吗...
    lisxour
        76
    lisxour  
       216 天前
    @llsquaer 同意,这种东西不接实名,根本就不可能有很好的限制作用。
    ZnductR0MjHvjRQ3
        77
    ZnductR0MjHvjRQ3  
       216 天前
    @seekseat 建议不要管 IP 了 还是实名吧 你可能没买过国内的代理 IP 动态家用代理 一周 无限用才不到两百块,国外的很贵,所以其实对于国内的活动来说 IP 成本不高
    249239432
        78
    249239432  
       216 天前
    看了大部分人的回答,要么是来推广自己的产品,要么就是根本没接触过灰产
    我直接给出答案
    1 、浏览器指纹,没有卵用。adspower 、VMLoginMain 去了解一下是干什么的
    2 、设备指纹,一样没卵用,灰产几千台手机,随便你识别,更别说还有一键换新机的功能
    3 、ip ?别搞笑了
    4 、微信绑定---先不说会流失客户,灰产卡商一机一微信号过微信风控,往死里给你薅
    5 、实名手机号---卡商的手机卡就是去收购的实名手机卡
    6 、手机号与实名验证---大家没了解过地推这个职业吧?要多少实名有多少,除非你能拿到手机号的实名信息,跟实名验证结果对比


    综合各种因素,我觉得能较低成本实现的一个方案
    注册的时候先判断是不是高风险手机,注册完了以后,一天后发一个短信验证,原因嘛,我不说
    daodao
        80
    daodao  
       216 天前
    如果你是初次遇到这种情况,你是解决不了的。直接简单粗暴 限制 ip 、设备指纹、验证码、短信等等各种交集做限制,别考虑什么误杀不误杀的,不是你作为技术考虑的问题,好过被黑产薅羊毛然后你背锅。

    回想我当年刚毕业第一家公司,第一个参与策划的运营活动,就活生生被黑产薅走了 好几台 MacBook ,价值几万的电话卡。。。。原本应该是负责统一账号、40 人的团队应该负责考虑的问题,最后让我这个刚毕业的应届生,只是负责前端活动策划的背锅。

    做黑产在你们这个行业斗智斗勇了十几二十年了。
    totoro52
        81
    totoro52  
       216 天前
    黑产就像一场攻防游戏,你们的用户支持邮箱注册,那就必然要做好被刷的心理准备,毕竟这种毫无成本的验证,对于黑产来说太简单了。
    1.邮箱限制大厂的后缀,比如 qq 126 ,进一步缩小范围, 加大注册成本。
    2.上 IP 风控,但其实这个国内没啥用,我不如推荐你上人机检测,如阿里云的滑动验证,这个就可以卡死一大堆脚本小子的黑产。
    seekseat
        82
    seekseat  
    OP
       214 天前
    @esee 电商为什么管这些? 不太理解...
    seekseat
        83
    seekseat  
    OP
       214 天前
    @249239432 学到了
    esee
        84
    esee  
       214 天前
    @seekseat 矩阵开店呀,一般来说平台给每个店铺有一定的免费的曝光流量,如果单个店铺要做大就得向平台花钱买流量。如果平台不限制开店不检测卖家,一个人可以开几万个店,那他平台还有意义吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1285 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 17:25 · PVG 01:25 · LAX 09:25 · JFK 12:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.