网络自动机处理方法及装置与流程

文档序号:12598292阅读:320来源:国知局
网络自动机处理方法及装置与流程

本发明涉及通信领域的网络技术,尤其涉及一种网络自动机处理方法及装置。



背景技术:

网络自动机(又称网络机器人)一般是指在因特网、局域网等网络上执行特定任务的程序、代码等。

网络自动机广泛用于实现基于网络的自动化服务,例如在电商网站实现的智能化的客服,根据用户的提问智能化进行回答,以节省人工成本;再例如,在社交网站是实现模拟真实人的聊天。

但是,目前网络自动机还被用于实现不正当目的,造成网络(Web)服务器的带宽资源和计算资源的额外占用,有必要识别实现不正当目的网络自动机,从而限制其行为。

由于网络自动机智能化程度较高,可以模拟真实的用户在网络上实施的行为,因此难以精确检测实现不正当目的的网络自动机。



技术实现要素:

本发明实施例提供一种网络自动机识别方法及装置,能够精确识别网络自动机。

本发明实施例的方案是这样实现的:

第一方面,本发明实施例提供一种网络自动机处理方法,所述方法包括:

根据各终端的页面数据请求向相应终端发送携带脚本的页面数据;

获取各所述终端通过执行所述脚本而上报的脚本执行结果,所述脚本执行结果包括所述终端的设备标识、以及设备数据;

从各所述终端的数据提交请求中提取设备标识,基于所提取的设备标识查询相应终端的脚本执行结果;

基于查询结果判断各所述终端是否运行有网络自动机;

对运行有网络自动机的终端的数据提交请求进行拦截。

第二方面,本发明实施例提供一种网络自动机处理装置,所述装置包括:

页面单元,用于根据各终端的页面数据请求向相应终端发送携带脚本的页面数据;

获取单元,用于获取各所述终端通过执行所述脚本而上报的脚本执行结果,所述脚本执行结果包括所述终端的设备标识、以及设备数据;

提取单元,用于从各所述终端的数据提交请求中提取设备标识;

查询单元,用于基于所提取的设备标识查询相应终端的脚本执行结果;

识别单元,用于基于查询结果判断各所述终端是否运行有网络自动机;

拦截单元,用于对运行有网络自动机的终端的数据提交请求进行拦截。

第三方面,本发明实施例提供一种网络自动机处理装置,所述装置包括:

存储介质和至少一个处理器;所述存储器中存储有可执行指令,所述可执

行指令用于引起至少一个处理器执行以下的操作:

根据各终端的页面数据请求向相应终端发送携带脚本的页面数据;

获取各所述终端通过执行所述脚本而上报的脚本执行结果,所述脚本执行结果包括所述终端的设备标识、以及设备数据;

从各所述终端的数据提交请求中提取设备标识,基于所提取的设备标识查询相应终端的脚本执行结果;

基于查询结果判断各所述终端是否运行有网络自动机;

对运行有网络自动机的终端的数据提交请求进行拦截。

本发明实施例具有以下有益效果:

1)通过在终端侧访问页面中嵌入脚本的方式,使终端在发送数据提交请求之前上报脚本执行结果,从而完成对终端侧的设备标识、设备数据的收集,与仅仅通过在终端侧运行是否运行有网络自动机的测试脚本相比,收集的设备标识、设备数据相对于测试脚本的执行结果更加难以伪造,从而基于收集的设备标识、设备数据识别网络自动机的可靠性,高于在终端侧简单运行测试脚本并基于测试结果识别网络自动机的可靠性;

2)在终端发送数据提交请求时才去查询相应终端收集的设备数据,从而在终端发送数据提交请求之前,能够最大程度丰富从终端收集的设备数据,提升后续基于设备标识以及设备数据识别网络自动机的精度。

3)对运行网络自动机的终端的数据请求进行拦截,有效节约了网络服务器的带宽和计算资源。

附图说明

图1是本发明实施例提供的网络自动机处理装置的一个可选的软硬件结构示意图;

图2-1是本发明实施例提供的网络自动机处理的一个可选的场景示意图;

图2-2是本发明实施例提供的网络自动机处理方法的一个可选的流程示意图;

图3是本发明实施例提供的终端在预定的阶段上报设备标识和设备数据的一个可选的示意图;

图4是本发明实施例提供的在数据采集阶段中采集数据的一个可选的示意图;

图5是本发明实施例提供的识别网络自动机的一个可选的流程示意图;

图6-1是本发明实施例提供的网络自动机处理的一个可选的场景示意图;

图6-2是本发明实施例提供的网络自动机处理方法的一个可选的流程示意图;

图6-3是本发明实施例提供的网络自动机处理方法的一个可选的流程示意图;

图7是本发明实施例提供的网络自动机处理装置在网络服务器侧部署的一个可选的示意图。

具体实施方式

以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用以解释本发明,并不用于限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。

本发明实施例可提供为网络自动机处理方法,以及应用网络自动机处理方法的网络自动机处理装置,实际应用中,网络自动机处理装置可以在服务器侧实施,在服务器侧识别终端侧是否运行有网络自动机,进而对网络自动机进行拦截。

服务器侧在软件层面的实施网络自动机处理方法时,可以提供为专用转件模块的方式,例如:

