一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于保护远程托管应用程序免受恶意攻击的系统和方法与流程

2021-11-09 17:49:00 来源:中国专利 TAG:


1.本发明总体上涉及用于向客户端设备的用户安全地提供托管应用程序的系统和方法,并且更具体地涉及用于在客户端设备上保护远程托管应用程序免受恶意攻击的改进技术。


背景技术:

2.在计算机技术中,应用程序软件可以被托管在服务器计算机上,并且用户可以通过客户端设备进行访问。用户通过其访问托管应用程序的客户端设备可以相对于服务器计算机远程定位。客户端设备可以通过一个或多个计算机网络与托管应用程序通信。


技术实现要素:

3.用于通过客户端设备提供对在服务器计算机上执行的托管应用程序的访问的先前技术在客户端设备处提供的安全性方面具有明显的缺点。对客户端设备的用户输入通常包括或由人类用户提供的鼠标和/或键盘输入组成。在网络攻击期间,执行恶意软件的机器可能会模拟人类用户在客户端设备上提供的输入,以便进行未经授权访问和/或破坏远程托管应用程序的合法操作,例如访问由远程托管应用程序维护的机密数据。例如,在获得对托管应用程序的未经授权的访问后,在客户端设备或其他地方执行的恶意软件可能会在访问或试图访问由远程托管应用程序维护的机密数据时,和/或在通过客户端设备干扰远程托管应用程序的合法操作时,将恶意软件自动生成的鼠标和/或键盘输入传递到客户端设备和/或在客户端设备上执行的一个或多个客户端组件。在另一示例中,在客户端设备或其他地方执行的恶意软件可能会将恶意软件自动生成的鼠标和/或键盘输入传递到客户端设备和/或作为暴力破解密码攻击的一部分在客户端设备中执行的一个或多个组件,其中恶意软件尝试不同的随机密码以尝试猜测客户端设备上授权用户的密码。在另一示例中,在客户端设备或其他地方执行的恶意软件可能会将恶意软件自动生成的鼠标和/或键盘输入传递到客户端设备和/或作为字典攻击的一部分在客户端设备上执行的一个或多个客户端组件,其中恶意软件使用常用密码字典尝试通过客户端设备访问托管应用程序。
4.由于先前提供对主机应用程序的访问的客户端设备缺乏检测恶意软件基于对客户端设备接收到的用户输入的分析自动生成的用户输入的能力,因此先前客户端设备在检测恶意软件生成的用户输入通过一个或多个网络转发到远程托管应用程序之前的网络攻击方面基本上是无效的。先前客户端设备相应地将远程托管应用程序暴露给在客户端设备上或通过客户端设备进行的网络攻击的恶意软件生成的用户输入,要求远程托管应用程序使用服务器计算机上的资源来检测此类攻击,并且允许在客户端设备与服务器之间建立中间网络以负担承载恶意软件生成的用户输入的网络流量,直到远程托管应用程序最终检测到攻击为止。
5.因此,希望拥有通过有效检测由恶意软件何时生成客户端设备接收到的用户输入来保护客户端设备上的远程托管应用程序的新技术,以便保护托管应用程序免受在客户端
设备上或通过客户端设备执行的网络攻击。
6.为了解决先前技术的上述和其他缺点,本文描述了收集由客户端设备接收的用户输入的新技术,其中客户端设备提供对远程托管应用程序的访问。客户端设备分析由客户端设备接收到的收集到的用户输入,以便检测收集到的对模拟由用户提供的输入的机器行为加以指示的用户输入。客户端设备响应于检测到由所述客户端设备接收的收集到的对模拟由用户提供的输入的机器行为加以指示的用户输入,防止通过客户端设备对托管应用程序的后续访问,以便保护远程托管应用程序免受恶意攻击,例如恶意软件试图进行未经授权访问和/或通过客户端设备折中远程托管应用程序的合法操作。
7.在一些实施例中,进一步响应于检测到由所述客户端设备接收的收集到的对模拟由用户提供的输入的机器行为加以指示的用户输入,并且在防止通过所述客户端设备对所述远程托管应用程序的后续访问之前,客户端设备可以在客户端设备的用户界面中显示至少一个验证查询。客户端设备还可以接收对验证查询的至少一个回答。客户端设备可以进一步分析接收到的对验证查询的回答以确定该回答是否指示客户端设备接收到的用户输入是由用户提供的。
8.在一些实施例中,客户端设备可以仅响应于以下两者来防止后续通过客户端设备访问远程托管应用程序:i)检测到由所述客户端设备接收的收集到的对模拟由用户提供的输入的机器行为加以指示的用户输入,以及ii)确定接收到的对验证查询的回答指示客户端设备接收到的用户输入不是由用户提供的。
9.在一些实施例中,客户端设备可以响应于i)检测到由客户端设备接收到的指示模拟用户提供的输入的机器行为的收集到的用户输入,以及ii)确定对验证查询的回答指示对客户端设备的用户输入是由用户提供的,修改训练数据集以生成指示由客户端设备接收的收集到的用户输入不反映机器行为的训练数据集。
10.在一些实施例中,客户端设备使用在客户端设备上执行的客户端组件来访问远程托管应用程序。在这类实施例中,客户端设备可以将修改后的训练数据集从客户端设备传递到离线模型训练过程。离线模型训练过程可以基于修改后的训练数据集生成更新版本的插件,然后用更新版本的插件自动替换先前安装在客户端设备中执行的客户端组件中的插件版本。
11.在一些实施例中,远程托管应用程序可以在第一服务器计算机上执行,并且离线模型训练过程可以在第二服务器计算机上执行。
12.在一些实施例中,在客户端设备上执行并且由客户端设备用来访问远程托管应用程序的客户端组件可以包括或包括网页浏览器。
13.在一些实施例中,由客户端设备接收的用户输入可以由客户端设备上执行的客户端组件接收,并且安装在客户端设备上执行的客户端组件中的插件可以周期性地收集由客户端组件接收的用户输入。
14.在一些实施例中,安装在客户端设备上执行的客户端组件中的插件在由客户端组件处理用户输入之前周期性地收集由客户端组件接收的用户输入。
15.在一些实施例中,安装在客户端设备上执行的客户端组件中的插件在处理用户输入之后并且在传输将由客户端组件从客户端设备接收的用户输入传输到远程托管应用程序之前,周期性地收集由客户端组件接收的用户输入。
16.在一些实施例中,由在客户端设备上执行的客户端组件接收并且由安装在客户端组件中的插件收集的用户输入包括计算机鼠标输入。
17.在一些实施例中,由在客户端设备上执行的客户端组件接收并且由安装在客户端设备上执行的客户端组件中的插件收集的用户输入还包括计算机键盘输入。
18.在一些实施例中,安装在客户端设备上执行的客户端组件中的插件分析由客户端组件接收到的收集到的用户输入,并且响应于检测到由客户端组件接收的指示模拟用户提供的输入的机器行为的收集到的用户输入,通过暂停客户端设备上的客户端组件的执行来防止后续通过客户端组件访问托管应用程序。
19.在一些实施例中,客户端设备向用户提供对由虚拟桌面组成或包括虚拟桌面的远程托管应用程序的访问。
20.在一些实施例中,客户端设备向用户提供对由单独的应用程序组成或包括单独的应用程序的远程托管应用程序的访问。
21.本文描述的技术的实施例可以提供对先前解决方案的显著改进。例如,通过在检测到指示模拟用户提供的输入的机器行为的收集到的用户输入之后防止后续访问远程托管应用程序,本文描述的技术的实施例可以有利地i)在客户端设备处或通过客户端设备为远程托管应用程序提供针对恶意软件的保护,恶意软件针对远程托管应用程序,ii)从远程托管应用程序中消除检测攻击客户端设备的恶意软件的负担,以及iii)避免浪费网络带宽,否则如果将恶意软件生成的用户输入从客户端设备转发到远程托管应用程序,则会使用这些带宽。
附图说明
22.前述和其他目的、特征和优点将从特定实施例的以下描述中变得显而易见,如附图中所示,其中相同的附图标记在不同的图中表示相同的部分。附图的元件不一定按比例绘制,而是重点放在说明各种实施例的原理上。
23.图1是示出可以在其中实现本发明的各个方面的非限制性网络环境的方框图;
24.图2是用于实践客户端设备、器具和/或服务器的实施例的计算设备的方框图;
25.图3是示出一些实施例的组件和操作环境的示例的方框图;
26.图4是示出在一些实施例的操作期间执行的步骤的第一示例的流程图;
27.图5是示出在一些实施例的操作期间执行的步骤的第二示例的流程图;
28.图6是示出在执行离线模型训练的同时,一些实施例的操作期间执行的步骤的流程图;以及
29.图7是示出在一些实施例的操作期间执行的步骤的另一示例的流程图。
具体实施方式
30.现在将参考附图描述实施例。这些实施例仅作为示例并且出于说明的目的提供。权利要求的范围不限于图中所示和/或本文以其他方式描述的特定实施例的示例。
31.本文描述的特定实施例、示例和实现方式的各个特征可以以具有技术意义的任何方式组合。此类特征由此组合以形成所有可能的组合、排列和/或变化,除非此类组合、排列和/或变化已在本文中明确排除和/或在技术上不切实际。认为本文档中存在对所有此类组
合、排列和/或变化的支持。
32.首先参考图1,其中可以实现本发明各个方面的非限制性网络环境101包括一个或多个客户端机器102a

