漏洞攻击的检测方法和装置技术领域
本发明涉及移动通信领域,特别涉及一种漏洞攻击的检测方法和
装置。
背景技术
传统的漏洞攻击检测方法,通常是将访问数据包中的相关信息与
漏洞攻击样本特征库中的关键字进行逐一匹配,然后根据匹配结果来
判定当前访问请求是否包含漏洞攻击。若匹配成功,则判定当前访问
请求为漏洞攻击;若匹配失败,则判定当前访问请求为安全访问请求。
传统的漏洞攻击检测方法的缺点在于,极度依赖漏洞攻击样本特征库,
只能判定样本特征库中已有的漏洞攻击,即与样本特征库中的特征完
全匹配的漏洞攻击,并且将访问数据包中的相关信息与漏洞攻击样本
特征库中的关键字进行逐一匹配会造成很大的时间开销。
发明内容
本发明要解决的一个技术问题是提供一种检测效率高、且能检测未
知的变异漏洞攻击的漏洞攻击检测方法。
根据本发明实施例的一个方面,提供了一种漏洞攻击的检测方法,
包括:利用K均值聚类算法对样本数据分簇;将实际访问数据在样本
数据簇中进行归类;根据将实际访问数据在样本数据簇中的归类结果
确定实际访问数据是否为漏洞攻击。
在一个实施例中,漏洞攻击为跨站脚本攻击。
在一个实施例中,利用K均值聚类算法对样本数据分簇包括:
利用静态分析技术检测存在的漏洞类型,确定样本数据簇的数量K,
并根据K值对样本数据进行分簇。
在一个实施例中,K=M+N,其中M表示静态分析检测得到的漏
洞数目,N为正常访问数据簇的数目。
在一个实施例中,利用K均值聚类算法对样本数据进行分簇还
包括:提取样本数据的关键特征,并对样本数据的关键特征进行标准
化处理后,再根据K值对标准化处理后的样本数据的关键特征进行
分簇,从而完成对样本数据进行分簇。
在一个实施例中,关键特征包括:cookie、URI、useragent、referer、
method、post等数据中的一种或多种。
在一个实施例中,利用K均值聚类算法对样本数据进行分簇还
包括:根据样本数据的关键特征及漏洞攻击的特点,确定每个样本数
据簇的初始质心。
在一个实施例中,利用K均值聚类算法对样本数据进行分簇还
包括:删除与所有样本数据簇距离大于预定阈值的异常样本数据。
根据本发明实施例的一个方面,提供了一种漏洞攻击的检测装置,
包括:样本数据分簇模块,用于利用K均值聚类算法对样本数据分
簇;漏洞攻击检测模块,用于将实际访问数据在样本数据簇中进行归
类,并根据将实际访问数据在样本数据簇中的归类结果确定实际访问
数据是否为漏洞攻击。
在一个实施例中,漏洞攻击的检测装置为跨站脚本漏洞攻击的检
测装置。
在一个实施例中,样本数据分簇模块包括:漏洞检测单元,用于
利用静态分析技术检测存在的漏洞类型,确定样本数据簇的数量K;
分簇执行单元,用于根据K值对样本数据进行分簇。
在一个实施例中,样本数据分簇模块还包括:关键特征提取单元,
用于提取样本数据的关键特征;标准化处理单元,用于对样本数据的
关键特征进行标准化处理;分簇执行单元根据K值对标准化处理后
的样本数据的关键特征进行分簇,从而完成对样本数据进行分簇。
在一个实施例中,样本数据分簇模块还包括:初始质心确定单元,
用于根据样本数据的关键特征及漏洞攻击的特点,确定每个簇的初始
质心。
在一个实施例中其特征在于,样本数据分簇模块还包括:异常样
本数据删除单元,用于删除与所有样本数据簇距离大于预定阈值的异
常样本数据。
本发明至少具有以下优点:
通过对实际网页访问数据的分簇,可以得知实际网页访问数据归类
于哪一个样本数据簇,从而能够检测到漏洞攻击样本特征库中不包含
的漏洞攻击,并且提高了检测漏洞攻击的效率。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明
的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将
对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见
地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技
术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获
得其他的附图。
图1示出本发明漏洞攻击的检测方法的一个实施例的流程示意
图。
图2示出本发明利用K均值聚类算法对样本数据分簇的一个实
施例的流程示意图。
图3示出本发明利用K均值聚类算法对样本数据进行分簇的另
一个实施例的流程示意图。
图4示出本发明漏洞攻击的检测装置的一个实施例的结构示意
图。
图5示出本发明样本数据分簇模块的一个实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案
进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实
施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实
际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前
提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1描述本发明一个实施例的漏洞攻击的检测方法。
图1示出本发明漏洞攻击的检测方法的一个实施例的流程示意图。
如图1所示,在本实施例中,以网页页面上检测XSS(Cross Site
Scripting,跨站脚本攻击)漏洞为例。首先,利用工具对网页页面存在
的XSS漏洞进行攻击,这些XSS漏洞包括页面输入、get请求参数、
post请求参数、useragent以及referer等处。然后,将漏洞攻击获得
的攻击数据和安全的页面访问数据结合,构成了样本数据。然后执行
以下步骤:
步骤S102,利用K均值聚类算法对样本数据分簇,使得样本数
据被分成K个样本数据簇。
步骤S104,将待检测的实际网页访问数据在K个样本数据簇中
进行归类。
步骤S106,根据将待检测的实际网页访问数据在K个样本数据簇
中的归类结果,来确定实际的网页访问数据是否为XSS漏洞攻击。
在上述方法中,待检测的实际网页访问数据可能并不存在于样本数
据中,但是通过对实际网页访问数据的分簇,可以得知实际网页访问数
据归类于哪一个样本数据簇,从而能够检测到漏洞攻击样本特征库中不
包含的攻击,并且提高了检测漏洞攻击的效率。
下面结合图2描述本发明一个实施例的利用K均值聚类算法对样
本数据分簇方法。
图2示出本发明利用K均值聚类算法对样本数据分簇的一个实
施例的流程示意图。如图2所示,在上述实施例的基础上,本实施例
方法中的步骤S102具体包括:
步骤S1022,利用静态分析技术检测已存在的漏洞类型,并根据
检测到的已存在漏洞类型数目来确定样本数据簇的数值K。
例如,利用静态分析技术检测到已存在漏洞类型的数目为M,
正常访问数据簇的数目N,那么可以得到K=M+N,即K值和静态
分析得到的漏洞数目M呈线性关系。
步骤S1026,根据K值对样本数据进行分簇。
可选的,在步骤S1022执行完毕之后,可以执行以下步骤:
步骤S1023,根据样本数据的关键特征及漏洞攻击的特点,确定
每个样本数据簇的初始质心。
对于K均值聚类算法而言,一个难点在于初始聚类中心的选择,
并且需要反复试验才能的到较优的聚类数值K。本方法利用改进了K
均值算法中的K值选取方法,更利于使用K均值算法对漏洞攻击进
行检测,对于漏洞的攻击检测针对性更强。
此外,在一个实施例中,利用K均值聚类算法对样本数据分簇
方法还包括:
步骤S1028,删除与所有样本数据簇距离大于预定阈值的异常样
本数据。
利用K均值算法对每个样本数据分簇时,都需要对有变化的样本
数据簇重新计算均值。因此,样本数据如果距离样本数据分簇的质心
距离越远,则对于样本数据簇重新均值的计算影响越大。对于样本数
据距离样本数据分簇的质心距离很远的样本数据,我们称之为异常样
本数据。在利用K均值聚类算法对样本数据分簇方法还中,预先设定
一个阈值,然后删除与所有样本数据簇距离大于预定阈值的异常样本
数据,不仅可以解决K均值聚类算法对异常点敏感的问题,还可以节
省算法的计算开销,保证了利用K均值聚类算法对样本数据分簇方法
的高效性。
下面结合图3描述本发明另一个实施例的利用K均值聚类算法对
样本数据分簇方法。
图3示出本发明利用K均值聚类算法对样本数据分簇的另一个
实施例的流程示意图。如图3所示,在上述实施例的基础上,本实施
例的步骤S102进一步包括:
步骤S1024,提取样本数据的关键特征。
其中,样本数据具体的关键特征可以包括cookie、URI、useragent、
referer、method、post等。如果这些特征在待检测的网页页面中出
现,则它们都是最终作为关键特征的数据。
步骤S1025,对样本数据的关键特征进行标准化处理。
对样本数据的关键特征进行标准化处理的一种具体实现方式,是
对样本数据的关键特征进行归一化。例如,样本数据的某一关键特征
值为x,样本数据簇的质心值为μ,归一化常量为σ,则归一化后的关
键特征值为x’=(x-μ)/σ。然后,利通K均值算法迭代计算个簇
的质心直至结果收敛。
在上述方法中,对样本数据提取关键特征,可以使得对网页页面
所含的漏洞攻击检测针对性更强。同时,对样本数据的关键特征进行
标准化处理可以提高计算效率。
下面结合图4描述本发明一个实施例的漏洞攻击的检测装置。
图4示出本发明漏洞攻击的检测装置的一个实施例的结构示意
图。如图4所示,该实施例的漏洞攻击的检测装置40包括:
样本数据分簇模块402,用于利用K均值聚类算法对样本数据分
簇。
漏洞攻击检测模块404,用于将实际访问数据在样本数据簇中进
行归类,并根据将所述实际访问数据在所述样本数据簇中的归类结果
确定所述实际访问数据是否为漏洞攻击。
下面结合图5描述本发明另一个实施例的漏洞攻击的检测装置。
图5示出本发明样本数据分簇模块的一个实施例的结构示意图。
如图5所示,该实施例的样本数据分簇模块402包括:漏洞检测单元
5022,用于利用静态分析技术检测存在的漏洞类型,确定所述样本数
据簇的数量K。分簇执行单元5026,用于根据K值对样本数据进行
分簇。
在一个实施例中,样本数据分簇模块还可以包括:关键特征提取
单元5024,用于提取样本数据的关键特征。标准化处理单元5025,
用于对所述样本数据的关键特进行标准化处理。分簇执行单元5026
根据K值对标准化处理后的样本数据的关键特征进行分簇,从而完
成对样本数据进行分簇。
在一个实施例中,样本数据分簇模块还可以包括:初始质心确定
单元5023,用于根据所述样本数据的关键特征及漏洞攻击的特点,
确定每个簇的初始质心。异常样本数据删除单元5028,用于删除与
所有样本数据簇距离大于预定阈值的异常样本数据。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可
以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程
序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是
只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本
发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包
含在本发明的保护范围之内。