风控基建实战:你真的了解设备指纹吗?

一、什么是设备指纹?

顾名思义,人有人的指纹,设备也有设备的指纹,也就是唯一识别码。早期的时候更多的是使用Mac地址、IMEI等,但随着隐私合规的加强,在各端已经无法取到这些强设备码了,取而代之的是iOS中为IDFA、IDFV,Android中为AndroidId、OAID等,但这些标识都可以被轻易更改或者是重装变化等,无法有效的标记一个唯一设备。设备指纹在风控中更多指的是一套可以根据设备信息进行算法计算得到相对准确的设备标识符,该标识符稳定性表现相较上述IDs更加优秀。

二、为什么需要设备指纹?

风控从业人员对设备指纹并不陌生。主要使用的是设备指纹对于“自然人”的锚定,设备的标签对“自然人”的描述。设备指纹在风控中的使用就是为了解决自然人识别的问题,增加黑产的作恶成本。设备也是黑产的物料之一,假设如下场景:

新人礼包中有新人券,业务视角会希望将无门槛券发给真的新人,而非黑产,那么对应的发券逻辑就会有一个自然人只能领取一次。

假设风控限制的自然人有设备号、手机号、微信号等唯一则为同一自然人,自然人只能获取一次。那么黑产在大量薅券时需要的物料有:设备、手机号、微信号等。其中的设备使用的便是设备指纹,黑产拥有的真实设备是有限的,如果有一个稳定的设备指纹,那么黑产在设备这个物料上就受限了,他们就需要想方设法绕过指纹以达到攻击效率,指纹也提升了黑产的成本。

三、设计实现原则

我们从黑产攻击的角度来看,如果黑产需要绕过设备指纹限制有哪些手段。以下仅做部分列举:

1►模拟器


模拟器是成本最低的黑产设备工具,模拟器很多自带设备信息重置、自动点击能力,并且支持多开同时刷。

2►改机


改机的方式也是成本低速度快的方式。通过对手机进行Root,通过Xposed等改变设备原本的设备参数,如IMEI=aaaaaa改成bbbbbb,只要是跟设备ID相关的参数都进行修改,以这种方式去绕过大部分公司的指纹算法,对于黑产来说成本低效率高。

3►HOOK


篡改设备指纹最快的方式,但是需要一定的技术能力,需要进行逆向找到指纹函数入口,通过hook不断改上报参数触发指纹上报获取设备指纹,这也是对指纹需求有高频需求的黑产所常用的手段,如爬虫。

4►设备农场


设备农场是成本高于前面所述的方式,通过设备墙上大量的手机进行群控作恶,通常来说,设备农场也会结合上述的改机工具、HOOK等手段,达到更高效率的刷机效果,实施高频作恶。对于目前更高级一些的黑产设备还有不需要屏幕的容器箱控,一个主机箱就能同时模拟出数百台云机,不管从架构还是设备信息来说都非常的真实。

通过对上述黑产工具、设备的基本窥探,可以得出设计实现设备指纹需要具备的能力:

1、稳定性

稳定性是设备指纹最基本的要求。稳定性主要分为冲突率及变化率,业内也叫做碰撞率及漂移率。

冲突:不同设备发了相同的设备指纹;

变化:同一个设备发了多个设备指纹。

低冲突率、低变化率对于指纹来说都非常重要,如果冲突率高,那么势必会导致处罚了A设备结果其他人被误伤;如果变化率高了,今天处罚了A,明天就变成了B,那就无法正确处置,导致了漏过。

相比之下,对于冲突率的要求要高于变化率,因为对于大多数的风控来说,漏过的接受程度大于误伤,误伤降低了用户体验,损害了公司的产品形象。

2、检测能力

稳定性对于正常用户来说是有用的,但对于黑产来说就没有那么适用了。

前面讲到黑产会通过各种改机手段去改变设备各类信息,以破坏我们对于设备的唯一识别。一般来说,在做设备指纹的时候会收集足够多的信息去识别设备唯一,有些黑产容易改,有些黑产不容易改,采集了“独特”的信息可以保证设备指纹没有那么容易被突破,但是随着黑产的手段迭代、政策的要求更新,这种边际效果是递减的。

因此,不需要执着于让黑产的指纹不变,而是采用另外一条路线,那就是识别设备是异常的,设备是被篡改过或者设备上有一些“坏东西”的痕迹。这就是设备指纹SDK的检测能力,也是风控防控设备端的重要一环。

3、代码强度

前面所有信息都体现了一点,那就是设备指纹是依赖于端上的。

设备指纹SDK毕竟还是集成在客户端上,在端上就会被黑产逆向,就有非常大的风险,不管是采集的字段、检测的逻辑,如果端上的代码被黑产轻易逆向破解,那么里面所有的一切对于黑产都是透明的,黑产可以给你任何你想要的“正确结果”,以突破稳定性及检测能力。因此代码强度是非常重要的,怎么对代码进行加固,最大程度的提升黑产反编译的难度也是指纹SDK设计原则之一。

4、运作模式简述


1. 设备指纹SDK负责采集设备基本信息,这里一定要注意隐私合规政策,遵循必要、少采、低频原则;

2. SDK中需要包含环境检测能力,如恶意插件检测、Hook检测、Root等等,各家水平不一能检测到的也各不相同;

3.需要对关键的采集逻辑、检测逻辑代码进行混淆加固,防止被逆向破解;

4.上报信息至指纹服务,指纹服务负责对指纹进行签发,好的设备指纹一般不采用端上ID规则匹配,而应该采用相似性算法,更安全也更稳定;

5.指纹服务异步将信息推消息至标签引擎进行设备风险识别并输出标签至标签库供下游风控环节使用。一般来说这个标签引擎应该在秒级内完成识别,耗时太久将影响拦截效果;设备风险的检测一定不要在SDK内部做再上报上来,虽然标签更实时,但非常不安全,SDK更多的只负责采集检测然后将数据原封不动上报到服务端。

写在最后

指纹能力是风控基础能力之一,有资源及相关技术的可以自研,没有资源的也可以采购,但随着公司的发展,多数公司不希望DAU等数据外泄,因此采购后进行私有化部署也不失为一种折中方案。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值