102n、一个或多个远程机器106a

106n、一个或多个网络104、104’、以及安装在计算环境101内的一个或多个器具108。客户端机器102a

102n经由网络104、104’与远程机器106a

106n通信。
33.在一些实施例中,客户端机器102a

102n经由中间器具108与远程机器106a

106n通信。图示的器具108位于网络104、104’之间并且也可以被称为网络接口或网关。在一些实施例中,器具108可以作为应用程序交付控制器(adc)来操作,以向客户提供对部署在数据中心、云中或作为客户端设备范围内的软件即服务(saas)交付的业务应用程序和其他数据的访问权、和/或提供诸如负载平衡等的其他功能。在一些实施例中,可以使用多个器具108,并且器具108可以被部署为网络104和/或104’的一部分。
34.客户端机器102a

102n通常可以被称为客户端机器102、本地机器102、客户端102、客户端节点102、客户端计算机102、客户端设备102、计算设备102、端点102或端点节点102。远程机器106a

106n通常可以被称为服务器106、服务器计算机106或服务器群106。在一些实施例中,客户端设备102可以具有同时充当寻求访问由服务器106提供的资源的客户端节点,以及充当为其他客户端设备102a

102n提供对托管资源的访问的服务器106的能力。网络104、104’通常可以被称为网络104。网络104可以被配置成有线网络和无线网络的任何组合。
35.服务器106可以是任何服务器类型,诸如例如:文件服务器;应用程序服务器;网络服务器;代理服务器;器具;网络器具;网关;应用程序网关;网关服务器;虚拟化服务器;部署服务器;安全套接字层虚拟专用网络(ssl vpn)服务器;防火墙;网络服务器;执行活动目录的服务器;云服务器;或执行提供防火墙功能、应用程序功能或负载平衡功能的应用程序加速程序的服务器。
36.服务器106可以执行、操作或以其他方式提供可以是以下任何一种的应用程序:软件;程序;可执行指令;虚拟机;管理程序;网页浏览器;基于网络的客户端;客户端