1)本发明实施例提供的网络自动机处理方法在服务器侧实施时,在服务器侧可通过提供使用C/C++、Java等编程语言设计的应用软件或大型软件系统中的专用软件模块,运行于服务器(以可执行指令的方式在服务器的存储介质中存储)实现。

2)本发明实施例提供的网络自动机处理方法在服务器侧实施时,还可以通过在多台服务器构成的分布式、并行计算平台上实现,可搭载定制的、易于交互的网络(Web)界面或其他各用户界面(UI,User Interface),以显示网络自动机处理的中间结果和最终结果等。

对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。

网络(Web)服务器,一般指网站服务器,是指驻留于网络上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,供客户端浏览;可以放置数据文件,供客户端下载。

网络(Web)自动机:是指使用Web方式自动向Web服务器发送请求以实现不正当目的恶意程序。

例如,网络自动机通过向网络服务器提交页面数据请求,使网络服务器响应页面数据,造成对网络服务器的带宽资源和计算资源的额外占用。

又例如,网络自动机向网络服务器发送数据提交请求,帮助网络游戏玩家取得不正当收益、在社交网络或论坛上自动发布广告、张贴指向某网站的链接以提高该网站的搜索引擎排名、在依赖于用户评价的网站(诸如,餐馆点评类网站、电子商务网站等)上自动发布用户评价、帮助用户进行抢购等等。

脚本(JS,JavaScript),描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。

令牌号(TokenId),终端中的客户端(终端中各种基于服务器/客户端架构的应用)登录到网络服务器成功后,网络服务器分配给客户端的令牌号,同时下发TokenId的有效期。客户单用户直接持有TokenId,在有效期内可跳过登录步骤,直接向网络服务器请求服务。如果TokenId过期,则用户需要通过客户端需重新登录网络服务器。

继续对网络自动机处理装置在软硬件层面的实现方式进行示例性说明,网络自动机处理装置可以基于终端侧的硬件资源实现,或者,基于终端侧和服务器侧的硬件资源实现。示例性地,硬件资源包括计算资源如处理器,通信资源如实现各种形式通信的硬件模块等。

参见图1示出的网络自动机处理装置10的一个可选的软硬件结构示意图,网络自动机处理装置10包括硬件层、中间层、操作系统层和软件层。然而,本领域的技术人员应当理解,图1示出的网络自动机处理装置10的结构仅为示例,并不构成对网络自动机处理装置10结构的限定。例如,网络自动机处理装置10可以根据实施需要设置较图1更多的组件,或者根据实施需要省略设置部分组件。

网络自动机处理装置10的硬件层包括处理器11、输入/输出接口13,存储介质14以及网络接口12,组件可以经系统总线连接通信。处理器11可以采用中央处理器(CPU)、微处理器(MCU,Microcontroller Unit)、专用集成电路(ASIC,Application Specific Integrated Circuit)或逻辑可编程门阵列(FPGA,Field-Programmable Gate Array)实现。输入/输出接口13可以采用如显示屏、触摸屏、扬声器等输入/输出期间实现。存储介质14可以采用闪存、硬盘、光盘等非易失性存储介质实现,也可以采用双倍率(DDR,Double Data Rate)动态缓存等易失性存储介质实现,示例性地,存储介质14可以与网络自动机处理装置10共同在同一地点设置,也可以相对于网络自动机处理装置10异地远程设置,或者相对网络自动机处理装置10本地和异地分布设置。网络接口12向处理器11提供外部数据如异地设置的存储介质14的访问能力,示例性地,网络接口12可以基于近场通信(NFC,Near Field Communication)技术、蓝牙(Bluetooth)技术、紫蜂(ZigBee)技术进行的近距离通信,另外,还可以实现如基于码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)等通信制式及其演进制式的通信。

驱动层包括用于供操作系统16识别硬件层并与硬件层各组件通信的中间件15,例如可以为针对硬件层的各组件的驱动程序的集合。

操作系统16用于提供面向用户的图形界面,示例性地,包括插件图标、桌面背景和应用图标,操作系统16支持用户经由图形界面对设备的控制本发明实施例对上述设备的软件环境如操作系统类型、版本不做限定,例如可以是Linux操作系统或UNIX操作系统等。

软件层包括用以支持网络自动机处理方法的应用17,或应用17的插件等。

基于上述网络自动机处理方法、以及网络自动机处理装置的软硬件结构提出本发明实施例。

如前,本发明实施例提供的网络自动机处理方法可以在服务器侧实施,例如,在网络服务器侧实施,网络服务器可以为各种客户端(如社交应用)的后台服务器,可以理解地,这里的网络服务器可以由服务器或多个服务器构成的计算平台实现。

