掌桥专利:专业的专利平台
掌桥专利
首页

检测异常用户的方法、设备和计算机存储介质

文献发布时间:2023-06-19 09:57:26


检测异常用户的方法、设备和计算机存储介质

技术领域

本公开的实施例涉及信息处理领域,并且更具体地,涉及检测异常用户的方法、设备和计算机存储介质。

背景技术

验证码的主要目的是强制人机交互来抵御机器自动化攻击的。大部分的验证码设计者并不得要领,其通过向手机发送验证码或让用户在用户界面输入特定的字符等方式验证用户是否为外挂程序,上述方式有以下两个缺点,其一干扰用户在应用内的正常操作,降低了用户体验是体验,并且诸如验证码自动生成器等作弊工具可以有效地完成上述验证操作,从而该方式往往无法有效识别异常用户。

发明内容

本公开提出了一种旨在至少克服上述问题的方案。

在本公开的第一方面,提出了一种用于检测异常用户的方法,包括:至少部分地基于应用中的内容向用户发出验证请求,所述验证请求要求用户在所述应用中执行充当验证操作的操作,而不中断所述应用中的运行;获取与用户在所述应用中执行的所述操作相关的信息,所述信息指示所述用户完成所述验证操作的情况;以及基于所述信息来判断所述用户是否为异常用户。

在本公开的第二方面,提出了一种电子设备,包括:至少一个处理单元;至少一个存储器,该至少一个存储器被耦合到该至少一个处理单元并且存储用于由该至少一个处理单元执行的指令,该指令当由该至少一个处理单元执行时,使得该电子设备执行动作,该动作包括:至少部分地基于应用中的内容向用户发出验证请求,所述验证请求要求用户在所述应用中执行充当验证操作的操作,而不中断所述应用中的运行;获取与用户在所述应用中执行的所述操作相关的信息,所述信息指示所述用户完成所述验证操作的情况;以及基于所述信息来判断所述用户是否为异常用户。

在本公开的第三方面,提供了一种计算机存储介质。该计算机存储介质具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行根据第一方面的方法。

提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。

附图说明

通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。

图1图示了能够在其中实施本公开的实施例的环境的示意图;

图2图示了根据本公开的实施例的用于检测异常用户的方法的流程图;

图3图示了可以用来实施本公开的实施例的示例设备的示意性框图。

具体实施方式

下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

如以上提及的,期望基于验证码检测异常用户。现有的方法仅仅通过强制要求用户输入验证码的方式进行检测,该方法降低了用户体验并且准确率仍有上升空间。

根据本公开的实施例,提供了一种用于检测异常用户的方法,该方法首先至少部分地基于应用中的素材和规则制定出验证规则并且向用户发出验证请求,该验证请求要求用户在所述应用中进行验证操作,然后获取与该用户在执行验证操作的过程中的操作信息,最后利用该信息和预设规则来判断该用户是否为异常用户。采用本公开的方案,可以利用应用中的素材与规则进行验证,验证开始与结束均不能被用户感知,且验证过程中不中断用户在应用内的操作,提升了用户体验,并且由于外挂程序不能预测验证操作的内容,因而不能按照指令完成动作,因此提升了检测异常用户的准确率。

以下参考附图来说明本公开的基本原理和若干示例实现。

图1图示了可以在其中实施本公开的多个实现的计算环境100的框图。应当理解,图1所示出的计算环境100仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,计算环境100包括用户设备120、服务器130以及存储装置140,其中用户110可以与用户设备120进行交互以执行验证操作。

如图1所示,用户设备120诸如是任何类型的移动终端、固定终端或便携式终端,包括移动手机、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(PCS)设备、个人导航设备、个人数字助理(PDA)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,用户设备120能够支持任何类型的针对用户的接口(诸如“可佩戴”电路等)。

在一些实施例中,用户110可以通过用户设备120登录至服务器130。例如,用户设备120可以安装有与服务器130所提供的服务相关联的应用,用户110可以通过点击该应用并且登录至该应用,从而登录至服务器130。在一些实施例中,存储装置140可以是独立于服务器130,也可以被部署在服务器130中。

