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

恶意超文本传输协议请求的侦测装置和侦测方法

文献发布时间:2023-06-19 19:28:50


恶意超文本传输协议请求的侦测装置和侦测方法

技术领域

本公开是有关于一种恶意超文本传输协议(hypertext transfer protocol,HTTP)请求的侦测装置和侦测方法。

背景技术

恶意HTTP请求是一种常见的攻击方式。攻击者可通过在正常HTTP请求中注入恶意代码来攻击服务器,藉以从服务器窃取数据。随着机器学习技术的发展,越来越多人提出利用机器学习模型来侦测恶意HTTP请求的方法。然而,上述的方法存在诸多缺点。以监督式机器学习模型为例,监督式机器学习模型的训练需要取得大量包含正常HTTP请求和恶意HTTP请求的卷标数据,但恶意HTTP请求的卷标数据非常难取得。

此外,作为监督式机器学习模型之训练数据的特征数据需由专业人员选择。因此,不具相关背景知识的用户将难以实施所述训练。另一方面,非监督式机器学习模型的训练虽不需使用到大量的卷标数据,但非监督式机器学习模型具有较高的误报率(false alarmratio,FAR)。

发明内容

本公开提供一种恶意HTTP请求的侦测装置和侦测方法,可自动地侦测恶意HTTP请求。

依据本公开实施例的一种恶意超文本传输协议请求的侦测装置,包含处理器、存储媒介以及收发器。存储媒介存储多个模块。处理器耦接存储媒介以及收发器,并且访问和执行多个模块,其中多个模块包含数据收集模块、过滤模块、编码模块、自编码器以及侦测模块。数据收集模块通过收发器接收超文本传输协议请求,并且自超文本传输协议请求撷取参数。过滤模块响应于参数与白名单不匹配而过滤超文本传输协议请求。编码模块响应于超文本传输协议请求未被过滤而编码超文本传输协议请求的每一个字符以产生编码字符串。自编码器根据编码字符串产生估计超文本传输协议请求。侦测模块响应于超文本传输协议请求以及估计超文本传输协议请求之间的相似度小于相似度阈值而判断超文本传输协议请求为恶意超文本传输协议请求,并且通过收发器输出判断结果。

可选地,上述的自编码器根据多笔验证数据产生多笔估计数据;侦测模块根据多笔验证数据以及多笔估计数据计算多个相似度,并且将多个相似度中的一个设为相似度阈值。

可选地,上述的多笔验证数据包含多个正常超文本传输协议请求。

可选地,上述的相似度阈值关联于参数的属性。

可选地,上述的超文本传输协议请求包含统一资源定位符;属性包含下列中的至少一个:路径区段、请求方法以及查询字符串。

可选地,上述的超文本传输协议请求包含会话标识符,;侦测模块响应于判断超文本传输协议请求为恶意超文本传输协议请求而增加对应于会话标识符的计数值,并且响应于判断超文本传输协议请求非为恶意超文本传输协议请求而重设计数值。

可选地,上述的侦测模块响应于计数值大于容忍值而通过收发器输出警示消息。

可选地,上述的白名单包含位数组;过滤模块将参数输入至多个哈希函数以产生多个哈希值,并且响应于多个哈希值与位数组不匹配而过滤超文本传输协议请求。

可选地,上述的编码模块根据下列中的一个编码超文本传输协议请求的字符:一位有效编码、特征哈希、赫尔莫特编码以及实体嵌入。

可选地,上述的编码模块编码多个历史超文本传输协议请求以产生多个历史编码字符串;处理器根据多个历史编码字符串训练自编码器。

可选地,上述的多个历史编码字符串包含具有最大长度的历史编码字符串;编码模块响应于编码字符串的长度小于最大长度而对编码字符串执行填零,以使长度与最大长度相同。

可选地,上述的多个历史编码字符串包含具有最大长度的历史编码字符串;编码模块响应于编码字符串的长度大于最大长度而截断编码字符串,以使长度与最大长度相同。

可选地,上述的自编码器包含基于长短期记忆神经网络的序列到序列模型。

可选地,上述的相似度包含下列中的一个:序列距离、余弦相似度、最长共同部分子序列以及莱文斯坦距离。