服务器应用程序;瘦客户端计算客户端;activex控件;java小程序;与互联网协议语音(voip)通信相关的软件,如软ip电话;用于流式传输视频和/或音频的应用程序;用于促进实时数据通信的应用程序;http客户端;ftp客户端;oscar客户端;telnet客户端;或任何其他可执行指令集。
37.在一些实施例中,服务器106可以执行远程演示服务程序或其他程序,该程序使用瘦客户端或远程显示协议来捕获由在服务器106上执行的应用程序生成的显示输出,并且将应用程序显示输出传输到客户端设备102。
38.在其他实施例中,服务器106可以执行向客户端设备102的用户提供对计算环境的访问的虚拟机。客户端设备102可以是虚拟机。虚拟机可以由例如管理程序、虚拟机管理器(vmm)或服务器106内的任何其他硬件虚拟化技术来管理。
39.在一些实施例中,网络104可以是:局域网(lan);城域网(man);广域网(wan);主要公共网络104;以及主要私有网络104。附加实施例可以包括使用各种协议在移动设备之间进行通信的移动电话网络的网络104。对于无线局域网(wlan)内的短距离通信,协议可能包括802.11、蓝牙和近场通信(nfc)。
40.图2描绘了用于实践客户端设备102、器具108和/或服务器106的实施例的计算设备100的方框图。计算设备100包括一个或多个处理器103、易失性存储器122(例如,随机存取存储器)(ram))、非易失性存储器128、用户界面(ui)123、一个或多个通信接口118和通信总线150。
41.非易失性存储器128可以包括:一个或多个硬盘驱动器(hdd)或其他磁性或光存储介质;一个或多个固态驱动器(ssd),诸如闪存驱动器或其他固态存储介质;一个或多个混合磁性和固态驱动器;和/或一个或多个虚拟存储卷,诸如云存储,或此类物理存储卷和虚拟存储卷或其阵列的组合。
42.用户界面123可以包括图形用户界面(gui)124(例如,触摸屏、显示器等)和一个或多个输入/输出(i/o)设备126(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个摄像头、一个或多个生物特征识别扫描仪、一个或多个环境传感器以及一个或多个加速度计等)。
43.非易失性存储器128存储操作系统115、一个或多个应用程序116和数据117,使得例如操作系统115和/或应用程序116的计算机指令由易失性存储器122的处理器103执行。在一些实施例中,易失性存储器122可以包括可以提供比主存储器更快的响应时间的一种或多种类型的ram和/或高速缓冲存储器。数据可以使用gui 124的输入设备输入或从i/o设备126接收。计算机100的各种元件可以经由通信总线150进行通信。
44.图示的计算设备100仅被示为示例客户端设备或服务器,并且可以由具有任何类型的机器或机器组的任何计算或处理环境来实现,所述机器或机器组可以具有能够如本文所述那样操作的合适的硬件和/或软件。
45.处理器103可以由一个或多个可编程处理器实现以执行一个或多个可执行指令,诸如计算机程序,以执行系统的功能。如本文所使用,术语“处理器”描述执行功能、操作或操作顺序的电路。功能、操作或操作顺序可以硬编码到电路中或通过保存在存储器设备中并且由电路执行的指令软编码。处理器可以使用数字值和/或使用模拟信号来执行功能、操作或操作顺序。
46.在一些实施例中,处理器可以具体实施在一个或多个专用集成电路(asic)、微处理器、数字信号处理器(dsp)、图形处理单元(gpu)、微控制器、现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、多核处理器或具有相关存储器的通用计算机。
47.处理器103可以是模拟、数字或混合信号。在一些实施例中,处理器103可以是一个或多个物理处理器,或者一个或多个虚拟(例如,远程定位或云)处理器。包括多个处理器核和/或多个处理器的处理器可以提供用于并行、同时执行指令或用于并行、同时执行对多于一条数据的一条指令的功能。
48.通信接口118可以包括一个或多个接口以使得计算设备100能够通过各种有线和/或无线连接(包括蜂窝连接)访问诸如局域网(lan)、广域网(wan)、个域网(pan)或互联网的计算机网络。
49.在所描述的实施例中,计算设备100可以代表客户端设备的用户执行应用程序。例如,计算设备100可以执行由管理程序管理的一个或多个虚拟机。每个虚拟机可以提供诸如托管桌面会话之类的执行会话,在其中代表用户或客户端设备执行应用程序。计算设备100还可以执行终端服务会话以提供托管桌面环境。计算设备100可以提供对远程计算环境的
访问,该远程计算环境包括一个或多个应用程序、一个或多个桌面应用程序以及一个或多个应用程序可以在其中执行的一个或多个桌面会话。
50.如本文所述,为了保护远程托管应用程序免受通过向客户端设备的用户提供对远程托管应用程序的访问的客户端设备执行的网络攻击,由客户端设备收集由客户端设备接收的用户输入。由客户端设备分析由客户端设备接收的收集到的用户输入以检测收集到的用户输入是否指示模拟用户(例如,客户端设备的人类用户)提供的输入的机器行为。客户端设备响应于检测到由客户端设备接收到的指示模拟用户提供的输入的机器行为的收集到的用户输入,防止后续通过客户端设备访问远程托管应用程序。以此方式,客户端设备保护远程托管应用程序免受在客户端设备上执行或通过客户端设备执行的恶意攻击。
51.图3是示出在操作环境内的一些实施例的组件的示例的方框图。如图1中所示,客户端设备300提供对在一个或多个远程服务器上执行的一个或多个应用程序的访问,例如在第一服务器计算机304上执行的远程托管应用程序348。例如,客户端设备300可以通过用户界面326向用户344提供对远程托管应用程序348的访问。客户端设备300可以包括处理电路306、存储器308、用户输入设备318和显示设备324。客户端设备300可以是移动设备,诸如智能电话、平板计算机、电子书阅读器等,或者膝上型计算机或台式计算机。处理电路306可以包括一个或多个中央处理单元(cpu)和相关联的硬件电路或由其组成,该硬件电路执行存储在存储器308中的程序代码,例如应用程序和/或操作系统的程序代码,和/或存储在存储器308中的其他程序代码。存储器308可以包括随机存取存储器(ram)和只读存储器(rom)的某种组合或由其组成,并且被用来i)存储在处理电路306上执行的程序代码,以及ii)存储由这种程序代码生成和/或访问的数据。例如,存储器308被示为包括在处理电路306上执行的客户端组件330。本领域技术人员将认识到存储器308还可以包括在处理电路306(诸如例如操作系统)上执行的其他程序代码,和/或其他应用程序代码。
52.客户端设备300的显示设备324可以包括电子视觉显示器或由其组成。显示设备324显示图形用户界面,包括在客户端设备300中执行的程序代码生成的一个或多个用户界面(例如,窗口)或由其组成。在操作期间,显示设备324显示用户界面326,其整体生成或部分通过客户端组件330的执行而生成,同时客户端组件330向客户端设备300的用户344提供对远程托管应用程序348的访问。
53.客户端设备300的用户输入设备318可以包括计算机鼠标320和计算机键盘322,和/或可操作以响应于用户344的动作提供鼠标输入(例如,鼠标点击、拖动等)和/或键盘输入(例如,击键、字符等)的其他设备。例如,计算机鼠标320可以包括鼠标类型的手持式指向设备、触摸板或触控板和/或其他类似类型的用户输入设备或由其组成。例如,计算机键盘322可以包括打字机式键盘设备、通过触摸屏提供的虚拟键盘和/或另一种类似类型的用户输入设备或由其组成。
54.第一服务器计算机304可以执行用户344通过客户端设备300访问的一个或多个应用程序。例如,第一服务器计算机304可以执行客户端设备300的用户344通过用户界面326访问的远程托管应用程序348。第一服务器计算机304可以包括处理电路314和存储器316。第一服务器计算机304可以包括一个或多个服务器计算机或由其组成。处理电路314可以包括一个或多个中央处理单元(cpu)和相关联的硬件电路或由其组成,该硬件电路执行存储在存储器316中的程序代码,例如一个或多个应用程序的程序代码,和/或操作系统的程序
代码,和/或存储在存储器316中的其他程序代码。存储器316可以包括随机存取存储器(ram)和只读存储器(rom)的某种组合或由其组成,并且被用来i)存储在处理电路314上执行的程序代码,以及ii)存储由这种程序代码生成和/或访问的数据。例如,存储器316被示为包括在处理电路314上执行的远程托管应用程序348。
55.本领域技术人员将认识到,存储器316还可以包括在处理电路314上执行的其他程序代码,诸如例如一个或多个操作系统实例、管理程序等,和/或其他远程托管应用程序的程序代码。
56.第二服务器计算机302可以执行离线模型训练过程(例如,离线模型训练过程346),该离线模型训练过程生成并且优化监控逻辑334中包含的训练模型。例如,离线模型训练过程346可以生成用于插件332的初始版本的监控逻辑334,其包含基于初始版本的训练数据集350生成的训练模型(例如,包含手动标记的用户输入组),然后自动生成更新版本的插件332,包括新版本的监控逻辑334,其中更新版本的训练模型是基于由离线模型训练过程346从客户端设备300接收的修改训练数据集350生成的。
57.第二服务器计算机302可以包括处理电路319和存储器312。第二服务器计算机302可以包括一个或多个服务器计算机或由其组成。处理电路310可以包括一个或多个中央处理单元(cpu)和相关联的硬件电路或由其组成,该硬件电路可操作以执行存储在存储器312中的应用程序和操作系统的程序代码。存储器312可以包括随机存取存储器(ram)和只读存储器(rom)的某种组合或由其组成,并且被用来i)存储在处理电路314上执行的程序代码,和ii)存储由这种程序代码生成和/或访问的数据。例如,存储器316被示为包括在处理电路310上执行的离线模型训练过程346。本领域技术人员将认识到存储器312还可以包括在处理电路310上执行的其他程序代码,诸如例如一个或多个操作系统实例、管理程序等,和/或其他远程托管应用程序的程序代码。
58.客户端设备300、第一服务器计算机304和第二服务器计算机302可以通过一个或多个计算机网络352可通信地互连,例如一个或多个局域网(lan)和/或广域网(wan)等。
59.在图1所示的组件的操作期间,客户端设备300向客户端设备300的用户(例如用户344)提供对远程托管应用程序348的访问。例如,客户端设备300可以使用客户端组件330来通过用户界面326向用户344提供对远程托管应用程序348的访问。在一些实施例中,客户端组件330可以通过在客户端设备300与第一服务器计算机304之间建立的网络连接356访问远程托管应用程序348。网络连接356可以例如是使用安全通信协议(诸如https(安全超文本传输协议)或某些其他通信协议)提供的安全连接。
60.在一些实施例中,客户端组件300可以包括网页浏览器应用程序或由其组成。在其他实施例中,客户端组件330可以包括一些其他特定类型的客户端软件或由其组成,例如专用客户端组件,其对应于并且专门设计用于为用户提供对远程托管应用程序348的访问。
61.在一些实施例中,远程托管应用程序348可以包括在第一服务器计算机304上执行的远程应用程序虚拟化软件或由其组成。在这类实施例中,客户端组件330向用户344提供对远程托管应用程序348的访问(例如,通过用户界面326),该远程托管应用程序是在第一服务器计算机304上执行的单个虚拟化应用程序。可以由远程托管应用程序348提供的这种单个虚拟化应用程序的示例可以包括但不限于电子邮件应用程序、文字处理应用程序、电子表格应用程序、电子日历应用程序、电子演示应用程序或某些其他特定类型的应用程序。
62.在其他实施例中,远程托管应用程序348可以包括在第一服务器计算机304上执行的远程桌面虚拟化软件或由其组成。在这类实施例中,客户端组件330向用户344提供对虚拟桌面的访问,该虚拟桌面属于用户344,并且通过在第一服务器计算机304上执行远程托管应用程序348生成。此外,在远程托管应用程序348为用户344生成虚拟桌面或虚拟工作空间环境的此类实施例中,用户344还可以通过远程托管应用程序348提供并且由客户端组件330在用户界面326中显示的虚拟桌面访问在第一服务器计算机304上执行的多个特定的虚拟化应用程序。
63.在向用户344提供对远程托管应用程序348的访问的同时,客户端组件330可以响应于由客户端设备300接收并且传递到客户端组件330的用户输入,将请求消息传输到远程托管应用程序348。例如,从客户端组件330传送到远程托管应用程序348的请求可以使用诸如http(超文本传输协议)、rdp(远程桌面协议)、ica(独立计算架构)和/或其他特定客户端/服务器协议之类的通信协议来传送。客户端组件330可以响应于它从远程托管应用程序348接收的回复消息的内容来修改用户界面326的内容。
64.在图1的示例中,由客户端设备300接收到的用户输入被显示为由用户输入340进行说明。在一些实施例中,由客户端设备300接收到的用户输入340可以被传递到客户端组件330并且由客户端组件330接收。在正常操作期间,用户输入340可以例如包括计算机鼠标输入或由其组成,例如描述用户344使用计算机鼠标320在用户界面326内执行的鼠标点击和/或用户344使用计算机鼠标320在用户界面326内执行的鼠标拖动等的数据。在另一示例中,用户输入340可以在正常操作期间,包括计算机键盘输入或由其组成,例如用户344使用计算机键盘322输入到用户界面326中的键盘字符。本领域技术人员将认识到,其他类型的用户输入信息也可以或替代地包括在用户输入340中。
65.所公开的技术的实施例可以有利地操作以保护远程托管应用程序348免受客户端设备300上的网络攻击。例如,所公开的技术的实施例可以保护远程托管应用程序348免受恶意软件影响,该恶意软件在网络攻击期间生成模拟用户提供的输入的用户输入,并且将这种恶意用户输入传递给客户端设备300和/或客户端组件330,例如在用户输入340内。
66.为了保护远程托管应用程序348免受客户端设备300上的网络攻击,客户端设备300收集由客户端设备300接收的用户输入340的至少一些部分。例如,在一些实施例中,客户端组件330可以包括安装在客户端组件330中的插件332,并且插件332可以包括监控逻辑334,其周期性地从用户输入340收集收集到的用户输入338,例如当客户端组件330正在接收用户输入340时。在一些实施例中,收集到的用户输入338可以包含在对应时间段期间由客户端组件330接收的一些或全部用户输入。在这类实施例中,监控逻辑334可以通过在对应时间段期间捕获和存储由客户端组件330接收的一些或全部用户输入,例如通过将每个连续时间段期间(例如,每个连续两秒时间段期间)由客户端组件330接收的用户输入收集和存储在针对该时间段生成的收集到的用户输入338来周期性地生成收集到的用户输入338。
67.每次生成收集到的用户输入338时,客户端设备300对其进行分析以便检测收集到的用户输入338是否指示模拟用户提供的输入的机器行为。例如,在一些实施例中,监控逻辑334可以分析收集到的用户输入338以检测收集到的用户输入338是否指示模拟用户提供的输入的机器行为。在一些实施例中,监控逻辑334可以包括可以用于检测指示模拟用户提
供的输入的机器行为的收集到的用户输入338的训练模型,如下文进一步描述。
68.可以在客户端组件330处理收集到的用户输入338之前或在客户端组件330处理收集到的用户输入338之后周期性地收集和分析(例如,通过插件332中的监控逻辑334)收集到的用户输入338。在一些实施例中,监控逻辑334在收集到的用户输入338被传递到客户端组件330以供客户端组件330处理之前,例如在客户端组件330对收集到的用户输入338执行处理以准备收集到的用户输入338用于传输到远程托管应用程序348之前,收集和分析收集到的用户输入338。替代地,在其他实施例中,监控逻辑334可以在客户端组件330处理完收集到的用户输入338以准备收集到的用户输入338用于传输到远程托管应用程序348之后,收集和分析收集到的用户输入338。在任一情况下,监控逻辑334可以操作以在收集的用户输入338从客户端组件330传输到远程托管应用程序348之前,收集和分析收集到的用户输入338。
69.客户端设备338可以响应于客户端设备338检测到收集到的用户输入338指示模拟用户提供的输入的机器行为而防止后续通过客户端设备338访问远程托管应用程序348。例如,在一些实施例中,响应于监控逻辑334检测到收集到的用户输入338指示模拟用户提供的输入的机器行为,插件332可以操作以通过防止后续通过客户端组件330访问远程托管应用程序348,而防止后续通过客户端设备338访问远程托管应用程序348。在一些实施例中,响应于监控逻辑334检测到收集到的用户输入338指示模拟由用户提供的输入的机器行为,插件332可以通过暂停客户端设备300上客户端组件330的进一步执行来防止后续通过客户端设备338访问远程托管应用程序348。例如,插件332可以通过防止客户端组件330后续被计划在处理电路306上执行来暂停客户端组件330在客户端设备300上的进一步执行。在另一示例中,插件332至少部分地通过防止客户端组件330和/或客户端设备300后续与远程托管应用程序348通信,而暂停客户端组件330在客户端设备300上的进一步执行。在检测到收集到的用户输入338指示模拟用户提供的输入的机器行为时通过暂停客户端组件在客户端设备300上的进一步执行,客户端设备300在客户端设备300上或通过客户端设备300执行的网络攻击期间有利地保护远程托管应用程序348免受恶意软件生成的用户输入,其中恶意软件试图进行未经授权访问和/或折中远程托管应用程序348的合法操作。
70.在一些实施例中,进一步响应于检测到收集到的用户输入338指示模拟由用户提供的输入的机器行为,并且在防止后续通过客户端设备300访问远程托管应用程序348之前,客户端设备300可以在客户端设备300的用户界面中显示至少一个验证查询。例如,在一些实施例中,响应于监控逻辑334检测到收集到的用户输入338指示模拟用户提供的输入的机器行为,并且在插件332防止后续通过客户端设备300访问远程托管应用程序348之前,插件332中的验证模块336可以在显示设备324上显示验证查询328,例如在用户界面326内。在一些实施例中,验证查询328可以包括一个或多个只能由客户端设备300的人类用户正确回答的问题或由其组成。例如,在一些实施例中,验证查询328可以包括验证客户端设备300接收的用户输入340是否由人类用户提供的captcha(“完全自动化的图灵测试以区分计算机和人类”)类型的挑战

