本文分为两部分。第一部分讲数据,包括数据是如何收集、衍生的。我们需要格外关注数据
数据
原始数据
GaiaEvent
GaiaReport
衍生数据
监控
离线打击概览
第一点:呈现出该场景以及该场景下每一条规则的打击情况
总打击人数,hit_uv
总人数, total_uv
总打击次数,hit_pv
总次数,total_pv
UV整体打击率 total_hit_radio_uv = hit_uv / total_uv
PV整体打击率 total_hit_radio_pv = hit_pv / total_pv
分规则:对于以上各打击指标,分别按找规则统计一次
打击准确率如何
第二点:对于以上的每一条规则的打击情况,准确率到底如何呢?
思考:这个问题有一些困难。 我们需要找一个对比基准。 我这边可以可以想到有几种办法:
第一种,借助于某个权威的第三方。对于我们打击的每一个主体,去调用第三方数据。 (第三方判定是否有风险)
第二种,建立基于客户投诉的反馈机制。如果某一条打击,被用户投诉反馈,我们需要人工核查,并及时调整自己的规则。 (是否被投诉)
第三种,建立关于打击结果的人工审核机制。 (最终产出:确认、误伤、待定)
漏过检测如何做
第三点:针对某个场景,召回率如何统计呢? 这个问题非常重要,也非常困难。
先从定义出发,召回率不够高,说明漏过率很高。什么是漏过呢? 坏人,我给放行了。
常用的漏过检测机制:
第一种,抽样 + 人工审查。
优点:简单统一,人工审查结果有能力找出所有漏过
不足:人工成本较高、有一些漏过即使人工审查也很难发现
第二种,基于某些合理的假设,建立漏过标准
总体原则:查杀分离
合理假设一:相比正常用户,漏过的用户N日留存会更低一些
具体方案:
第一步,分别建立实验组(通过某种活动渠道注册的用户)、对照组(常规注册的用户)的七日留存曲线,
第二步,对比分析;如果留存率gap较大,说明“有好多黑产通过这个活动注册了好多新账号,但是我们并没有打击”,也就是发生了漏过
合理假设二:相比正常趋势,异常流量造成的趋势变化会更大
例如:同一时间间隔,无手机号登陆次数应该是稳定的;如果某一时间端的次数发生突变,而我们打击数并未同幅度突变,那么便发生过了漏过
合理假设三:黑产通过作弊手段,有更高的概率抢到更稀缺的资源。黑产账号拥有更高的库存量,以及出货量。
例如:在秒杀活动中,我们假设黑产抢到优质资源的概率是70%。
1~100号资源,被N个人抢到,N个人之中多少是黑产呢? 假设有M个黑产,则漏过率为M/N。
我们可以基于账号的历史行为(历史抢购数量、历史赠送数量)来判定账号有多大的概率是黑产账号。
合理假设四:通常情况下,注册手机号归属与IP地址归属不同的人的占比较少(10%),且稳定
例如:如果异省占比有较高变化,而打击未同比变化,则发生漏过。
第三种:抽样(或者全量) + 第三方验证
离线打击明细
业务监控
每一块业务应该有自己的核心监控指标,用于两个目的:
第一,衡量风控给业务带去的价值
第二,发现业务风险
深度思考:对于某一个场景,每识别一次攻击,会给公司挽回多少资金损失,带来多少价值。
将数据存放在某个分布式存储之上。
例如:阿里云PAI便是将数据写在OSS或者MaxCompute上面,其中:
使用MaxCompute存储的表结构数据,用于常规算法组件。
使用OSS存储的结构化或非结构化数据,用于深度学习算法组件。