依据本公开实施例的一种恶意超文本传输协议请求的侦测方法,包含:接收超文本传输协议请求,并且自超文本传输协议请求撷取参数;响应于参数与白名单不匹配而过滤超文本传输协议请求;响应于超文本传输协议请求未被过滤而编码超文本传输协议请求的每一个字符以产生编码字符串;使用自编码器以根据编码字符串产生估计超文本传输协议请求;以及响应于超文本传输协议请求以及估计超文本传输协议请求之间的相似度小于相似度阈值而判断超文本传输协议请求为恶意超文本传输协议请求,并且输出判断结果。

基于上述,本公开的侦测装置可通过白名单以及自编码器侦测恶意HTTP请求。侦测装置可在未收集恶意HTTP请求的卷标数据、消耗较低运算资源以及消耗较少时间的情况下,较准确地侦测恶意HTTP请求。

附图说明

图1示意性示出了根据本公开的一实施例绘示一种恶意HTTP请求的侦测装置的示意图;

图2示意性示出了根据本公开的一实施例绘示侦测装置侦测恶意HTTP请求的示意图;

图3示意性示出了根据本公开的一实施例绘示根据布隆过滤器过滤恶意HTTP请求的示意图;

图4示意性示出了根据本公开的一实施例绘示一种恶意HTTP请求的侦测方法的流程图。

【附图标记说明】

100-侦测装置;

110-处理器;

120-存储媒介;

121-数据收集模块;

122-过滤模块;

123-编码模块;

124-自编码器;

125-侦测模块;

130-收发器;

300-位数组;

S0-超文本传输协议请求;

S1-参数;

S2-编码字符串;

S3-估计超文本传输协议请求。

具体实施方式

现将详细地参考本公开的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在图式和描述中用来表示相同或相似部分。

图1根据本公开的一实施例绘示一种恶意HTTP请求的侦测装置100的示意图。侦测装置100可包含处理器110、存储媒介120以及收发器130。

处理器110例如是中央处理单元(central processing unit,CPU),或是其他可程序化的一般用途或特殊用途的微控制单元(micro control unit,MCU)、微处理器(microprocessor)、数字信号处理器(digital signal processor,DSP)、可程序化控制器、特殊应用集成电路(application specific integrated circuit,ASIC)、图形处理器(graphics processing unit,GPU)、影像讯号处理器(image signal processor,ISP)、图像处理单元(image processing unit,IPU)、算数逻辑单元(arithmetic logic unit,ALU)、复杂可程序逻辑装置(complex programmable logic device,CPLD)、现场可程序化逻辑门阵列(field programmable gate array,FPGA)或其他类似组件或上述组件的组合。处理器110可耦接至存储媒介120以及收发器130,并且访问和执行存储于存储媒介120中的多个模块和各种应用程序。

存储媒介120例如是任何型态的固定式或可移动式的随机接入内存(randomaccess memory,RAM)、只读存储器(read-only memory,ROM)、闪存(flash memory)、硬盘(hard disk drive,HDD)、固态硬盘(solid state drive,SSD)或类似组件或上述组件的组合,而用于存储可由处理器110执行的多个模块或各种应用程序。在本实施例中,存储媒介120可存储包含数据收集模块121、过滤模块122、编码模块123、自编码器124以及侦测模块125等多个模块,其功能将于后续说明。

收发器130以无线或有线的方式传送及接收讯号。收发器130还可以执行例如低噪声放大、阻抗匹配、混频、向上或向下频率转换、滤波、放大以及类似的操作。

图2根据本公开的一实施例绘示侦测装置100侦测恶意HTTP请求的示意图。首先,数据收集模块121可通过收发器130接收HTTP请求S0。HTTP请求S0可能为正常HTTP请求或异常HTTP请求。攻击者可根据结构化查询语言(structured query language,SQL)注入(injection)、缓冲区溢出(buffer overflow)、文件披露(files disclosure)、回车换行(carriage-return line-feed,CRLF)注入、跨站脚本(cross-site scripting)或参数窜改(parameter tampering)来产生恶意HTTP请求。HTTP请求S0可包含统一资源定位符(uniform resource locator,URL),其中统一资源定位符可包含参数。在取得HTTP请求S0后,在步骤S21中,数据收集模块121可自HTTP请求S0撷取参数,其中所撷取之参数的属性可包含路径区段(path segment)、请求方法(request method)或查询字符串(querystring)。请求方法可包含“OPTIONS”、“GET”、“HEAD”、“PUT”、“POST”、“DELETE”、“TRACE”或“CONNECT”。