响应测试或由其组成。众所周知,captcha类型的挑战

响应测试可能需要用户344正确选择包含指定项目图像的验证查询328的特定部分。替代地,所公开的技术可以使用通过验证查询328提供的一些其他特定类型的人类用户验证,以便验证正由客户端设备300接收的用户输入340是否是由人类用户提供的。在一些实施例中,验证查询328
可以附加地或替代地包括显示给用户144的弹出验证查询或由其组成,这可能要求用户144正确输入他们的登录用户名和密码,和/或在captcha挑战响应之前或代替其输入一些人机识别验证码。在这类实施例中,回答342可以包括用户144提供的对验证查询的回答或由其组成,例如,用户144输入的登录用户名和密码。在其他实施例中,验证模块336可以生成验证查询328,其请求用户144提供确认用户144正在提供用户输入240的生物特征识别。这种生物特征识别可以例如通过指纹扫描、虹膜扫描和/或用于从用户144获取生物特征识别信息的一些其他特定技术来提供。在这类实施例中,回答342可以包括用户144提供的生物特征识别信息或由其组成。
71.在显示验证查询328之后,客户端设备300(例如,验证模块336)接收到验证查询328的至少一个回答。例如,在一些实施例中,验证模块336可以接收到验证查询328的回答342。验证模块336然后可以分析回答342,以便确定回答342是否指示客户端设备300接收到的用户输入340是由人类用户提供的。例如,在各种特定实施例中,当回答342指示用户344已选择用户界面326的正确特定部分作为captcha挑战响应的一部分时,当回答342包含有效的登录用户名和密码时,和/或当回答342包含有效的生物特征识别信息时,验证模块336可以确定用户输入340是由人类用户提供的。
72.在一些实施例中,客户端设备300(例如,插件332)可以仅响应于以下两者来防止后续通过客户端设备300(例如,通过暂停客户端设备300上的客户端组件330的进一步执行)访问远程托管应用程序348:i)监控逻辑334检测到收集到的用户输入338指示模拟用户提供的输入的机器行为,以及ii)验证模块336确定对验证查询328的回答342指示由客户端设备接收到的用户输入340不是由人类用户提供的。然而,应当认识到,所公开的技术不限于这类实施例,并且在一些实施例中,客户端设备300(例如,插件332)可以仅响应于监控逻辑334检测到收集到的用户输入338指示模拟用户提供的输入的机器行为,而防止后续通过客户端设备300(例如,通过暂停客户端设备300上的客户端组件330的进一步执行)访问远程托管应用程序348。
73.在一些实施例中,客户端设备300(例如,插件332)可以响应于i)监控逻辑334检测到收集到的用户输入338指示模拟用户提供的输入的机器行为,以及ii)验证模块336确定回答342指示用户输入340是由人类用户提供的,修改训练数据集350以生成修改后的训练数据集350,其指示收集到的用户输入338不指示模拟用户提供的输入的机器行为。例如,在一些实施例中,插件332可以通过将收集到的用户输入338与指示收集到的用户输入338不指示模拟用户提供的输入的机器行为的标记或标签一起添加到训练数据集350来修改训练数据集350。
74.在一些实施例中,客户端设备300(例如,插件332)可以将修改后的训练数据集350从客户端设备300传递到在第二服务器计算机302上执行的离线模型训练过程346。然后离线模型训练过程346可以基于修改后的训练数据集350生成新的更新版本的插件332。然后离线模型训练过程346可以例如通过在客户端组件330中安装更新版本的插件332,而用更新版本的插件332自动替换先前安装在客户端组件330中的较早版本的插件332。以这种方式,所公开的技术可以具体实施为使得监控逻辑334在正确确定收集到的用户输入338是否指示模拟由用户提供的输入的机器行为方面的准确性可以基于从插件332提供给离线模型训练过程346的反馈不断改进。
75.在一些实施例中,初始版本的插件332可以由离线模型训练过程346生成,包括初始版本的监控逻辑334,其包括基于包含使用先前确定的信息和/或关于特定用户输入组的预测手动或自动标记用户输入组的初始版本的训练数据集350生成的训练模型,这些特定用户输入组已经被先验确定(例如,基于网络攻击建模等)以指示模拟用户提供的输入的机器行为。然后可以将这种初始版本的插件332安装在客户端组件330中。当客户端组件330执行时,初始版本的插件332可以随后被更新版本的插件332替换,该更新版本的插件在检测特定的用户输入组是否指示模拟用户提供的输入的机器行为方面具有改进准确度。
76.图4是示出在一些实施例的操作期间执行的步骤的第一示例的流程图。如图4中所示,在一些实施例中,可以例如通过插件332在线执行多个步骤,作为在线活动400的一部分。例如,在一些实施例中,在由客户端设备300向用户344提供对远程托管应用程序348的访问时,可以由插件332执行在线活动400。
77.还如图4中所示,在一些实施例中,作为离线活动402的一部分,可以离线执行许多步骤。例如,在一些实施例中,例如当客户端设备300提供对远程托管应用程序348的访问时,和/或在客户端设备300不提供对远程托管应用程序348的访问的时间,可以由离线执行模型训练过程346执行离线活动402。
78.在图4的示例中,在在线活动400内的步骤404处,客户端设备300收集用户输入。例如,在一些实施例中,在步骤404处,插件332中的监控逻辑334可以收集由客户端组件330在对应时间段内(例如,在两秒时间段内)接收到的用户输入340的至少一个部分,然后将用户输入340的该部分存储到收集到的用户输入338中以供监控逻辑334进行离散分析。
79.在步骤406处,客户端设备300分析收集到的用户输入338以检测收集到的用户输入338是否指示模拟用户提供的输入的机器行为。例如,在一些实施例中,在步骤406处,插件338中的监控逻辑334分析收集到的用户输入338以检测收集到的用户输入338是否指示模拟用户提供的输入的机器行为。
80.例如,在一些实施例中,监控逻辑334通过为收集到的用户输入338生成特征向量,然后使用训练的模型来检测收集到的用户输入338是否指示模拟用户提供的输入的机器行为来分析收集到的用户输入338。在一些实施例中,当从收集到的用户输入338提取的特征向量与先前标记为指示机器模拟用户提供的输入的行为的特征向量相匹配时,监控逻辑334中的训练模型可以检测到收集到的用户输入338指示模拟用户提供的输入的机器行为。
81.因此,训练后的模型可以将收集到的用户输入338的特征向量与先前标记的特征向量进行比较。先前标记的特征向量可以例如已经由离线模型训练过程346自动标记,或者由系统管理员等手动标记。为收集到的用户输入338提取并且与先前标记的特征向量进行比较的特征向量可以包含一个或多个描述收集到的用户输入338的特定特性的特征。在一些实施例中,为收集到的用户输入338提取的特征向量中的特征可以指示在收集到的用户输入338内执行的鼠标动作(例如,鼠标点击)的统计特性。例如,在收集到的用户输入338内执行的鼠标动作的这种统计特征可以描述执行的鼠标动作的总数、用户界面326内每个屏幕区域执行的鼠标动作、连续鼠标动作之间的时间间隔和/或执行某个预定数量(例如,三个)连续相同鼠标动作的次数或从其推导出。因此,在一些实施例中,例如,当收集到的用户输入338的鼠标动作统计的特征向量与先前被标记为指示模拟用户提供的输入的机器行为的鼠标动作统计的特征向量相匹配时,监控逻辑334中的训练模型可以检测到收集到的用
户输入338指示模拟由用户提供的输入的机器行为。
82.在客户端设备300检测到408收集到的用户输入338指示模拟用户提供的输入的机器行为的情况下,步骤406之后是步骤412。否则,在客户端设备300检测到410收集到的用户输入338不指示模拟用户提供的输入的机器行为的情况下,步骤406之后是步骤425。在步骤425中,客户端组件330可以完成对收集到的用户输入338的处理(例如准备收集到的用户输入338用于传输到远程托管应用程序348),然后将收集到的用户输入338从客户端设备300安全地传输到远程托管应用程序348。
83.在步骤412处,客户端设备300显示验证查询。例如,在一些实施例中,在步骤412处,客户端组件330的插件332中的验证模块336在用户界面326中显示captcha类型验证查询328。
84.在步骤414处,客户端设备300接收对在步骤412处显示的验证查询的一个或多个回答。例如,在一些实施例中,在步骤414处,对显示的验证查询的回答342可以由客户端组件330的插件332中的验证模块336接收。
85.在步骤416处,客户端设备300分析验证查询的一个或多个回答以确定该一个或多个回答是否指示由客户端设备300接收的用户输入是由人类用户提供的。例如,在一些实施例中,在步骤416处,客户端组件330的插件332中的验证模块336可以分析显示的验证查询的回答342,以确定客户端组件330正在接收的用户输入是否由人类用户提供,例如通过确定用户344是否选择了用户界面326的正确特定部分作为captcha挑战响应的一部分,是否提供了有效的登录用户名和密码,和/或是否提供了有效的生物特征识别信息。
86.在客户端设备300(例如,验证模块336)确定422客户端设备300正在接收(例如,由客户端组件330接收)的用户输入是由人类用户提供的情况下,则在步骤406处执行对收集到的用户输入338的分析(例如,由插件332中的监控逻辑334执行)是不正确的,并且步骤416之后是步骤424。否则,在客户端设备300(例如,验证模块336)确定418由客户端设备300接收(例如,由客户端组件330接收)的用户输入不是由人类用户提供的情况下,则在步骤406处执行的对收集到的用户输入338的分析(例如,由插件332中的监控逻辑334执行)是正确的,并且步骤416之后是步骤420。
87.在步骤420处,客户端设备300防止后续通过客户端设备300访问远程托管应用程序348。例如,在一些实施例中,在步骤420处,插件332可以通过暂停客户端设备300上客户端组件330的执行,而防止后续通过客户端设备300访问远程托管应用程序348。在一些实施例中,在步骤420处防止后续通过客户端设备300访问远程托管应用程序348可以包括防止收集到的用户输入338被传输到远程托管应用程序348,以便防止将恶意软件生成的用户输入传送到远程托管应用程序348,并且防止使客户端设备300和第一服务器计算机304互连的计算机网络负担将恶意软件生成的用户输入从客户端设备300运送到第一服务器计算机304的网络流量。
88.在步骤424处,客户端设备300修改训练数据集350以指示收集到的用户输入338不反映模拟用户提供的输入的机器行为。例如,在一些实施例中,在步骤424处,插件332通过将收集到的用户输入338与指示收集到的用户输入338不反映模拟由用户提供的输入的机器行为的标记或标签一起添加到训练数据集350来修改训练数据集350。在一些实施例中,训练数据集350可以包括多组收集到的用户输入,每组都具有指示该组收集到的用户输入
是否反映模拟用户提供的输入的机器行为的标签。在随后的时间点,当离线模型训练逻辑346生成新版本的插件332时,将训练数据集350从客户端设备300传输到第二服务器计算机302以供离线模型训练逻辑346使用,该新版本的插件准确检测一组收集的用户输入何时指示模拟用户提供的输入的机器行为。以此方式,所公开的技术的实施例可以应用机器学习技术来持续改进插件332在检测收集到的用户输入的集合何时指示模拟用户提供的输入的机器行为方面的准确度。
89.进一步在在线活动400中,步骤424之后是步骤425,其中客户端组件330可以完成对收集到的用户输入338的处理(例如,通过准备收集到的用户输入338用于传输到远程托管应用程序348),然后安全地将收集到的用户输入338从客户端设备300传输到远程托管应用程序348。
90.训练数据集350由第二服务器计算机102从客户端设备300接收并且传递到离线模型训练逻辑346。在步骤426处,离线模型训练逻辑346对训练数据集350中包含的标记过的收集到的用户输入执行特征提取。在特征提取期间,离线模型训练逻辑346为训练数据集350中每组收集到的用户输入生成特征向量,并且为每个特征向量分配标签,该标签与分配给生成特征向量的训练数据集350中该组收集到的用户输入的标签相同。
91.例如,在收集到的用户输入338在步骤424处被添加到训练数据集350,并且用指示收集到的用户输入338不反映模拟由用户提供的输入的机器行为的标签(例如,标签=0)将收集到的用户输入338存储在训练数据集350中的情况下,则在步骤426处执行的特征提取期间,离线模型训练逻辑346可以生成对应于收集到的用户输入338的特征向量,并且向该特征向量分配指示随后接收到的具有与生成的特征向量匹配的特征向量的收集到的用户输入组不反映模拟用户提供的输入的机器行为的标签(例如,标签=0)。
92.在步骤426处从训练数据集350中标记过的收集到的用户输入组中提取的标记特征向量然后在步骤428处由离线模型训练逻辑346存储到训练模型中,例如使用机器学习技术,包括但不限于随机森林技术。由离线模型训练逻辑346在步骤428处自动生成的训练模型包括决策逻辑,其在执行时可操作以检测收集到的用户输入组是否指示模拟用户提供的输入的机器行为,如由在步骤426中提取的标记的特征向量所指示。具体地,在步骤428处生成的训练模型在执行时操作以检测后续接收的收集到的用户输入组在当后续接收的收集到的用户输入组具有与在步骤426处提取的特征向量中的一个相匹配的特征向量时指示模拟用户提供的输入的机器行为,该特征向量被标记为指示模拟用户提供的输入的机器行为(例如,标签=1)。另一方面,在步骤428处生成的训练模型在执行时操作以检测后续接收的收集到的用户输入组在当后续接收的收集到的用户输入组具有与在步骤426处提取的特征向量中的一个相匹配的特征向量时不指示模拟用户提供的输入的机器行为,该特征向量被标记为不指示模拟用户提供的输入的机器行为(例如标签=0)。
93.在一些实施例中,在步骤428处生成的训练模型可以由离线模型训练逻辑346集成到由离线模型训练逻辑346在步骤428处生成的新的更新版本的插件332中的新版本的监控逻辑334。以这种方式,在步骤426和428期间,离线模型训练逻辑346可以基于从客户端设备300接收的训练数据集350生成更新版本的插件332。
94.例如,在一些实施例中,所公开的技术可以使用诸如tensorflow等框架来利于将训练模型集成到新的更新版本的插件332中的新版本的监控逻辑334中。在此类实施例中,
可以将训练模型保存并且重新加载为标记的特征向量,并且当在更新版本的插件332中的新版本的监控逻辑334中更新训练模型时,仅需要加载新提取的特征向量。
95.在步骤432处,离线模型训练逻辑346可以用更新版本的插件332自动替换客户端组件330中先前安装的插件332版本。在一些实施例中,离线模型训练逻辑346可以在当客户端组件330在客户端设备300上执行时,用更新版本的插件332自动替换客户端组件330中先前安装的插件332版本。替代地,离线模型训练逻辑346可以在当客户端组件330不在客户端设备300上执行时,用更新版本的插件332自动替换客户端组件330中先前安装的插件332版本,例如在客户端设备300上安装客户端组件330之前。
96.图5是示出在一些实施例的操作期间执行的步骤的第二示例的流程图。在图5的示例中,图4中所示的步骤和上面参考图4描述的步骤被修改,使得在客户端组件330在步骤500处处理收集到的用户输入338之后,并且在客户端组件330在步骤525处将收集到的用户输入338传输到远程托管应用程序348之前,在步骤404处收集收集到的用户输入338(例如,通过准备收集到的用户输入338用于传输到远程托管应用程序348)。因此,在图5的步骤中,由客户端组件330对收集到的用户输入338执行的任何处理是在监控逻辑334分析收集到的用户输入338之前执行。相比之下,在图4的步骤中,在由客户端组件300对收集到的用户输入338进行处理之前,由监控逻辑334分析收集到的用户输入338。因此,在客户端组件300通过准备收集到的用户输入338用于传输到远程托管应用程序348来处理收集到的用户输入338的实施例中,图5示出了在监控逻辑334分析收集到的用户输入338之前,可以如何准备收集到的用户输入338用于传输到远程托管应用程序348。在图4和图5两者中,在收集到的用户输入338传输到远程托管应用程序348之前,监控逻辑334检测到恶意软件生成的用户输入。
97.进一步在图5的步骤中,在步骤406处执行的对收集到的用户输入338的分析检测410收集到的用户输入338不指示模拟用户提供的输入的机器行为的情况下,则步骤406之后是步骤525,其中因为客户端组件300已经准备好收集到的用户输入338用于传输到远程托管应用程序348,所以将收集到的用户输入338从客户端设备300传输到远程托管应用程序348,而无需客户端组件330进一步处理。
98.图6是示出了在一些实施例的操作期间由离线模型训练过程346在执行离线模型训练以针对训练数据集350中每组标记的收集到的用户输入生成标记向量时执行的步骤的示例的流程图,例如在图4或图5的步骤426处。图6的步骤600

