对恶意客户端设备的模糊服务器响应的制作方法
【专利摘要】本发明的实施例涉及对恶意客户端设备的模糊服务器响应。安全设备可以接收来自客户端设备并且意在服务器设备的提供资源的请求。该资源可以与服务器设备所存储的信息相关联。安全设备可以将请求标识为与恶意脚本相关联。该恶意脚本可以在客户端设备上执行并且包括执行涉及服务器设备的一个或多个不期望任务的脚本。安全设备可以从服务器设备接收对该请求的响应。该响应可以包括与所请求的资源相关联的信息。安全设备可以修改响应以形成经修改响应。响应可被修改以尝试使恶意脚本经受错误。安全设备可以将经修改响应提供给客户端设备。
【专利说明】
对恶意客户端设备的模糊服务器响应
【技术领域】
[0001]本发明涉及网络技术。
【背景技术】
[0002]模糊测试是一种可被用于发现包含在程序、操作系统、网络等之中的为体(例如,编码错误,安全性漏洞,等等)。例如,可以通过向系统输入随机数据(例如,细毛(fuzz))以尝试使系统崩溃来执行与该系统相关联的模糊测试。
【发明内容】
[0003]根据某些可行实现,一种安全设备,包括一个或多个处理器,用于:接收来自客户端设备并且意在服务器设备的提供资源的请求,其中该资源可以与服务器设备所存储的信息相关联;将请求标识为与恶意脚本相关联,其中该恶意脚本可以在客户端设备上执行并且包括执行涉及服务器设备的一个或多个不期望任务的脚本;从服务器设备接收对该请求的响应,其中该响应可以包括与所请求的资源相关联的信息;修改响应以形成经修改响应,其中响应可被修改以尝试使恶意脚本经受错误;以及将经修改响应提供给客户端设备。
[0004]根据某些可行的实现,一种计算机可读介质可以存储一个或多个指令,其可由一个或多个处理器执行,使得一个或多个处理器:从客户端设备接收针对服务器设备所存储的信息的请求;确定所述请求与脚本相关联,所述脚本包括涉及所述服务器设备的一个或多个不期望任务的自动执行;接收对所述请求的响应,所述响应包括与请求的所述信息相关联的信息,所述响应由所述服务器设备提供;修改所述响应以形成经修改响应,所述响应被修改以改变所述响应中包括的所述信息;将所述经修改响应提供给所述客户端设备以使所述脚本经受导致所述脚本崩溃的错误。
[0005]根据某些可行实现,一种方法,包括:由安全设备接收提供与服务器设备相关联的资源所关联的信息的请求;由所述安全设备将所述请求标识为与脚本相关联,所述脚本在所述服务器设备上执行一个或多个不期望任务;由所述安全设备接收与所述请求相关联的响应,所述响应由所述服务器设备提供;由所述安全设备修改与所述请求相关联的所述响应,修改所述响应包括改变所述响应中包括的所述信息的一个或多个部分;以及由所述安全设备发送经修改响应以尝试使所述脚本崩溃。
【专利附图】
【附图说明】
[0006]图1是在此描述的示例性实现的概述的框图;
[0007]图2是在此描述的系统和/或方法可实现于其中的示例环境的框图;
[0008]图3是图2的一个或多个设备的示例组件的框图;
[0009]图4是用于修改将被提供给客户端设备的响应以导致在客户端上执行的恶意脚本经受致命错误的示例过程的流程图;以及
[0010]图5A-图5E是涉及图4所示的示例过程的示例实现。
【具体实施方式】
[0011]下面对示例实现的详细描述将参考附图。在不同的图中,相同的标号可以标识相同或者相似的元素。
[0012]脚本可以包括一个或多个任务的集合,这些任务将由客户端设备自动执行(例如,无需任何用户干预)。客户端设备可以关于服务器设备(例如,与网站相关联的服务器)而加载脚本以用于恶意目的(例如,加载感染,窃取网站内容,等等)。这样,可能期望阻止恶意脚本访问与服务器设备相关联的信息。阻止恶意脚本访问与服务器设备相关联的信息的一种方法是导致脚本完全停止运行(例如,通过导致恶意脚本经受致命错误,该致命错误可以使恶意脚本崩溃)。当向脚本提供修改的(例如,模糊的)响应(例如,与请求所针对的服务器相关联的、包含一个或多个错误的有意存在缺陷的响应)时,恶意脚本可以经受到致命错误,其中浏览器(由用户使用)不会由于经修改响应而经受到致命错误。在此描述的实现可以允许与服务器设备相关联的安全设备向运行恶意脚本的客户端设备提供经修改响应,以尝试导致恶意脚本崩溃(例如,由此保护服务器不受恶意脚本影响)。
[0013]图1是在此描述的示例实现100的概览框图。出于图1之目的,假设客户端设备正在执行一个脚本,以访问与服务器设备(例如,与网站相关联)的信息以用于恶意目的(例如,加载感染,窃取网站内容,等等)。此外,假设安置有安全设备以保护服务器设备不受恶意脚本影响。
[0014]如图1所示,假设客户端设备发出以服务器设备为目的地的请求(例如,基于运行恶意脚本)。还如所示,安全设备可以接收到请求,并且可以标识请求与恶意脚本相关联。如图所示,服务器设备可以接收请求(例如,经由安全设备)并且可以生成对请求的响应。服务器设备可以向安全设备发送响应,如图所示。
[0015]还如图1所示,安全设备可以修改响应以生成经修改响应(例如,可以导致恶意脚本崩溃的响应),并且可以将经修改响应提供给客户端设备。以此方式,安全设备可以向运行恶意脚本的客户端设备提供经修改响应,其可以导致恶意脚本崩溃(例如,从而保护服务器设备不受恶意脚本影响)。
[0016]图2是在此描述的系统和/或方法可实现于其中的示例环境200的框图。如图2所示,环境200可以包括客户端设备210、网络220、服务设备230以及安全设备240。
[0017]客户端设备210可以包括能够经由网络(例如,网络220)与其他设备(例如,月艮务器设备230)和/或能够接收由其他设备(例如,服务器设备230)提供的信息的一个或多个设备。例如,客户端设备210可以包括计算设备,诸如膝上型计算机、平板式计算机、手持式计算机、桌面计算机、移动电话(例如,智能电话、无线电话,等等)、个人数字助理,等等。在某些实现中,客户端设备210可以能够运行脚本,脚本经由网络220从诸如服务器设备230的其他设备请求信息。
[0018]网络220可以包括一个或多个有线和/或无线网络。例如,网络220可以包括无线局域网(WLAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网络(例如,公共交换电话网(PSTN))、蜂窝网络、公共陆地移动网络(PLMN)、ad hoc网络、内联网、因特网、基于光纤的网络或者这些以及其他类型网络的组合。在某些实现中,网络220可以允许诸如客户端设备210、服务器设备230和/或安全设备240的设备之间的通信。
[0019]服务器设备230可以包括能够接收、提供、生成、存储和/或处理经由网络(例如,网络220)和/或其他设备(例如,安全设备240)而提供的信息的一个或多个设备。例如,服务器设备230可以包括计算设备,诸如服务器(例如,应用服务器,内容服务器,主机服务器,web服务器,等等)。在某些实现中,服务器设备230可以从客户端设备210接收信息和/或向客户端设备210提供信息(例如,经由网络220和/或安全设备240)。附加地或备选地,服务器设备230可以能够生成对接收自另一设备(例如,客户端设备210)的请求的响应。
[0020]安全设备240可以包括能够接收、提供、生成、存储和/或处理经由网络(例如,网络220)和/或其他设备(例如,服务器设备230)而提供的信息的一个或多个设备。例如,安全设备240可以包括计算设备,例如服务器。在某些实现中,安全设备240可以从客户端设备210和/或服务器设备230接收信息,和/或向客户端设备210和/或服务器设备230提供信息(例如,经由网络220)。附加地或备选地,安全设备240可以包括能够处理和/或传送客户端设备210与服务器设备230之间的通信(例如,请求,响应,等等)的一个或多个设备。例如,安全设备240可以包括网络设备,诸如逆向代理、服务器(例如,代理服务器)、业务传送设备、防火墙、路由器、负载均衡器,等等。
[0021]在某些实现中,安全设备240可以能够将请求标识为与恶意脚本相关联。附加地或备选地,安全设备240可以能够修改对与恶意脚本相关联的请求(例如,由客户端设备210做出)的响应(例如,由服务器设备230提供)所关联的信息(例如,通过插入附加信息,移除部分信息,修改信息,使信息模糊,等等)。
[0022]安全设备240可以与单个服务器230或者成组服务器设备230(例如,数据中心)结合使用。可以通过安全设备240来路由通信,以到达一个或多个服务器设备230。例如,安全设备240可以被置于网络内,作为去往包括一个或多个服务器设备230的专用网络的网关。
[0023]图2中所示的设备和网络的数目仅出于说明目的而提供。在实践中,与图2相比,可以存在更多的设备和/或网络,更少的设备和/或网络,不同的设备和/或网络,或者布置不同的设备和/或网络。而且,图2中所述的两个或更多设备可以实现在单个设备中,或者图2中所示的单个设备可以被实现为多个分布式设备。而且,环境200的一个或多个设备可以执行在此被描述为由环境200的其他一个或多个设备执行的一个或多个功能。环境200的设备可以经由有线连接、无线连接或者有线和无线连接的组合来互连。
[0024]图3是设备300的示例组件。设备300可以对应于客户端设备210、服务器设备230和/或安全设备240。附加地或备选地,客户端设备210、服务器设备230和/或安全设备240中的每一个可以包括一个或多个设备300和/或设备300的一个或多个组件。如图3所示,设备300可以包括总线310、处理器320、存储器330、输入组件340、输出组件350以及通信接口 360。
[0025]总线310可以包括允许设备300的组件之间的通信的路径。处理器320可以包括解释和/或执行指令的处理器、微处理器和/或任何处理组件(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC),等等)。在某些实现中,处理器320可以包括一个或多个处理器核。存储器330可以包括存储由处理器320使用的信息和/或指令的随机访问存储器(RAM)、只读存储器(ROM)和/或任何类型的动态或静态存储设备(例如,闪存,磁性存储器,光学存储器,等等)。
[0026]输入组件340可以包括允许用户向设备300输入信息的任何组件(例如,键盘,小键盘,鼠标,按钮,开关,等等)。输出组件350可以包括从设备300输出信息的任何组件(例如,显示器,扬声器,一个或多个发光二极管(LED),等等)。
[0027]通信接口可以包括任何收发器类型的组件,诸如收发器和/或独立的接收器和发射器,其使得设备300能够与其他设备和/或系统通信,诸如经由有线连接、无线连接或者有线和无线连接的组合。例如,通信接口 360可以包括用于经由网络与其他设备和/或系统通信的组件。附加地或备选地,通信接口 360可以包括具有支持去往和/或来自其他设备的数据的传输的输入和输出端口、输入和输出系统和/或输入和输出组件的逻辑组件,诸如以太网接口、光学接口、同轴电缆接口、红外接口、射频(RF)接口、通用串行总线(USB),
坐坐寸寸ο
[0028]设备300可以执行在此描述的各种功能。设备300可以响应于处理器320执行包括在诸如存储器330中的计算机可读介质中的软件指令而执行这些操作。存储器设备可以包括单个物理存储设备中的存储器空间,或者跨多个物理存储设备分布的存储器空间。
[0029]软件指令可以从另一计算机刻度介质或者经由通信接口 360从其他设备被读入存储器330。当被执行时,存储在存储器330中的软件指令可以使处理器330执行在此描述的一个或多个过程。附加地或备选地,取代软件指令或者与之结合,可以使用硬件电路来执行在此描述的一个或多个过程。由此,在此描述的实现不限于硬件电路和软件的任何特定组合。
[0030]图3中所示的组件的数目仅出于说明目的而被提供。在实践中,与图3所示相比,设备300可以包括更多的组件,更少的组件,不同的组件或者布置不同的组件。
[0031]图4是用于修改将被提供给客户端设备的响应以导致在客户端上执行的恶意脚本经受致命错误的示例过程的流程图。在某些实现中,图4的一个或多个框可由安全设备240来执行。在某些实现中,图4的一个或多个框可由独立于或者包括安全设备240的另一设备或者一组设备来执行,诸如服务器设备230。
[0032]如图4所示,过程400可以包括从客户端设备接收与服务器设备相关联的请求(框410)。例如,安全设备240可以从客户端设备210接收与服务器设备230相关联的请求。在某些实现中,安全设备240可以在客户端设备210经由网络220发送请求时,从客户端设备210接收该请求。在某些实现中,安全设备240可以在服务器设备230接收到请求之前接收该请求(例如,安全设备240可以在网络220中被置于客户端设备210与服务器设备230之间)。
[0033]请求包括从客户端设备210发往服务器设备230 (例如,经由安全设备240和/或网络220)的消息,该消息标识客户端设备210希望从服务器设备230接收的资源(例如,超文本标记语言(HTML)文件,图像文件,视频文件,音频文件,等等)。在某些实现中,请求可以与特定的应用协议相关联,诸如超文本传输协议(HTTP)、超文本传输协议安全、文件传输协议,等等。例如,客户端设备210可以针对与服务器设备230所托管的网站的web地址(例如,统一资源定位符(URL))的HTML文件的HTTP请求。
[0034]在某些实现中,请求可以包括标识客户端设备210的信息(例如,标识客户端设备210的字符串,与客户端设备210相关联的网络地址,与客户端设备210相关联的端口号,等等)。附加地或备选地,请求可以包括标识客户端设备210所请求的资源的信息,诸如统一资源标识符(URI)。
[0035]在某些实现中,安全设备240可以基于请求中所包括的信息来接收请求。例如,安全设备240可以基于请求中包括的与服务器设备230相关联的IP地址来接收请求(例如,当安全设备240被放置以接收针对服务器设备230的请求时)。作为附加示例,安全设备240可以基于请求中包括的与网站相关联的信息(例如,URL)来接收请求(例如,当安全设备240被配置为接收与网站相关联的请求时)。
[0036]还如图4所示,过程400可以包括将请求标识为与恶意脚本相关联(框420)。例如,安全设备240可以将接收自客户端设备210的请求标识为与恶意脚本相关联。在某些实现中,安全设备240可以在安全设备240从客户端设备210接收到请求时(例如,在安全设备240接收到请求之后),将该请求标识为与恶意脚本相关联。附加地或备选地,安全设备240可以在安全设备240从服务器设备230接收到与请求相关联的信息时,将该请求标识为与恶意脚本相关联。
[0037]在某些实现中,安全设备240可以基于请求中包括的信息将请求标识为与恶意脚本相关联。例如,安全设备240可以基于标识客户端设备210的信息(例如,网络地址)将请求标识为与恶意脚本相关联(例如,当客户端设备210被已知为在过去运行过恶意脚本,或者被已知为与恶意活动相关联)。附加地或备选地,安全设备240可以基于与接收自客户端设备210的一个或多个其他请求有关的活动,来将请求标识为与恶意脚本相关联。例如,安全设备240可以从客户端设备210接收多个请求(例如,与网站上的多个链接相关联的多个请求),其可以指示不期望的脚本活动(例如,爬取、窃取,等等)。作为附加示例,安全设备240可以基于接收到满足请求的阈值数量的多个请求而将请求标识为与恶意脚本相关联(例如,当接收到的请求的数量超过阈值数量时,安全设备240可以将请求标识为与恶意脚本相关联,等等)。作为另一示例,安全设备240可以基于在特定的阈值时间量之内接收到的请求的数量,将请求标识为与恶意脚本相关联(例如,当在预定时间量之内接收到大量请求时,安全设备240可以将请求标识为与恶意脚本相关联,等等)。
[0038]在某些实现中,安全设备240可以基于接收到具有已知攻击签名的请求,将请求标识为与恶意脚本相关联(例如,安全设备可以存储标识已知攻击签名的信息,并且可以基于请求的内容来识别攻击签名)。在某些实现中,安全设备240可以基于与一个或多个先前请求相关联的信息(例如,安全设备240和/或服务器设备230存储的服务器日志,其指示该请求可能与恶意脚本相关联),将请求标识为与恶意脚本相关联。
[0039]在某些实现中,安全设备240可以基于由安全设备240确定的请求与恶意脚本相关联的可能性,将请求标识为与恶意脚本相关联。例如,安全设备240可以确定(例如,基于与请求相关联的信息,基于与客户端设备210相关联的信息,基于与从客户端设备210接收到的另一请求相关联的信息,等等)与请求相关联的得分,并且该得分反映请求与恶意脚本相关联的可能性。在此示例中,如果得分满足阈值,则安全设备240可以将请求标识为与恶意脚本相关联。相反,如果得分不满足阈值,则安全设备240可以不将请求标识为与恶意脚本相关联。
[0040]在某些实施例中,安全设备240可以基于将请求标识为与恶意脚本相关联而存储信息,诸如标识客户端设备240的信息(例如,网络地址,等等),用于将请求标识为与恶意脚本相关联的、与请求相关联的信息(例如,接收到请求的日期,接收到请求的时间,等等)。在某些实现中,当安全设备240将请求标识为与恶意脚本相关联时,安全设备240可以向服务器设备230转发请求。
[0041]在某些实现中,安全设备240可以将请求标识为与恶意脚本相关联,并且安全设备240可以生成伪造响应(例如,未包括响应于请求的信息的响应)。在此情况下,安全设备240可以向客户端设备210提供伪造响应(例如,不将请求转发给服务器设备230和/或从服务器设备230接收对请求的响应)。
[0042]还如图4所示,过程400可以包括接收由服务器设备230提供的与请求相关联的响应(框430)。例如,安全设备240可以接收由服务器设备230提供的与请求(例如,使用恶意脚本做出的请求)相关联的响应。在某些实现中,安全设备240可以在服务器设备230向安全设备240发送响应时接收响应。
[0043]在某些实现中,安全设备240可以基于将请求标识为与恶意脚本相关联而接收响应。例如,安全设备240可以将请求标识为与恶意脚本相关联(例如,基于客户端设备210所做出的请求),并且可以接收由服务器设备230提供的响应(例如,对请求的响应)(例如,在响应被提供给客户端设备210之前)。在某些实现中,安全设备240可以基于将一个或多个请求标识为与恶意脚本相关联而接收一个或多个响应(例如,当客户端设备210在安全设备240将请求标识为与恶意脚本相关联之后发送一个或多个请求)。在某些实现中,安全设备240可以在一个或多个响应被发送给客户端设备210之前接收该一个或多个响应。
[0044]还如图4所示,过程400可以包括基于将请求标识为与恶意脚本相关联而修改响应(框400)。例如,安全设备240可以基于将请求标识为与在客户端设备210上执行的恶意脚本相关联,而修改由服务器设备230提供的响应。在某些实现中,安全设备240可以在安全设备240接收到响应(例如,从服务器设备230)时修改响应。
[0045]响应可以包括由服务器设备230提供的消息,其包括客户端设备210所请求的资源(例如,HTML文件,图像文件,音频文件,视频文件,等等)和/或其他信息。例如,服务器设备230可以发送针对由服务器设备230托管的网站的web地址(例如,URL)相关联的HTML文件的请求的响应,其包括该HTML文件和/或与向客户端设备210提供该HTML文件相关联的其他信息。
[0046]在某些实现中,响应可以包括标识客户端设备210的信息,诸如与客户端设备210相关联的网络地址,与客户端设备210相关联的端口号,等等。附加地或备选地,响应可以包括标识服务器设备230的信息,诸如与服务器设备230相关联的网络地址,与服务器设备230相关联的端口号,等等。附加地或备选地,响应可以包括与向客户端设备210提供在请求中标识的资源相关联的其他信息。
[0047]在某些实现中,安全设备240可以通过修改响应中包含的信息来修改响应(例如,通过添加信息,移除信息,改变信息,等等)。例如,安全设备240可以通过修改与响应中包括的重定向相关联的信息来修改响应(例如,通过移除重定向位置,通过插入相关的重定向位置,通过向基本认证URL插入重定向,通过向重定向插入无效字符,等等)。
[0048]附加地或备选地,安全设备240可以有通过修改与响应相关联的响应主体中包括信息来修改响应(例如,通过改变与响应主体相关联的编码方案,通过修改响应中指示的内容类型,通过不正确地标识与响应主体相关联的标记语言,等等)。
[0049]附加地或备选地,安全设备240可以通过与响应相关联的压缩应用所关联的信息来修改响应(例如,通过不正确地指示响应被压缩,等等)。附加地或备选地,安全设备240可以通过修改响应中包括的状态编码来修改响应(例如,通过改变和/或随机化HTTP状态编码,等等)。附加地或备选地,安全设备240可以通过包括有缺陷的资源来修改响应(例如,通过提供没有结束标签的HTML文件,通过提供包括不存在的标签的HTML文件,等等)。
[0050]附加地或备选地,安全设备240可以通过修改与响应中包括的长度报头相关联的信息来修改响应(例如,通过改变长度报头以使得长度报头大于所提供的内容量,通过改变长度报头以使得长度报头为负数,通过改变长度报头以使得长度报头小于所提供的内容
Jl.?寸寸/ O
[0051]在某些实现中,安全设备240可以通过改变响应中包括的其他信息来修改响应(例如,通过插入不正确的基本认证报头,通过插入在URL中具有空字节的对页面的链接,通过返回嵌入在可扩展标记语言(XML)文档中的可扩展样式表单语言(XSL)模板而不是HTML,通过插入对针对资源的请求的任意缓存的响应而不是任意缓存的响应,等等)。
[0052]在某些实现中,安全设备240可以通过使响应模糊来修改响应(例如,通过向响应添加随机的信息)。在某些实现中,安全设备240可以通过其他方式来修改响应(例如,所列出的修改技术不是可行修改技术的穷尽)。在某些实现中,安全设备240可以存储与一个或多个修改技术相关联的信息(例如,安全设备240可以存储可行修改技术的数据结构)。在某些实现中,安全设备240可以使用一个或多个修改技术修改响应,以便修改响应。附加地或备选地,安全设备240可以选择(基于与安全设备240存储的一个或多个修改技术相关联的信息)将被应用于响应的一个或多个修改技术。在某些实现中,安全设备240可以随机地选择将被用于修改响应的一个或多个修改技术。附加地或备选地,安全设备240可以生成任意的响应(例如,响应被随机化和/或与请求无关),并且可以通过利用该任意响应替换响应来修改响应。
[0053]还如图4所示,过程400可以包括向客户端设备提供经修改响应(框450)。例如,安全设备240可以向客户端设备210提供经修改响应。在某些实现中,安全设备240可以在安全设备240修改响应时提供经修改响应。附加地或备选地,安全设备240可以在安全设备240从另一设备(例如,服务器设备230)接收到指示将要提供经修改响应的信息时,提供经修改响应。
[0054]在某些实现中,安全设备240可以经由网络220向客户端设备210提供经修改响应。在某些实现中,安全设备240可以提供经修改响应,而不提供指示安全设备240已经修改了响应的信息(例如,客户端设备210可能不知道响应已经被修改)。
[0055]在某些实现中,经修改响应可以导致恶意脚本经受致命错误(例如,恶意脚本可能无法处理经修改响应,并且可能崩溃)。在这种情况下,安全设备240可以终止与客户端设备210的通信。备选地,经修改响应可能没有使恶意脚本经受致命错误,并且客户端设备210可以基于执行恶意脚本而发送附加的请求。在这种情况下,过程400可以返回框410 (例如,安全设备240可以接收附加的请求),并且安全设备240可以向附加请求提供经修改响应。在某些实现中,安全设备240可以选择不同的修改技术来修改对附加请求的响应,并且当安全设备240接收到与恶意脚本相关联的附加请求时,安全设备240可以继续选择一个或多个不同的修改技术。以此方式,安全设备240可以继续使用多种修改技术(例如,由安全设备240存储)来提供经修改响应(例如,直到安全设备240停止接收到来自客户端设备210的请求,直到特定的经修改响应导致恶意脚本经受致命错误,等等)。
[0056]以此方式,安全设备240可以基于从客户端设备210接收到请求来标识恶意脚本,并且可以提供经修改响应以尝试导致恶意脚本经受致命错误(例如,导致脚本崩溃的错误)
[0057]尽管图4示出了过程的示例框,但是在某些实现中,与图4所述的框相比,过程400可以包括附加的框,不同的框,更少的框,或者不同布置的框。附加地或备选地,过程400的一个或多个框可以并行执行。
[0058]图5A到图5E分别是与图4中所示的示例过程400相关的示例实现500的示图。出于例示实现500的目的,假设客户端⑶I正在运行恶意脚本,其被设计为窃取由WebShop (Web商店)服务器托管的网站WebShop的内容。此外,假设WebShop安全设备被配置为识别恶意脚本,并且通过提供对与恶意脚本相关联的请求模糊响应俩尝试使恶意脚本崩溃,从而保护WebShop服务器。
[0059]如图5所示,假设⑶I发送接收与WebShop主页相关联的信息(例如,HTML文件)的请求。如图所示,请求可以包括指示源自CDl的请求的信息,并且可以指示CDl希望从WebShop服务器接收WebShop主页。还如图所示,WebShop安全设备可以接收请求,并且可以将请求转发给WebShop服务器。假设:此时,WebShop安全设备尚未标识到请求与恶意脚本相关联。
[0060]还如图5A所示,WebShop服务器可以生成对请求的响应,并且可以向⑶I提供响应(例如,经由WebShop安全设备)。如图所示,WebShop安全设备可以不在向⑶I提供响应之前对响应进行模糊(例如,因为WebShop设备尚未将请求标识为与恶意脚本相关联)。
[0061]出于图5B目的,假设WebShop主页(由⑶I接收)包括去往WebShop男性产品页面的链接、去往WebShop女性产品页面的链接以及去往WebShop儿童产品页面的链接。如图5B所示,假设⑶I在0.10秒时段内发送两个请求,包括接收WebShop女性产品页面的请求和接收WebShop男性产品页面的请求。还如图所示,WebShop安全设备可以接收到请求,并且可以将所述请求标识为与⑶I上运行的恶意脚本相关联(例如,WebShop安全设备可以确定在0.10秒时段内接收到的两个请求指示恶意脚本活动)。如图所示,WebShop安全设备可以存储来自CDl的请求与恶意脚本相关联的信息。还如图5B所示,WebShop安全设备可以将请求转发个WebShop服务器。
[0062]如图5C所示,WebShop服务器可以生成和提供对与WebShop男性产品页面相关联的请求的响应(例如,与成功的HTTP请求相关联的请求)。如图所示,响应可以包括与请求相关联的HTTP状态编码(例如“2000K”),与请求相关联的内容类型(“文本/html”),与请求相关联的内容长度(例如,174)以及与响应相关联的其他内容(未示出)。还如图所示,WebShop安全设备可以接收到响应(例如,在向⑶I发送响应之前)。如图所示,WebShop安全设备可以选择一种模糊技术,并且使用所选择的模糊技术通过改变响应中包括的HTTP状态编码(例如,将“2000K”变为“302找到”)来修改响应。还如图所示,WebShop安全设备可以向⑶I提供经模糊的响应。
[0063]如图所示,WebShop服务器可以生成和提供对与WebShop女性产品页面相关联的请求的响应(例如,重定向)。如图所示,响应可以包括与请求相关联的HTTP状态编码(例如“301永久移动”),与请求相关联的位置(“http://www.webshopwomen.com”),与请求相关联的内容类型(“文本/html”),与请求相关联的内容长度(例如,182)以及与响应相关联的其他内容(未示出)。还如图所示,WebShop安全设备可以接收到响应(例如,在向⑶I发送响应之前)。如图所不,WebShop安全设备可以选择一种模糊技术(不同于用来修改较早响应的技术),并且使用所选择的模糊技术通过改变响应中包括的内容类型(例如,将“文本/html”变为“文本/垃圾”)来修改响应。还如图所示,WebShop安全设备可以向CDl提供经模糊的响应。
[0064]如图5E所示,假设与WebShop男性产品页面和WebShop女性产品页面相关联的模糊响应没有导致在⑶I上运行的恶意脚本经受致命错误。此外,假设⑶I发送与WebShop儿童产品页面相关俩的第三请求。如图所示,WebShop安全设备可以将请求标识为与恶意脚本相关联(例如,由于从CDl收到过请求),并且将请求转发给WebShop服务器。还如图所示,WebShop服务器可以生成和提供对与WebShop儿童产品页面相关联的请求的响应(例如,重定向)。
[0065]还如图5E所示,响应可以包括与请求相关联的HTTP状态编码(例如“301永久移动”),与请求相关联的位置(“http://www.webshopkids.com”),与请求相关联的内容类型(“文本/html”),与请求相关联的内容长度(例如,154)以及与响应相关联的其他内容(未示出)。还如图所示,WebShop安全设备可以接收到响应(例如,在向⑶I发送响应之前)。如图所示,WebShop安全设备可以选择两种模糊技术,并且使用所选择的模糊技术通过改变响应中包括的HTTP状态代码(例如,从301变为500)以及还改变响应中的内容长度(例如,从154变为-50)来修改响应。还如图所示,WebShop安全设备可以向⑶I提供经模糊的响应。
[0066]还如图所示,与WebShop儿童产品页面相关联的模糊响应可导致在⑶I上运行的恶意脚本经受致命错误(例如,导致恶意脚本崩溃),并且WebShop安全设备可不再受到来自⑶I的任何附加请求。以此方式,WebShop安全设备可以向⑶I提供模糊响应,直到恶意脚本崩溃(例如,直到⑶I停止向WebShop服务器发送请求)。
[0067]如上所述,图5A至图5E仅仅是作为示例而提供的。其他示例是可能的,并且可以与关于图5A至图5E所描述的不同。
[0068]在此描述的实现可以允许与服务器设备相关联的安全设备向运行恶意脚本的客户端设备提供经修改响应,以尝试导致恶意脚本崩溃(例如,由此保护服务器设备不受恶意脚本影响)。
[0069]虽然上述公开内容提供了图示和描述,但是并不旨在成为详尽性的或者将实现限定于所公开的精确形式。根据以上公开内容的修改和变化是可能的,或者可以从对实现的实践中获得这些修改和变化。
[0070]如这里所使用的,术语组件应当广义解释为硬件、固件,或者硬件与软件的组合。
[0071]将会明白,本文所描述的系统和/或方法能够以附图所图示的实现的许多不同形式的软件、固件和硬件来实现。用于实现这些系统和/或方法的实际软件代码或专用控制硬件并不限于这些实现。因此,所述系统和/或方法的操作和行为是在未参考具体软件代码的情况下来描述的一应当理解,可以基于本文的描述而设计软件和控制硬件来实现所述系统和/或方法。
[0072]虽然在权利要求中陈述了并且/或者在说明书中公开了特征的特定组合,但是这些组合并不旨在限制可能的实现的公开。事实上,这些特征中的许多特征能够以非具体地在权利要求中陈述和/或在说明书中公开的方式相结合。虽然下列每个从属权利要求可以直接从属于仅一个权利要求,但可能的实现的公开包括与整套权利要求中的每个其他权利要求相结合的每个从属权利要求。
[0073]本文所使用的任何元件、动作,或指令均不应解释为是关键的或必需的,除非有明确描述如此。另外,本文所使用的量词“一个”和“一种”旨在包括一个或多个项,并且可以与“一个或多个”互换地使用。此外,本文所使用的术语“一组”旨在包括一个或多个项,并且可以与“一个或多个”互换地使用。在意指仅一项的情况下,使用了术语“一个”或相似的词语。此外,除非另有明确规定,否则短语“基于”旨在表示“至少部分基于”。
【权利要求】
1.一种安全设备,包括: 用于接收来自客户端设备并且意在服务器设备的提供资源的请求的装置,所述资源与所述服务器设备所存储的信息相关联; 用于将所述请求标识为与恶意脚本相关联的装置,所述恶意脚本在所述客户端设备上执行,并且包括执行涉及所述服务器设备的一个或多个不期望任务的脚本; 用于从所述服务器设备接收对所述请求的响应的装置,所述响应包括与请求的所述资源相关联的信息; 用于修改所述响应以形成经修改响应的装置,所述响应被修改以尝试使所述恶意脚本经受错误;以及 用于将所述经修改响应提供给所述客户端设备的装置。
2.根据权利要求1所述的安全设备,还包括: 用于生成任意响应的装置,所述任意响应包括与所述请求无关的信息;以及 其中用于修改所述响应的所述装置包括: 用于通过将所述响应替换为所述任意响应来修改所述响应的装置。
3.根据权利要求1所述的安全设备,还包括: 用于从多个修改技术中随机地选择修改技术的装置;以及 其中用于修改所述响应的所述装置包括: 用于使用随机选择的所述修改技术来修改所述响应的装置。
4.根据权利要求1所述的安全设备,还包括: 用于使用第一修改技术修改所述响应中包括的所述信息的第一部分的装置;以及 用于使用第二修改技术修改所述响应中包括的所述信息的第二部分的装置。
5.根据权利要求1所述的安全设备,其中用于修改所述响应的所述装置包括以下至少一个: 用于向所述响应添加信息的装置; 用于移除所述响应中包括的信息的装置;或者 用于改变所述响应中包括的信息的装置。
6.根据权利要求1所述的安全设备,还包括: 用于从多个修改技术中选择修改技术的装置;以及 其中用于修改所述响应的所述装置包括: 用于使用选择的所述修改技术来修改所述响应的装置。
7.根据权利要求1所述的安全设备,其中所述请求是第一请求,所述响应是第一响应,并且所述经修改响应是第一经修改响应, 所述第一响应使用第一修改技术被修改;以及 其中所述安全设备还包括: 用于接收来自所述客户端设备并且意在所述服务器设备的第二请求的装置; 用于将所述第二请求标识为与所述恶意脚本相关联的装置; 用于从所述服务器设备接收对所述第二请求的第二响应的装置; 用于使用第二修改技术来修改所述第二响应以形成第二经修改响应的装置,所述第二修改技术不同于所述第一修改技术;以及 用于提供所述第二经修改响应以导致所述恶意脚本经受错误的装置。
8.一种系统,包括: 用于从客户端设备接收针对服务器设备所存储的信息的请求的装置; 用于确定所述请求与脚本相关联的装置,所述脚本包括涉及所述服务器设备的一个或多个不期望任务的自动执行; 用于接收对所述请求的响应的装置,所述响应包括与请求的所述信息相关联的信息,所述响应由所述服务器设备提供; 用于修改所述响应以形成经修改响应的装置,所述响应被修改以改变所述响应中包括的所述信息;以及 用于将所述经修改响应提供给所述客户端设备以使所述脚本经受导致所述脚本崩溃的错误的装置。
9.根据权利要求8所述的系统,还包括: 用于生成任意响应的装置,所述任意响应包括与所述请求无关的信息;以及 其中用于修改所述响应的所述装置包括: 用于通过将所述响应替换为所述任意响应来修改所述响应的装置。
10.根据权利要求8所述的系统,还包括: 用于从多个修改技术中随机地选择修改技术的装置;以及 其中用于修改所述响应的所述装置包括: 用于使用随机选择的所述修改技术来修改所述响应的装置。
11.根据权利要求8所述的系统,其中用于修改所述响应的所述装置包括: 用于使用第一修改技术修改所述响应中包括的所述信息的第一部分的装置;以及 用于使用第二修改技术修改所述响应中包括的所述信息的第二部分的装置。
12.根据权利要求8所述的系统,其中用于修改所述响应的所述装置包括: 用于向所述响应添加信息的装置; 用于移除所述响应中包括的信息的装置;或者 用于改变所述响应中包括的信息的装置。
13.根据权利要求8所述的系统,其中用于提供所述经修改响应的所述装置包括: 用于从多个修改技术中选择修改技术的装置;以及 其中用于修改所述响应的所述装置包括: 用于使用选择的所述修改技术来修改所述响应的装置。
14.根据权利要求8所述的系统,其中所述请求是第一请求,所述响应是第一响应,并且所述经修改响应是第一经修改响应, 所述第一响应使用第一修改技术被修改;以及 其中所述系统还包括: 用于接收来自所述客户端设备并且意在所述服务器设备的第二请求的装置; 用于确定所述第二请求与所述脚本相关联的装置; 用于从所述服务器设备接收对所述第二请求的第二响应的装置; 用于使用第二修改技术来修改所述第二响应以形成第二经修改响应的装置,所述第二修改技术不同于所述第一修改技术;以及 用于提供所述第二经修改响应以导致所述脚本经受导致所述脚本崩溃的错误的装置。
15.一种方法,包括: 由安全设备接收提供与服务器设备相关联的资源所关联的信息的请求; 由所述安全设备将所述请求标识为与脚本相关联,所述脚本在所述服务器设备上执行一个或多个不期望任务; 由所述安全设备接收与所述请求相关联的响应,所述响应由所述服务器设备提供; 由所述安全设备修改与所述请求相关联的所述响应,修改所述响应包括改变所述响应中包括的所述信息的一个或多个部分;以及 由所述安全设备发送经修改响应以尝试使所述脚本崩溃。
16.根据权利要求15所述的方法,还包括: 生成任意响应,所述任意响应包括与所述请求无关的信息;以及 其中修改所述响应还包括: 通过将所述响应替换为所述任意响应来修改所述响应。
17.根据权利要求15所述的方法,还包括: 从多个修改技术中随机地选择修改技术;以及 其中修改所述响应还包括: 使用随机选择的所述修改技术来修改所述响应。
18.根据权利要求15所述的方法,其中修改所述响应还包括: 使用修改技术修改所述响应中包括的所述信息的第一部分;以及 使用第二修改技术修改所述响应中包括的所述信息的第二部分。
19.根据权利要求15所述的方法,其中修改所述响应包括以下至少一个: 向所述响应添加信息; 移除所述响应中包括的信息;或者 改变所述响应中包括的信息。
20.根据权利要求15所述的方法,其中所述请求是第一请求,所述响应是第一响应,并且所述经修改响应是第一经修改响应: 所述第一响应使用第一修改技术被修改;以及 其中所述方法还包括: 接收提供与服务器设备相关联的资源所关联的信息的第二请求; 将所述第二请求标识为与所述脚本相关联; 从所述服务器设备接收对所述第二请求的第二响应; 使用第二修改技术来修改所述第二响应以形成第二经修改响应,所述第二修改技术不同于所述第一修改技术;以及 发送所述第二经修改响应以尝试导致所述脚本崩溃。
【文档编号】H04L29/06GK104519043SQ201410513832
【公开日】2015年4月15日 申请日期:2014年9月29日 优先权日:2013年9月30日
【发明者】K·亚当斯 申请人:瞻博网络公司