表1为取得自CSIC2010数据集的HTTP请求的范例。“/tienda1/publico/vaciar.jsp?B2=Vaciar+carrito”为正常HTTP请求中的路径区段,并且“?B2=Vaciar+carrito”为正常HTTP请求中的参数。攻击者通过在正常HTTP请求的路径区段中注入恶意SQL“"Vino+Rioja'OR'1'="1"”来产生异常HTTP请求。

表1

在步骤S22中,过滤模块122可根据白名单判断是否过滤HTTP请求S0。若HTTP请求S0的参数S1与白名单匹配,则过滤模块122可不过滤HTTP请求S0,并将HTTP请求S0传送给编码模块123。若HTTP请求S0的参数S1与白名单不匹配,则过滤模块122可判断HTTP请求S0为异常HTTP请求,并可过滤HTTP请求S0。

在一实施例中,过滤模块122可通过布隆过滤器(Bloom filter)来判断是否过滤HTTP请求S0。图3根据本公开的一实施例绘示根据布隆过滤器过滤恶意HTTP请求的示意图。具体来说,布隆过滤器的白名单可包含位数组300,并且位数组300中的每一个位可为“0”或“1”。举例来说,位数组300可包含N个位(N为正整数),其中位数组300的位#1等于“1”、位#2等于“0”、位#3等于“0”、位#4等于“1”、位#5等于“1”、位#6等于“0”、位#7等于“1”、位#8等于“0”、…、位#N等于“1”。

位数组300中的每一个位的初始值可为“0”。数据收集模块121可通过收发器130取得被判断为安全的统一资源定位符。过滤模块122可将所述统一资源定位符输入至多个哈希函数以产生分别对应于多个哈希函数的哈希值,其中所述多个哈希函数的值域介于1到N之间。过滤模块122可将位数组300中与哈希函数的输出相对应的位设为“1”,藉以完成白名单的建立。举例来说,在过滤模块122将安全的统一资源定位符输入至一哈希函数后,若哈希函数输出的哈希值为“5”,则过滤模块122可将位数组300中的位#5设为“1”,藉以完成白名单的建立。

过滤模块122可将参数S1输入至多个哈希函数以产生分别对应于多个哈希函数的多个哈希值。若参数S1的多个哈希值与位数组300匹配,则过滤模块122可判断HTTP请求S0与白名单匹配。若参数S1的多个哈希值与位数组300不匹配,则过滤模块122可判断HTTP请求S0与白名单不匹配。据此,过滤模块122可判断HTTP请求S0为异常HTTP请求而过滤HTTP请求S0。过滤模块122可响应于位数组300中与参数S1的多个哈希值相对应的至少一位不为“1”而判断参数S1与位数组300不匹配。

以图3的url#1为例。过滤模块122可将url#1的参数“path1?query1”输入至哈希函数h1、哈希函数h2以及哈希函数h3,其中哈希函数h1输出的哈希值为“1”、哈希函数h2输出的哈希值为“4”并且哈希函数h3输出的哈希值为“5”。过滤模块122可响应于位数组300中与哈希值“1”相对应的位#1、哈希值“4”相对应的位#4以及哈希值“5”相对应的位#5均为“1”而判断url#1的参数“path1?query1”与位数组300匹配。

以图3的url#2为例。过滤模块122可将url#2的参数“path2?query2”输入至哈希函数h1、哈希函数h2以及哈希函数h3,其中哈希函数h1输出的哈希值为“2”、哈希函数h2输出的哈希值为“5”并且哈希函数h3输出的哈希值为“8”。过滤模块122可响应于位数组300中与哈希值“2”相对应的位#2、哈希值“5”相对应的位#5以及哈希值“8”相对应的位#8中的至少一个非为“1”而判断url#2的参数“path2?query2”与位数组300不匹配。

过滤模块122可基于白名单而利用非常少的运算资源将大部分的恶意HTTP请求过滤。因此,仅会有少数的恶意HTTP请求通过第一阶段的过滤(即:步骤S22)。侦测装置可根据第二阶段的过滤(即:步骤S23~步骤S25)来侦测这些少数的恶意HTTP请求。

在步骤S23中,编码模块123可响应于HTTP请求S0并未被过滤而编码HTTP请求S0中的每一个字符(character)以产生编码字符串S2。编码模块123可根据一位有效编码(one-hot coding)、特征哈希(FeatureHasher)、赫尔莫特编码(Helmert coding)或实体嵌入(entity embedding)来编码HTTP请求S0中的字符,但本公开不限于此。

在一实施例中,编码模块123可根据自编码器124判断是否对编码字符串S2进行填零或截断编码字符串S2,藉以使编码字符串S2的长度符合自编码器124的输入格式。