608也可以由监控逻辑334执行以从收集到的用户输入338中提取特征向量以与一个或多个先前标记的特征向量进行比较,同时确定收集到的用户输入338是否指示模拟用户提供的输入的机器行为。
99.在图6的示例中,出于解释的目的,从对应组收集到的用户输入中提取的每个标记特征向量描述该组收集的用户输入内的鼠标输入。然而,所公开的技术不限于提取鼠标输入相关特征的实施例。本领域技术人员将认识到,所公开的技术可以被具体实施为替代地或附加地基于可以从对应组收集到的用户输入中提取的其他特定类型的特征来生成和操作例如描述键盘输入或描述一些其他类型的用户输入的一个或多个特征,和/或与下面描述的那些特征不同的其他与鼠标输入相关的特征。
100.在步骤600处,可以从该组收集到的用户输入中提取描述该组收集到的用户输入中包含的鼠标动作总数的一个或多个特征。例如,可以在步骤606处生成特征total_
clicks,其值等于该组收集到的用户输入集合包含的鼠标动作(例如点击)总数。替代地或另外地,可以提取指示在收集到的用户输入内执行的一些其他类型的用户输入动作总数(例如键盘动作总数)的一个或多个特征。
101.在步骤602处,可以生成描述在该组收集到的用户输入中的多个特定屏幕区域的每一个内执行的鼠标动作数量的一个或多个特征。例如,可以在步骤602处生成first_area_clicks、second_area_clicks、third_area_clicks等到ninth_area_clicks的九个特征,每个特征描述在用户界面326内包含的九个离散区域中的对应一个上执行的鼠标动作(例如,点击)总数。例如,用户界面326可以被划分为多个区域,并且为每个区域生成的特征具有等于在该区域内执行的鼠标动作总数的值。例如,用户界面326可以被分成九个相等大小的区域(例如,九个正方形区域),并且可以在步骤602处为这九个区域中的每一个生成对应的特征,其值等于在用户界面326的对应区域内执行的该组收集到的用户输入中的鼠标动作总数(例如,点击)。替代地,可以提取与在用户界面326的特别受关注的单个部分(例如,用户界面326的通常包含登录菜单或一个或多个按钮的中心部分)中执行的鼠标动作总数相等的特征,以便节省客户端设备300的资源(例如,电池、处理器),这些资源将用于计算整个用户界面326中的鼠标动作。
102.在步骤604处,可以生成一个或多个鼠标动作时间间隔特征,其描述该组收集到的用户输入中包含的鼠标动作之间的时间间隔。
103.例如,可以在步骤604处生成max_interval特征,其值等于该组收集到的用户输入中包含的两个连续鼠标动作之间的最大时间间隔。例如,两个连续鼠标动作之间的时间间隔可以由在时间上直接相邻或被其他类型的用户输入动作隔开的一对连续鼠标动作之间的时间量组成。例如,在第一鼠标点击(例如,选择用户界面326内的密码输入字段等)之后是一些键盘动作(例如,多个键盘字符,诸如密码),然后之后是第二鼠标点击(例如,点击“回车”按钮等)的情况下,则第一鼠标动作和第二鼠标动作仍然是连续的鼠标动作,而无论它们之间穿插着键盘动作,并且第一鼠标动作与第二鼠标动作之间的鼠标动作时间间隔将被计算为在发生第一鼠标动作的时间与发生第二鼠标动作的时间之间测量或计算的总时间量。
104.在另一示例中,可以在步骤604处生成min_interval特征,其值等于该组收集到的用户输入中包含的两个连续鼠标动作之间的最小时间间隔。在另一示例中,可以在步骤604处生成mean_interval特征,其值等于该组收集到的用户输入中包含的连续鼠标动作之间的平均时间间隔。并且在另一示例中,可以在步骤604处生成interval_variance特征,其值等于该组收集到的用户输入中的连续鼠标动作之间的时间间隔的方差。
105.在步骤606处,可以生成一个或多个相同的连续鼠标动作特征,该特征描述三个连续的相同鼠标动作在该组收集到的用户输入中发生的频率。例如,可以在步骤606处生成ratio_consecutive_identical_triples特征,其值等于i)在收集到的用户输入中执行三个连续相同鼠标动作的总次数,等于ii)在该组收集到的用户输入中的鼠标动作总数。在另一示例中,可以在步骤606处生成frequency_consecutive_identical_triples特征,其值等于在该组收集到的用户输入中执行三个连续的相同鼠标动作的频率。在另一示例中,可以在步骤606处生成max_consecutive_identical_triples_interval特征,其值等于该组收集到的用户输入中发生三个连续的相同鼠标动作之间的最大时间间隔。并且在另一示例
中,可以在步骤606处生成min_consecutive_identical_triples_interval特征,其值等于该组收集到的用户输入中发生三个连续的相同鼠标动作之间的最小时间间隔。
106.在步骤608处,在步骤600到606中生成的特征被组合成用于该组收集到的用户输入的单个特征向量。
107.在步骤610处,将分配给生成特征向量的训练数据集350中的该组收集到的用户输入的标签分配给生成的特征向量。
108.例如,在一些实施例中,训练数据集可以包括如下该组收集到的用户输入和关联标签(例如,标签=1意味着指示模拟用户提供的输入的机器行为,标签=0意味着不指示模拟用户提供的输入的机器行为):
109.{收集的用户输入组1},标签=1
110.{收集的用户输入组2},标签=0
111.{收集的用户输入组3},标签=1
112.{收集的用户输入组4},标签=1
113.{收集的用户输入组5},标签=0
114.例如,在一些实施例中,训练数据集中的每组收集到的用户输入和/或收集到的用户输入338可以通过以下描述包含在其中的每个单独的鼠标动作:i)0指示鼠标动作是鼠标左键单击,或ii)1指示鼠标动作是鼠标右键单击,之后是鼠标动作的屏幕坐标(例如,(xn,yn)),之后是指示发生鼠标动作时间的时间戳,如下:
115.{0(x11,y11),timestamp1;1(x12,y12),timestamp2;0(x13,y13),timestamp3;1(x14,y14),timestamp4;1(x15,y15),timestamp5;0(x16,y16),timestamp6;...}
116.例如,在一些实施例中,离线模式训练逻辑346可以如下所示为上述示例训练数据集生成标记特征向量:
117.{特征向量1},标签=1
118.{特征向量2},标签=0
119.{特征向量3},标签=1
120.{特征向量4},标签=1
121.{特征向量5},标签=0
122.应注意,每个特征向量都分配有与分配给生成特征向量组的对应用户输入组相同的标签。根据图6的示例,在一些实施例中,每个生成的特征向量可以由以下特征组成:
123.{total_clicks;first_area_clicks;second_area_clicks;third_area_clicks;fourth_area_clicks;fifth_area_clicks;sixth_area_clicks;seventh_area_clicks;eigth_area_clicks;ninth_area_clicks;max_interval;min_interval;mean_interval;interval_variance;ratio_consecutive_identical_triples;frequency_consecutive_identical_triples;max_consecutive_identical_triples_interval;min_consecutive_identical_triples_interval}
124.在一些实施例中,在插件332的操作期间,监控逻辑334基于从收集到的用户输入338中提取的特征向量检测收集到的用户输入338是否指示模拟用户提供的输入的机器行为。在其中插件332是由离线模型训练逻辑346响应于训练数据集350生成的实施例中,监控逻辑334包括由离线模型训练逻辑346使用从训练数据集350中的该组收集到的用户输入中
提取(例如,在步骤426处)的特征向量生成(例如,在步骤428处)的训练模型。因此,监控逻辑334可以为收集到的用户输入338生成特征向量,然后使用监控逻辑334中的训练模型来基于收集到的用户输入338的特征向量检测收集到的用户输入338是否指示模拟用户提供的输入的机器行为。
125.例如,在为收集到的用户输入338生成的特征向量与为训练数据集350中一组收集到的用户输入338生成的先前标记的特征向量相匹配的情况下,监控逻辑334中的训练模型可以检测到收集到的用户输入338指示模拟用户提供的输入的机器行为,该特征向量被标记为指示模拟用户提供的输入的机器行为。
126.在另一示例中,在为收集到的用户输入338生成的特征向量与为训练数据集350中一组收集到的用户输入338生成的先前标记的特征向量相匹配的情况下,监控逻辑334中的训练模型可以检测到收集到的用户输入338不指示模拟用户提供的输入的机器行为,该特征向量被标记为不指示模拟用户提供的输入的机器行为。
127.图7是示出在一些实施例的操作期间执行的步骤的另一示例的流程图。
128.如图7中所示,在步骤700处,收集由提供对远程托管应用程序的访问的客户端设备接收的用户输入。
129.在步骤702处,客户端设备分析收集到的用户输入以检测收集到的用户输入是否指示模拟用户提供的输入的机器行为。
130.在步骤704处,响应于检测到收集到的用户输入指示模拟用户提供的输入的机器行为,防止后续访问远程托管应用程序。
131.虽然以上描述提供了使用各种特定术语来指示特定系统、设备和/或组件的实施例的示例,但是这些术语仅是说明性的,并且仅用于方便和简洁解释的目的。所公开的系统不限于包括或涉及由以上使用的术语标识的系统、设备和/或组件的实施例。
132.本文公开的技术方面可以具体实施为系统、方法或计算机程序产品。因此,可以使用硬件、软件(包括固件、常驻软件、微代码等)或软件和硬件的组合来具体实施本文描述的元件。此外,本文所示的实施例的功能可以采用至少部分地在一个或多个非暂时性计算机可读存储介质中具体实施的计算机程序产品的形式,该一个或多个非暂时性计算机可读存储介质具有存储在其上的计算机可读程序代码,用于使一个或多个处理器执行这些功能。
133.可以利用一个或多个非暂时性计算机可读存储介质的任何组合。非暂时性计算机可读存储介质的示例包括但不限于光盘(例如,cd或dvd)、光存储设备、磁盘、磁存储设备、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)和/或上述的任何合适组合。在本文档的上下文中,计算机可读存储介质可以是可以包含或存储由指令执行系统、装置或设备使用或与其结合使用的程序的任何非暂时性有形介质。
134.附图包括根据一个或多个实施例的方法、装置和计算机程序产品的方框图和流程图说明。应当理解,这些图中的一个或多个方框以及这些方框的组合可以通过计算机程序指令来实现。这些计算机程序指令可以在处理电路上执行以形成专用硬件。计算机程序指令还可以被加载到计算设备上以产生机器,使得在计算设备上执行的指令创建用于实现在一个或多个方框中指定的功能的装置。计算机程序指令还可以被存储在计算机可读存储器中,该计算机可读存储器可以引导计算设备以特定方式运行,使得存储在计算机可读存储器中的指令产生包括实现在一个或多个方框中指定的功能的指令装置的制品。计算机程序
指令还可以被加载到一个或多个计算设备和/或计算机上,以导致执行一系列操作步骤以产生计算机实现的过程,使得指令在执行时提供用于实现在一个或多个方框中指定的功能的步骤。
135.本领域普通技术人员还将理解,在不脱离本文描述的发明构思的情况下,可以对所示出的实施例进行修改和变化。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献