在一个示例中,与应用相关联的验证操作的规则可以被预先存储在存储装置140中。这仅仅是一个示例。也可以利用服务器130中的机器学习模块通过神经网络制定验证操作的规则。将在下面结合图2进一步描述详细的验证和判断过程。

图2图示了根据本公开的实施例的用于检测异常用户的方法200的流程图。方法200可以由图1中的服务器130来实施,以判断用户110是否为异常用户。为便于描述,将参照图1来描述方法200。

在210,服务器130至少部分地基于应用中的内容向用户110发出验证请求。该验证请求要求用户110利用用户设备执行验证操作,该验证操作与应用中的所使用的诸如素材、UI和规则等的内容不产生冲突,从而使用户110依然沉浸在应用的场景中而不感知到验证操作的存在,从而没有中断用户110的操作。这又可以被称为“隐形验证”或“非弹出式验证”。在一个示例中,服务器130可以利用用户设备120的用户接口以文字或语音的形式发送验证请求。

在一些实施例中,验证请求可以是在绘图应用中突发地要求用户110重复上一次绘画、在健康应用中要求用户110重复刚才做过的动作。

在一些实施例中,应用可以是游戏,验证操作是服务器130在游戏中预先设定的任务或者是服务器130响应于监测到用户的操作类似于外挂而设置突发的任务。验证操作被设计为游戏中的任务的一部分,其与用户在游戏中需要完成其他的任务类似,使得让用户在体验游戏的同时完成验证,从而无法被正常用户或者是作弊器感知。

可以根据不同类型的游戏中的不同场景设置不同的验证请求。在一些实施例中,验证请求可以是在战斗游戏应用中要求用户110在诸如10s的预定时间内击败相应的游戏角色。在一个示例中,服务器130可能不会将“10s”的信息暴露给用户110,而是采用“请迅速击败”等字眼,这是为了防止验证请求暴露从而被外挂程序破解。

此外,验证请求除了要求用户110在预定时间内完成操作之外,还可以通过提示用户完成操作的顺序来设置验证。在一些实施例中,验证请求可以是在射击应用中要求用户110按指定的顺序击碎不同颜色的瓶子。

在一个备选实施例中,应用也可以是健康类应用。在这种情况下,验证操作可能是在户外跑步应用中让用户110通过指定的路线,或者是以指定的速度进行运动。

在另一备选实施例中,应用也可以是社交类应用。在一个示例中,验证操作可以是要求用户上传相关图片或者视频。

服务130可以通过用户设备120以各种方式将验证操作呈现给用户110。在一些实施例中,服务器130向用户设备120以非弹出的方式通过用户设备120的显示装置在应用的交互界面中向用户110发出验证请求。在这里,“非弹出”是与传统的弹出式验证码相对的方式,其尽可能利用用户正沉浸在应用中的场景中的内容和素材作为验证主体,从而可能不让用户感知验证的存在,这在提升了用户体验的同时也增加了验证的准确率。

在一些实施例中,服务器130要求用户110通过用户设备120在应用完成与应用中本来存在任务相似的预定任务。这样的优点在于将验证码“隐藏”在用户本来想做的任务中,提升了用户体验。

可以以各种方式进行验证操作的开发和验证规则的设定,在一个示例中,需要开发者预先制定验证主体以及验证规则。在另一示例中,服务器130可以通过智能化大数据自行定制验证主体和验证规则,开发者只需要观测验证情况作出细节调整。

在220,服务器130获取与用户110在应用中执行的操作相关的信息。该信息反应用户110完成在210描述的各种验证操作的情况,该信息可以是用户110开始执行验证操作的时间、用户110完成验证操作的总时间、用户110在应用中操作的顺序、用户110的手在用户设备120的显示屏上的点击位置、用户110点击鼠标的频率等。服务器130可以通过以各种方式耦合至用户设备120的用户接口(诸如键盘、麦克风、鼠标、传感器等)来获取该信息。

