在风控实战中,黑产为了获得收益会采取多种多样的手段进行攻击,笔者总结了风控对抗中的特征选择,并分析了相应的处罚手段。
做了很久的心理斗争,终于决定静下心来把这些年在风控的实战对抗中关于特征和处罚选择的经验进行一次分享。
之所以一直不愿意将这部分写下来,是因为不光是风控的从业者,很多黑产从业者也在暗处关注着整个风控行业的动态,所以很多企业都把识别方法做为核心机密看待。
但是从另一方面来考虑,除了小部分独角兽企业,绝大部分企业的风控做得还相对初级,也没有一些核心的思考方法论,所以基于以上两点来权衡,还是决定把一些在风控对抗中基本的思考方法分享给大家,帮助刚入门的风控同学能快速地形成有效战力。
这篇分享的内容主要聚焦在对抗中的特征选择与处罚选择上。
一、风控中的特征选择
我们知道,在真正的实战风控中,黑产为了追求收益,一定会最大程度的将成本最小化。为了保证成本的可控,黑产在攻击时采取的策略是能简单决不复杂,能机器绝不人工,总之就一个目标:完成利益的收割。
所以在做风控的时候,我们的基础思想就是找不同,找聚集性行为。我们可以从哪些方面来寻找所谓的不同或聚集性行为呢?
1. 通过基础信息的合法性寻找特征
基础信息指的是当一个用户在进行操作时,系统自动采集到的信息。以信息发布为例,我们在查看一条发帖数据的时候,肯定能获取到发帖的ip、发帖电话、地址、邮箱、企业、实名等等信息。这些信息就是基础信息。当我们去观测数据的时候就会发现,有些用户的基础信息不符合一个正常人的使用习惯,我们就能确认这个信息是非法的,进而确认一个用户是异常的黑产用户。
我们举两个个例子:
比如我们获取到了用户的手机号,但是我们在拨打的过程中发现是空号,正常的用户不会用一个空号手机来发帖,所以我们认为这个手机号本身是非法的,所以使用非法基础信息的用户基本也可以定义为非法。
再比如我们获取到了用户填写的地址,但是我们发现世界上不存在这样一个地方,那么我们也同样可以认为这条信息是有问题的。
2. 通过内容表现寻找特征
一般在UGC的风控场景中,黑产为了实现转化以及躲避常规的风控策略,黑产通常在内容(图片、文本、视频、音频)中留下联系方式用于跟用户产生有效链接实施欺诈,或者将一些不良内容发布出来以吸引流量。所以针对内容的特征挖掘是初入风控领域的同学最容易上手的方式。
其实一般来说,关于内容类的特征总结起来就是——有没有在某一个数据字段中包含某一内容。常用的特征有可以参考如下分类:
A. 关键词
关键词是最常用的内容特征,特点是生效极快,失效极快。一般用于快速止血避免不良影响扩散。但是应用关键词的同时需要考虑豁免条件,比如我们认为“山寨机”是非法词,但有些用户会在内容中出现“拒绝山寨机”。这个时候如果不考虑关键词的豁免就会产生误判。
B. 名单类
当需要在用户产生行为之前就对用户进行拦截或者免除处罚时,我们就会使用名单。常见的有用户黑名单、设备黑名单、灰名单、白名单等。
黑名单常用于直接拦截,避免产生二次作恶的可能性;灰名单一般用于挑战用户,比如让用户回填验证码,做一些身份认证等等。白名单一般用于豁免用户,比如用户被某种策略误判,可以将这个用户加入白名单来豁免检测。
名单的产生不应该是一次性的,名单应该进行长期维护并且注意名单的进入和退出。因为一旦停止维护,名单的准确率就会发生大幅衰减导致误判急剧上升。
以黑名单为例,在用户进入黑名单时应着重关注进入黑名单逻辑的准确率,尽可能地将准确率控制在接近100%。而在用户被误判发起申诉并且通过后,应该将用户移出黑名单来避免对用户反复误伤。
C. 算法类
一般需要对内容进行主观性判断的时候,因为全部通过人工去审核成本太过庞大,这个时候就需要算法能力的辅助。常见应用在内容反欺诈领域内的算法有:涉黄、暴恐、涉政检测,广告识别,二维码识别,水印识别,OCR图文识别,垃圾内容检测,虚假人脸检测等等。通过这些算法能力可以有效地对用户产生的垃圾内容进行初步的拦截。
当我们使用算法类的特征时,我们应该时刻关注误判情况,去提供badcase供算法更新迭代。
D. 其他
剩下的关于内容的特征无法全部归为某一种类型,所以姑且将称之为其他。一般来说,所有我们通过某一个字段的全部内容或者部分内容来发现异常的方法都在这个范围内。举几个常见的例子:
比如我们发现手机号开头为189的用户出现问题的几率非常大,那么“手机号以189开头”就是一个可参考的特征。
再比如我们发现用户的某一个字段为空,但是这个字段是前端必填。这种情况通常是后端没有校验字段的有效性造成的,这个时候正常用户是不可能出现字段为空的,只有黑产通过漏洞绕过前端才可能出现这种情况。所以这个时候“某一字段为空”就是一个强特征,直接可以定义这个行为是异常行为。
小结
通常来说,我们通过内容中直接可以发现的特征具有见效快、失效也快的特点。这是因为黑产针对内容的改动成本非常小几乎可以忽略不计,一般在内容中加入一些随机字符、汉字变体、格式变体就可以很轻易地绕过内容类的策略,所以内容类的策略绝大多数的情况下是在为这个业务的安全底线服务,真正进行激烈对抗的主战场一般都是在行为特征领域。
3. 通过用户行为寻找特征
一般我们把用户产生的一切动作本身(比如登录,注册,发布等等)称为行为。异常行为的发掘是风控的核心,也是上手相对较高的部分,通过行为特征进行对抗时就比较考验策略分析和运营人员的功底,对数据的敏感度尤为重要。
行为特征的发现也可以从以下几个方面进行考虑:
A. 频率类特征
对于正常用户来说,用户产生动作只为了完成某一目的,通常目的达到动作就会跟着终止,所以正常用户的动作通常是离散和稀疏的。而对于黑产用户而言,为了实现收益的最大化,高频率的动作是降低成本的核心,所以往往黑产用户的动作是连续而紧密的。基于这种理念,频率类的策略在风控中就有着非常重要的作用。考虑频率特征时,通常考虑几个因素,分别是:时间窗口、资源、运算与阈值。
举个例子: 在7天内同一用户使用IP的数量大于15。这里面7天内就代表着时间窗口,用户与IP就代表着黑产使用的资源,数量就是运算,大于15就是阈值。
4个核心因素都是通过对黑产行为的分析而不断调整的:
时间窗口可以是:秒、分、时、天、月、季度、年。
资源可以是:userid、infoid、ip、ua、cookie、设备、手机号、邮箱等等任何具有唯一性特点的实体。
运算可以是:求和、平均值、最大值、最小值等各种运算方法。
阈值的确定就是针对准召率表现来选择出最优解。
B. 通过异常的操作行为寻找特征
除了频率类的行为特征,我们在对抗过程中也会发现用户产生的很多动作本身不符合常理,这种异常的表现会帮助我们找到有效对抗手段。给大家列举一些常见的异常表现:
地理位置的异常偏移
比如ip的归属地和设备的定位差距过大,地理位置变化的速度过快。关于地理位置的特征选取基于的基本理念就是用户不会在短时间内位置发生大幅变化,如果变化的幅度过大或者过快都会存在一定风险,说明可能通过作弊手段修改定位,使用代理ip等等。
前端数据的采集异常
比如正常用户在填写某一个表单时,势必会在PC端留下鼠标移动的行为,app端产生滑动的行为等。但是如果我们发现一个PC端的表单提交,用户的鼠标从来就没有做过任何移动,或者移动的轨迹非常相似,这个时候就会与我们的常规认知产生冲突。这种冲突通常就会发现很多黑产的蛛丝马迹。
异常的操作行为会有很多很多,在这里没法给大家一一列举,只能举一些简单的例子帮助大家拓展下思维。其实只要我们善于分析,就会发现各种不符合我们常规认知的动作和行为,这个时候特征就会随着产生。
4. 设备特征
其实设备相关的特征是可以并入上面提到的3种特征类型中的,只不过在目前的对抗环境中,黑产对设备越来越依赖,所以设备的特征在风控对抗中的变得非常重要,这也是我把设备特征单列为一项详细介绍的原因。下面是一些比较核心的设备特征:
虚拟机
为了保证成本的最小化,黑产最开始在攻击app端或者m端的时候,通常不会采买真正的手机设备,而是通过PC上的安卓模拟器或iOS模拟器来进行攻击。所以只要发现用户使用的是模拟设备,这个用户大概率是黑产用户
改机软件
虚拟机如果被风控策略拦截后,通常黑产会采买真正的手机设备。但是为了通过一个手机伪造出多个设备的效果,就需要通过改机软件来修改或擦除一些手机真正的硬件信息,通过这些信息的不断变化,让人误以为是多个设备,这样就可以有效地规避一些限频,硬件限制等策略。
多开软件
目前很多APP都会限制绑定和登录的用户的数量,这个时候就可以通过多开软件将同一个APP打开很多个,这样就可以在同一个设备上实现N个用户登录状态的保持。
群控
在上面的手段都不断失效后,黑产从业者开始大量采买相对便宜的手机,结合上面的各种手段,用真正的手机设备进行黑产攻击。
因为这些手机设备有着聚集性的特点,所以业内把这种手段叫做群控。所以群控的识别至关重要,但是具体识别的方法因为需要保密的缘故没法透漏,大家可以去思考一下群控的设备到底有什么样的特点,顺着思路其实不难解决。
云控
如果说群控是黑产自己完成的设备采买,那么云控就是由一个供应商统一采买设备,然后再将设备按照分时租用给想使用的黑产团伙.云控团队负责提供黑产所需的各种攻击能力,这样一来设备的使用率就会大幅提升,黑产的成本会急剧降低。有了云控的存在,可以让一些非常小型的黑产团伙也能拥有比较强的攻击性。
上面列举的是设备特征里比较重要的部分,其实还有很多维度可供我们参考,比如是否是常用设备、是否是常用环境、是否root等都是比较常用的特征。
设备相关的特征相对来说需要整体的风控能力有一定的沉淀,无论是群控的识别还是虚拟机的识别,都需要较长的时间来落地实现。所以如果是初创的风控团队,建议大家直接采买第三方的安全服务来解决设备相关的作弊行为。
5. 聚类特征
在风控行业内有这样一句话——“好人是各种各样的好,坏人都是一样的坏。”
这句话说的是如果正常用户产生行为,个体与个体之前存在巨大差异,行为表现非常分散。而黑产用户产生行为,为了成本最小化,用户之间的行为会表现为高度一致。这就是聚类应用的理论基础。通常聚类特征有着几种分类:
A. 内容聚类
内容聚类顾名思义,就是将所有用户的产生的内容通过算法针对高度相似或相同的内容进行聚类,通过分析簇规模和簇中内容来发现黑产的蛛丝马迹。常见的相关算法有文本相似度算法和图片相似度算法等等。一般黑产会通过在内容中加入随机字符,干扰像素等方法去阻止聚类的生成,所以算法的迭代是比较必要的。
B. 行为聚类
行为聚类其实与内容聚类相对应,通过内容不太好发现的就可以通过行为聚类来召回。通常我们是将用户的行为绘制成一个完整的行为序列,序列里记录着动作本身又记录着产生动作的过程,比如鼠标的移动轨迹,按钮的点击频率,密码的填写速率等等。将所有用户的行为序列绘制出来后,通过算法找到高度相似的行为序列进而确定黑产用户的范围。
C. 关系聚类
通过关系聚类不关注动作也不关注行为,而是关注用户相关的属性或关系,比如用户用了哪些ip,哪些手机号,这个手机号又对应了哪些其他用户。
各种实体通过属性或关系关联到另一种实体,这些三元组将实体与实体之间的关系绘制成一个关系网络,通过分析网络之间关系的疏密程度来找到一批关系高度聚集的用户,这些关系高度聚集的用户如果形成比较大的量级,通常代表着这些用户存在非常大的风险。
聚类特征不仅在做实时对抗的过程中拥有这巨大价值,同样在风险预警与快速批量处理上也有着重要作用。大规模的聚类行为产生时,我们可以通过观测聚类簇数量与簇中数量来判断是否在某一个位置正在遭受攻击,同样我们在发现后也可以快速的将产生的簇有效的消耗掉从而实现快速反应与处理。
6. 第三方能力
在风控这个领域,所有能力都靠自己建设是不现实的,上面提到的很多特征在实际建设过程中都需要投入大量成本,所以业内的合作也尤为重要。
一般安全服务的第三方供应商会通过标签或者画像的方式向外部提供数据产品。常见的有ip标签(代理ip,黑DNS等)、手机号标签(猫池、小号等)、个人征信、企业征信等。
跟第三方合作一方面可以弥补己方业务数据的缺失,将其他业务中已经被明确标记为黑的资源有效拦截在业务之外。另一方面也可以不断接触业内最新的安全动态,实时掌握新的安全能力去完善自己业务的风控体系。
以上就是在风控对抗的过程中常见的特征选择方法,这些方法只能说在各位思考的时候给大家提供一些想法。风控是一场利益的战争,永远没有结束的一天,对抗的形式也会随着双方技术能力的提升而不断变化。但是只要掌握了有效的方法论,无论对抗多么激烈,都可以游刃有余地去完成风控工作。
说完了特征如何选择,下面我们来说一下在明确了风险之后我们应该怎样选择处罚的方式。
二、处罚的选择
阿里对待安全有一个九字方针叫“轻管控,重检测,快相应”。其中的轻管控说的是,要尽可能地避免安全对用户体验的伤害,让正常用户受到的影响最小化,其实这个就是所有处罚选择过程中的一个基调。
1. 处罚体系的设计
关于处罚体系的设计,我们需要先给处罚做一个定义,处罚就是针对用户的应有权利进行限制的过程。
所以要想知道应该怎么处罚,就应该明确用户拥有着什么样的权利,通过定义权利的集合就可以相对的定义处罚。
以58同城的业务为例,一个用户拥有着以下的权利:注册的权利、登录的权利、搜索的权利、浏览的权利、发帖的权利、被浏览的权利,推广的权利、成为会员的权利、IM聊天的权利等等。
假设上面所列出来的就是58用户拥有着的权利全集,那么在设计处罚体系的时候就可以做如下设计:禁止注册、禁止登录、限制浏览与搜索、限制发帖、删帖、降权、限制推广、会员禁签,IM禁言等等。
结合用户所犯错误的轻重程度,通过上面的单一的处罚或者组合处罚,就可以实现有效的风险控制。
2. 处罚的应用方法
根据处罚的性质,我们大致可以将所有的处罚大致可以分为三类:第一种叫做标记、第二种叫做挑战、第三种叫惩罚。
A. 标记
标记一般是指给用户或资源打上一个标签,但是不做任何实际上的处理。通常是应用在风控路径比较短的业务中,如果这个场景在整个业务链路中处于靠前的位置,那么代表着可以获取到的数据会比较有限,而且路径越短,直接处理就会降低黑产的试错成本,从而加大风控难度。
比如常见的注册业务,如果我们一旦发现注册的用户存在问题,就直接禁止用户完成注册。我们就相当于直接告诉黑产目前的方法不能通过,那么黑产在频繁尝试的过程中只要突破一次,就可以完全突破我们的风控防线。
所以在这种场景里,我们通常不实际对用户产生影响,而是根据用户的行为打上标记,这个标记会作为一种特征存在贯穿整个业务链路。我们实时地观测有标记用户后续的表现,一旦在后续的业务中存在更多的异常行为,就可以直接处罚。这个时候黑产很难搞懂我们是在什么环节识别出的异常,这样就能提高黑产的成本。
B. 挑战
挑战类的处罚一般应用在策略准确率不足,但是直接放过又存在比较大的风险的时候。顾名思义,就是通过一些手段去挑战用户让用户证明自己不是机器人,自己就是这个账号的归属人等等。挑战类处罚因为没有实际影响用户的权利,一旦通过挑战用户就可以完成正常使用功能。所以挑战是一种体验优良的处罚方式,但每一种挑战自身的能力会直接决定对黑产用户的拦截效果。
常见的挑战形式有下面几种:
1)基于验证码的挑战
图形验证码多用于区分人和机器人,用来防止大批量的机器刷帖等情况。短信或语音验证码主要用于证明当前号码是本人操作。
主要的验证码形式有:字符验证码、滑动验证码、点选验证码、无感知验证码、短信验证码、语音验证码等。
下面针对各种验证码的适用逻辑和有效性做一个介绍:
字符验证码:最初级的验证码,让用户回填图片中字符或者计算出算式结果。这种验证码破解难度极低,在黑产业内已经能达到98%以上的通过率,这个通过率已经超过了人类本身。所以在任何场景都不推荐这种验证码。
这种验证码是通过拖动X轴上的滑块进行验证,后端同时会对前端浏览器环境和滑动轨迹进行分析判断,用以拦截异常机器行为,体验上要大幅优于常规的字符验证码。但是这种形式的验证码依然可以被很多打码平台破解,或者通过滑动轨迹的模拟进行破解。
点选验证码:最有名的点选型验证码就是12306的验证码了,这种验证码其实是利用了人类的认知能力与机器认知能力的偏差,比如在看到一个动物的时候,人类可以轻易地区分出这个动物是小猫还是小狗,而这个能力对于机器来说极其困难。这种验证码机器直接破解相对困难,但是通过打码平台依然可以低成本地绕过。
无感知验证码:无感知验证码其实就是将一整套风控策略放到一个按钮上,极验验证的表现形式是这样的:
当点击按钮进行验证时,通过前端采集各种数据传到后端的风控引擎中,只要检测的速度足够快,用户就可以非常迅速地完成验证。这种验证看起来体验极其优秀,但是实际上只是把后端的检测能力具象化了,所以说有这个按钮或者没有这个按钮并没有实质区别。这种验证码的破解难度直接跟后端的风控能力相关,无法直接给出容易破解或者难以破解的结论。
短信验证码:这种验证码可以说是我们最常见的验证码形式了,它的好处是安全,体验也不差,通过验证码的回填可以大概率确定操作是本人进行。但是通常在注册等环节第一次需要做短信验证的时候,可以通过猫池手机号来完成验证。这种手机卡不同于普通手机卡,是无法接通电话但是可以接收短信的,所以就会黑产大规模地采用这种手机卡完成注册。
语音验证码:为了解决部分猫池手机接受验证码的问题,语音验证码应运而生,这种验证码通过电话下发,用户记住数字后完成回填。语音验证码的体验相对较差,一般非必要不推荐这种验证形式。
2)基于身份合规性的挑战
在很多时候,我们发现作弊的用户没有做过任何实名或者可以证明身份的动作。一般这个时候,我们会让某些风险较大但是又无法判断为黑的用户进行实名认证和企业认证,这种需求也可能来源于业务的硬性规则。
一般做个人实名的方式有:实名二要素认证,手持身份证认证,银行卡认证,手机号三要素认证,人脸认证等。
企业认证的方式通常是营业执照认证和对公账号打款认证。
我们建议业务方在开展新业务的时候,一定要关注认证的相关要求,认证一方面作为一个门槛可以大幅提升黑产成本,另一方面认证也可以作为唯一性的特征供我们进行风控识别。
3)基于私密信息的挑战
这种挑战多用于账号安全或密码找回。当我们判断当前使用账号的人可能不是用户本人时,就可以通过这种方式进行挑战。
常见的问题有“我的父亲名字叫什么?”“我最常用的银行卡号是哪张?”这种挑战方式通过只有用户自己知道的信息来挑战当前的操作人,如果当前操作人无法通过,那么就代表当前操作人非用户本人。
这种挑战方式体验相当优秀,并且通过信息的不对称性有效地防止了风险发生,所以当用户在业务中已经存在一些关键信息时,可以考虑用这种方式进行挑战。
以上就是常见的挑战形式,不同的挑战形式适用的场景和条件都有所不同,所以对能力的了解也是做好风控的前提。
C. 惩罚
当我们可以对用户的行为明确定义为恶意行为的时候,这个时候采取的动作通常就都属于惩罚了。
我们在看待用户的恶意行为时应该从两个维度去考虑,第一种是用户确实是正常用户,只是为了获取一些短期利益触犯了平台规则。另一种是用户为批量恶意的黑产用户,就是为了攫取流量诈骗变现。
在对待第一种用户时,我们的处罚态度应该是引导大于处罚,这个时候我们可以将处罚柔性化,比如淘宝商家违规分值体系就是一个比较成功的例子。
当用户初犯的时候可能是下架出问题的商品并且扣分,多次触犯规则后,当分值达到一定程度时可能会对搜索降权,再犯可能是暂时关店,最后可能才是永久清退。我们通过相对柔性的处罚,既处罚了不良行为本身,但同时也给用户一个改进的空间和机会,通过积极的运营引导是可以把这部分用户转化为优质用户的。
而对待明确的黑产用户时,我们的处罚态度就应该是明确和清晰的。一旦确保了判定的准确性,我们不光要把账号的权利做限制,账号所相关的一切有效资源比如手机号、邮箱、身份证号都要被有效地消耗掉,确保同样的资源不会在业务中二次作恶。我们处罚生效得越快,资源消耗得越彻底,风险出现的可能性就越小。
所以整体来说,处罚既要让正常用户尽量不受任何影响,又要高效地消耗黑产资源,并且对处于灰色地带的用户给予积极引导,让这种用户自觉发生改变从而促进生态发展。
三、结语
以上就是关于风控对抗中的特征选择和处罚选择的一些心得。因为风控行业的特性,本文无法将所有可能性同步给大家,但是关于风控实战中的主要思考方法大部分都体现了出来,希望能对一些新入风控行业的同学有所帮助,同时也希望其他安全业内的资深同学能够对不足之处给予指导和补充。