具体来说,编码模块123可根据多个历史HTTP请求产生分别对应于多个历史HTTP请求的多个历史编码字符串,其中所述多个历史编码字符串可包含具有最大长度的特定历史编码字符串。编码模块123可对除了特定历史编码字符串的其他历史编码字符串进行填零以使所有的历史编码字符串符合最大长度。处理器110可在执行完填零后根据多个历史编码字符串训练自编码器124。

编码模块123可判断编码字符串S2的长度是否小于历史编码字符串的最大长度。若编码字符串S2的长度小于最大长度,则编码模块123可对编码字符串S2进行填零,以使编码字符串S2的长度与最大长度相同。若编码字符串S2的长度大于最大长度,则编码模块123可截断编码字符串S2,以使编码字符串S2的长度与最大长度相同。

在步骤S24中,自编码器124可根据编码字符串S2产生估计HTTP请求S3,其中自编码器124可包含基于长短期记忆(long short-term memory,LSTM)神经网络的序列到序列模型(seq2seq model),但本公开不限于此。

在步骤S25中,侦测模块125可判断HTTP请求S0与估计HTTP请求S3之间的相似度是否小于相似度阈值以产生判断结果。若相似度小于相似度阈值,则侦测模块125可判断HTTP请求S0为恶意HTTP请求。若相似度大于或等于相似度阈值,则侦测模块125可判断HTTP请求S0为正常HTTP请求。侦测模块125可通过收发器130输出判断结果以供使用者参考。判断结果可指示HTTP请求S0为正常HTTP请求或异常HTTP请求。

侦测模块125可根据序列距离(sequence distance)、余弦相似度(cosinesimilarity)、最长共同部分子序列(longest common subsequence,LCS)或莱文斯坦距离(Levenshtein distance)来计算HTTP请求S0与估计HTTP请求S3之间的相似度,但本公开不限于此。

在一实施例中,自编码器124可根据多笔验证数据产生分别对应于多笔验证数据的多笔估计数据,其中多笔验证数据可包含多个正常HTTP请求。侦测模块125可根据多笔验证数据以及多笔估计数据计算多个相似度,并且将多个相似度中的一个设为相似度阈值。在一实施例中,相似度阈值可关联于参数S1的属性。举例来说,具有不同查询字符串长度的HTTP请求应使用不同大小的相似度阈值。举另一例来说,具有不同请求方法的HTTP请求应使用不同大小的相似度阈值。侦测模块125可根据HTTP请求的参数的属性设定相似度阈值以降低误判率(false positive rate,FPR)。

在一实施例中,HTTP请求S0可包含会话标识符(session identity)。侦测模块125可响应于判断HTTP请求S0为恶意HTTP请求而增加对应于所述会话标识符的计数值(例如:将计数值加一)。侦测模块125可响应于判断HTTP请求S0为正常HTTP请求而重设对应于所述会话标识符的计数值(例如:将计数值设为零)。侦测模块125可响应于会话标识符的计数值大于容忍值而通过收发器130输出警示消息,其中所述警示消息可指示所述会话标识符属于恶意攻击者。

图4根据本公开的一实施例绘示一种恶意HTTP请求的侦测方法的流程图,其中侦测方法可由如图1所示的侦测装置100实施。在步骤S401中,接收超文本传输协议请求,并且自超文本传输协议请求撷取参数。在步骤S402中,响应于参数与白名单不匹配而过滤超文本传输协议请求。在步骤S403中,响应于超文本传输协议请求未被过滤而编码超文本传输协议请求的每一个字符以产生编码字符串。在步骤S404中,使用自编码器以根据编码字符串产生估计超文本传输协议请求。在步骤S405中,响应于超文本传输协议请求以及估计超文本传输协议请求之间的相似度小于相似度阈值而判断超文本传输协议请求为恶意超文本传输协议请求,并且输出判断结果。

综上所述,本公开的侦测装置通过两阶段的过滤方法侦测恶意HTTP请求。首先,侦测装置可利用白名单较快速地将已知的恶意HTTP请求过滤。在经过第一阶段的过滤后,侦测装置可将剩余的HTTP请求输入至自编码器以产生估计HTTP请求。侦测装置可根据自编码器的输入数据和输出数据之间的相似度判断输入数据是否为恶意HTTP请求。本公开的侦测装置可在消耗较低运算资源和较少时间的情况下提升对恶意HTTP请求之侦测的准确度。

最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。

技术分类

06120115923284