以网络自动机处理方法在网络服务器侧实施为例,参见图2-1示出的网络自动机处理方法的一个可选的场景示意图,终端向网络服务器请求页面1至页面N的页面数据在终端本地加载,网络服务器将页面数据连同脚本下发至终端,这样,只要终端中的客户端(如浏览器等应用)加载页面即会执行页面中所嵌入的脚本,脚本在终端所请求的每个页面的存活期间(从页面加载至页面跳转或关闭的期间)得到执行,在每个预定的数据采集阶段,通过执行脚本对终端的设备标识、设备数据进行收集、并将设备标识、设备数据以及数据采集阶段的编号作为脚本执行结果上报至网络服务器。网络服务器通过这样的方式完成对各终端的脚本执行结果的收集存储。另外,当网络服务器接收到一终端的数据提交请求时,基于数据提交请求中携带的设备标识查询收集存储的脚本执行结果,基于设备数据,或者基于设备数据和数据采集阶段编号判断终端中是否运行有网络自动机,对数据提交请求进行拦截/放行。

参见图2-2示出的网络自动机处理方法的一个可选的流程示意图,包括以下步骤:

步骤101,网络服务器接收各终端的页面数据请求。

示例性地,终端通过客户端如浏览器访问网路服务器,通过向网络服务器发送页面数据请求获取相应的页面数据,基于页面数据在终端的客户端中实现页面的加载。

步骤102,网络服务器根据各终端的页面数据请求,向相应终端发送携带脚本的页面数据。

在一个实施例中,网络服务器在待保护的页面中嵌入脚本,例如在登录页面、注册页面中嵌入脚本,在终端请求待保护的页面的数据时,嵌入页面的脚本被作为页面数据的一部分返回终端。

步骤103,终端基于页面数据加载页面。

步骤104,终端通过执行页面中嵌入的脚本,分阶段向网络服务器上报脚本执行结果。

在一个实施例中,终端所请求的页面嵌入脚本时,通过执行脚本完成这样的操作:在终端所请求页面的存活期间,针对预定的数据采集阶段进行计时,在数据采集阶段到来时,在数据采集阶段生成终端的设备标识、采集终端的设备数据。在数据采集阶段结束时,将该数据采集阶段的脚本执行结果(包括设备标识、设备数据和数据采集阶段的编号)上报至网络服务器。

结合这样的一个场景进行说明:

终端在向网络服务器发起数据提交请求之前向网络服务器请求了N个页面的页面数据,并在加载第N个页面之后向网络服务器发送数据提交请求,以实现登录、注册或发表信息(如购买商品的评论、在论坛发表的言论等)。

假设网络服务器在上述的N个页面均嵌入了脚本,那么,网络服务器嵌入页面的脚本在终端侧被执行时,参见图3示出的终端在预定的数据采集阶段(也称为阶段)上报设备标识、设备数据和数据采集阶段编号的一个可选的示意图,在第n(n取值满足1≤n≤N)个页面的存活期间,在预定的第i(i取值满足1≤i≤I,I为预定的数据采集阶段的数量,I取值满足2≤I)数据阶段到达时,在第i数据采集阶段中生成设备标识并采集终端的设备数据,并向网络服务器上报第i数据采集阶段的脚本执行结果:数据采集阶段的编号、设备标识和第i数据采集阶段的设备数据。

示例性地,终端通过执行嵌入页面的脚本,利用开源库计算终端的设备标识(可以使用footprintjs计算终端的设备标识),并将设备标识添加到终端本地cookie中,在每个数据采集阶段中,向网络服务器上报嵌入到cookie中的设备标识。

需要指出的是,数据采集阶段的起始时间、以及数据采集的阶段的数量是预先固定设置的,与终端加载的各页面的存储期间的长度没有关联;其中,各数据采集阶段在时间轴上可以是连续的也可以是离散的,若各数据采集阶段在时间轴上是离散的,则各数据采集阶段之间的时间间隔可以相同也可以不同,各数据采集阶段的时长可以相同也可以不同。

例如,在数据采集阶段中采集数据的一个可选的示例如图4所示,数据采集阶段1至数据采集阶段3在时间轴上等间隔设置,且各数据采集阶段的时长相同。假设终端依次向网络服务器请求页面1至页面3的页面数据并在终端本地加载,由于终端加载页面的时长是随机的(取决于用户何时关闭或跳转页面),因此,终端执行各页面嵌入的脚本时,向网络服务器上报脚本执行结果的次数(与页面的存活期间覆盖的数据采集阶段的数量对应)也是随机的,在图4中,终端加载页面1后,在数据采集阶段1的开始时间t1到达时,终端即执行页面1中嵌入的脚本,生成设备标识,并采集设备数据直至结束时间t2到达,将数据采集阶段的编号1、设备标识以及在t1至t2之间采集的设备数据作为该数据采集阶段的脚本执行结果上报至网络服务器。由于页面1在t2关闭,因此,在页面1的存活期间只向网络服务器上报了对应数据采集阶段1的脚本执行结果。

基于上述的说明,可以理解地,在页面2的存活期间终端向网络服务器上报了对应数据采集阶段1、2的脚本执行结果;在页面3的存活期间终端向网络服务器上报了对应数据采集阶段1、2、3的脚本执行结果。

步骤105,网络服务器接收到终端的数据提交请求。

示例性地,数据提交请求用以向网络服务器提交数据,用以完成登录、注册、发表言论、提交订单等操作。

步骤106,网络服务器从各终端的数据提交请求中提取设备标识。

在一个实施例中,终端通过执行嵌入页面的脚本的方式,将设备标识嵌入终端侧的cookie中,在发送数据提交请求时提交cookie,从而网络服务器从cookie中提取终端的设备标识。

步骤107,网络服务器基于所提取的设备标识查询相应终端的脚本执行结果。

步骤108,网络服务器基于查询结果判断各终端是否运行有网络自动机。

以下对判断终端是否运行有网络自动机的方式进行示例性说明。

方式1)

网络服务器以从数据提交请求提取的设备标识检索各终端上报的脚本执行结果,若查询结果表征未存在与所提取设备标识对应的脚本执行结果时,说明设备标识是网络自动机伪造的,判定相应设备标识对应的终端运行有网络自动机。

方式2)

网络服务器基于解析各终端所请求页面的脚本执行结果,得到各终端的设备数据的特征;比较各终端的设备数据的特征与网络自动机的特征,确定符合网络自动机特征的终端运行有网络自动机。

示例性地,设备数据包括以下2种类型:类型1)终端接收到各种操作行为的记录数据,也称为操作行为数据;类型2)终端的硬件参数,如终端的屏幕分辨率。相应地,对设备数据具有的3种特征以及使用相应特征识别网络自动机及进行说明。

特征1)针对终端实施的操作行为的类型,以及各类型的操作行为的频度。

针对终端实施的操作行为的类型如鼠标点击行为;触控行为;键盘敲击行为等,以及各类型的操作行为的频度。由于终端是在所请求页面的存活期间以数据采集阶段为单位向网络服务器上报脚本执行结果,因此,操作行为的频度可以为各数据采集阶段的操作行为的均值。

例如,接收到终端的数据提交请求时,通过数据提交请求携带的设备标识查询终端的脚本执行结果,得到终端在所请求页面的存活期间上报的操作行为的记录数据(也就是在预定的数据采集阶段上报的操作行为的记录数据),进而确定终端在数据采集阶段接收到的操作行为的频度。

假设终端向网络服务器请求页面1至页面N的页面数据并在本地加载相应页面,鼠标点击行为的频度可以量化表示为:在页面1至页面N的各数据采集阶段中的鼠标点击次数的加和与数据采集阶段数量的比值。

发明人发现网络自动机具有这样的特点:模拟的操作行为的频度明显高于或低于常规用户的操作行为频度。若网络自动机模拟的操作行为的频度特征为操作行为频度的取值空间,那么,当终端接收到操作行为的频度处于该取值空间时,即判定终端运行有网络自动机。相应地,在一个实施例中,在方式2.1)中基于特征1)识别网络自动机:

将终端在所请求页面的存活期间(也就是存活期间的各数据采集阶段)接收到操作行为的频度、与网络自动机模拟的操作行为的频度特征进行比对,如果比对成功则判定终端运行有网络自动机。

发明人发现网络自动机还具有这样的特点:部分网络自动机不会模拟用户的操作行为。相应地,网络自动机模拟的操作行为的频度特征为零。那么,当所查询到的操作行为的记录数据表明,终端在所请求页面的存活期间未接收到操作行为,也就是在所请求页面的存活期间的各数据采集阶段未接收到操作行为,则判定终端运行有网络自动机。相应地,在另一个实施例中,还可以采用这样的方式:判断终端在所请求页面的存活期间(也就是存活期间的各数据采集阶段)接收到操作行为的频度是否为零,也就是判断终端在所请求页面的存活期间是否接收到操作行为,如果未接收到操作行为则判定终端运行有网络自动机。

特征2)从设备数据提取出的终端的硬件参数如屏幕分辨率等。

发明人发现,网络自动机模拟的设备数据具有这样的特征:不包括硬件参数如屏幕分辨率。相应地,在一个实施例中,采用方式2.2)识别网络自动机:在终端在所请求页面存活期间各数据采集阶段上报的设备数据中查找终端的硬件参数如屏幕分辨率,若未查找到,则判定终端运行有网络自动机。

特征3)终端在各数据上报阶段上报的脚本执行结果的数量的分布特征。

如前,终端在所请求页面的存活期间上报的脚本执行结果采用(数据阶段编号、设备标识、设备数据)的形式,因此对于任一终端,可以确定终端在所请求页面的存活期间上报的脚本执行结果对应的数据采集阶段,统计出各数据采集阶段对应的脚本执行结果的数量的分布特征。

仍以图4为例,终端在页面1的存活期间,仅在数据采集阶段1上报了脚本执行结果,记为(数据采集阶段1、设备标识、设备数据);同理,终端在页面2的存活期间,在数据采集阶段1至2上报了脚本执行结果,记为(数据采集阶段1、设备标识、设备数据)、(数据采集阶段2、设备标识、设备数据);终端在页面3的存活期间,在数据采集阶段1至3上报了脚本执行结果,记为(数据采集阶段1、设备标识、设备数据)、(数据采集阶段2、设备标识、设备数据)和(数据采集阶段3、设备标识、设备数据)。基于各脚本执行结果中的数据采集阶段的编号,可以统计出数据采集阶段1对应的脚本的数量为3,数据采集阶段1对应的脚本的数量为2,数据采集阶段3对应的脚本的数量为1,数量分布3-2-1呈下降趋势。

