一种用于反欺诈的人机识别系统的制作方法

文档序号:20919129发布日期:2020-05-29 13:54阅读:180来源:国知局
一种用于反欺诈的人机识别系统的制作方法

本发明涉及业务安全反欺诈领域,特别涉及一种用于反欺诈的人机识别系统。



背景技术:

在反欺诈领域,人机识别是对抗欺诈的有效技术。人机识别的目的是能够在不同用户访问互联网业务时,分析出是否使用机器。现有的技术主要依赖规则判断,而且分析的数据维度比较单一。现有的技术仅仅通过后端分析出结果,往往结果不准确且不可解释。例如同一ip来源的高频访问,有可能是黑产的机器行为,也有可能是大内网的正常用户请求。此外,一些用于分析的数据很容易被黑产伪造,例如ip,ua,设备指纹等。例如黑产可以通过代理ip使得每次访问的ip都不同,从而绕过ip高频访问账户即为黑产账户。



技术实现要素:

本发明所要解决的技术问题是提供一种用于反欺诈的人机识别系统,通过前端采集必要的数据,后端分析得到是否是人还是机器的结论。

为实现上述目的,本发明提供一种用于反欺诈的人机识别系统,所述人机识别系统采用了前端采集器,在前端搜集环境、用户行为、http请求信息等,并在服务端建模分析打分,识别机器。所述系统包括环境信息采集模块、用户行为采集模块和机器识别模块;

所述环境信息采集模块用于环境检测,包括selenium操作浏览器分析,脚本工具分析,模拟器分析,以及debug工具分析;

所述用户行为采集模块,用于,采集鼠标、键盘和触摸屏的行为,并采用贝叶斯机器学习进行建模,给规则赋权重,最终给出风险值;

所述机器识别模块,根据风险值以及业务场景,给出是否机器的判断结果。

所述环境信息采集模块根据从pc的浏览器或者手机app采集的环境信息,判断用户行为是否在模拟器或者selenium上运行的。

所述判断用户行为是否在模拟器上运行的,具体包括:

如果满足以下条件之一,则判断用户行为是在模拟器上运行的:

检查手机imei编号,包括获取imei号,获取本机号码,获取sim卡的序号,得到用户id,判断是否为空,如果为空,则判断用户行为是在模拟器上运行的;

读取手机品牌信息,包括品牌,厂商,以及型号,判断是否为空,如果为空,则判断用户行为是在模拟器上运行的;

检查cpu信息是否为空,如果为空,则判断用户行为是在模拟器上运行的;

检查mac地址是否为空,如果为空,则判断用户行为是在模拟器上运行的;

通过电池信息检查电池信息是否没有变化,如果没有变化,则判断用户行为是在模拟器上运行的;

检查基带信息是否为空,如果为空,则判断用户行为是在模拟器上运行的;

判断处理器信息ro.product.board和ro.board.platform是否有冲突或者不一致,如果有,则判断用户行为是在模拟器上运行的;

判断能否读取到控制组信息(如ro.build.flavor),如果不能,则判断用户行为是在模拟器上运行的;

判断能否读取到进程组信息(位置为/proc/self/cgroup),如果不能,则判断用户行为是在模拟器上运行的;

判断wlan驱动是否未知指定异常(例如“wlan0linkencap:unspec”),如果是,则判断用户行为是在模拟器上运行的;

判断是否常出现未指定网卡类型的情况,如果是,则判断用户行为是在模拟器上运行的;比如,连上wifi但会出现linkencap:unspec未指定网卡类型情况;

判断传感器数量是否为1,如果是,则判断用户行为是在模拟器上运行的;

判断hardware是否是ttvm(天天模拟器),如果是,则判断用户行为是在模拟器上运行的,hardware(硬件)是计算机系统的一个组成部分,比如显示器、主板、cpu、内存、各种插卡等这些都称为hardware;

判断用户预装app是否小于5,如果是,则判断用户行为是在模拟器上运行的。

所述判断用户行为是否在selenium上运行的,具体包括:如果ua字段包含webdriver的特征(特征包括phantomjs,selenium),则判断用户行为是在selenium上运行的。

所述环境信息采集模块根据httprequest的header中的字段ua,以及从html页面采集的dom,综合分析是否是机器行为。

如果字段ua为空或者包含webdriver的特征(特征包括phantomjs,selenium),或者dom为空,则判定是机器人操作,即机器行为。

所述鼠标、键盘和触摸屏的行为包括用户的鼠标,键盘,触摸屏的坐标,以及移动事件,移动事件包括事件名称和事件说明,具体如下表1所示:

表1

所述用户行为采集模块根据如下三个行为规则来判定一个账号是否是机器人账号:

一是频率规则,如果一个账号在操作页面时没有鼠标,键盘,或者触摸屏的操作,或者键盘,鼠标,触摸屏点击频率大于自然人的阈值,阀值是5次/秒,则判定是机器人操作;

二是完整性规则,如果搜集的数据缺失,则判定是机器人操作。搜集的数据包括环境信息采集模块获取的浏览器或app的ua,dom信息,以及用户行为采集模块获取的鼠标,键盘和触摸屏的行为;

三是其他规则,如果是ip代理,或者键盘,鼠标,触摸屏的速度大于正常人,则判定是机器人操作。

所述机器识别模块根据环境信息采集模块和用户行为采集模块采集的数据,并用贝叶斯模型给三个行为规则设置不同的权重,最终得到0-100的风险值,并根据风险值和业务场景判断是否是机器人操作,如下是朴素贝叶斯公式,其中m=3:

其中,x是指机器人的判定,yi是指第i个特征,p(yi)是指第i个特征yi行为规则为真的概率;p(x|yi)是指在第i个特征yi行为规则为真的前提下,,是机器人的条件概率;

p(x|yi)p(yi)是指第i个特征yi行为规则为真且yi为真前提下机器人的概率;

所述三个行为规则的风险值分别是p(y1)、p(y2)、p(y3),三个行为规则的权重分别是根据贝叶斯模型计算出的a1、a2、a3,风险值是p(x)*100,p(x)的取值区间是[0,1],i取值为1、2、3。业务场景是指互联网页面功能,包括注册,登陆,找回密码。

最终弹出验证码(可以是图片,语音,滑动验证码)。

所述验证码是所接业务方提供,非本发明的保护内容。

本发明创新点主要是利用环境检测和行为分析来检测机器行为。(1)利用环境监测发现运行在异常环境下的机器行为;(2)利用用户行为分析检测机器行为。

前端采集主要有如下步骤:

1、向后端请求token;

2、初始化本地加密密钥和方法;

3、获取收集的加密数据;

4、将加密数据传给后端;

后端分析主要有如下步骤:

(1)解密加密数据;

(2)判断数据的完整性,有效性;

(3)分析数据,判断是否是机器人;

(4)根据分析的结果,作出相应的业务处理,比如拒绝、验证码校验、短信校验等;

优选的,所述向后端获得token,并且插入到用户浏览器的cookie里。作为状态标识,token无法伪造,且唯一。

优选的,所述初始化本地加密密钥和方法是向后端发送加密请求,由后端选定加密密钥。

优选的,所述获取收集的加密数据是指,利用加密密钥对前端采集的数据加密,并生成加密后的字符串。

优选的,所述加密数据传给后端是通过https将加密后的数据传到后端。后端是指人机识别服务器。

优选的,所述解密加密数据是指人机识别服务器接收到加密数据后,利用加密私钥对加密数据进行解密。

优选的,所述判断数据的完整性,有效性是指检查解密后的数据是否完整,是否有效来判断是否数据被篡改。如果被篡改,则说明是机器行为。

优选的,所述分析的结果是指依据规则和模型分析出的结果。规则是指频率检查,代理ip检查,机器学习规则权重打分模型。根据这些规则模型最终得到该访问是否是机器行为。

采用以上技术方案的有益效果是:该系统采集前端数据,确保前端数据的完整性和一致性。并根据前端采集的数据判断是否是机器行为。欲保护的点包括前端采集,检查前端采集数据的完整性,后端规则和模型分析机器行为。目前人机识别主要是通过数据分析,由于前端没有环境检查,也没有完整性检查,因此分析的数据容易被伪造。而该人机识别方法可以很好的弥补现有人机识别分析方法的不足。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。

图1是人机识别的结构图;

图2是系统交互图(反爬为例);

具体实施方式

如图1所示,本发明提供一种用于反欺诈的人机识别系统,所述人机识别系统采用了前端采集器,在前端搜集环境、用户行为、http请求信息等,并在服务端建模分析打分,识别机器。所述系统包括环境信息采集模块、用户行为采集模块和机器识别模块;

所述环境信息采集模块用于环境检测,包括selenium操作浏览器分析,脚本工具分析,模拟器分析,以及debug工具分析;

所述用户行为采集模块,用于,采集鼠标、键盘和触摸屏的行为,并采用贝叶斯机器学习进行建模,给规则赋权重,最终给出风险值;

所述机器识别模块,根据风险值以及业务场景,给出是否机器的判断结果。

所述环境信息采集模块根据从pc的浏览器或者手机app采集的环境信息,判断用户行为是否在模拟器或者selenium上运行的。

所述判断用户行为是否在模拟器上运行的,具体包括:

如果满足以下条件之一,则判断用户行为是在模拟器上运行的:

检查手机imei编号,包括获取imei号,获取本机号码,获取sim卡的序号,得到用户id,判断是否为空,如果为空,则判断用户行为是在模拟器上运行的;

