攻击检测方法、装置、网络设备及终端设备与流程

文档序号:12492967阅读:268来源:国知局
攻击检测方法、装置、网络设备及终端设备与流程
本公开涉及网络检测
技术领域
,具体地,涉及一种攻击检测方法、装置、网络设备及终端设备。
背景技术
:随着互联网的普及以及信息技术的高速发展,网络已经成为与人们生活密不可分的一部分。网络为人们提供方便的同时,网络攻击问题也带来了新的麻烦与威胁。不法攻击者利用web服务做为传播恶意代码的手段,非法窃取用户信息、破坏用户环境,给用户带来巨大损失。因此,如何有效检测web类攻击成为亟待解决的问题。相关技术中,检测web攻击的方法包括误用检测、利用机器学习进行检测、利用学习算法(例如,支持向量机算法(SVM)、基于ID3决策树算法、贝叶斯网络等)进行检测。为了提高网络传输效率,web文本绝大多数是采用gzip压缩的。在对经gzip压缩的web文本进行检测前,上述相关技术的攻击检测方法都需要先对web文本进行解压缩。由于gzip解压算法的设计原因,每次解压缩都需要在内存中开辟一定大小的解压空间(例如,32K大小)。因此,对gzip压缩的web文本解压缩后再进行攻击检测,不但耗费系统大量处理时间,同时也消耗了系统大量内存。当网络中连接数很大时,对检测系统内存的要求很高,使得大部分系统不可能满足要求。公开内容为解决相关技术的缺陷,本公开的目的是提供一种攻击检测方法、装置、网络设备及终端设备。第一方面,本公开提供一种攻击检测方法,包括:获取gzip压缩的待检测web文本;将所述待检测web文本转换为特征向量;根据训练得到的分类器,以及所述特征向量,对所述待检测web文本进行攻击检测。在一个实施例中,所述方法还包括:获取初始特征词集合,所述初始特征词集合中包括一个或多个特征词;确定训练样本和类别集合,所述类别集合包括:攻击类别和非攻击类别;根据所述训练样本中属于攻击类别的文本数、所述训练样本中属于非攻击类别的文本数和所述训练样本中出现每个特征词的文本数,获取攻击类别对应的第一先验概率、非攻击类别对应的第二先验概率,以及每个特征词在攻击类别下的第一条件概率和在非攻击类别下的第二条件概率;将所述第一先验概率、所述第二先验概率、所述第一条件概率和所述第二条件概率作为所述分类器的分类参数。在一个实施例中,所述方法还包括:对于所述初始特征词集合中的每个特征词,生成字节长度大于预设长度的一个或多个子串,得到所述初始特征词集合的子串矩阵;获取所述子串矩阵中每个子串对应的概率,得到子串概率矩阵。在一个实施例中,根据以下公式获取所述子串矩阵中每个子串对应的概率:Pij=T0ij/T1ij其中,i∈[1,n],j∈[1,m],n为所述特征词的个数,m为所述初始特征词集合中具有最多子串的特征词的子串个数;T0ij为子串Wij在gzip压缩的训练样本中出现且所述子串Wij与一替换信息相邻,则在gzip解码后的训练样本中,所述子串Wij对应的特征词Wi出现的次数;T1ij为在gzip压缩的训练样本中,所述子串Wij出现且所述子串Wij与替换信息相邻的次数。在一个实施例中,将所述待检测web文本转换为的特征向量的步骤包括:若所述初始特征词集合中的一特征词Wj在所述待检测web文本中出现,将与所述特征词Wj对应的特征向量中的元素Vj的值设为1;若所述初始特征词集合中的所述特征词Wj未在所述待检测web文本中出现,将所述元素Vj的值设为所述特征词Wj的最长子串在所述子串概率矩阵中的对应值。在一个实施例中,将所述待检测web文本转换为的特征向量的步骤包括:实时获取待检测web文本的目标数据块;当块结束标志不为1时,检测所述目标数据块的编码标志位;若所述目标数据块的编码标志位为0,则根据所述初始特征词集合和所述子串概率矩阵,对所述目标数据块进行匹配获得所述目标数据块对应的特征向量;若所述目标数据块的编码标志位为1,则进行静态huffman解码,并根据所述初始特征词集合和所述子串概率矩阵,对解码后的数据块进行匹配获得所述目标数据块对应的特征向量;若所述目标数据块的编码标志位为2,则进行动态huffman解码,并根据所述初始特征词集合和所述子串概率矩阵,对解码后的数据块进行匹配获得所述目标数据块对应的特征向量;将所述待检测web文本所包括的所有目标数据块的特征向量叠加以得到所述待检测web文本的特征向量。在一个实施例中,所述根据所述初始特征词集合和所述子串概率矩阵,对数据块进行匹配获取所述目标数据块对应的特征向量的步骤包括:根据指示信息,确定相应的处理节点;根据确定的处理节点和获取的处理状态,对所述目标数据块进行处理,若所述初始特征词集合中的特征词出现在所述目标数据块中,将与所述特征词Wi对应的特征向量中的元素Vi的值设为1;若所述子串矩阵中的子串出现在所述目标数据块中,则将与所述子串对应的特征向量中的元素的值设为所述子串对应的特征词的最长子串在所述子串概率矩阵中的对应值。在一个实施例中,根据训练得到的分类器,以及所述特征向量,对所述待检测web文本进行分类攻击检测的步骤包括:根据所述特征向量、所述第一先验概率、所述第二先验概率、所述第一条件概率和所述第二条件概率,获取所述待检测web文本属于攻击类别的第一后验概率和属于非攻击类别的第二后验概率;根据所述第一后验概率和所述第二后验概率,将所述待检测web文本归属于攻击类别或非攻击类别。在一个实施例中,根据以下公式获取所述待检测web文本的第一后验概率:以及根据以下公式获取所述待检测web文本的第二后验概率:其中,Vj为所述特征向量中的一与特征词Wj对应的元素,P(C0)为所述第一先验概率,P(Wj/C0)为特征词Wj的第一条件概率;P(C1)为所述第二先验概率,P(Wj/C1)为特征词Wj的第二条件概率。第二方面,本公开提供一种攻击检测装置,包括:第一获取模块,用于获取gzip压缩的待检测web文本;转换模块,用于将所述待检测web文本转换为特征向量;检测模块,用于根据训练得到的分类器,以及所述特征向量,对所述待检测web文本进行攻击检测。在一个实施例中,所述装置还包括:第二获取模块,用于获取初始特征词集合,所述初始特征词集合中包括一个或多个特征词;确定模块,用于确定训练样本和类别集合,所述类别集合包括:攻击类别和非攻击类别;第三获取模块,用于根据所述训练样本中属于攻击类别的文本数、所述训练样本中属于非攻击类别的文本数和所述训练样本中出现每个特征词的文本数,获取攻击类别对应的第一先验概率、非攻击类别对应的第二先验概率,以及每个特征词在攻击类别下的第一条件概率和在非攻击类别下的第二条件概率;分类参数确定模块,用于将所述第一先验概率、所述第二先验概率、所述第一条件概率和所述第二条件概率作为所述分类器的分类参数。在一个实施例中,所述装置还包括:子串矩阵获取模块,用于对于所述初始特征词集合中的每个特征词,生成字节长度大于预设长度的一个或多个子串,得到所述初始特征词集合的子串矩阵;子串概率矩阵获取模块,用于获取所述子串矩阵中每个子串对应的概率,得到子串概率矩阵。在一个实施例中,所述转换模块,用于若所述初始特征词集合中的一特征词Wi在所述待检测web文本中出现,将与所述特征词Wi对应的特征向量中的元素Vi的值设为1;若所述初始特征词集合中的所述特征词Wi未在所述待检测web文本中出现,将所述元素Vi的值设为所述特征词Wi的最长子串在所述子串概率矩阵中的对应值。在一个实施例中,所述转换模块包括:目标数据块获取子模块,用于实时获取待检测web文本的目标数据块;编码标志位检测子模块,用于当块结束标志不为1时,检测所述目标数据块的编码标志位;匹配子模块,用于若所述目标数据块的编码标志位为0,则根据所述初始特征词集合和所述子串概率矩阵,对所述目标数据块进行匹配获得所述目标数据块对应的特征向量;若所述目标数据块的编码标志位为1,则进行静态huffman解码,并根据所述初始特征词集合和所述子串概率矩阵,对解码后的数据块进行匹配获得所述目标数据块对应的特征向量;若所述目标数据块的编码标志位为2,则进行动态huffman解码,并根据所述初始特征词集合和所述子串概率矩阵,对解码后的数据块进行匹配获得所述目标数据块对应的特征向量;叠加子模块,用于将所述待检测web文本所包括的所有目标数据块的特征向量叠加以得到所述待检测web文本的特征向量。在一个实施例中,所述匹配子模块包括:处理节点确定子模块,用于根据指示信息,确定相应的处理节点;特征向量生成子模块,用于根据确定的处理节点和获取的处理状态,对所述目标数据块进行处理,若所述初始特征词集合中的特征词出现在所述目标数据块中,将与所述特征词Wi对应的特征向量中的元素Vi的值设为1;若所述子串矩阵中的子串出现在所述目标数据块中,则将与所述子串对应的特征向量中的元素的值设为所述子串对应的特征词的最长子串在所述子串概率矩阵中的对应值。在一个实施例中,检测模块包括:第三获取子模块,用于根据所述特征向量、所述第一先验概率、所述第二先验概率、所述第一条件概率和所述第二条件概率,获取所述待检测web文本属于攻击类别的第一后验概率和属于非攻击类别的第二后验概率;攻击类别确定子模块,用于根据所述第一后验概率和所述第二后验概率,将所述待检测web文本归属于攻击类别或非攻击类别。第三方面,本公开提供一种网络设备,包括上述所述的攻击检测装置。第四方面,本公开提供一种终端设备,包括上述所述的攻击检测装置。第五方面,本公开提供一种攻击检测装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:获取gzip压缩的待检测web文本;将所述待检测web文本转换为特征向量;根据训练得到的分类器,以及所述特征向量,对所述待检测web文本进行攻击检测。通过上述技术方案,在对gzip压缩的web文本进行攻击检测时,不需要进行gzip解压缩,而是直接对gzip压缩的原始web文本进行检测,可提高攻击检测效率,极大的降低系统内存消耗;使得web攻击检测系统在大流量下的部署成为可能。本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。附图说明附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:图1是本公开一实施例的web系统的结构示意图;图2是根据本公开一示例性实施例给出的攻击检测方法的流程示意图;图3是本公开实施例的在训练阶段获取子串矩阵和子串概率矩阵的流程示意图;图4是本公开一实施例中,在训练阶段训练得到分类器的流程示意图;图5是本公开一实施例中,利用训练阶段得到的信息,对gzip压缩的待检测web文本进行检测的流程示意图;图6是本公开另一实施例中,利用训练阶段得到的信息,对gzip压缩的待检测web文本进行检测的流程示意图;图7是本公开的一实施例中,对数据块进行匹配的流程示意图;图8是本公开一实施例的攻击检测装置的框图;图9是根据本公开一示例性实施例示出的一种用于攻击检测的装置的框图;图10是根据本公开一示例性实施例的攻击检测装置设置在网络设备中的示意图;图11是根据本公开一示例性实施例的攻击检测装置设置在终端设备中的示意图;图12是本公开一实施例的攻击检测的流程示意图。具体实施方式以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。参见图1,为本公开实施例的web系统的结构示意图。终端设备通过接入网连接到web服务器。用户通过终端设备的浏览器,发送HTTP请求,web服务器根据HTTP请求的URL地址连接,找到对应的web文本(即网页文件),返回给终端设备。web文本是用文本描述的,例如,为HTML/XML格式。在一些实施例中,web文本经gzip压缩后传输,以减小web文本的大小,提高网络传输效率。终端设备浏览器将接收到的gzip压缩的web文本进行解压、解码等操作后,转换为可视页面。参见图1,针对web的攻击可包括:对web服务器的攻击,其是对http请求进行攻击;对终端设备的攻击,其是对web服务器返回的gzip压缩的web文本进行攻击。本公开实施例,不需要进行gzip解压缩,直接对gzip压缩的原始数据进行检测,减少了需要匹配检测的数据量,可提高web攻击的检测速度,减低系统内存消耗。参见图2,是根据本公开一示例性实施例给出的攻击检测方法的流程示意图。该攻击检测方法包括以下步骤:在步骤201中,获取gzip压缩的待检测web文本。本公开实施例中,gzip压缩的待检测web文本是web服务器接收到终端设备发送的HTTP请求后,根据HTTP请求返回的经gzip压缩后的web文本。在步骤202中,将待检测web文本转换为特征向量。本公开实施例中,在训练阶段,根据确定的训练文本和初始特征词集合,得到初始特征词集合对应的子串矩阵,并获取子串矩阵对应的子串概率矩阵。根据子串概率矩阵和初始特征词集合,获取待检测web文本的特征向量。在步骤203中,根据训练得到的分类器,以及特征向量,对待检测web文本进行攻击检测。本公开的实施例中,可根据分类器和特征向量,将待检测web文本分为攻击类或非攻击类。参见图3,为本公开实施例的在训练阶段获取子串矩阵和子串概率矩阵的流程示意图。在步骤301中,确定初始特征词集合。初始特征词集合的获取,即影响攻击检测的准确性,同时若确定方式过于复杂,会导致性能降低。本公开实施例通过以下三种方式,选取特征词,并由这些特征词构成初始特征词集合,既保证分类精度,又保证快速提取。方式1:根据公开的误用检测规则,选取snort、ModSecurity开源检测系统的规则(专门用于描述攻击的),从中提取出关键词作为特征词。关键词提取,可采用信息检索与数据挖掘常用的加权技术TI-IDF(termfrequency-inversedocumentfrequency)。即若某个词或短语在一篇文档中出现的频率TF高,并且在其它文档中出现很少,则认为此词或短语具有很好的类别区分能力,适合用来分类,将其作为关键词提取出。方式2:从常见的JavaScript攻击脚本以及一些跨占攻击脚本中,提取常用关键词作为特征词。方式3:针对web文本中常出现的系统软件相关信息提取关键字作为特征词,例如,OS相关信息关键字、浏览器相关信息关键字,adobereader相关信息关键字。通过上述三种方式,可以构造出区分度高的初始特征词集合,记为:W={W1W2...Wi...Wn}。在步骤302中,对于初始特征词集合中的每个特征词,生成字节长度大于预设长度的一个或多个子串,得到初始特征词集合的子串矩阵。在本公开的实施例中,由于,gzip算法在压缩时,可能将选取的初始特征词集合中的特征词的某些部分用替换信息(例如,替换信息可包括两者之间距离和长度对)进行替换,因此,需要将初始特征词集合中的特征词进行变换。在本公开的一实施例中,通过以下方式进行变换:对于初始特征词集合中的每个特征词,生成其字节长度大于或等于预设长度的子串。在本公开的实施例中,为了使特征词更有区分度,选取的初始特征词集合中的特征词的字节长度一般会大于或等于4,因此,可将预设长度设为4,以生成字节长度大于或等于4的一个或多个子串。例如,对于初始特征词集合中的特征词“abcde”,由于一个英文字母所占的字节数位1,可生成的字节长度大于或等于4的子串包括:“abcd”和“bcde”。应理解,在本公开的一实施例中,生成其字节长度大于或等于预设长度的子串不包括其对应的特征词。在本公开的实施例中,即使不同特征词存在相同的子串,也需要将其均保留,因为两个不同初特征词对应的子串统计出的概率值可不相同。初始特征词集合中的每一个特征词都生成子串后,生成子串矩阵,如下所示:矩阵为n行,m列,其中,n为特征词的个数,m为初始特征词集合中具有最多子串的特征词的子串个数。应理解,不同的特征词可得到的子串的个数是不相同的,上述子串矩阵的列数以子串个数最大的特征词为准。对于子串个数少于子串个数的最大值的特征词,则将相应位置的设置为空。在步骤303中,确定训练样本,获取子串矩阵中每个子串对应的概率,得到子串概率矩阵。在一实施例中,训练样本可通过大量的统计获得(例如,获取某一时间段内的web文本作为训练样本)或采用现有的训练数据作为训练样本(例如,采用KDDCUP’99训练数据)。生成子串矩阵后,可统计生成相应的子串概率矩阵,子串概率矩阵与子串矩阵行列相同,只是相应子串位置替换为子串出现情况下,可能命中子串对应主串(即对应特征词)的概率。子串概率矩阵P为:Pij的值是与替换信息(即“两者之间距离,长度对”)相邻的子串Wij在经gzip压缩的web文本中出现时,其对应是特征词Wi(即主串Wi)的概率。例如,原始web文本Z1为:ABCDEFABCG其对应的gzip压缩的web文本Z2为:ABCDEF73G若“EFAB”为特征词Wi(即主串Wi),“EF”为一个子串Wij。则当与替换信息(“两者之间距离,长度对”)(即“73”)相邻的子串Wij(“EF”)在gzip压缩文本Z2中出现时,其对应是特征词Wi(“EFAB”)的概率即为Pij。Pij的值通过以下方式获得:设每个子串有两个计数T0ij和T1ij。其中,T1ij为在整个gzip压缩的训练样本中,子串Wij出现且该子串与替换信息(即“两者之间距离,长度对”)相邻的次数。即子串Wij在gzip压缩的训练样本中出现,且子串Wij与替换信息(即“两者之间距离,长度对”)相邻时,T1ij的值加1。T0ij为子串Wij在gzip压缩的训练样本中出现且该子串与替换信息(即“两者之间距离,长度对”)相邻,则在gzip解码后的训练样本中,子串Wij对应的特征词Wi出现的次数。即当子串Wij在gzip压缩文本中出现且该子串与替换信息(“两者之间距离,长度对”)相邻,且在gzip解码后的训练样本中,子串Wij对应的特征词Wi出现时,T0ij的值加1。由此,Pij的值可由式(1)得到。Pij=T0ij/T1ij(1)参见图4,为本公开的实施例中,在训练阶段训练得到分类器的流程示意图。在本公开的一实施例中,利用贝叶斯定理,实现对web文本进行分类。贝叶斯分类器的分类原理为:借助某对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。在本公开的实施例中,若类别集合C={C0C1}。其中,C0为攻击类别,C1为非攻击类别,利用贝叶斯定理,获得概率P(Ci/W),即已知初始特征词集合(攻击向量)W的条件下,目标对象属于Ci类的概率(i=0或i=1)。获得P(C0/W)与P(C1/W)后,选其中概率值大的,将目标对象归属于该类。由朴素贝叶斯定理可得:由于P(W)是初始特征词集合W的概率,在初始特征词集合W已知的情况下,其为固定值。P(Ci)为先验概率,即Ci类的概率。P(W/Ci)为在目标对象属于Ci类的条件下,出现初始特征词向量W的概率密度,即W的条件概率密度。由于P(W)是固定值,因此,只需求的最大值即可获得P(Ci/W)。在本公开的一实施例中,由于连续乘积可导致浮点数溢出,则将求的最大值转换为求的值,参见式(3)。根据式(2)和式(3)可得:其中,Vj为目标对象(例如,待检测web文本)的特征向量中的元素。在本公开的一实施例中,Vj值可通过以下方式获得:当初始特征词集合中的特征词Wj在目标对象中出现时(即特征词Wi命中时),Vj的值为1。否则,Vj的值为Wj的最长子串在子串概率矩阵P中对应值。在另一些实施例中,当特征词Wj在训练样本中未出现时,Vj的值也可为特征词Wj的其它子串在子串概率矩阵P中的对应值。由此,本公开实施例中,训练分类器的过程,即是根据训练样本,获得式(4)中的用于分类器的分类参数P(Wj/Ci)和P(Ci)。根据P(Wj/Ci)和P(Ci),即可实现获得概率P(Ci/W),实现对目标对象(例如,待检测web文本)的分类。在本公开的一实施例中,由于类别集合包括攻击类别和非攻击类别,因此,分类参数包括:第一先验概率P(C0)、第二先验概率P(C1)、第一条件概率P(Wj/C0)和第二条件概率P(Wj/C1)。参见图4,在本公开的一实施例中,分类器的分类参数的获取流程包括:在步骤401中,分别统计训练样本中属于攻击类别的文本数、训练样本中属于非攻击类别的文本数和训练样本中出现每个特征词的文本数。攻击类别C0和非攻击类别C1中分别包括多个文本,将训练样本分别与攻击类别C0和攻击类别C1比较,即可得到训练样本中属于攻击类别的文本数、训练样本中属于非攻击类别的文本数。将训练样本分别与初始特征词集合中的每个特征词语进行比较,即可得到训练样本中出现每个特征词的文本数。在步骤402中,根据训练样本中属于攻击类别的文本数、训练样本中属于非攻击类别的文本数和训练样本中出现每个特征词的文本数,获取攻击类别对应的第一先验概率、非攻击类别对应的第二先验概率,以及每个特征词在攻击类别下的第一条件概率和在非攻击类别下的第二条件概率。在本公开的实施例中,第一先验概率P(C0)和第二先验概率P(C1)可通过以下方式获得:将Ci集合中文本数量与C0集合和C1集合中的总文本数相比得到P(Ci)。在本公开的一实施例中,第一条件概率P(Wj/C0)和第二条件概率P(Wj/C1)可通过以下方式获得:对于训练样本,统计训练样本中出现特征词Wj的文本数。则特征词Wj的条件概率P(Wj/Ci)为出现特征词Wj的文本数与Ci集合中文本总数的比值。由此,可获得用于对web文本进行攻击检测的分类器的分类参数。参见图5,在本公开的实施例中,利用训练阶段得到的信息,对gzip压缩的待检测web文本进行检测的流程包括:在步骤501中,根据初始特征词集合和训练阶段得到的子串概率矩阵,将待检测web文本转换为特征向量。若初始特征词集合中的一特征词Wj在待检测web文本中出现,将与特征词Wj对应的特征向量中的元素Vj的值设为1。若初始特征词集合中的特征词Wj未在待检测web文本中出现,将元素Vj的值设为特征词Wj的最长子串在子串概率矩阵中的对应值。在步骤502中,根据特征向量,以及训练阶段得到的第一先验概率、第二先验概率、第一条件概率和第二条件概率,获取待检测web文本属于攻击类别的第一后验概率和属于非攻击类别的第二后验概率。根据以下公式(5)获取待检测web文本的第一后验概率:根据以下公式(6)获取待检测web文本的第二后验概率:其中,Vj为待检测web文本的特征向量中的一与特征词Wj对应的元素,P(C0)为第一先验概率,P(Wj/C0)为特征词Wj的第一条件概率;P(C1)为第二先验概率,P(Wj/C1)为特征词Wj的第二条件概率。在步骤503中,根据第一后验概率和第二后验概率,将待检测web文本归属于攻击类别或非攻击类别。若第一后验概率大于第二后验概率,则将待检测web文本归属于攻击类别;若第二后验概率大于第一后验概率,则将待检测web文本归属于非攻击类别。参见图6,在本公开的另一实施例中,利用训练阶段得到的信息,对gzip压缩的待检测web文本进行检测的流程示意图。待检测web文本为经gzip压缩的web文本。在本公开的实施例中,经gzip压缩后的web文本,可被分成多个数据块。数据被一个字节一个字节的存储,8个字节为1个位。其中,每个数据块第1位为块=标志,若该位为1,则表示该数据块为最后一块;若为0,则表示该数据块不是最后一块。数据块的第2位和第3位,为编码标志位,用于标识该数据块的编码方式,00表示未经编码,01表示利用静态huffman编码对压缩后的web文本进行编码后传输,10表示利用动态huffman编码对压缩后的web文本进行编码后传输。在步骤601中,实时获取待检测web文本的目标数据块。在一个实施例中,可通过数据采集器从网络中抓取数据包,并进行降采样、离散数据处理、归一化等数据处理。在步骤602中,当块结束标志不为1时,检测目标数据块的编码标志位。当块结束标志e==1时,流程结束;否则,检测目标数据块的编码标志位,并检测当前的目标数据块的第1位是否为1,则将块结束标志e设为1,否则,将块结束标志e设为0。当数据块的第1位为1时,代表其为最后一个数据块,因此,可将块结束标志e设为1,则在对该最后一个数据块处理完成后,流程就结束,即对该待检测web文本的检测结束。若目标数据块的编码标志位为0,转到步骤606;若目标数据块的编码标志位为1,则转到步骤603,进行静态huffman解码;若目标数据块的编码标志位为2,则转到步骤604,进行动态huffman解码。在步骤603中,根据静态huffman编码信息,建立静态huffman树,对该目标数据块依据建立的huffman树进行解码,将解码数据依次传给数据匹配模块,即转到步骤606,直到当前目标数据块处理结束,结束后转到步骤601,继续进行下一数据块的处理。在步骤604中,根据数据块的动态huffman编码信息,建立动态huffman树,对该数据块依据建立的huffman树进行解码,将解码数据依次传给数据匹配模块,即转到步骤605,直到当前目标数据块处理结束,结束后转到步骤601,继续进行下一数据块的处理。在步骤605中,根据初始特征词集合和子串概率矩阵,对数据块进行匹配获取目标数据块对应的特征向量,并逐步更新特征向量的状态。在步骤606中,将待检测web文本所包括的所有目标数据块的特征向量叠加以得到待检测web文本的特征向量。参见图7,在本公开的一实施例中,对数据块进行匹配的流程如下:在步骤701中,根据指示信息(key信息),确定相应的处理节点(key节点)。在实际网络中,终端设备与web服务器间先建立用于传输HTTP数据的TCP连接。终端设备浏览器向web服务器发送HTTP请求,以获取web文本(即网页信息)。由于通过一个TCP连接,可以把多个HTTP请求封装到不同的帧,发送到web服务器。且处理时,可能是同时处理来自多个终端设备的多个TCP连接。由此,需要根据指示信息(key信息),进行区分,确定当前要匹配的是哪个web文本。在本公开的一实施例中,指示信息(key信息)可从http请求中获取。指示信息(key信息)可为五元组信息,包括源IP地址、目的IP地址、协议号、源端口和目的端口。在步骤702中,根据确定的处理节点和获取的处理状态,对目标数据块进行处理,若初始特征词集合中的特征词出现在目标数据块中,将与特征词Wi对应的特征向量中的元素Vi的值设为1;若子串矩阵中的子串出现在目标数据块中,则将与子串对应的特征向量中的元素的值设为子串对应的特征词的最长子串在所述子串概率矩阵中的对应值。若web文本的所有数据块匹配结束,输出对应特征向量V。由于一个web文本包括多个数据块,而每个数据块,可被分为多个数据包进行传输。因此,当一个数据包处理完毕时,需要记录其处理状态(STATE状态)。在一个实施例中,处理状态(STATE状态)包括:中断位置、已经命中的特征串和半命中状态的特征串。由此,当处理下一个数据包时,根据STATE状态继续进行处理。在本公开的一实施例中,判断命中的特征词(即特征词出现在数据块中)对应特征向量V的相应位置是否已经设置为1,如果已经设置,则不进行设置。若命中的特征词是初始特征词集合中的特征词,设置该特征词对应的特征向量相应位为1。若命中的特征词是子串矩阵中的子串,将特征向量相应位置设置为最长子串在子串概率矩阵中的对应值P。设置好后,更新特征向量V,并将特征向量V与对应处理节点(key节点)进行绑定。对于所有半命中状态的特征串,即只命中初始特征词集合的一部分或者子串矩阵中子串的一部分时,获取处理状态(STATE状态),并与当前处理节点(key节点)绑定。再次输入数据时(即处理下一个数据包时),根据处理状态(STATE状态)的信息进行匹配。经过上述步骤601至606,以及步骤701至702,将待检测web文本所包括的所有数据块的特征向量叠加(例如,合并)以得到待检测web文本的特征向量。将gzip压缩的web文本转化为特征向量V={V1V2...Vi...Vn},其中Vi为匹配过程中计算得到的[01]区间的一个值。根据得到的特征向量V和上述公式(4),可得到P(Ci/W),由此,可以判定经gzip压缩的web文本的类别,即判定出其是属于攻击类别,还是非攻击类别,得到攻击检测的结果。对于属于攻击类别的web文本可进一步进行隔离、丢弃等操作。应理解,本公开实施例还可用其它的算法实现分类器的功能,例如,利用增量学习策略改进后的贝叶斯分类器等等。本公开可以在对gzip压缩的web文本不进行解压缩的情况下对其进行检测,且达到较高的检测精度。由于不对web文本进行解压缩处理,需要匹配的数据量变小了,提高了检测系统的性能,同时也极大的降低了检测系统内存使用量,使得web攻击检测系统在大流量下的部署成为可能。参见图8,为本公开实施例的攻击检测装置的框图。该攻击检测装置800包括:第一获取模块801,用于获取gzip压缩的待检测web文本;转换模块802,用于将待检测web文本转换为特征向量;检测模块803,用于根据训练得到的分类器,以及特征向量,对待检测web文本进行攻击检测。在一个实施例中,装置800还包括:第二获取模块804,用于获取初始特征词集合,初始特征词集合中包括一个或多个特征词;确定模块805,用于确定训练样本和类别集合,类别集合包括:攻击类别和非攻击类别;第三获取模块806,用于根据训练样本中属于攻击类别的文本数、训练样本中属于非攻击类别的文本数和训练样本中出现每个特征词的文本数,获取攻击类别对应的第一先验概率、非攻击类别对应的第二先验概率,以及每个特征词在攻击类别下的第一条件概率和在非攻击类别下的第二条件概率;分类参数确定模块807,用于将第一先验概率、第二先验概率、第一条件概率和第二条件概率作为分类器的分类参数。在一个实施例中,装置800还包括:子串矩阵获取模块808,用于对于初始特征词集合中的每个特征词,生成字节长度大于预设长度的一个或多个子串,得到初始特征词集合的子串矩阵;子串概率矩阵获取模块809,用于获取子串矩阵中每个子串对应的概率,得到子串概率矩阵。在一个实施例中,转换模块802,用于若初始特征词集合中的一特征词Wi在待检测web文本中出现,将与特征词Wi对应的特征向量中的元素Vi的值设为1;若初始特征词集合中的特征词Wi未在待检测web文本中出现,将元素Vi的值设为特征词Wi的最长子串在子串概率矩阵中的对应值。在一个实施例中,转换模块802包括:目标数据块获取子模块,用于实时获取待检测web文本的目标数据块;编码标志位检测子模块,用于当块结束标志不为1时,检测目标数据块的编码标志位;匹配子模块,用于若目标数据块的编码标志位为0,则根据初始特征词集合和子串概率矩阵,对目标数据块进行匹配获得目标数据块对应的特征向量;若目标数据块的编码标志位为1,则进行静态huffman解码,并根据初始特征词集合和子串概率矩阵,对解码后的数据块进行匹配获得目标数据块对应的特征向量;若目标数据块的编码标志位为2,则进行动态huffman解码,并根据初始特征词集合和子串概率矩阵,对解码后的数据块进行匹配获得目标数据块对应的特征向量;叠加子模块,用于将待检测web文本所包括的所有目标数据块的特征向量叠加以得到待检测web文本的特征向量。在一个实施例中,匹配子模块包括:处理节点确定子模块,用于根据指示信息,确定相应的处理节点;特征向量生成子模块,用于根据确定的处理节点和获取的处理状态,对目标数据块进行处理,若初始特征词集合中的特征词出现在目标数据块中,将与特征词Wi对应的特征向量中的元素Vi的值设为1;若子串矩阵中的子串出现在目标数据块中,则将与子串对应的特征向量中的元素的值设为子串对应的特征词的最长子串在子串概率矩阵中的对应值。在一个实施例中,检测模块803包括:第三获取子模块,用于根据特征向量、第一先验概率、第二先验概率、第一条件概率和第二条件概率,获取待检测web文本属于攻击类别的第一后验概率和属于非攻击类别的第二后验概率;攻击类别确定子模块,用于根据第一后验概率和第二后验概率,将待检测web文本归属于攻击类别或非攻击类别。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。图9是根据一示例性实施例示出的一种用于攻击检测的装置900的框图。该装置900可以被提供为一网络设备或终端设备。应理解,该网络设备可为网关设备、交换机、路由器等。终端设备设可为手机、平板电脑、台式电脑、便携式电脑、电子书、个人数字助理、可穿戴式设备等。参照图9,装置900包括处理组件901,其进一步包括一个或多个处理器,以及由存储器902所代表的存储器资源,用于存储可由处理组件901的执行的指令,例如应用程序。存储器902中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件901被配置为执行指令,以执行攻击检测方法。装置900还可以包括一个电源组件903被配置为执行装置900的电源管理,一个有线或无线网络接口904被配置为将装置900连接到网络,和一个输入输出(I/O)接口905。装置900可以操作基于存储在存储器902的操作系统,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。参见图10,在本公开的一实施例中,攻击检测装置可设置于网关设备中,以执行web文本的攻击检测。参见图11,在本公开的一实施例中,攻击检测装置也可设置于终端设备中,由终端设备执行web文本的攻击检测。参见图12,本公开通过初始特征词提取、生成子串矩阵、生成子串概率矩阵、训练得到贝叶斯分离器中的分类参数以及利用初始特征词集合和子串概率矩阵,将gzip压缩的web文本转换为特征向量,集合分类参数,进行分类等步骤,可以在对gzip压缩的web文本不进行解压缩的情况下对其进行检测,且达到较高的检测精度。由于不对web文本进行解压缩处理,需要匹配的数据量变小了,提高了检测系统的性能,同时也极大的降低了检测系统内存使用量,使得web攻击检测系统在大流量下的部署成为可能。以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1