发明人在实施本发明的过程中发现,常规的用户在数据提交页面之前的页面往往会停留较长时间,如在提交商品订单之前会在商品的展示页面停留,在论坛发布信息之前会在信息的展示页面停留;也就是用户依次访问的页面的存活时间具有下降的趋势,从而导致各页面的存活期间上报的脚本执行结果的数量也相应具有如图4所示的下降的趋势。

而网络自动机依次访问的各页面的访问的停留时间的分布恰恰相反,网络自动机通常仅仅是在数据提交页面(如注册、登录或发表信息等)模拟用户来提交数据,对于与提交数据无关的页面不会去访问或者使用很少的时间访问,多数时间集中在数据提交页面来提交数据,导致各页面的存活时间具有下降的趋势,从而导致各页面的存活期间上报的脚本执行结果的数量也相应具有上升的趋势。

鉴于这种情况,在一个实施例中,在方式2.3)基于特征3)识别网络自动机:

确定各数据采集阶段对应的脚本执行结果的数量的分布特征,判断数量分布特征是否具有上升趋势,如果有,则判定相应的终端运行有网络自动机。

需要指出的是,这里的上升趋势可以是严格上述趋势,即各数据采集阶段的脚本执行结果必须是依次上升的趋势,以预定4个数据采集阶段为例,在终端请求多个页面的存活期间,各数据采集阶段上报的脚本执行结果的数量一次为0-1-2-3,又例如0-2-3-4;当然,也可以是总体上的上升趋势,例如0-2-2-3、0-3-3-5等,或者是波动上升的趋势,如0-2-1-3、0-4-3-5等。

另外,上述识别网络自动机的方式1)、方式2.1)至方式2.3)可以单独使用也可以结合使用。作为结合上述多种方式识别网络自动机的一个示例,参见图5示出的识别网络自动机的一个可选的流程示意图,对于发送数据提交请求的终端,从数据提交请求中提取设备标识,查询与设备标识相应的脚本执行结果,首先使用方式1)判断查询结果是否表征未存在与所提取设备标识对应的脚本执行结果,若未存在则判定终端运行有网络自动机;若存在,则使用方式2.1)至方式2.3)进行识别,并结合方式2.1)至方式2.3)的识别结果,可选地,使用预先训练的识别模型对方式2.1)至方式2.3)的识别结果综合判断终端中是否运行有网络自动机。

可以看出,上述识别网络自动机的方式,一方面能够对网络自动机进行全面准确识别,另一方面,即使识别网络自动机的方式被破解,网络自动机需要提价数据也必须上报比以往更加复杂的脚本执行结果以通过上述方式的识别,这就提高了利用网络自动机实现不正当目的的成本,促使放弃使用网络自动机实施不正当目的的行为,从而节省网络服务器的带宽资源和计算资源。

步骤107,网络服务器对运行有网络自动机的终端的数据提交请求进行拦截。

对于运行有网络自动机的终端发送的数据提交请求,网络服务器不予以响应,从而网络自动机难以实现恶意登录、注册、刷高信誉评分等不正当目的。

另外,在一个实施例中,网络服务器对于基于运行有网络自动机的终端的设备标识添加到黑名单,后续接收到终端的页面数据请求以及数据提交请求时,基于终端的标识判断终端是否处于黑名单,如果处于黑名单则说明终端运行有网络自动机,拦截终端的页面数据请求和数据提交请求,对网络自动机的不正当行为进行有效屏蔽,同时也节约了网络服务器的带宽资源和计算资源。

前述以本发明实施例提供的网络自动机处理方法在服务器侧实施说明,可以理解地,参见图6-1示出网络自动机处理方法的一个可选的场景示意图,可以部署专用的存储服务器以存储各终端上报的脚本执行结果。向网络服务器提供基于设备标识的查询脚本执行结果的服务。将脚本执行结果的存储功能从网络服务器剥离,可以减小网络服务器的存储负载,提升查询效率。

在图6-1中,终端向网络服务器发送页面数据请求(步骤201)以请求页面1至页面N的页面数据在终端本地加载,网络服务器将页面数据连同脚本下发至终端(步骤202),这样,终端执行页面中所嵌入的脚本,从而在终端加载的每个页面的存活期间,向存储服务器上报脚本执行结果(步骤203)。存储服务器完成对各终端的脚本执行结果的收集存储。另外,当网络服务器接收到一终端的数据提交请求(步骤204)时,基于数据提交请求中携带的设备标识在存储服务器查询收集存储的脚本执行结果,判断终端中是否运行有网络自动机(步骤205),对数据提交请求进行拦截/响应(步骤206)。

结合图6-2说明图6-1中的存储服务器存储脚本执行结果的过程。

终端通过向网络服务器发送页面数据请求以访问页面(步骤301),根据网络服务器返回的页面数据加载页面,由于网络服务器在页面中预先嵌入脚本,终端通过执行脚本完成这样的处理:利用开源库计算设备ID(例如可以使用footprintjs),并将设备ID嵌入到终端本地cookie中(步骤302)。

