我们已经知道一些发现异常的方法了,下面介绍如何使用它们。
在法庭上,判定一个人有罪或是无罪,需要有多个证据。在风控中判定一次请求是正常或是恶意,也不能简单的只考虑一个证据。
在上一章看到的例子中,通过观察在一台设备上登录的用户数和下单数来推测刷单,这对于一些简单场景也许足够了,但是对于大多数场景都是不够的。
我们通常将风控信息或者说风控数据按照不同维度组织。相同的一组数据按照不同维度整理,会有不同的结果。
以下是某网站的登陆记录,我们试着将数据从不同维度统计以下
用户ID | IP | 设备号 | 时间 |
---|---|---|---|
1 | 50.0.0.0 | DeviceA | 2016-04-04 00:00:00 |
2 | 50.0.0.0 | DeviceB | 2016-04-04 00:00:00 |
3 | 50.0.0.0 | DeviceA | 2016-04-04 00:00:01 |
2 | 50.0.0.1 | DeviceB | 2016-04-05 00:00:00 |
用户维度
用户ID | 登陆次数 | 登陆设备数 |
---|---|---|
1 | 1 | 1 |
2 | 2 | 2 |
3 | 1 | 1 |
设备维度
设备号 | 登陆次数 | 用户数 |
---|---|---|
DeviceA | 2 | 2 |
DeviceB | 2 | 1 |
你可以试着将IP维度的数据整理出来吗?
将数据整理完成后,我们会从多个维度来验证一次交易、一个用户甚至是一次HTTP请求。
一名用户正在登陆Jim的账号,我们希望判断出是不是真的是Jim本人。
从之前刷单的例子已经知道,限制单台设备的登陆次数和人数是个不错的主意,我们看看Jim过去1个月的设备统计
设备号 | 登陆次数 | 用户数 |
---|---|---|
DeviceA | 10 | 1 |
如果只从设备号维度看,一切正常,虽然登陆次数是10次,但是考虑到是一个月,也不会显得很频繁,但是我们不妨试试多维度交叉分析。
我们试试用户名(假设用户名和用户ID唯一)维度。
用户名 | 登陆次数 | 登陆设备数 |
---|---|---|
Jim | 10 | 10 |
天,这个人在干什么?!这个人虽然在设备A上只登陆了一次,但是他同时也在另外9个设备上登陆了。这个人很可疑,幸好我们没有只从一个维度考虑。不过,到底发生了什么呢?
不要急,后面的几章会慢慢解释。