读取手机品牌信息,包括品牌,厂商,以及型号,判断是否为空,如果为空,则判断用户行为是在模拟器上运行的;

检查cpu信息是否为空,如果为空,则判断用户行为是在模拟器上运行的;

检查mac地址是否为空,如果为空,则判断用户行为是在模拟器上运行的;

通过电池信息检查电池信息是否没有变化,如果没有变化,则判断用户行为是在模拟器上运行的;

检查基带信息是否为空,如果为空,则判断用户行为是在模拟器上运行的;

判断处理器信息ro.product.board和ro.board.platform是否有冲突或者不一致,如果有,则判断用户行为是在模拟器上运行的;

判断能否读取到控制组信息(如ro.build.flavor),如果不能,则判断用户行为是在模拟器上运行的;

判断能否读取到进程组信息(位置为/proc/self/cgroup),如果不能,则判断用户行为是在模拟器上运行的;

判断wlan驱动是否未知指定异常(例如“wlan0linkencap:unspec”),如果是,则判断用户行为是在模拟器上运行的;

判断是否常出现未指定网卡类型的情况,如果是,则判断用户行为是在模拟器上运行的;比如,连上wifi但会出现linkencap:unspec未指定网卡类型情况;

判断传感器数量是否为1,如果是,则判断用户行为是在模拟器上运行的;

判断hardware是否是ttvm,如果是,则判断用户行为是在模拟器上运行的;

判断用户预装app是否小于5,如果是,则判断用户行为是在模拟器上运行的。

所述判断用户行为是否在selenium上运行的,具体包括:如果ua字段包含webdriver的特征(特征包括phantomjs,selenium),则判断用户行为是在selenium上运行的。

所述环境信息采集模块根据httprequest的header中的字段ua,以及从html页面采集的dom,综合分析是否是机器行为。

如果字段ua为空或者包含webdriver的特征(特征包括phantomjs,selenium),或者dom为空,则判定是机器人操作,即机器行为。

所述用户行为采集模块根据如下三个行为规则来判定一个账号是否是机器人账号:

一是频率规则,如果一个账号在操作页面时没有鼠标,键盘,或者触摸屏的操作,或者键盘,鼠标,触摸屏点击频率大于自然人的阈值,阀值是5次/秒,则判定是机器人操作;

二是完整性规则,如果搜集的数据缺失,则判定是机器人操作。搜集的数据包括环境信息采集模块获取的浏览器或app的ua,dom信息,以及用户行为采集模块获取的鼠标,键盘和触摸屏的行为;

三是其他规则,如果是ip代理,或者键盘,鼠标,触摸屏的速度大于正常人,则判定是机器人操作。

所述机器识别模块根据环境信息采集模块和用户行为采集模块采集的数据,并用贝叶斯模型给三个行为规则设置不同的权重,最终得到0-100的风险值,并根据风险值和业务场景判断是否是机器人操作,如下是朴素贝叶斯公式,其中m=3:

其中,x是指机器人的判定,yi是指第i个特征,p(yi)是指第i个特征yi行为规则为真的概率;p(x|yi)是指在第i个特征yi行为规则为真的前提下,,是机器人的条件概率;

p(x|yi)p(yi)是指第i个特征yi行为规则为真且yi为真前提下机器人的概率;

所述三个行为规则的风险值分别是p(y1)、p(y2)、p(y3),三个行为规则的权重分别是根据贝叶斯模型计算出的a1、a2、a3,风险值是p(x)*100,p(x)的取值区间是[0,1],i取值为1、2、3。业务场景是指互联网页面功能,包括注册,登陆,找回密码。

最终弹出验证码(可以是图片,语音,滑动验证码)。

实施例

结合图2,该人机识别包括接入方申请标识,在页面接入javascript,初始化人机识别,获取收集的加密数据,传给受保护的api。在受保护的api接口中,做人机识别校验,得到人机识别结果。在受保护的api中,根据人机识别服务返回结果,做出相应的业务处理,比如拒绝,验证码校验,短信校验等。

具体的,以价格页面防机器人爬虫为例,如图2所示,当机器人访问价格网页时,第一步,价格页面从人机识别服务器获得loader.js。第二步,loader.js负责加载搜集器collect.js。第三步,浏览器初始化搜集器,并从人机识别服务器获得token。第四步,搜集器采集数据并加密,再带上人机识别服务器token,传输到人机识别服务器端,人机识别服务器根据采集数据计算出风险值,并判断是否是机器行为。人机识别服务器返回结果到反爬虫服务器。反爬虫服务器根据结果,如果是人,则返回价格信息。如果是机器人,做验证码校验或者直接拒绝。

本发明提供了一种用于反欺诈的人机识别系统,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1