终端通过执行嵌入页面的脚本还执行如下处理:在每个页面(终端发送数据提交请求的各个页面)的存活期间,在预定的4个数据采集阶段的每个数据采集阶段到来时,只要页面还处于存活状态(页面没有跳转或者关闭)即在数据采集阶段采集设备数据(步骤303),其中每个数据采集阶段的间隔为固定的,保证终端在向网络服务器发送数据提交请求前,将各数据采集阶段的设备数据、设备ID、连同数据采集阶段的编号(脚本执行结果)上报至存储服务器(步骤304)。上报的设备数据包括鼠标坐标点、鼠标是否点击、是否有键盘敲击动作以及屏幕分辨率。

存储服务器对终端在多个页面存活期间上报的脚本执行结果进行统计(步骤305),包括设备ID、终端接收的鼠标动作、键盘敲击动作、鼠标点击、屏幕分辨率、以及每个数据采集阶段对应的脚本执行结果的数量,统计结果在缓存中供查询。

再结合图6-3对图6-1中的网络服务器识别网络自动机的相关处理进行说明。

终端向网络服务器发送数据提交请求(步骤401),携带嵌入在终端的客户端(如浏览器)中的设备ID,网络服务器将设备ID发送到存储服务器(步骤402),获取存储服务器查询相应的脚本执行结果(步骤403),根据脚本执行结果判断终端发送的数据提交请求时否是恶意的,也就是判断终端中是否运行有网络自动机(步骤404)。如果判断出终端发送的数据提交请求时恶意的则进行拦截,如果未识别出终端中运行有网络自动机则响应终端的数据提交请求(步骤405)。

网络服务器采用这样的方式判断终端是否运行有网络自动机:

方式1)查询存储服务器的缓存中是否有与设备ID相应的脚本执行结果,如果未查询到设备ID,说明终端的设备ID是伪造的,终端中运行有网络自动机。

方式2)对于终端访问多个页面期间在各数据采集阶段上报的脚本执行结果进行统计,统计出各数据采集阶段对应的脚本执行结果的数量,如果4个数据采集阶段的上报次数不同,数据采集阶段1的上报次数少于其他3个数据采集阶段,说明在终端侧并没有正常的页面访问,因此导致没有把数据采集阶段1的上报,终端中存在运行网络自动机的嫌疑,终端发送的数据提提交请求为恶意的。

方式2)是针对这样的经验:网络自动机在一些情况下不会上报前面几个数据采集阶段的脚本执行结果,而正常用户总是会上报前面的数据采集阶段如数据采集阶段1和数据采集阶段2的脚本执行结果数据(即使数据为空,没有键盘数据动作等)。

方式3)基于设备ID对应的脚本执行结果,检测终端在加载页面的期间是否接收到鼠标和键盘的操作,如果没有接收到,说明终端此时没有人在操作,存在运行网络自动机的嫌疑,终端发送的数据提提交请求为恶意的。

以社交应用账号(如QQ账号)的短信解封网页为待保护的网页为例,短信解封网页根据用户提供的社交应用账号提供解封验证码、以及接收短信接收码的短信中心号码;当社交应用账号的合法用户通过所预定绑定的手机号码发送验证码至短信中心号码时,即可完成社交应用账号的解封。

对于运行网络自动机的终端,终端通过浏览器访问解封页面,向解封页面的网络服务器发送数据提交请求,以提交欲破解用户的社交应用账号,从而获取验证码,并模拟不同的手机号码向短信中心发送验证码以尝试解封应用账号。

当网页服务器在解封页面以及与解封页面相关的页面嵌入脚本时,收集终端在相关页面存活期间上报的脚本执行结果并在存储服务器统计存储;后续,当网络服务器接收到提交社交应用账号的请求时,基于终端的设备标识在存储服务器中查询该终端的在不同数据采集阶段上报的设备数据,进而判断终端中是否运行有自动机;如果运行有自动机则拦截提交社交应用账号的请求,从而有效保障社交应用账号的安全。

再对前述网络自动机的逻辑功能结构进行示例性说明,参见图7示出的网络自动机处理装置的一个可选的逻辑结构示意图,需要指出的是,图7中的逻辑功能单元可以进行进一步的拆分或者合并,因此移动终端的逻辑功能结构不限于图7示出的形式;在图7中,网络自动机处理装置包括:页面单元21、获取单元22、提取单元23、查询单元24、识别单元25和拦截单元26。下面对各单元进行说明。

页面单元21,用于根据各终端的页面数据请求向相应终端发送携带脚本的页面数据。

例如,在待保护的页面中嵌入脚本,例如在登录页面、注册页面中嵌入脚本,在终端请求待保护的页面的数据时,嵌入页面的脚本被作为页面数据的一部分返回终端。

获取单元22,用于在各终端所请求页面的存活期间,获取各终端在预定的数据采集阶段上报脚本执行结果,包括数据采集阶段的编号、设备标识和设备数据。

例如,假设在N个页面均嵌入有脚本,那么嵌入页面的脚本在终端侧被执行时,参见图3示出的终端在预定的阶段上报设备标识和设备数据的一个可选的示意图,在第n(n取值满足1≤n≤N)个页面的存活期间,在预定的第i(i取值满足1≤i≤I,I为预定的数据采集阶段的数量,I取值满足2≤I)数据阶段到达时,在第i数据采集阶段中采集数据,包括获取设备标识以及终端的设备数据,并向上报第i数据采集阶段的脚本执行结果:数据采集阶段的编号、设备标识和第i数据采集阶段的设备数据,获取单元22形成对应各终端的脚本执行结果并存储。

