CN110166462B - 访问控制方法、***、电子设备及计算机存储介质 - Google Patents
访问控制方法、***、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN110166462B CN110166462B CN201910442550.1A CN201910442550A CN110166462B CN 110166462 B CN110166462 B CN 110166462B CN 201910442550 A CN201910442550 A CN 201910442550A CN 110166462 B CN110166462 B CN 110166462B
- Authority
- CN
- China
- Prior art keywords
- data
- user
- detection
- model
- detection model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供的访问控制方法、***、电子设备及计算机存储介质。所述方法包括:接收用户的访问请求;将所述设备信息输入检测模型,获得所述用户的检测结果,其中,所述检测模型是将第一检测模型、第二检测模型以及第三检测模型进行模型融合后得到的模型,所述检测结果包括正常用户或者异常用户;根据所述检测结果执行对应的访问策略。
Description
技术领域
本申请涉及计算机领域,尤其涉及访问控制方法、***、电子设备及计算机存储介质。
背景技术
互联网中充斥着大量的爬虫,如果被人使用爬虫工具随意爬取网站内容,可能会出现网站内容被其他人以低成本方式获取并利用的现象,为网站带来损失。并且,频繁的爬虫请求也会使业务负载变高,使正常浏览用户的体验变差。因此,从互联网安全角度考虑,网站通常会进行异常用户检测,检测出爬虫、按键精灵等异常用户,保证网站数据的安全性和***的稳定性。
针对异常用户检测的技术方案包括针对爬虫工具检测的方案以及针对验证码的检测方案,其中,针对验证码的访问控制方法是通过采集用户验证过程中的点击时间、鼠标拖动轨迹等数据,针对此行为数据判别用户种类,此类方法错误率较高,容易将真实用户判别为异常用户,影响用户的体验;而针对爬虫的检测方案通常会根据请求的IP、header所携带参数、请求频率判断是否为爬虫,然后制定相应的反爬虫策略拒绝其请求,但是由于更改IP、随机请求时间间隔,或者模拟浏览器,能有效的应对各种反爬虫策略,爬虫开发者需要根据目标网站的反爬虫策略开发出具有针对性的定向爬虫,因此网站的安全维护较为复杂,必须要实时更新反爬虫策略,为开发人员增加不小的开发压力。
发明内容
本申请提供了访问控制方法、***、电子设备及计算机存储介质,用于解决网站在进行异常用户检测时,检测错误率较高、需要定向开发检测策略等问题。
第一方面,提供了一种访问控制方法,所述方法包括:
接收用户的访问请求,其中,所述访问请求包括所述用户的设备信息,所述设备信息包括所述用户访问验证时的设备类型、***信息以及地址信息;
将所述设备信息输入检测模型,获得所述用户的检测结果,其中,所述检测模型是将第一检测模型、第二检测模型以及第三检测模型进行模型融合后得到的模型,所述检测结果包括正常用户或者异常用户;
根据所述检测结果执行对应的访问策略。
可选地,所述第一检测模型是使用第一样本集进行有监督训练得到的,所述第二检测模型是通过对第二样本集进行无监督训练得到的,所述第三检测模型是通过对第三样本集进行无监督训练得到的,所述第一样本集包括所述第二样本集以及所述第三样本集,所述第一样本集包括已知设备信息以及已知检测结果,其中,所述第一样本集是通过特征工程,将第一数据集中的数据转化为用于模型训练的二值特征数据后获得的;所述第二样本集是通过特征工程,将第二数据集中的数据转化为用于模型训练的二值特征数据后获得的;所述第三样本集是通过特征工程,将第三数据集中的数据转化为用于模型训练的二值特征数据后获得的;将所述设备信息输入检测模型,获得所述用户的检测结果包括:通过特征工程,将所述设备信息转化为二值特征数据;将所述二值特征数据输入检测模型,获得所述用户的检测结果。
可选地,接收用户的访问请求之前,所述方法还包括:接收模拟正常用户以及模拟异常用户的模拟访问请求,其中,所述模拟访问请求包含所述模拟正常用户的设备信息以及所述模拟异常用户的设备信息;将所述模拟正常用户的设备信息作为第二数据集,将所述模拟异常用户的设备信息作为第三数据集。
可选地,所述设备信息包括所述用户访问验证时的设备类型、***信息以及地址信息,且接收用户的访问请求之前,所述方法还包括:通过前端埋点的方法,获取用户访问验证时的设备信息数据,其中,所述设备信息数据包括设备类型数据、***信息数据以及地址信息数据;通过第三方平台获取与所述设备类型数据对应的真实***信息以及真实地址信息;将所述真实***信息与所述***信息数据进行匹配,将所述真实地址信息与所述地址信息数据进行匹配;在所述真实***信息与所述***信息数据不一致的情况下,将所述***信息数据对应的设备信息数据作为所述第三数据集;在所述真实地址信息与所述地址信息数据不一致的情况下,将所述地址信息数据对应的设备信息数据作为所述第三数据集;在所述真实***信息与所述***信息数据一致,且所述真实地址信息与所述地址信息数据也一致的情况下,将所述***信息数据对应的设备信息数据作为所述第二数据集。
可选地,接收用户的访问请求之前,所述方法还包括:将所述第二数据集作为所述第一数据集中的已知设备信息,对应的已知检测结果为正常用户;将所述第三数据集作为所述第一数据集中的已知设备信息,对应的已知检测结果为异常用户。
可选地,所述第一检测模型是使用所述第一样本集对基于高斯分布的朴素贝叶斯网络模型进行有监督训练后获得的二分类模型;所述第二检测模型是使用所述第二样本集对采用基于单分类支持向量集SVM网络模型进行无监督训练后获得的单分类模型;所述第三检测模型是使用所述第三样本集对采用基于单分类支持向量集SVM网络模型进行无监督训练后获得的单分类模型,其中,所述第一检测模型、第二检测模型以及第三检测模型是基于重复取样bagging思想,并行进行训练的。
可选地,所述模型融合包括:将第一检测结果、第二检测结果以及第三检测结果采用第一投票准则进行融合计算,获得检测结果,其中,所述第一检测结果是所述第一检测模型的检测结果,所述第二检测结果是所述第二检测模型的检测结果,所述第三检测结果是所述第三检测模型的检测结果。
可选地,所述根据所述检测结果执行对应的访问策略包括:在所述检测结果为异常用户的情况下,拒绝所述用户的访问请求或要求所述用户重新验证;在所述检测结果为正常用户的情况下,响应所述用户的访问请求。
第二方面,提供了一种访问控制装置,所述装置包括:
接收单元,所述接收单元用于接收用户的访问请求,其中,所述访问请求包括所述用户的设备信息,所述设备信息包括所述用户访问验证时的设备类型、***信息以及地址信息;
检测单元,所述检测单元用于将所述设备信息输入检测模型,获得所述用户的检测结果,其中,所述检测模型是将第一检测模型、第二检测模型以及第三检测模型进行模型融合后得到的模型,所述检测结果包括正常用户或者异常用户;
执行单元,所述执行单元用于根据所述检测结果执行对应的访问策略。
可选地,所述第一检测模型是使用第一样本集进行有监督训练得到的,所述第二检测模型是通过对第二样本集进行无监督训练得到的,所述第三检测模型是通过对第三样本集进行无监督训练得到的,所述第一样本集包括所述第二样本集以及所述第三样本集,所述第一样本集包括已知设备信息以及已知检测结果,其中,所述第一样本集是通过特征工程,将第一数据集中的数据转化为用于模型训练的二值特征数据后获得的;所述第二样本集是通过特征工程,将第二数据集中的数据转化为用于模型训练的二值特征数据后获得的;所述第三样本集是通过特征工程,将第三数据集中的数据转化为用于模型训练的二值特征数据后获得的;将所述设备信息输入检测模型,获得所述用户的检测结果包括:通过特征工程,将所述设备信息转化为二值特征数据;将所述二值特征数据输入检测模型,获得所述用户的检测结果。
可选地,所述装置还包括样本获取单元,所述样本获取单元用于在接收用户的访问请求之前,接收模拟正常用户以及模拟异常用户的模拟访问请求,其中,所述模拟访问请求包含所述模拟正常用户的设备信息以及所述模拟异常用户的设备信息;所述样本获取单元用于将所述模拟正常用户的设备信息作为第二数据集,将所述模拟异常用户的设备信息作为第三数据集。
可选地,所述设备信息包括所述用户访问验证时的设备类型、***信息以及地址信息,所述样本获取单元还用于在接收用户的访问请求之前,通过前端埋点的方法,获取用户访问验证时的设备信息数据,其中,所述设备信息数据包括设备类型数据、***信息数据以及地址信息数据;通过第三方平台获取与所述设备类型数据对应的真实***信息以及真实地址信息;将所述真实***信息与所述***信息数据进行匹配,将所述真实地址信息与所述地址信息数据进行匹配;在所述真实***信息与所述***信息数据不一致的情况下,将所述***信息数据对应的设备信息数据作为所述第三数据集;在所述真实地址信息与所述地址信息数据不一致的情况下,将所述地址信息数据对应的设备信息数据作为所述第三数据集;在所述真实***信息与所述***信息数据一致,且所述真实地址信息与所述地址信息数据也一致的情况下,将所述***信息数据对应的设备信息数据作为所述第二数据集。
可选地,所述样本获取单元还用于在接收用户的访问请求之前,将所述第二数据集作为所述第一数据集中的已知设备信息,对应的已知检测结果为正常用户;
所述样本获取单元还用于将所述第三数据集作为所述第一数据集中的已知设备信息,对应的已知检测结果为异常用户。
可选地,所述第一检测模型是使用所述第一样本集对基于高斯分布的朴素贝叶斯网络模型进行有监督训练后获得的二分类模型;所述第二检测模型是使用所述第二样本集对采用基于单分类支持向量集SVM网络模型进行无监督训练后获得的单分类模型;所述第三检测模型是使用所述第三样本集对采用基于单分类支持向量集SVM网络模型进行无监督训练后获得的单分类模型,其中,所述第一检测模型、第二检测模型以及第三检测模型是基于重复取样bagging思想,并行进行训练的。
可选地,所述装置还包括模型融合单元,所述模型融合单元用于将第一检测结果、第二检测结果以及第三检测结果采用第一投票准则进行融合计算,获得检测结果,其中,所述第一检测结果是所述第一检测模型的检测结果,所述第二检测结果是所述第二检测模型的检测结果,所述第三检测结果是所述第三检测模型的检测结果。
可选地,所述执行单元用于在述获得所述用户的检测结果之后,在所述检测结果为异常用户的情况下,拒绝所述用户的访问请求或要求所述用户重新验证;所述执行单元用于用于在所述检测结果为正常用户的情况下,响应所述用户的访问请求。
第三方面,本申请实施例提供了一种服务器,包括处理器、输入设备、输出设备和存储器,其中,所述存储器用于存储支持终端执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的方法。
本申请提供的访问控制方法、***、电子设备及计算机存储介质,通过接收用户的访问请求,其中,所述访问请求包括所述用户的设备信息,所述设备信息包括所述用户访问验证时的设备类型、***信息以及地址信息,从而将所述设备信息输入检测模型,获得所述用户的检测结果,从而根据所述检测结果执行对应的访问策略。本申请利用特征工程和机器学习算法,使用三种分别针对同特征的样本集构建了三个检测模型,并通过模型融合将三种检测模型融合为一个检测模型,使得预测结果良好的避免了单一检测模型的片面性问题,同时降低了由于样本不均衡导致检测模型分类的不准确性,从而大大提高异常用户检测的准确率,并且随着样本量的增长,该检测模型可以不断学习更多的异常用户特征,进一步解决了开发人员需要针对特定的异常用户场景,定向开发检测策略的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的一种访问控制方法的流程示意图;
图2是本申请提供的一种检测模型的结构示意图;
图3是本申请提供的一种样本获取方法的流程示意图;
图4是本申请提供的一种访问控制方法的流程示意图;
图5是本申请提供的一种访问控制装置的结构示意图;
图6是本申请提供的一种服务器结构示意图。
具体实施方式
下面通过具体实施方式结合附图对本申请作进一步详细说明。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或描述,这是为了避免本申请的核心部分被过多的描述所淹没。对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
图1是本申请提供的一种访问控制方法的流程示意图。由图1可知,本申请提供的访问控制方法包括以下步骤:
S101:接收用户的访问请求。
在本申请实施例中,所述访问请求包括所述用户的设备信息,所述设备信息包括所述用户访问验证时的设备类型、***信息以及地址信息。其中,所述设备类型可以是用户访问验证时使用的设备的具体的设备型号,比如Iphone XS、Vivo X20、Macbook Air等等,所述***信息可以包括所述设备的***类型,比如IOS、Andriod、Window、Linux等等,还可以包括***版本,例如IOS12.3、Andriod4.1、Windows10等等,还可以包括分辨率、屏幕像素密度、CPU型号等等设备参数信息,比如,分辨率1920×1080、屏幕像素密度为401ppi、CPU型号为Apple A+M9协处理器、频率为2.1GHz等等,应理解,上述举例仅用于说明,并不能构成具体限定。
在本申请实施例中,所述用户的设备信息可以是通过前端埋点的方式获得的。应理解,开发人员可以使用多种前端埋点方式,在前端页面***监控逻辑,比如,命令式埋点,在前端页面代码中需要监控的地方***监控逻辑,再比如,全埋点,前端自动采集全部事件,上报埋点数据,由后端来过滤和计算出有用的数据,再比如,命令式埋点和全埋点结合的策略,比如30%命令式70%全埋点,在不同场景下选择不同的埋点方案。具体实现中,埋点后的前端页面可以利用JavaScript脚本获取所述用户的设备信息。应理解,上述举例仅用于说明,前端埋点的方式还可以包括其他能够获取用户设备信息的埋点方式,这里不作具体限定。
S102:将所述设备信息输入检测模型,获得所述用户的检测结果。
在本申请实施例中,所述检测模型是将第一检测模型、第二检测模型以及第三检测模型进行模型融合后得到的,所述第一检测模型是使用第一样本集进行有监督训练得到的,所述第二检测模型是通过对第二样本集进行无监督训练得到的,所述第三检测模型是通过对第三样本集进行无监督训练得到的,所述第一样本集包括所述第二样本集以及所述第三样本集,所述第一样本集包括已知设备信息以及已知检测结果。图2是本申请提供的一种检测模型的结构示意图,由图2可知,所述检测模型是由三个模型融合而成的,并且,其中,第一检测模型使用的样本集是全部的样本,也就是第一样本集,第二检测模型使用的样本集是正常用户的样本,也就是第二样本集,第三检测模型训练时使用的样本集是异常用户的样本,也就是第三样本集,而第一样本集是由第二样本集和第三样本集组成的。可以理解的是,该检测模型由于是三种检测模型融合得到的,因此在预测阶段,第一检测模型可以给出一个综合检测概率,第二检测模型和第三检测模型可以分别从正常、异常方面给出样本的检测结果,利用三者的判定,能够非常全面的进行用户异常检测,有效的避免了只利用数据量较多的正常样本训练出单一检测模型的片面性问题。
S103:根据所述检测结果执行对应的访问策略。
在本申请实施例中,所述检测结果包括异常用户和正常用户,所述根据所述检测结果执行对应的访问策略包括:在所述检测结果为异常用户的情况下,拒绝所述用户的访问请求或要求所述用户重新验证;在所述检测结果为正常用户的情况下,响应所述用户的访问请求。简单来讲,就是以检测模型给出的检测结果为依据,确定是否响应用户的请求。可选地,为了提高检测的正确率,还可以在检测结果中异常用户的概率未带到预设阈值时,比如说,最后的检测结果显示只有52%的概率为异常用户,而预设阈值为70%以上,此时也可以向用户再次发送验证请求,请求用户重新进行验证,从而提高验证的准确率。
下面对所述检测模型的训练方法作出详细说明,其中,所述检测模型的训练可以分为三个阶段,分别是样本获取阶段、特征工程阶段以及模型训练阶段。
首先对样本获取阶段进行解释。
可以理解的,在进行模型训练之前,需要获取大量的数据转化为样本集,用于模型训练。可以理解的,由于所述模型用于异常用户的检测,因此所述样本应包含已知设备信息和对应的已知检测阶段,而这种数据并向图片样本一样可以直接用爬虫在网络中获取,需要开发人员自行获取设备信息并为其打上对应的异常用户、正常用户标签。因此,申请在样本获取阶段采取了两种方法进行样本获取。一种是模拟验证的方法,一种是比较准确数据的方法。
在本申请实施例中,模拟验证的方法指的是,在所述接收用户的访问请求之前,所述方法还包括:接收模拟正常用户以及模拟异常用户的模拟访问请求,其中,所述模拟访问请求包含所述模拟正常用户的设备信息以及所述模拟异常用户的设备信息;将所述模拟正常用户的设备信息作为第二数据集,将所述模拟异常用户的设备信息作为第三数据集。比如,开发人员可以使用手机进行正常的注册验证,将前端此时获取的设备信息作为正常用户的样本,放入第二数据集。还可以使用自动化验证工具比如按键精灵进行异常的注册验证,将前端此时获取的设备信息作为异常用户的样本,放入第三数据集。可以理解的,模拟验证的方法获得的设备信息以及对应的标签是准确的标签,是不会出现错误的标签,但是进行模拟验证需要大量的实验,耗费较多时间,因此本申请还提供了另一种获取样本数据的方法。
在本申请实施例中,比较准确数据的方法指的是,接收用户的访问请求之前,所述方法还包括:通过前端埋点的方法,获取用户访问验证时的设备信息数据,其中,所述设备信息数据包括设备类型数据、***信息数据以及地址信息数据;通过第三方平台获取与所述设备类型数据对应的真实***信息以及真实地址信息;将所述真实***信息与所述***信息数据进行匹配,将所述真实地址信息与所述地址信息数据进行匹配;在所述真实***信息与所述***信息数据不一致的情况下,将所述***信息数据对应的设备信息数据作为所述第三数据集;在所述真实地址信息与所述地址信息数据不一致的情况下,将所述地址信息数据对应的设备信息数据作为所述第三数据集;在所述真实***信息与所述***信息数据一致,且所述真实地址信息与所述地址信息数据也一致的情况下,将所述***信息数据对应的设备信息数据作为所述第二数据集。简单地说,根据埋点获取的用户当前的设备类型,再用网络爬虫爬取该设备类型对应的真实***信息以及地址类型,将其与埋点获取的设备类型进行比对,如果一致,说明用户没有篡改过设备信息,因此为正常用户,可以将该设备信息作为正常用户的样本放入第二数据集,如果不一致,说明用户篡改了设备信息,因此可以将该设备信息作为异常用户的样本放入第三数据集。
举例来说,图3显示了如何使用比较准确数据的方法获取样本数据。如图3所示,假设前端埋点获取的设备数据为Iphone6,***信息为Linux,IP地址为116.24.67.65,而通过第三方比如网络爬虫获取到Iphone6设备的***类型为IOS,通过历史访问数据获取到该用户的历史IP地址为116.24.67.65,将两种途径获得的设备数据进行比对,虽然设备类型一直,IP地址也一直,但是***类型不一样,该种情况可能是因为用户在使用自动化验证工具修改IP地址以及设备类型后进行验证的,因此可以将该设备数据标记为异常用户的数据,并将其放入第三数据集。应理解,通过比对的方法获取数据简单快捷,可以很快得到大量的样本数据,但是简单的通过比对是否一致所获得的样本标签并不如模拟验证获得的样本标签准确,因此开发人员可以结合具体的应用场景,选择性的使用样本获取的方法,比如一部分样本使用比较准确数据的方法获得,一部分样本使用模拟验证的方法获得,上述举例仅用于说明,并不能构成具体限定。
在本申请实施例中,接收用户的访问请求之前,所述方法还包括:将所述第二数据集作为所述第一数据集中的已知设备信息,对应的已知检测结果为正常用户;将所述第三数据集作为所述第一数据集中的已知设备信息,对应的已知检测结果为异常用户。也就是说,第一数据集中的数据包括正常用户的样本数据,也包括异常用户的样本数据,第二数据集只有正常用户的数据,第三数据集只有异常用户的数据。利用三种数据集对三种不同的模型进行训练,能够非常全面的进行用户异常检测,有效的避免了只利用数据量较多的正常样本训练出单一检测模型的片面性问题。
其次,对特征提取阶段进行解释。
可以理解的,用于模型训练的数据决定了机器学习的上限,而再完美的算法也只是尽可能的逼近这个上限,因此,在样本阶段获取到第一数据集、第二数据集以及第三数据集后,还需使用特征工程将上述数据集转变为模型训练的样本数据,可以获取到更好的训练数据特征,使得机器学习模型逼近这个上限,从而使得最终训练好的检测模型的性能得到极大提升。
在本申请实施例中,所述第一样本集是通过特征工程,将第一数据集中的数据转化为用于模型训练的二值特征数据后获得的;所述第二样本集是通过特征工程,将第二数据集中的数据转化为用于模型训练的二值特征数据后获得的;所述第三样本集是通过特征工程,将第三数据集中的数据转化为用于模型训练的二值特征数据后获得的;将所述设备信息输入检测模型,获得所述用户的检测结果包括:通过特征工程,将所述设备信息转化为二值特征数据;将所述二值特征数据输入检测模型,获得所述用户的检测结果。可以理解的,由于训练时使用的数据是二值特征数据,因此预测阶段也应该是将步骤S101获取的设备信息转化为二值特征数据后,再输入检测模型进行检测。
具体实现中,特征工程可以通过无量纲化思想将不同规格的数据转换为统一规格,比如,可以将设备信息中的标称属性转换为二值特征,具体可以通过以下三种方式对第一数据集、第二数据集以及第三数据集进行特征挖掘。
(一)以取值点为基准进行标记
以取值点为基准进行标记指的是,根据正常用户以及异常用户数据的分布,对于部分设备信息,选择具有区分性的取值点,并以此为基准,等于此取值的样本标记为0,不等于此取值的样本标记为1。比如,对于正常使用IE浏览器进行注册验证的正常用户,设备分辨率一般都会高于1200×780,但是使用服务器进行后台自动验证的异常用户,设备分辨率都会低于此取值,因此1200×780即可作为具有区分性的取值点,高于此分辨率的样本标记为0,低于此分辨率的样本标记为1。应理解,取值点因为是一个具体的数字,因此该方法对应的设备信息只能是数值型特征,像设备类型、***类型等标称属性无法使用此方法转化为二值特征。
(二)取值子集为基准进行标记
取值子集为基准进行标记指的是,根据正常用户以及异常用户数据的分布,对于部分设备信息,选择具有区分性的取值子集,并以此为基准,属于此取值子集的样本标记为0,不属于此取值子集的样本标记为1。例如,对于Linux***,正常版本类型为centos6、centos7、ubantu、rehat等等,因此正常版本类型的集合就可以作为正常数据对象的区分性取值子集。属于此版本类型子集的样本标记为0,不属于此版本类型子集的样本标记为1。从而将版本类型等标称属性转化为二值特征。
(三)取值集合为基准进行标记
以取值集合为基准进行标记指的是,根据正常用户以及异常用户数据的分布,对于部分设备信息,选择具有区分性的取值集合,并以此为基准,属于此取值集合的样本标记为0,不等于此取值集合的样本标记为1。也就是说,方法(一)和(二)都是针对单个特征,比如针对分辨率、针对***类型等单个特征进行特征挖掘,而方法(三)是针对组合的多个特征进行特征挖掘的。例如,设备类型(PC种类、手机型号等等)和分辨率作为一个具有区分性的取值集合,假设当前通过步骤S101获取的设备信息为Iphone7,在正常用户的样本中,Iphone7对应的分辨率1920×1080取值的支持度和置信度较大(经常出现),那么这组二元对取值就可以区分异常、正常数据,等于此二元对取值的样本标记为0,不等于此二元对取值的样本标记为1。从而将不同规格的特征无量纲化为统一的二值特征,以便接下来的样本训练。
需要说明的,取值点、取值子集以及取值集合可以通过分析第一样本集中的正常用户样本获得的,比如前述内容中,将Linux***的正常版本类型的集合作为正常数据对象的区分性取值子集。还可以根据正常用户以及异常用户样本的分布情况进行统计后获得的,比如,假设当前拥有了12个样本,并依次为其打上了标签,“1”表示为正常用户,“-1”标识为异常用户,正常的样本为A,B,C,E,H,J,K,异常样本:D,F,G,I,异常样本分布占比33.3%,表1显示了该12个样本的各个属性。
表1样本数据及对应的标签
样本 | 分辨率,操作***,标签 | 样本 | 分辨率,操作***,标签 |
A | 1200*456,windows,1 | G | 800*600,windows,-1 |
B | 1900*720,windows,1 | H | 1280*720,windows,1 |
C | 900*600,windows,1 | I | 400*300,windows,-1 |
D | 1980*780,windows,-1 | J | 1200*456,windows,1 |
E | 1600*900,windows,1 | K | 1980*780,windows,1 |
F | 800*600,windows,-1 | L | 1980*780,windows,1 |
可以理解的,对于windows***来说,过低的分辨率,有可能是爬虫服务器,因此对于windows***与分辨率形成的组合特征来说,其取值集合可以通过分析正常用户和异常用户的样本分布情况来确定。比如,假设选取分辨率为800*600的windows***为取区分性的取值集合,那么正常的样本为A,B,C,E,H,J,K,异常样本:F,G,I,异常样本分布占比25%,应理解,异常率为3%左右是一个合理的范围,因此分辨率800*600并不适合作为该组合特征的区分性取值点,假设调低分辨率区分值为400*300,同理可计算出异常占比为8.3%,因此根据这12个样本分布情况选择的区分性取值集合为分辨率为400*300的windows***。需要说明的,对于每个样本,由分辨率取值分布得到相应的特征,高于区分值,特征取值为1,否则为0。
应理解,上述特征工程使用的特征挖掘方法仅用于举例说明,本申请还可以通过其他特征挖掘的方法将设备信息中的标称属性转化为二值特征的样本数据或者其他拥有更好的训练数据特征的样本数据,本申请不作具体限定。
第三,对模型训练阶段进行说明。
在本申请实施例中,所述第一检测模型是使用所述第一样本集对基于高斯分布的朴素贝叶斯网络(Navive Bayes)模型进行有监督训练后获得的二分类模型;所述第二检测模型是使用所述第二样本集对采用基于单分类支持向量集SVM网络模型(One ClassSupport Vector Machine,One Class SVM)进行无监督训练后获得的单分类模型;所述第三检测模型是使用所述第三样本集对采用基于单分类支持向量集SVM网络模型进行无监督训练后获得的单分类模型,其中,所述第一检测模型、第二检测模型以及第三检测模型是基于重复取样bagging思想,并行进行训练的。也就是说,训练好的第一检测模型是一个二分类的模型,训练好的第二检测模型和第三检测模型均为单分类模型,第一检测模型可以在训练过程中,同时学习正负样本(异常用户和正常用户样本)的特征,在预测过程中可以预测出每个输入数据是否异常的综合评估概率,而第二检测模型和第三检测模型只学习单一类别的样本的特征,预测过程中可以通过判断输入数据有没有自己这个类别的特征,从而给出单方面的评估概率。可以理解的,利用三种模型多角度学习样本的特征,这样的模型预测出来的预测结果,能够较为全面的判断注册验证用户的异常情况,有效避免了只利用数据较多的正常样本训练出的单一检测模型的片面性问题,同时降低了由于样本不均衡导致朴素贝叶斯网络分类的不准确性,大大提高最终检测结果的准确性。
在本申请实施例中,分别使用第一样本集、第二样本集以及第三样本集训练获得第一检测模型、第二检测模型以及第三检测模型之后,需要将三个模型进行模型融合的操作,获得最终的检测模型,所述模型融合包括:将第一检测结果、第二检测结果以及第三检测结果采用第一投票准则进行融合计算,获得检测结果,其中,所述第一检测结果是所述第一检测模型的检测结果,所述第二检测结果是所述第二检测模型的检测结果,所述第三检测结果是所述第三检测模型的检测结果。具体实现中,在模型训练过程中,可以基于bagging策略构建第一检测模型、第二检测模型以及第三检测模型,并基于第一投票准则确定最终的预测结果,所述第一投票准则可以在训练阶段根据样本分布进行确定,比如使用加权平均的方法进行投票,本申请不作具体限定。
应理解,所述bagging策略指的是对包含m个样本的原始训练集,采用有放回的随机抽样,也就是说,下次采样时该样本仍有可能被采集到,最终得到T个训练集,其中,每个训练集包含m个样本。由于是随机采样,这样每次的采样集是和原始训练集不同的,和其他采样集也是不同的,使用多个采样集分别对第一检测模型、第二检测模型以及第三检测模型进行训练,最后将不同模型的训练结果采用回归(averaging)方法进行融合,例如,采用的加权平均的方法融合三种模型的预测结果,从而获得比第一检测模型、第二检测模型以及第三检测模型的分类性能更强的检测模型。而对于现有的反爬虫策略来说,只能根据用户请求数据制定相应的反爬虫策略,使用本申请提供的访问控制方法,只需要前期通过特征工程和机器学习算法,自主学习异常用户以及政策用户数据中的区分规则,就能够使用同一个检测模型识别多样性的异常场景。还可以将预测结果对检测模型进行反向传播,不断对检测模型进行更新,随着样本量的增长,可以覆盖更多,更复杂的情况。
图4是本申请提供的一种访问控制方法的流程示意图,由图4可知,步骤S101在获取用户的设备数据后,首先根据特征工程对将设备数据中多个维度的数据(文本类型),将每个维度转化为能够表征数据对象是否异常的数值特征。接着将其输入三个检测模型,其中第一检测模型是使用正常用户样本以及异常用户样本组成的第一样本集进行训练的,学习的是整体分布上的分类特征,可以给出一个综合的概率,而第二检测模型是针对正常用户组成的第二样本集进行训练的,学习的是正常用户的数据特征,第三检测模型针对异常用户组成的第三样本集进行训练,学习的是异常用户的数据特征,从而利用三者的判定结果,给出一个全面的预测结果,有效避免了只利用较多正常样本训练出的单一检测模型的片面性问题,同时降低了由于样本不均导致第一检测模型分类不准确的问题,进一步提高了异常用户检测的准确率。
在本申请实施例中,所述检测结果包括异常用户和正常用户,所述获得所述用户的检测结果之后,所述方法还包括:在所述检测结果为异常用户的情况下,拒绝所述用户的访问请求或要求所述用户重新验证;在所述检测结果为正常用户的情况下,响应所述用户的访问请求。简单来讲,就是以检测模型给出的检测结果为依据,确定是否响应用户的请求。可选地,为了提高检测的正确率,还可以在检测结果中异常用户的概率未带到预设阈值时,比如说,最后的检测结果显示只有52%的概率为异常用户,而预设阈值为70%以上,此时也可以向用户再次发送验证请求,请求用户重新进行验证,从而提高验证的准确率。
上述方法中,通过接收用户的访问请求,其中,所述访问请求包括所述用户的设备信息,所述设备信息包括所述用户访问验证时的设备类型、***信息以及地址信息,从而将所述设备信息输入检测模型,获得所述用户的检测结果,从而根据所述检测结果执行对应的访问策略。通过上述方法,利用特征工程和机器学习算法,使用三种分别针对同特征的样本集构建了三个检测模型,并通过模型融合将三种检测模型融合为一个检测模型,使得预测结果良好的避免了单一检测模型的片面性问题,同时降低了由于样本不均衡导致检测模型分类的不准确性,从而大大提高异常用户检测的准确率,并且随着样本量的增长,该检测模型可以不断学习更多的异常用户特征,进一步解决了开发人员需要针对特定的异常用户场景,定向开发检测策略的问题。
图5是本申请提供的一种访问控制装置的结构示意图。由图5可知,本申请提供的访问控制装置500包括接收单元510、检测单元520以及执行单元530,其中,
所述接收单元510用于接收用户的访问请求,其中,所述访问请求包括所述用户的设备信息,所述设备信息包括所述用户访问验证时的设备类型、***信息以及地址信息;
所述检测单元520用于将所述设备信息输入检测模型,获得所述用户的检测结果,其中,所述检测模型是将第一检测模型、第二检测模型以及第三检测模型进行模型融合后得到的,所述第一检测模型是通过对第一样本集进行有监督训练得到的,所述第二检测模型是通过对第二样本集进行无监督训练得到的,所述第三检测模型是通过对第三样本集进行无监督训练得到的,所述第一样本集包括所述第二样本集以及所述第三样本集,所述第一样本集包括已知设备信息以及已知检测结果。
所述执行单元530用于根据所述检测结果执行对应的访问策略。
在本申请实施例中,所述接收单元510接收的访问请求包括所述用户的设备信息,所述设备信息包括所述用户访问验证时的设备类型、***信息以及地址信息。其中,所述设备类型可以是用户访问验证时使用的设备的具体的设备型号,比如Iphone XS、Vivo X20、Macbook Air等等,所述***信息可以包括所述设备的***类型,比如IOS、Andriod、Window、Linux等等,还可以包括***版本,例如IOS12.3、Andriod4.1、Windows10等等,还可以包括分辨率、屏幕像素密度、CPU型号等等设备参数信息,比如,分辨率1920×1080、屏幕像素密度为401ppi、CPU型号为Apple A+M9协处理器、频率为2.1GHz等等,应理解,上述举例仅用于说明,并不能构成具体限定。
在本申请实施例中,所述用户的设备信息可以是通过前端埋点的方式获得的。应理解,开发人员可以使用多种前端埋点方式,在前端页面***监控逻辑,比如,命令式埋点,在前端页面代码中需要监控的地方***监控逻辑,再比如,全埋点,前端自动采集全部事件,上报埋点数据,由后端来过滤和计算出有用的数据,再比如,命令式埋点和全埋点结合的策略,比如30%命令式70%全埋点,在不同场景下选择不同的埋点方案。具体实现中,埋点后的前端页面可以利用JavaScript脚本获取所述用户的设备信息。应理解,上述举例仅用于说明,前端埋点的方式还可以包括其他能够获取用户设备信息的埋点方式,这里不作具体限定。
在本申请实施例中,所述检测单元520使用的检测模型是将第一检测模型、第二检测模型以及第三检测模型进行模型融合后得到的,所述第一检测模型是使用第一样本集进行有监督训练得到的,所述第二检测模型是通过对第二样本集进行无监督训练得到的,所述第三检测模型是通过对第三样本集进行无监督训练得到的,所述第一样本集包括所述第二样本集以及所述第三样本集,所述第一样本集包括已知设备信息以及已知检测结果。图2是本申请提供的一种检测模型的结构示意图,由图2可知,所述检测模型是由三个模型融合而成的,并且,其中,第一检测模型使用的样本集是全部的样本,也就是第一样本集,第二检测模型使用的样本集是正常用户的样本,也就是第二样本集,第三检测模型训练时使用的样本集是异常用户的样本,也就是第三样本集,而第一样本集是由第二样本集和第三样本集组成的。可以理解的是,该检测模型由于是三种检测模型融合得到的,因此在预测阶段,第一检测模型可以给出一个综合检测概率,第二检测模型和第三检测模型可以分别从正常、异常方面给出样本的检测结果,利用三者的判定,能够非常全面的进行用户异常检测,有效的避免了只利用数据量较多的正常样本训练出单一检测模型的片面性问题。
下面结合图3对所述检测模型的训练方法作出详细说明,其中,所述检测模型的训练可以分为三个阶段,分别是样本获取阶段、特征工程阶段以及模型训练阶段。
首先对样本获取阶段进行解释。
可以理解的,在进行模型训练之前,需要获取大量的数据转化为样本集,用于模型训练。可以理解的,由于所述模型用于异常用户的检测,因此所述样本应包含已知设备信息和对应的已知检测阶段,而这种数据并向图片样本一样可以直接用爬虫在网络中获取,需要开发人员自行获取设备信息并为其打上对应的异常用户、正常用户标签。因此,申请在样本获取阶段采取了两种方法进行样本获取。一种是模拟验证的方法,一种是比较准确数据的方法。
在本申请实施例中,模拟验证的方法指的是,所述装置还包括样本获取单元540,所述接收单元510还用于在接收用户的访问请求之前,接收模拟正常用户以及模拟异常用户的模拟访问请求,其中,所述模拟访问请求包含所述模拟正常用户的设备信息以及所述模拟异常用户的设备信息;所述样本获取单元540用于将所述模拟正常用户的设备信息作为第二数据集,将所述模拟异常用户的设备信息作为第三数据集。比如,开发人员可以使用手机进行正常的注册验证,将前端此时获取的设备信息作为正常用户的样本,放入第二数据集。还可以使用自动化验证工具比如按键精灵进行异常的注册验证,将前端此时获取的设备信息作为异常用户的样本,放入第三数据集。可以理解的,模拟验证的方法获得的设备信息以及对应的标签是准确的标签,是不会出现错误的标签,但是进行模拟验证需要大量的实验,耗费较多时间,因此本申请还提供了另一种获取样本数据的方法。
在本申请实施例中,比较准确数据的方法指的是,所述接收单元510还用于在接收用户的访问请求之前通过前端埋点的方法,获取用户访问验证时的设备信息数据,其中,所述设备信息数据包括设备类型数据、***信息数据以及地址信息数据;所述样本获取单元540还用于通过第三方平台获取与所述设备类型数据对应的真实***信息以及真实地址信息;所述样本获取单元540还用于将所述真实***信息与所述***信息数据进行匹配,将所述真实地址信息与所述地址信息数据进行匹配;所述样本获取单元540还用于在所述真实***信息与所述***信息数据不一致的情况下,将所述***信息数据对应的设备信息数据作为所述第三数据集;所述样本获取单元540还用于在所述真实地址信息与所述地址信息数据不一致的情况下,将所述地址信息数据对应的设备信息数据作为所述第三数据集;所述样本获取单元540还用于在所述真实***信息与所述***信息数据一致,且所述真实地址信息与所述地址信息数据也一致的情况下,将所述***信息数据对应的设备信息数据作为所述第二数据集。简单地说,根据埋点获取的用户当前的设备类型,再用网络爬虫爬取该设备类型对应的真实***信息以及地址类型,将其与埋点获取的设备类型进行比对,如果一致,说明用户没有篡改过设备信息,因此为正常用户,可以将该设备信息作为正常用户的样本放入第二数据集,如果不一致,说明用户篡改了设备信息,因此可以将该设备信息作为异常用户的样本放入第三数据集。
举例来说,图3显示了如何使用比较准确数据的方法获取样本数据。如图3所示,假设前端埋点获取的设备数据为Iphone6,***信息为Linux,IP地址为116.24.67.65,而通过第三方比如网络爬虫获取到Iphone6设备的***类型为IOS,通过历史访问数据获取到该用户的历史IP地址为116.24.67.65,将两种途径获得的设备数据进行比对,虽然设备类型一直,IP地址也一直,但是***类型不一样,该种情况可能是因为用户在使用自动化验证工具修改IP地址以及设备类型后进行验证的,因此可以将该设备数据标记为异常用户的数据,并将其放入第三数据集。应理解,通过比对的方法获取数据简单快捷,可以很快得到大量的样本数据,但是简单的通过比对是否一致所获得的样本标签并不如模拟验证获得的样本标签准确,因此开发人员可以结合具体的应用场景,选择性的使用样本获取的方法,比如一部分样本使用比较准确数据的方法获得,一部分样本使用模拟验证的方法获得,上述举例仅用于说明,并不能构成具体限定。
在本申请实施例中,所述样本获取单元540还用于在接收用户的访问请求之前,将所述第二数据集作为所述第一数据集中的已知设备信息,对应的已知检测结果为正常用户;所述样本获取单元540还用于将所述第三数据集作为所述第一数据集中的已知设备信息,对应的已知检测结果为异常用户。也就是说,第一数据集中的数据包括正常用户的样本数据,也包括异常用户的样本数据,第二数据集只有正常用户的数据,第三数据集只有异常用户的数据。利用三种数据集对三种不同的模型进行训练,能够非常全面的进行用户异常检测,有效的避免了只利用数据量较多的正常样本训练出单一检测模型的片面性问题。
其次,对特征提取阶段进行解释。
可以理解的,用于模型训练的数据决定了机器学习的上限,而再完美的算法也只是尽可能的逼近这个上限,因此,在样本阶段获取到第一数据集、第二数据集以及第三数据集后,还需使用特征工程将上述数据集转变为模型训练的样本数据,可以获取到更好的训练数据特征,使得机器学习模型逼近这个上限,从而使得最终训练好的检测模型的性能得到极大提升。
在本申请实施例中,所述第一样本集是通过特征工程,将第一数据集中的数据转化为用于模型训练的二值特征数据后获得的;所述第二样本集是通过特征工程,将第二数据集中的数据转化为用于模型训练的二值特征数据后获得的;所述第三样本集是通过特征工程,将第三数据集中的数据转化为用于模型训练的二值特征数据后获得的;将所述设备信息输入检测模型,获得所述用户的检测结果包括:通过特征工程,将所述设备信息转化为二值特征数据;将所述二值特征数据输入检测模型,获得所述用户的检测结果。可以理解的,由于训练时使用的数据是二值特征数据,因此预测阶段也应该是将步骤S101获取的设备信息转化为二值特征数据后,再输入检测模型进行检测。
具体实现中,特征工程可以通过无量纲化思想将不同规格的数据转换为统一规格,比如,可以将设备信息中的标称属性转换为二值特征,具体可以通过以下三种方式对第一数据集、第二数据集以及第三数据集进行特征挖掘。
(一)以取值点为基准进行标记
以取值点为基准进行标记指的是,根据正常用户以及异常用户数据的分布,对于部分设备信息,选择具有区分性的取值点,并以此为基准,等于此取值的样本标记为0,不等于此取值的样本标记为1。比如,对于正常使用IE浏览器进行注册验证的正常用户,设备分辨率一般都会高于1200×780,但是使用服务器进行后台自动验证的异常用户,设备分辨率都会低于此取值,因此1200×780即可作为具有区分性的取值点,高于此分辨率的样本标记为0,低于此分辨率的样本标记为1。应理解,取值点因为是一个具体的数字,因此该方法对应的设备信息只能是数值型特征,像设备类型、***类型等标称属性无法使用此方法转化为二值特征。
(二)取值子集为基准进行标记
取值子集为基准进行标记指的是,根据正常用户以及异常用户数据的分布,对于部分设备信息,选择具有区分性的取值子集,并以此为基准,属于此取值子集的样本标记为0,不属于此取值子集的样本标记为1。例如,对于Linux***,正常版本类型为centos6、centos7、ubantu、rehat等等,因此正常版本类型的集合就可以作为正常数据对象的区分性取值子集。属于此版本类型子集的样本标记为0,不属于此版本类型子集的样本标记为1。从而将版本类型等标称属性转化为二值特征。
(三)取值集合为基准进行标记
以取值集合为基准进行标记指的是,根据正常用户以及异常用户数据的分布,对于部分设备信息,选择具有区分性的取值集合,并以此为基准,属于此取值集合的样本标记为0,不等于此取值集合的样本标记为1。也就是说,方法(一)和(二)都是针对单个特征,比如针对分辨率、针对***类型等单个特征进行特征挖掘,而方法(三)是针对组合的多个特征进行特征挖掘的。例如,设备类型(PC种类、手机型号等等)和分辨率作为一个具有区分性的取值集合,假设当前通过步骤S101获取的设备信息为Iphone7,在正常用户的样本中,Iphone7对应的分辨率1920×1080取值的支持度和置信度较大(经常出现),那么这组二元对取值就可以区分异常、正常数据,等于此二元对取值的样本标记为0,不等于此二元对取值的样本标记为1。从而将不同规格的特征无量纲化为统一的二值特征,以便接下来的样本训练。
需要说明的,取值点、取值子集以及取值集合可以通过分析第一样本集中的正常用户样本获得的,比如前述内容中,将Linux***的正常版本类型的集合作为正常数据对象的区分性取值子集。还可以根据正常用户以及异常用户样本的分布情况进行统计后获得的,比如,假设当前拥有了12个样本,并依次为其打上了标签,“1”表示为异常用户,“-1”标识为正常用户,正常的样本为A,B,C,E,H,J,K,异常样本:D,F,G,I,异常样本分布占比33.3%,表1显示了该12个样本的各个属性。
可以理解的,对于windows***来说,过低的分辨率,有可能是爬虫服务器,因此对于windows***与分辨率形成的组合特征来说,其取值集合可以通过分析正常用户和异常用户的样本分布情况来确定。比如,假设选取分辨率为800*600的windows***为取区分性的取值集合,那么正常的样本为A,B,C,E,H,J,K,异常样本:D,F,G,I,异常样本分布占比33.3%,根据取值集合计算的异常占比高于实际分布的5%,因此分辨率800*600并不适合作为该组合特征的区分性取值点,假设调低分辨率区分值为400*300,同理可计算出异常占比为8.3%,因此根据这12个样本分布情况选择的区分性取值集合为分辨率为400*300的windows***。需要说明的,对于每个样本,由分辨率取值分布得到相应的特征,高于区分值,特征取值为1,否则为0。
应理解,上述特征工程使用的特征挖掘方法仅用于举例说明,本申请还可以通过其他特征挖掘的方法将设备信息中的标称属性转化为二值特征的样本数据或者其他拥有更好的训练数据特征的样本数据,本申请不作具体限定。
第三,对模型训练阶段进行说明。
在本申请实施例中,所述第一检测模型是使用所述第一样本集对基于高斯分布的朴素贝叶斯网络(Navive Bayes)模型进行有监督训练后获得的二分类模型;所述第二检测模型是使用所述第二样本集对采用基于单分类支持向量集SVM网络模型(One ClassSupport Vector Machine,One Class SVM)进行无监督训练后获得的单分类模型;所述第三检测模型是使用所述第三样本集对采用基于单分类支持向量集SVM网络模型进行无监督训练后获得的单分类模型,其中,所述第一检测模型、第二检测模型以及第三检测模型是基于重复取样bagging思想,并行进行训练的。也就是说,训练好的第一检测模型是一个二分类的模型,训练好的第二检测模型和第三检测模型均为单分类模型,第一检测模型可以在训练过程中,同时学习正负样本(异常用户和正常用户样本)的特征,在预测过程中可以预测出每个输入数据是否异常的综合评估概率,而第二检测模型和第三检测模型只学习单一类别的样本的特征,预测过程中可以通过判断输入数据有没有自己这个类别的特征,从而给出单方面的评估概率。可以理解的,利用三种模型多角度学习样本的特征,这样的模型预测出来的预测结果,能够较为全面的判断注册验证用户的异常情况,有效避免了只利用数据较多的正常样本训练出的单一检测模型的片面性问题,同时降低了由于样本不均衡导致朴素贝叶斯网络分类的不准确性,大大提高最终检测结果的准确性。
在本申请实施例中,分别使用第一样本集、第二样本集以及第三样本集训练获得第一检测模型、第二检测模型以及第三检测模型之后,需要将三个模型进行模型融合的操作,获得最终的检测模型,所述装置还包括模型融合单元550,所述模型融合单元550用于:将第一检测结果、第二检测结果以及第三检测结果采用第一投票准则进行融合计算,获得检测结果,其中,所述第一检测结果是所述第一检测模型的检测结果,所述第二检测结果是所述第二检测模型的检测结果,所述第三检测结果是所述第三检测模型的检测结果。具体实现中,在模型训练过程中,可以基于bagging策略构建第一检测模型、第二检测模型以及第三检测模型,并基于第一投票准则确定最终的预测结果,所述第一投票准则可以在训练阶段根据样本分布进行确定,比如使用加权平均的方法进行投票,本申请不作具体限定。
应理解,所述bagging策略指的是对包含m个样本的原始训练集,采用有放回的随机抽样,也就是说,下次采样时该样本仍有可能被采集到,最终得到T个训练集,其中,每个训练集包含m个样本。由于是随机采样,这样每次的采样集是和原始训练集不同的,和其他采样集也是不同的,使用多个采样集分别对第一检测模型、第二检测模型以及第三检测模型进行训练,最后将不同模型的训练结果采用回归(averaging)方法进行融合,例如,采用的加权平均的方法融合三种模型的预测结果,从而获得比第一检测模型、第二检测模型以及第三检测模型的分类性能更强的检测模型。而对于现有的反爬虫策略来说,只能根据用户请求数据制定相应的反爬虫策略,使用本申请提供的访问控制方法,只需要前期通过特征工程和机器学习算法,自主学习异常用户以及政策用户数据中的区分规则,就能够使用同一个检测模型识别多样性的异常场景。还可以将预测结果对检测模型进行反向传播,不断对检测模型进行更新,随着样本量的增长,可以覆盖更多,更复杂的情况。
图4是本申请提供的一种访问控制方法的流程示意图,由图4可知,步骤S101在获取用户的设备数据后,首先根据特征工程对将设备数据中多个维度的数据(文本类型),将每个维度转化为能够表征数据对象是否异常的数值特征。接着将其输入三个检测模型,其中第一检测模型是使用正常用户样本以及异常用户样本组成的第一样本集进行训练的,学习的是整体分布上的分类特征,可以给出一个综合的概率,而第二检测模型是针对正常用户组成的第二样本集进行训练的,学习的是正常用户的数据特征,第三检测模型针对异常用户组成的第三样本集进行训练,学习的是异常用户的数据特征,从而利用三者的判定结果,给出一个全面的预测结果,有效避免了只利用较多正常样本训练出的单一检测模型的片面性问题,同时降低了由于样本不均导致第一检测模型分类不准确的问题,进一步提高了异常用户检测的准确率。
在本申请实施例中,所述检测结果包括异常用户和正常用户,所述执行单元具体530用于在获得所述用户的检测结果之后,在所述检测结果为异常用户的情况下,拒绝所述用户的访问请求或要求所述用户重新验证;所述执行单元具体530用于在所述检测结果为正常用户的情况下,响应所述用户的访问请求。简单来讲,就是以检测模型给出的检测结果为依据,确定是否响应用户的请求。可选地,为了提高检测的正确率,还可以在检测结果中异常用户的概率未带到预设阈值时,比如说,最后的检测结果显示只有52%的概率为异常用户,而预设阈值为70%以上,此时也可以向用户再次发送验证请求,请求用户重新进行验证,从而提高验证的准确率。
上述装置中,通过接收用户的访问请求,其中,所述访问请求包括所述用户的设备信息,所述设备信息包括所述用户访问验证时的设备类型、***信息以及地址信息,从而将所述设备信息输入检测模型,获得所述用户的检测结果。通过上述装置,利用特征工程和机器学习算法,使用三种分别针对同特征的样本集构建了三个检测模型,并通过模型融合将三种检测模型融合为一个检测模型,使得预测结果良好的避免了单一检测模型的片面性问题,同时降低了由于样本不均衡导致检测模型分类的不准确性,从而大大提高异常用户检测的准确率,并且随着样本量的增长,该检测模型可以不断学习更多的异常用户特征,进一步解决了开发人员需要针对特定的异常用户场景,定向开发检测策略的问题。
参见图6,图6是本申请中提供的一种服务器的结构示意图。本实施方式的访问控制方法可以在如图6所示的云服务集群中实现,也可以在单个服务器中时间,本申请不作具体限定,所述云服务集群包括至少一个计算节点610以及至少一个存储节点620。
计算节点610包括一个或多个处理器611、通信接口612和存储器613。其中,处理器611、通信接口612和存储器613之间可以通过总线614连接。
处理器611包括一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(Central Processing Unit,CPU)、微处理器、微控制器、主处理器、控制器以及ASIC(Application Specific Integrated Circuit,专用集成电路)等等。它能够是仅用于计算节点610的专用处理器或者能够与其它计算节点610共享。处理器611执行各种类型的数字存储指令,例如存储在存储器613中的软件或者固件程序,它能使计算节点610提供较宽的多种服务。例如,处理器611能够执行程序或者处理数据,以执行本文讨论的方法的至少一部分。
通信接口612可以为有线接口(例如以太网接口),用于与其他计算节点或用户进行通信。当通信接口612为有线接口时,通信接口612可以采用TCP/IP之上的协议族,例如,RAAS协议、远程函数调用(Remote Function Call,RFC)协议、简单对象访问协议(SimpleObject Access Protocol,SOAP)协议、简单网络管理协议(Simple Network ManagementProtocol,SNMP)协议、公共对象请求代理体系结构(Common Object Request BrokerArchitecture,CORBA)协议以及分布式协议等等。
存储器613可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-VolatileMemory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)存储器还可以包括上述种类的存储器的组合。
存储节点620包括一个或多个处理器621、通信接口622和存储器623。其中,处理器621、通信接口622和存储器623之间可以通过总线624连接。
处理器621包括一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括CPU、微处理器、微控制器、主处理器、控制器以及ASIC等等。它能够是仅用于存储节点620的专用处理器或者能够与其它存储节点620共享。处理器621执行各种类型的数字存储指令,例如存储在存储器223中的软件或者固件程序,它能使存储节点620提供较宽的多种服务。例如,处理器611能够执行样本获取、特征工程以及模型训练,以执行本文讨论的方法的至少一部分。
通信接口622可以为有线接口(例如以太网接口),用于与其他计算设备或用户进行通信。
存储节点620包括一个或多个存储控制器621和存储阵列625。其中,存储控制器621和存储阵列625之间可以通过总线626连接。
存储控制器621包括一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括CPU、微处理器、微控制器、主处理器、控制器以及ASIC等等。它能够是仅用于单个存储节点620的专用处理器或者能够与计算节点40或者其它存储节点620共享。可以理解,在本实施例中,每个存储节点包括一个存储控制器,在其他的实施例中,也可以多个存储节点共享一个存储控制器,此处不作具体限定。
存储器阵列625可以包括多个存储器。存储器可以是非易失性存储器,例如ROM、快闪存储器、HDD或SSD存储器还可以包括上述种类的存储器的组合。例如,存储阵列可以是由多个HDD或者多个SDD组成,或者,存储阵列可以是由HDD以及SDD组成。其中,多个存储器在存储控制器321将的协助下按不同的方式组合起来形成存储器组,从而提供比单个存储器更高的存储性能和提供数据备份技术。可选地,存储器阵列625可以包括一个或者多个数据中心。多个数据中心可以设置在同一个地点,或者,分别在不同的地点,此处不作具体限定。存储器阵列625可以存储有程序代码以及程序数据。其中,程序代码包括特征第一检测模型代码以及第二检测模型代码等等。程序数据包括:第一样本集、第二样本集以及第三样本集,用于供处理器611使用所述程序数据训练得到所述检测模型。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘Solid State Disk(SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述仅为本申请的几个实施例,本领域的技术人员依据申请文件公开的可以对本申请进行各种改动或变型而不脱离本申请的精神和范围。
Claims (10)
1.一种访问控制方法,其特征在于,所述方法包括:
接收用户的访问请求,其中,所述访问请求包括所述用户的设备信息;
将所述设备信息输入检测模型,获得所述用户的检测结果,其中,所述检测模型是将第一检测模型、第二检测模型以及第三检测模型进行模型融合后得到的模型,所述检测结果包括正常用户或者异常用户,所述第一检测模型是使用第一样本集进行有监督训练得到的,所述第二检测模型是通过对第二样本集进行无监督训练得到的,所述第三检测模型是通过对第三样本集进行无监督训练得到的,所述第一样本集包括所述第二样本集以及所述第三样本集,所述第二样本集包括已知正常用户的设备信息以及对应的已知检测结果,所述第三样本集包括已知异常用户的设备信息以及对应的已知检测结果;
根据所述检测结果执行对应的访问策略。
2.根据权利要求1所述的方法,其特征在于,所述第一样本集是通过特征工程,将第一数据集中的数据转化为用于模型训练的二值特征数据后获得的;
所述第二样本集是通过特征工程,将第二数据集中的数据转化为用于模型训练的二值特征数据后获得的;
所述第三样本集是通过特征工程,将第三数据集中的数据转化为用于模型训练的二值特征数据后获得的;
将所述设备信息输入检测模型,获得所述用户的检测结果包括:
通过特征工程,将所述设备信息转化为二值特征数据;
将所述二值特征数据输入检测模型,获得所述用户的检测结果。
3.根据权利要求2所述的方法,其特征在于,接收用户的访问请求之前,所述方法还包括:
接收模拟正常用户以及模拟异常用户的模拟访问请求,其中,所述模拟访问请求包含所述模拟正常用户的设备信息以及所述模拟异常用户的设备信息;
将所述模拟正常用户的设备信息作为第二数据集,将所述模拟异常用户的设备信息作为第三数据集。
4.根据权利要求3所述的方法,其特征在于,所述设备信息包括所述用户访问验证时的设备类型、***信息以及地址信息,且接收用户的访问请求之前,所述方法还包括:
通过前端埋点的方法,获取用户访问验证时的设备信息数据,其中,所述设备信息数据包括设备类型数据、***信息数据以及地址信息数据;
通过第三方平台获取与所述设备类型数据对应的真实***信息以及真实地址信息;
将所述真实***信息与所述***信息数据进行匹配,将所述真实地址信息与所述地址信息数据进行匹配;
在所述真实***信息与所述***信息数据不一致的情况下,将所述***信息数据对应的设备信息数据作为所述第三数据集;
在所述真实地址信息与所述地址信息数据不一致的情况下,将所述地址信息数据对应的设备信息数据作为所述第三数据集;
在所述真实***信息与所述***信息数据一致,且所述真实地址信息与所述地址信息数据也一致的情况下,将所述***信息数据对应的设备信息数据作为所述第二数据集。
5.根据权利要求4所述的方法,其特征在于,接收用户的访问请求之前,所述方法还包括:
将所述第二数据集作为所述第一数据集中的已知设备信息,对应的已知检测结果为正常用户;
将所述第三数据集作为所述第一数据集中的已知设备信息,对应的已知检测结果为异常用户。
6.根据权利要求1至5任一权利要求所述的方法,其特征在于,
所述第一检测模型是使用所述第一样本集对基于高斯分布的朴素贝叶斯网络模型进行有监督训练后获得的二分类模型;
所述第二检测模型是使用所述第二样本集对采用基于单分类支持向量集SVM网络模型进行无监督训练后获得的单分类模型;
所述第三检测模型是使用所述第三样本集对采用基于单分类支持向量集SVM网络模型进行无监督训练后获得的单分类模型,其中,所述第一检测模型、第二检测模型以及第三检测模型是基于重复取样bagging思想,并行进行训练的。
7.根据权利要求1所述的方法,其特征在于,所述模型融合包括:
将第一检测结果、第二检测结果以及第三检测结果采用第一投票准则进行融合计算,获得检测结果,其中,所述第一检测结果是所述第一检测模型的检测结果,所述第二检测结果是所述第二检测模型的检测结果,所述第三检测结果是所述第三检测模型的检测结果。
8.根据权利要求1所述的方法,其特征在于,所述根据所述检测结果执行对应的访问策略包括:
在所述检测结果为异常用户的情况下,拒绝所述用户的访问请求或要求所述用户重新验证;
在所述检测结果为正常用户的情况下,响应所述用户的访问请求。
9.一种访问控制装置,其特征在于,所述装置包括:
接收单元,所述接收单元用于接收用户的访问请求,其中,所述访问请求包括所述用户的设备信息,所述设备信息包括所述用户访问验证时的设备类型、***信息以及地址信息;
检测单元,所述检测单元用于将所述设备信息输入检测模型,获得所述用户的检测结果,其中,所述检测模型是将第一检测模型、第二检测模型以及第三检测模型进行模型融合后得到的模型,所述检测结果包括正常用户或者异常用户,所述第一检测模型是使用第一样本集进行有监督训练得到的,所述第二检测模型是通过对第二样本集进行无监督训练得到的,所述第三检测模型是通过对第三样本集进行无监督训练得到的,所述第一样本集包括所述第二样本集以及所述第三样本集,所述第二样本集包括已知正常用户的设备信息以及对应的已知检测结果,所述第三样本集包括已知异常用户的设备信息以及对应的已知检测结果;
执行单元,所述执行单元用于根据所述检测结果执行对应的访问策略。
10.一种服务器,其特征在于,包括处理器、输入设备、输出设备和存储器,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令,执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910442550.1A CN110166462B (zh) | 2019-05-25 | 2019-05-25 | 访问控制方法、***、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910442550.1A CN110166462B (zh) | 2019-05-25 | 2019-05-25 | 访问控制方法、***、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110166462A CN110166462A (zh) | 2019-08-23 |
CN110166462B true CN110166462B (zh) | 2022-02-25 |
Family
ID=67632840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910442550.1A Active CN110166462B (zh) | 2019-05-25 | 2019-05-25 | 访问控制方法、***、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110166462B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443274B (zh) * | 2019-06-28 | 2024-05-07 | 平安科技(深圳)有限公司 | 异常检测方法、装置、计算机设备及存储介质 |
CN110708306B (zh) * | 2019-09-29 | 2022-07-12 | 贝壳找房(北京)科技有限公司 | 一种数据处理方法、装置和存储介质 |
CN110781173A (zh) * | 2019-10-12 | 2020-02-11 | 杭州城市大数据运营有限公司 | 一种数据识别方法、装置、计算机设备及存储介质 |
CN111428108A (zh) * | 2020-03-25 | 2020-07-17 | 山东浪潮通软信息科技有限公司 | 一种基于深度学习的反爬虫方法、装置和介质 |
CN111783883A (zh) * | 2020-06-30 | 2020-10-16 | 平安普惠企业管理有限公司 | 一种异常数据的检测方法及装置 |
CN115134102A (zh) * | 2021-03-24 | 2022-09-30 | 北京字节跳动网络技术有限公司 | 异常访问检测方法、装置、存储介质及电子设备 |
CN113542223A (zh) * | 2021-06-16 | 2021-10-22 | 杭州拼便宜网络科技有限公司 | 基于设备指纹的反爬虫方法 |
CN113591909A (zh) * | 2021-06-23 | 2021-11-02 | 北京智芯微电子科技有限公司 | 电力***的异常检测方法、异常检测装置以及存储介质 |
CN114039745B (zh) * | 2021-10-08 | 2024-06-04 | 中移(杭州)信息技术有限公司 | 网站异常流量的识别方法、设备及介质 |
CN114679320A (zh) * | 2022-03-29 | 2022-06-28 | 杭州安恒信息技术股份有限公司 | 一种服务器防护方法、装置及可读存储介质 |
CN115269583B (zh) * | 2022-09-29 | 2022-12-16 | 南通君合云起信息科技有限公司 | 一种用于大数据处理的无监督清洗方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107025547B (zh) * | 2016-09-19 | 2020-10-16 | 创新先进技术有限公司 | 支付通道检测方法、装置及终端 |
CN108009058A (zh) * | 2017-11-17 | 2018-05-08 | 阿里巴巴集团控股有限公司 | 异常设备识别方法及装置和电子设备 |
CN108038700A (zh) * | 2017-12-22 | 2018-05-15 | 上海前隆信息科技有限公司 | 一种反欺诈数据分析方法与*** |
CN108681667A (zh) * | 2018-04-02 | 2018-10-19 | 阿里巴巴集团控股有限公司 | 一种设备型号识别方法、装置及处理设备 |
CN109547254B (zh) * | 2018-11-28 | 2022-03-15 | 湖北文理学院 | 一种入侵检测方法、装置、电子设备及存储介质 |
CN109635872B (zh) * | 2018-12-17 | 2020-08-04 | 上海观安信息技术股份有限公司 | 身份识别方法、电子设备及计算机程序产品 |
-
2019
- 2019-05-25 CN CN201910442550.1A patent/CN110166462B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110166462A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110166462B (zh) | 访问控制方法、***、电子设备及计算机存储介质 | |
CN112417439B (zh) | 账号检测方法、装置、服务器及存储介质 | |
CN111191767B (zh) | 一种基于向量化的恶意流量攻击类型的判断方法 | |
CN106992994A (zh) | 一种云服务的自动化监控方法和*** | |
CN112395159A (zh) | 一种日志检测方法、***、设备及介质 | |
US20210126931A1 (en) | System and a method for detecting anomalous patterns in a network | |
CN106209862A (zh) | 一种盗号防御实现方法及装置 | |
US9491186B2 (en) | Method and apparatus for providing hierarchical pattern recognition of communication network data | |
CN111176953B (zh) | 一种异常检测及其模型训练方法、计算机设备和存储介质 | |
CN106485261A (zh) | 一种图像识别的方法和装置 | |
CN113778802A (zh) | 异常预测方法及设备 | |
CN112769605A (zh) | 一种异构多云的运维管理方法及混合云平台 | |
KR102291615B1 (ko) | 통신망의 장애를 예측하는 장치 및 방법 | |
CN112367215B (zh) | 基于机器学习的网络流量协议识别方法和装置 | |
WO2024007615A1 (zh) | 模型训练方法、装置及相关设备 | |
CN117240632A (zh) | 一种基于知识图谱的攻击检测方法和*** | |
CN110704614B (zh) | 对应用中的用户群类型进行预测的信息处理方法及装置 | |
CN109922083B (zh) | 一种网络协议流量控制*** | |
WO2020258509A1 (zh) | 终端设备异常访问的隔离方法和装置 | |
CN108040067B (zh) | 一种云平台入侵检测方法、装置及*** | |
CN117391214A (zh) | 模型训练方法、装置及相关设备 | |
CN115296872A (zh) | 一种网络安全风险评估*** | |
CN110401639B (zh) | 网络访问的异常判定方法、装置、服务器及其存储介质 | |
CN111815442B (zh) | 一种链接预测的方法、装置和电子设备 | |
CN114915446A (zh) | 一种融合先验知识的智能网络安全检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |