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

XSS攻击检测方法、装置、设备及机器可读存储介质

文献发布时间:2023-06-19 11:26:00


XSS攻击检测方法、装置、设备及机器可读存储介质

技术领域

本公开涉及通信技术领域,尤其是涉及一种XSS攻击检测方法、装置、设备及机器可读存储介质。

背景技术

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本,正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

Web应用防火墙(Web Application Firewall,简称WAF)基于云安全大数据能力,用于防御SQL注入、XSS跨站脚本、常见Web服务器插件漏洞、木马上传、非授权核心资源访问等OWASP常见攻击,并过滤海量恶意CC攻击,避免您的网站资产数据泄露,保障网站的安全与可用性。

XSS攻击(Cross Site Scripting,跨站脚本攻击)指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令到网页,使用户加载并执行恶意攻击者制造的网页程序,使得攻击者达到越权访问,盗取会话cookie等目的。

当前分析检测XSS攻击的技术方案存在计算性能耗费较高或不能识别未知攻击的问题。

发明内容

有鉴于此,本公开提供一种XSS攻击检测方法、装置及电子设备、机器可读存储介质,以改善上述计算性能耗费较高、不能识别未知攻击之一的技术问题。

具体地技术方案如下:

本公开提供了一种XSS攻击检测方法,应用于服务器设备,所述方法包括:获取用户输入数据,根据预设输入框画像,将输入数据标记为合法输入数据或与预设输入框画像不符的异常输入;比对异常输入与XSS攻击特征库,根据比对结果,将异常输入标记为未匹配XSS攻击特征库的静态异常或匹配XSS攻击特征库的XSS攻击;通过沙箱浏览器运行分析静态异常,根据分析结果,将静态异常标记为XSS攻击或动态异常。

作为一种技术方案,所述输入框画像是根据采集的合法输入数据学习生成的。

作为一种技术方案,提取标记为XSS攻击的输入数据的XSS攻击特征,并将所述XSS攻击特征合入XSS攻击特征库。

作为一种技术方案,计算动态异常的异常值,输出异常值大于阈值的动态异常。

本公开同时提供了一种XSS攻击检测装置,应用于服务器设备,所述装置包括:画像模块,用于获取用户输入数据,根据预设输入框画像,将输入数据标记为合法输入数据或与预设输入框画像不符的异常输入;静态模块,用于比对异常输入与XSS攻击特征库,根据比对结果,将异常输入标记为未匹配XSS攻击特征库的静态异常或匹配XSS攻击特征库的XSS攻击;动态模块,用于通过沙箱浏览器运行分析静态异常,根据分析结果,将静态异常标记为XSS攻击或动态异常。

作为一种技术方案,所述输入框画像是根据采集的合法输入数据学习生成的。

作为一种技术方案,提取标记为XSS攻击的输入数据的XSS攻击特征,并将所述XSS攻击特征合入XSS攻击特征库。

作为一种技术方案,计算动态异常的异常值,输出异常值大于阈值的动态异常。

本公开同时提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,处理器执行所述机器可执行指令以实现前述的XSS攻击检测方法。

本公开同时提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现前述的XSS攻击检测方法。

本公开提供的上述技术方案至少带来了以下有益效果:

通过输入框画像筛选掉绝大部分的合法输入数据后,仅对异常输入进行XSS攻击检测,从而大大降低计算性能消耗,结合XSS攻击特征库和沙箱浏览器运行分析,即降低误报率和漏报率,同时实现对未知XSS攻击的识别和防御。

附图说明

为了更加清楚地说明本公开实施方式或者现有技术中的技术方案,下面将对本公开实施方式或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施方式,对于本领域普通技术人员来讲,还可以根据本公开实施方式的这些附图获得其他的附图。

图1是本公开一种实施方式中的XSS攻击检测方法的流程图;

图2是本公开一种实施方式中的XSS攻击检测装置的结构图;

图3是本公开一种实施方式中的电子设备的硬件结构图。

具体实施方式

在本公开实施方式使用的术语仅仅是出于描述特定实施方式的目的,而非限制本公开。本公开和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开实施方式可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本公开提供一种XSS攻击检测方法、装置及电子设备、机器可读存储介质,以改善上述计算性能耗费较高、不能识别未知攻击之一的技术问题。

具体地技术方案如后述。

在本公开提供的一种实施方式中,本公开提供了一种XSS攻击检测方法,应用于服务器设备,所述方法包括:获取用户输入数据,根据预设输入框画像,将输入数据标记为合法输入数据或与预设输入框画像不符的异常输入;比对异常输入与XSS攻击特征库,根据比对结果,将异常输入标记为未匹配XSS攻击特征库的静态异常或匹配XSS攻击特征库的XSS攻击;通过沙箱浏览器运行分析静态异常,根据分析结果,将静态异常标记为XSS攻击或动态异常。

具体地,如图1,包括以下步骤:

步骤S11,获取用户输入数据,根据预设输入框画像,将输入数据标记为合法输入数据或与预设输入框画像不符的异常输入。

步骤S12,比对异常输入与XSS攻击特征库,根据比对结果,将异常输入标记为未匹配XSS攻击特征库的静态异常或匹配XSS攻击特征库的XSS攻击。

步骤S13,通过沙箱浏览器运行分析静态异常,根据分析结果,将静态异常标记为XSS攻击或动态异常。

通过输入框画像筛选掉绝大部分的合法输入数据后,仅对异常输入进行XSS攻击检测,从而大大降低计算性能消耗,结合XSS攻击特征库和沙箱浏览器运行分析,即降低误报率和漏报率,同时实现对未知XSS攻击的识别和防御。

在本公开提供的一种实施方式中,所述输入框画像是根据采集的合法输入数据学习生成的。

在本公开提供的一种实施方式中,提取标记为XSS攻击的输入数据的XSS攻击特征,并将所述XSS攻击特征合入XSS攻击特征库。

在本公开提供的一种实施方式中,计算动态异常的异常值,输出异常值大于阈值的动态异常。

在一种实施方式中,静态XSS攻击检测方法不需要运行网页及脚本,通过分析网页的源代码判断网页中是否存在XSS漏洞,以及正在运行的网页中是否存在XSS攻击。当采用静态分析方法检测XSS攻击时,可以仅仅对用户的输入进行分析,也可以将用户的输入与网页的源代码结合起来进行分析。动态XSS攻击检测方法不关注网页的源代码,通过分析网页的运行过程和结果判断正在运行的网页中是否存在XSS攻击。静态—动态混合分析方法同时对网页的源代码、运行过程和运行结果进行分析,从而识别出运行网页中的XSS攻击。

XSS攻击检测模块可以部署在客户端、服务端,也可以同时部署在客户端和服务端。当其部署在客户端时,可以作为浏览器的一个过滤器或者插件,也可以是一个代理服务器;当其部署在服务端时,可以直接部署在Web服务器上,也可以是一个反向代理,例如WAF(Web Application Firewall)。

在基于特征的XSS攻击检测中,安全专家基于历史的XSS攻击总结出XSS攻击的特征,构建一个XSS攻击特征库,基于该特征库识别用户输入中包含的攻击。在基于机器学习的XSS攻击检测中,机器学习专家通过收集的黑样本训练机器学习检测模型,然后使用该检测模型对用户输入进行判别,从而实现XSS攻击检测。通常对于每一种XSS攻击训练一个机器学习检测模型,基于检测模型进行相应XSS攻击的检测。

采用静态分析方法检测XSS攻击,对用户的输入部分进行分析,采用的方法有基于特征的和其它方法(基于统计的,基于机器学习的,等等),但是存在误报和漏报,不能对检测结果进行合理的解释。基于特征的XSS攻击检测方法,对已有的XSS攻击提取特征,具有可解释性,但是不能识别未知的XSS攻击。基于动态分析的XSS攻击检测方法通过运行网页的动态特征识别XSS攻击,虽然具有比静态分析方法更好的识别准确率,但是需要更大的时延和计算开销。

XSS攻击分为反射型、存储型和Dom型三种,反射型和存储型XSS攻击利用Web服务器的漏洞,Dom型XSS攻击利用客户端浏览器的漏洞。部署在客户端的XSS攻击检测方法可以检测上述三种XSS攻击,但是受客户端计算资源的影响,可能影响客户的网页浏览体验;部署在服务端的XSS攻击检测方法可以利用服务端的高性能计算资源,但是只能检测反射型和存储型两种XSS攻击,不能检测Dom型XSS攻击。

在本公开提供的实施方式中,结合输入框画像、静态检测和动态检测的XSS攻击检测方法。通过引入输入框画像过滤用户的合法输入,从而减少后续XSS攻击检测的计算量。在XSS攻击静态检测中,通过XSS攻击特征库识别出已知的XSS攻击,从而减少XSS攻击动态检测的计算量。在XSS攻击动态检测中,通过实际运行网页提取运行过程和运行结果特征,依据提取的特征进行XSS攻击的动态检测,进而提高XSS攻击检测的准确率。在服务端集成若干沙箱浏览器,是一种部署在服务端的XSS攻击检测方法。部署在服务端的XSS攻击检测方法可以检测反射型和存储型XSS攻击,通过沙箱浏览器模拟客户端的运行情况后可以检测DOM型XSS攻击,因此本公开提供的实施方式可以同时检测三种XSS攻击。

学习生成所述预设输入框画像时在,收集每个输入框的用户输入文本,达到预设数量后构建每个输入框的合法输入的输入框画像。输入框画像采用正则表达式集合。例如,对于一个可以输入用户名、电话号码或者邮箱的账号登录输入框,它的Input静态画像可以用三个正则表达式集合来表示。在采集输入数据时,只采集那些静态检测和动态检测认为是合法的输入数据;此外,对于这些输入数据,采用基于统计的离群点检测方法排除异常的输入。经过上面两种方法进行过滤后,可以认为建立画像的输入文本是不含XSS攻击的,以避免污染预设输入框画像。

依据输入框的输入框画像对服务器提取的输入数据进行实时的异常检测。若输入数据能被输入框画像中的一个正则表达式所识别,那么这个输入数据是合法的;如果输入数据不能被输入框画像中的所有正则表达式所识别,那么这个输入数据是异常的。

基于每个输入框画像识别出用户的异常输入,通过该步骤,可以过滤掉大量的用户合法输入,使得只有少量异常输入进入XSS攻击静态检测过程。

第二步,在用户的异常输入中找到已知的XSS攻击。该步骤基于XSS攻击特征库采用静态分析方式对第一步的结果进行分析检测。通过该步骤分析后,将确认为XSS攻击的异常输入标记为XSS攻击,将不能确认为XSS攻击的标记为静态异常,并将其发送到XSS攻击动态检测。

第三步,采用动态检测方法在静态异常中检测出XSS攻击。通过沙箱浏览器模拟运行具有合法输入的网页,提取调用/被调用函数、函数的参数、函数的返回值、变量、变量的类型、对象等动态特征构成输入框动态检测画像。通过沙箱浏览器模拟运行用户的网页,提取调用/被调用函数、函数的参数、函数的返回值、变量、变量的类型、对象等动态特征,将提取的输入动态特征与输入框动态检测画像进行匹配,识别运行的网页以及对应的用户输入是否是XSS攻击。对于识别出的XSS攻击,标记为XSS攻击,否则标记为动态异常。经过分析判定后可以将XSS攻击的攻击特征加入到XSS攻击特征库中。

分析动态异常的异常值,具体地,可以根据需要预设结合各输入特征的计算公式,将动态异常各异常特征带入公式后计算得到异常值,并设定异常值阈值,对于异常值高于等于阈值的动态异常,可输出以供进一步分析,对于异常值低于阈值的动态异常,判定为正常输入。

沙箱包括多个浏览器,用于模拟客户端不同类型的浏览器,从而检测和识别DOM型XSS攻击。

在本公开提供的一种实施方式中,本公开同时提供了一种XSS攻击检测装置,如图2,应用于服务器设备,所述装置包括:画像模块21,用于获取用户输入数据,根据预设输入框画像,将输入数据标记为合法输入数据或与预设输入框画像不符的异常输入;静态模块22,用于比对异常输入与XSS攻击特征库,根据比对结果,将异常输入标记为未匹配XSS攻击特征库的静态异常或匹配XSS攻击特征库的XSS攻击;动态模块23,用于通过沙箱浏览器运行分析静态异常,根据分析结果,将静态异常标记为XSS攻击或动态异常。

在本公开提供的一种实施方式中,所述输入框画像是根据采集的合法输入数据学习生成的。

在本公开提供的一种实施方式中,提取标记为XSS攻击的输入数据的XSS攻击特征,并将所述XSS攻击特征合入XSS攻击特征库。

在本公开提供的一种实施方式中,计算动态异常的异常值,输出异常值大于阈值的动态异常。

装置实施方式与对应的方法实施方式相同或相似,在此不再赘述。

在一种实施方式中,本公开提供了一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,处理器执行所述机器可执行指令以实现前述的XSS攻击检测方法,从硬件层面而言,硬件架构示意图可以参见图3所示。

在一种实施方式中,本公开提供了一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令促使所述处理器实现前述的XSS攻击检测方法。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施方式阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本公开时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本公开的实施方式可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施方式、完全软件实施方式、或结合软件和硬件方面的实施方式的形式。而且,本公开实施方式可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施方式的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域技术人员应明白,本公开的实施方式可提供为方法、系统或计算机程序产品。因此,本公开可以采用完全硬件实施方式、完全软件实施方式、或者结合软件和硬件方面的实施方式的形式。而且,本公开可以采用在一个或者多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本公开的实施方式而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求范围之内。

相关技术
  • XSS攻击检测方法、装置、设备及机器可读存储介质
  • 机器人故障检测方法、装置、电子设备及可读存储介质
技术分类

06120112922976