需要指出的是,数据采集阶段的起始时间、以及数据采集的阶段的数量是预先固定设置的,与终端加载的各页面的存储期间的长度没有关联;其中,各数据采集阶段在时间轴上可以是连续的也可以是离散的,若各数据采集阶段在时间轴上是离散的,则各数据采集阶段之间的时间间隔可以相同也可以不同,各数据采集阶段的时长可以相同也可以不同。

提取单元23,用于从各终端的数据提交请求中提取设备标识。

例如,终端通过执行嵌入页面的脚本的方式,将设备标识嵌入终端侧的cookie中,在发送数据提交请求时提交cookie,从而提取单元23从cookie中提取终端的设备标识。

查询单元24,用于基于所提取的设备标识查询相应终端的脚本执行结果。

识别单元25,用于基于查询结果判断各终端是否运行有网络自动机。

以下对识别单元25判断终端是否运行有网络自动机的方式进行示例性说明。

方式1)

在一个实施例中,识别单元25,还用于查询结果表征未存在与所提取设备标识对应的脚本执行结果时,判定相应设备标识对应的终端运行有网络自动机。若查询结果表征未存在与所提取设备标识对应的脚本执行结果时,说明设备标识是网络自动机伪造的,判定相应设备标识对应的终端运行有网络自动机。

方式2)

在一个实施例中,识别单元25,还用于解析各终端所请求页面的脚本执行结果,得到各终端的设备数据的特征;比较各终端的设备数据的特征与网络自动机的特征,确定符合网络自动机特征的终端运行有网络自动机。

示例性地,设备数据包括以下2种类型:类型1)终端接收到各种操作行为的记录数据;类型2)终端的硬件参数,如终端的屏幕分辨率。相应地,对设备数据具有的3种特征以及使用相应特征识别网络自动机的方式进行说明。

特征1)针对终端实施的操作行为的类型,以及各类型的操作行为的频度。

针对终端实施的操作行为的类型如鼠标点击行为;触控行为;键盘敲击行为等,以及各类型的操作行为的频度。由于终端是以数据采集阶段为单位向网络服务器上报脚本执行结果,因此,操作行为的频度可以为各数据采集阶段的操作行为的均值。

例如,接收到终端的数据提交请求时,通过数据提交请求携带的设备标识查询终端的脚本执行结果,得到终端在所请求页面的存活期间上报的操作行为的记录数据(也就是在预定的数据采集阶段上报的操作行为的记录数据),进而确定终端在数据采集阶段接收到的操作行为的频度。

假设终端向网络服务器请求页面1至页面N的页面数据并在本地加载相应页面,鼠标点击行为的频度可以量化表示为:在页面1至页面N的各数据采集阶段中的鼠标点击次数的加和与数据采集阶段数量的比值。

发明人发现网络自动机具有这样的特点:模拟的操作行为的频度明显高于或低于常规用户的操作行为频度。若网络自动机模拟的操作行为的频度特征为操作行为频度的取值空间,那么,当终端接收到操作行为的频度处于该取值空间时,即判定终端运行有网络自动机。相应地,在一个实施例中,识别单元25基于特征1)使用这样的方式2.1)识别网络自动机:

识别单元25,还用于基于终端的设备数据确定终端接收到的操作行为的频度,将终端接收的操作行为的频度、与网络自动机模拟的操作行为的频度特征进行比对,如果比对成功则判定终端运行有网络自动机。

发明人发现网络自动机具有这样的特点:部分网络自动机不会模拟用户的操作行为。相应地,网络自动机模拟的操作行为的频度特征为零。那么,当所查询到的操作行为的记录数据表明,终端在所请求页面的存活期间未接收到操作行为,也就是在所请求页面的存活期间的各数据采集阶段未接收到操作行为,则判定终端运行有网络自动机。相应地,在一个实施例中,识别单元25,还用于判断终端在所请求页面的存活期间是否接收到操作行为,如果未接收到则判定终端运行有网络自动机。

特征2)从设备数据提取出的终端的硬件参数如屏幕分辨率等。

发明人发现,网络自动机模拟的设备数据具有这样的特征:不包括硬件参数如屏幕分辨率。相应地,识别单元25基于特征1)使用方式2.2)识别网络自动机:

识别单元25,还用于在各终端的设备数据查找终端的硬件参数,若未查找到则判定终端运行有网络自动机。

特征3)终端在各数据上报阶段上报的脚本执行结果的数量。

如前,终端在所请求页面的存活期间上报的脚本执行结果采用(数据阶段编号、设备标识、设备数据)的形式,因此对于任一终端,可以确定终端在所请求页面的存活期间上报的脚本执行结果对应的数据采集阶段,统计出各数据采集阶段对应的脚本执行结果的数量的分布特征。