根据210中描述的不同的场景和验证操作,服务器130需要获取不同类型的信息以用于后续判断。在一些实施例中,该信息指示从服务器130发出所述验证请求到用户110开始执行操作所经过的时间。在一个示例中,该时间可以是用户110接收到绘画请求到用户110开始绘画动作的时间。在另一示例中,该时间可以是用户110收到击败游戏角色请求到用户110开始对该游戏角色做出动作的时间。在又一示例中,该时间可以是用户110接收到射击瓶子请求到用户击碎第一个瓶子的时间。

当通过上述信息无法确地检测异常用或者需要更精确地检测异常用户时,服务器130还可以获取其他信息。在一些实施例中,该信息指示完成验证操作的总时间,服务器130通常以用户110执行与验证操作相关的第一个动作为开始,并且以用户110完成验证操作作为结束以获得总时间。在一个示例中,该时间可以是用户110开始绘画动作到用户110完成绘画的时间。在另一示例中,该时间可以是用户110开始对游戏角色做出动作到击败该游戏角色的时间。在又一示例中,该时间可以是用户110击碎第一个瓶子到击碎最后一个瓶子的时间。

在一些实施例中,该信息指示操作的精度,服务器130通常利用用户110在完成验证操作中的操作轨迹的信息来获取用户110的操作精度。在一个示例中,该精度指示绘画应用中用户110的画作中的单位长度线条中的锯齿数目,例如正常用户画出的一条5cm的直线中可能有10个锯齿,而异常用户利用外挂程序画出的一条5cm的直线中只有2个锯齿。在另一示例中,该精度还可以指示两次画作的重合度。这仅仅是示例性的,在不同的应用中,精度可能根据不同的场景有不同的定义。

对于一些要求用户进行比较复杂的验证操作的情景,可以分别获取其中的几个小操作的信息或者获取小操作之间的关联信息。在一些实施例中,验证操作可以包括一系列子操作。在一个示例中,信息指示该子操作的顺序。该顺序可以是用户110在射击应用中击碎不同颜色的瓶子的顺序。在另一示例中,信息还可以指示一系列子操作中的每个操作的如上文所述的完成时间和精度等。

请注意,上述实施例中的信息的示例仅仅是示意性的而非限制性的,可以根据不同的应用场景和不同的验证需求通过客观科学知识或通过机器学习来设置所需获取的信息。

在230,服务器130基于信息来判断用户110是否为异常用户。服务器130基于在220获取的信息,与在存储在服务器130或者存储装置140中的阈值进行比较以判断用户110是否为异常用户。

验证规则中的阈值开始可以由开发者制定,在随后的的验证过程中,可以收集在220中服务器130所获取的指示用户完成操作的情况的信息,并且对信息进行处理和分析以通过机器学习不断更新阈值。

在一些实施例中,服务器130从发出验证请求到用户110开始执行验证操作所经过的时间长度是否超出预定的时间长度阈值。然后服务器130响应于时间长度超出预定的时间长度阈值,确定用户110为异常用户。

如上文在220描述的,当所获取的信息为用户110开始执行验证操作所经过的时间长度,当服务器130通过用户设备120向用户110发出验证请求时,正常用户往往会“直奔主题”进行验证操作,而外挂程序则会执行原定操作或需要时间对新出现的任务进行处理和计算,其需要比正常用户更长的时间以完成验证。这时则可以判断时间长度超出预定的时间长度阈值的用户110为异常用户,其中可以根据不用的应用设置不同的时间长度阈值。

在一个示例中,可以仅通过上述实施例中的开始执行操作的时间长度来区分“直奔主题”的正常用户和“保持原状”的异常用户,这种简单的验证方式在提升验证准确率的同时,减少了服务器130侧的计算负担。在另一示例中,可能通过用户开始执行操作的时间长度无法准确判断异常用户,则需要通过以下描述的实施例进行判断。

当需要更精细地检测异常用户时,服务器130还可以通过在220获得的其他信息进行对异常用户的检测。在一些实施例中,服务器130所获取的信息为如上文220描述的完成验证操作的时间,并且服务器130判断完成验证操作的时间是否超出预定的时间范围。然后服务器130响应于用户110完成验证操作的时间超出预定的时间范围,确定所述用户110为异常用户。

