记得刚工作不久,正好是微信小程序刚进入“跳一跳”的时期,想抓住这个契机,开发一款小程序,赶一波红利。然后就在公司打地铺连轴转了两周,终于在一个凌晨搞定3次内测的积累的修改需求,大家都各自回窝睡觉,准备第二天正式发布。我两眼也直打架,但睡之前还想再确认一遍还有没有其他bug。
就是这次睡前拖延证,算是救了我们这个小团队。当时也不知道出于什么原因,鬼使神差的打开了微信商户的交易记录,一打开就看到两串金额一样的提现记录,最新记录的时间就是现在!第一串金额比较小,连着几十条,应该是试探;第二串就开始提高金额了,碰巧我赶在第10多条看到了。赶紧叫醒几个同事处理。这要是睡着了,一晚上不知道要被提走多少。
当时压根就没想到过会有这种还没上线就被扫接口、直接刷提现的操作,要是我也直接睡了,第二天等我们醒来就该卷着铺盖回家了。所以在风控上小心总是不会错的,这时黑产就是你的对手,就是奔着钱来的,会想尽办法去找各种漏洞。
其实大家应该也有类似的遭遇,毕竟现在的黑产真的是无孔不入。不管是活动上线还是平时运维,应该都遇到过机器攻击,各种批量注册、发帖灌水、刷积分、刷券、刷票、刷榜、爬虫等等等等,甚至像我遇到的这种扫接口刷接口的,只有你想不到,没有黑产做不到。轻则攒一堆垃圾数据干扰分析,等虚假繁荣的泡沫一破就一脸懵逼的怀疑人生了:我的用户怎么都在装死?重则人财两空,钱花了不少,结果全被薅走了,营收也不见影,养你干嘛用的。或者是服务器响应缓慢,甚至挂掉,业务直接中断。
防黑产是个体系活,毕竟黑产都已经成体系了。
风控对于一般小公司来说,还真不是说搞就能搞的(大公司都被薅得不要不要的),需要业务(业务规则和运营策略)与风控(风险识别和风控处置)二者紧密结合,达到一个平衡点,不能全放过去,会薅得肉疼;但也不能全拦在外面,不然业务没法做了。这就涉及到机会成本,选择获取一些东西,一定伴随着一些代价。
业务规则和运营策略的事情得根据自己的业务去搞,这个每家业务都不太一样,需要结合业务形式和用户体验来设置门槛。虽然业务不一样,但是要用你的产品、参加你的活动就得发起请求,所以一般风控需求都落在技术同学头上,从请求来控制。
这里的风控主要是进行风险识别和风险处置。
风险识别
首先,风险识别非常重要!
知道问题才能解决问题,才能进行下一步的风险处置。你要是还处于“不知道自己不知道”的阶段,那就只能懵懂的迎接黑产大佬的洗礼了。为什么这么说呢,对于“有症状”的请求,技术或许可以发现;但是黑产也知道“有症状”的请求会被发现,所以会有很多“无症状”的请求也会潜伏进来,靠自己去发现就很困难了,因为潜伏期内看起来一切正常,你以为他就是个正常用户请求,等到突然发难的时候就已经晚了。所以要尽可能全面的进行风险识别。
风险识别可以从用户身份信息、用户环境信息、用户行为信息维度来进行。
用户身份信息
用户身份信息主要用于一些需要实名的业务,尤其是信贷业务,比如核验手机号风险,一个手机号只是张物联卡,就是接个验证短信骗贷款,连通话功能都没有,这基本可以判定为高风险用户了。大家平时用手机验证码只是简单的通过验证手机号能否接受短信来判断手机号是否真实有效,其实未必有效,除了物联卡还有接码平台的存在,短信验证码照收,但你就是联系不到这个用户。
用户环境信息
用户环境信息是识别用户设备及设备环境信息如IP。知道设备牧场的话,应该好理解,一排排手机刷注册红包,领完红包刷一次机,又是一批新用户,再注册再领红包,领完再刷机,循环往复,就问你怕不怕。从设备端防御算是比较进阶的防御了,想了解的可以百度一下设备指纹。如果你还用不到,可以先从下面更通用的入手。
用户行为信息
目前比较通用的是识别用户行为信息,就是行为验证,也就是大家平时见到的滑动验证、拼图验证。这是目前最高效最通用的人机识别方式,原理是通过收集用户的操作行为信息,判断用户到底是人还是机器。基本可以拦截掉机器攻击,同时用户体验比较友好。对于有风控认知的同学来说,行为验证算是标配了,用在注册、登录、发帖、防薅羊毛、防爬等各种调用接口的场景。不过还是有不少网站、APP在用图形验证码或者干脆没有验证码,可能是还没有尝试过当今发达的图像识别技术的厉害,或是还没有产出值得黑产注意的价值。
行为验证业内用户最多的应该是极验,优点是做得久、用户多,但是缺点却很致命,容易被破解,可能是树大招风也可能是黑产技术更新迭代比较快(是的,不怕黑产骄傲,黑产确实比大多数同学的技术实力强、思路野)。而且现在网上破解极验的贴子一搜一大把,其实可以不用考虑了,基本上等于形同虚设了。
目前最好的应该就是顶象,基本是圈里公认最安全的。曾经在交流群里看到一位大佬,说他之前薅某个大型网站都是来去自如,后来突然破解不了了,还纳闷,后来发现是换了顶象的验证码。
风险处置
识别出风险后就要进行风险处置了。
前面的风险识别只是识别风险请求,还不会直接影响业务,但是风险处置就会直接影响到业务请求了。
风险处置是按照风险规则和风险策略来执行的,复杂的业务还需要建立风控模型。
比如一个请求比较可疑,不能确定是黑产还是真用户,就需要一个策略来处置这个可疑请求,拒绝?接受?再验证一遍?放它进来但是先不许发帖?
这只是一条策略,要形成真正能保护业务的策略库的话,是要靠真金白银砸出来的,除了你和你同事的工资,还有营销推广的投入,尤其是被薅走的那部分,尤其是被薅走的你还不知道的那部分。而且与黑产的对抗是持续的,所以砸一次还不行,得持续的砸,直到黑产觉得破解你这个的成本有点高,它才会觉得没什么赚头,拍拍屁股走人。有些人可能想,我直接用最严的策略防不就行了?做风控可以这么想,但是老板和运营应该会想打死你,要是连真实用户都误杀了,生意还做不做了?所以前面讲到,业务和风控是需要紧密结合的,需要找到一个平衡点,就像机会成本,它是动态的、要随时作出选择。
就先说到这吧,防机器攻击只是风控的第一步,目前最通用最有效的方式还是行为验证码。防完机器还要防人工,毕竟还有打码平台、羊毛党,这些都是实打实的真人操作,下次再讲吧。有什么问题或者感兴趣的点也欢迎各位同学评论区留言讨论。