仍以图4为例,终端在页面1的存活期间,仅在数据采集阶段1上报了脚本执行结果,记为(数据采集阶段1、设备标识、设备数据);同理,终端在页面2的存活期间,在数据采集阶段1至2上报了脚本执行结果,记为(数据采集阶段1、设备标识、设备数据)、(数据采集阶段2、设备标识、设备数据);终端在页面3的存活期间,在数据采集阶段1至3上报了脚本执行结果,记为(数据采集阶段1、设备标识、设备数据)、(数据采集阶段2、设备标识、设备数据)和(数据采集阶段3、设备标识、设备数据)。基于各脚本执行结果中的数据采集阶段的编号,可以统计出数据采集阶段1对应的脚本的数量为3,数据采集阶段1对应的脚本的数量为2,数据采集阶段3对应的脚本的数量为1,数量分布3-2-1呈下降趋势。

发明人在实施本发明的过程中发现,而常规的用户在数据提交页面之前的页面往往会停留较长时间,如在提交商品订单之前会在商品的展示页面停留,在论坛发布信息之前会在信息的展示页面停留;也就是用户依次访问的页面的存活时间具有下降的趋势,从而导致各页面的存活期间上报的脚本执行结果的数量也相应具有如图4所示的下降的趋势。

而网络自动机依次访问的各页面的访问的停留时间的分布恰恰相反,网络自动机通常仅仅是在数据提交页面(如注册、登录或发表信息等)模拟用户来提交数据,对于与提交数据无关的页面不会去访问或者使用很少的时间访问,多数时间集中在数据提交页面来提交数据,导致各页面的存活时间具有下降的趋势,从而导致各页面的存活期间上报的脚本执行结果的数量也相应具有上升的趋势。

鉴于这种情况,在一个实施例中,识别单元25方式2.3)识别网络自动机:

识别单元25,还用于确定各终端上报的脚本执行结果对应的数据采集阶段,并确定各数据采集阶段对应的脚本执行结果的数量分布特征。判断数量分布特征是否具有上升趋势,如果具有,则判定相应的终端运行有网络自动机。

需要指出的是,这里的上升趋势可以是严格上述趋势,即各数据采集阶段的脚本执行结果必须是依次上升的趋势,以预定4个数据采集阶段为例,在终端请求多个页面的存活期间,各数据采集阶段上报的脚本执行结果的数量一次为0-1-2-3,又例如0-2-3-4;当然,也可以是总体上的上升趋势,例如0-2-2-3、0-3-3-5等,或者是波动上升的趋势,如0-2-1-3、0-4-3-5等。

另外,上述识别网络自动机的方式1)、方式2.1)至方式2.3)可以单独使用也可以结合使用。可以看出,上述识别网络自动机的方式,一方面能够对网络自动机进行全面准确识别,另一方面,即使识别网络自动机的方式被破解,网络自动机需要提价数据也必须上报比以往更加复杂的脚本执行结果以通过上述方式的识别,这就提高了利用网络自动机实现不正当目的的成本,促使放弃使用网络自动机实施不正当目的的行为,从而节省网络服务器的带宽资源和计算资源。

在一个实施例中,拦截单元26,用于对运行有网络自动机的终端的数据提交请求进行拦截。对于运行有网络自动机的终端发送的数据提交请求,网络服务器不予以响应,从而网络自动机难以实现恶意登录、注册、刷高信誉评分等不正当目的。

在一个实施例中,拦截单元26,还用于基于运行有网络自动机的终端的设备标识更新黑名单;基于黑名单拦截携带相应设备标识的页面数据请求和数据提交请求。

综上所述,本发明实施例具有以下有益效果:

1)通过在终端侧访问页面中嵌入脚本的方式,使终端在发送数据提交请求之前通过上报脚本执行结果,从而完成对终端侧的设备标识、设备数据的收集,与仅仅通过在终端侧运行测试终端是否运行有网络自动机的测试脚本相比,收集的设备标识、设备数据相对于测试脚本的执行结果更加难以伪造,从而基于收集的设备标识、设备数据识别网络自动机的可靠性,高于在终端侧简单运行测试脚本识别网络自动机的可靠性;

2)在终端发送数据提交请求时才去查询相应终端收集的设备数据,从而在终端发送数据提交请求之前,能够最大程度丰富从终端收集的设备数据,提升后续识别网络自动机的精度。

3)对运行网络自动机的终端的数据请求进行拦截,有效节约了网络服务器的带宽和计算资源。

4)对于发送数据提交请求的终端,通过设备标识查询是否有预先收集的设备数据的方式,和/或终端上报的设备数据中是否有硬件参数的方式可以实现对运行有网络虚拟机的终端的快速识别。

5)对于发送数据提交请求的终端,通过判断终端在(发送数据提交请求前所访问页面的存活期间)各数据阶段对应的脚本执行结果的数量的分布特征是否呈上升趋势,可以对没有模拟访问部分页面的网络自动机进行精确识别,克服了相关技术中只要网络自动机模拟访问页面即识别为正常用户的缺陷。

6)将脚本执行结果的存储功能在专用的存储服务器实现,可以减小网络服务器的存储负载,提升查询效率。

本领域的技术人员可以理解:实现上述方法的全部或部分步骤可以通过应用指令相关的硬件来完成,前述的应用可以存储于一计算机可读取存储介质中,该应用在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储移动终端、随机存取存储器(RAM,Random Access Memory)、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储应用代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机移动终端(可以是个人计算机、服务器、或者网络移动终端等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储移动终端、RAM、ROM、磁碟或者光盘等各种可以存储应用代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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