如上文在220描述的,当所获取的信息为用户110完成验证操作的时间时,正常用户在看到用户设备120上的显示装置上的诸如“请尽快击败蓝色怪物”的提示后,会在诸如10s内完成该操作,而由于外挂程序按照原有程序设定,则不会按照提示完成验证操作。这时则可以判断完成验证操作的时间超出预定的时间范围的用户110为异常用户。

在一些应用中,异常用户可以利用外挂程序完美地执行操作。而正常用户则可能在操作中出现“瑕疵”,此时则可以通过在此类“瑕疵”来检测异常用户。在一些实施例中,服务器130所获取的信息为如上文220描述的完成验证操作的精度,并且服务器130判断完成验证操作的精度是否低于阈值精度。然后服务器130响应于用户110完成验证操作的精度低于阈值精度,确定所述用户110为异常用户。

如上文在220描述的,当所获取的信息为用户110完成验证操作的精度时,正常用户的精度为每厘米3个锯齿,而外挂程序的精度为每厘米0.5个锯齿,亦或是正常用户两次画作的重合度可能在60%,而外挂程序两次画作的重合度可能高达90%。这时则可以判断完成验证操作的精度低于阈值精度的用户110为异常用户。

对于一些比较复杂的验证操作,服务器130可以将其分解为若干个小动作以对其中一些动作进行判断或者判断若干个动作之间的关系。在一些实施例中,服务器130所获取的信息为完成验证操作中的一系列子操作的顺序,并且服务器130判断完成验证操作中的一系列子操作是否与预定的顺序相符。然后服务器130响应于用户110完成验证操作中的一系列子操作与预定的顺序不符,确定所述用户110为异常用户。

如上文在220描述的,当所获取的信息为用户110完成验证操作中的一系列子操作的顺序,正常用户可以按照提示的顺序击碎不同颜色的瓶子,而外挂程序则不会执行动作或者击碎瓶子的顺序与预定的顺序不符。这时则可以判断完成验证操作中的一系列子操作与预定的顺序不符的用户110为异常用户。

请注意,上述多个判断异常用户的方法仅仅是示例性的,还可以通过其他尽可能小的让用户感知的方法判断异常用户。根据所需的准确度、服务器130的资源使用量和不同的应用场景,可以使用230中描述的若干实施例中的一个或多个的组合进行异常用户的判断。

通过本公开的实施例,可以利用应用中的素材与规则进行验证,验证开始与结束均不能被用户感知,且验证过程中不中断用户在应用内的操作,提升了用户体验,并且可以通过不同方面的信息进行综合判断,这提升了检测异常用户的准确率。

图3图示了可以用来实施本公开内容的实施例的示例设备300的示意性框图。例如,如图1所示的示例环境100中的服务器300可以由设备300来实施。如图所示,设备300包括中央处理单元(CPU)301,其可以根据存储在只读存储器(ROM)302中的计算机程序指令或者从存储单元308加载到随机访问存储器(RAM)303中的计算机程序指令,来执行各种适当的动作和处理。在RAM 303中,还可存储设备300操作所需的各种程序和数据。CPU 301、ROM302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。

设备300中的多个部件连接至I/O接口305,包括:输入单元306,例如键盘、鼠标等;输出单元307,例如各种类型的显示器、扬声器等;存储单元308,例如磁盘、光盘等;以及通信单元309,例如网卡、调制解调器、无线通信收发机等。通信单元309允许设备300通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

上文所描述的各个过程和处理,例如方法200,可由处理单元301执行。例如,在一些实施例中,方法200可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元308。在一些实施例中,计算机程序的部分或者全部可以经由ROM 302和/或通信单元309而被载入和/或安装到设备300上。当计算机程序被加载到RAM 303并由CPU 301执行时,可以执行上文描述的方法200的一个或多个动作。

本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

相关技术
  • 检测异常用户的方法、设备和计算机存储介质
  • 异常用户检测方法、装置、系统及计算机存储介质
技术分类

06120112365451