一种Web异常检测方法和装置与流程

文档序号:11878914阅读:255来源:国知局
本发明涉及网络
技术领域
,特别是涉及一种Web异常检测方法和装置。
背景技术
:随着网络技术的不断发展,Web应用安全问题也日益得到重视。互联网的开放性以及丰富的Java脚本和SQL(结构化查询语言,StructuredQueryLanguage)语言,给黑客提供了Web攻击的可乘之机。为了防御Web攻击,需要对输入到网站上的流量进行检测,以检测出对网站攻击的异常流量。目前,可以采用如下两种方法检测Web攻击:渗透测试方法和基于规则的检测方法。其中,渗透测试方法是一种黑盒测试方法,通过模拟正常的安全攻击行为,并对攻击行为的响应结果进行分析,从而确定是否存在安全漏洞,以在发现问题时可以及时进行修补。然而,目前尚且没有成熟的理论模式来优化渗透测试流程,也没有适当的理论方法来指导生成优化的测试用例集合,因此渗透测试通常具有较大的盲目性,导致渗透测试的效率和准确度较低。基于规则的检测方法包括的主要技术有:基于统计方法的入侵检测技术,基于神经网络的入侵检测技术,匹配WAF规则等等。基于规则的检测方法需要为不同的入侵者和不同的系统建立特定的检测规则。然而,对于还未建立检测规则的隐蔽性较高的攻击行为,通常无法进行检测。技术实现要素:鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于Web异常检测方法和装置。依据本发明的一个方面,提供了一种Web异常检测方法,包括:对待检测的URL进行异常检测,得到符合预设异常条件的目标URL;依据预先建立的分类检测模型,确定所述目标URL对应的异常类别;其中,所述分类检测模型为依据预设时间段内的历史URL训练得到。可选地,所述对待检测的URL进行异常检测,得到符合预设异常条件的目标URL的步骤,包括:提取所述待检测的URL的路径字段和参数字段;匹配所述路径字段和预置路径白名单中的正常路径字段,若匹配,则依据预先建立的参数检测模型对所述参数字段进行异常检测;其中,所述参数检测模型为依据预设时间段内历史URL中提取的历史路径字段和历史参数字段训练得到;在所述参数检测模型检测得到所述参数字段为异常参数字段时,确定所述待检测的URL为符合预设异常条件的目标URL。可选地,所述依据预先建立的参数检测模型对所述参数字段进行异常检测的步骤包括:将所述参数字段对应的参数值输入与所述路径字段和所述参数字段中参数名相对应的参数检测模型;在所述参数检测模型输出的概率值小于预设阈值时,确定所述参数字段为异常参数字段。可选地,通过如下步骤建立所述参数检测模型:收集预设时间段内正常的历史URL;从所述正常的历史URL中提取路径字段、参数字段、以及所述参数字段中的参数名和参数值;确定所述参数值对应的状态序列;依据所述参数值和所述参数值对应的状态序列,训练得到与所述路径字段和所述参数名相对应的参数检测模型。可选地,所述分类检测模型包括至少一个子分类检测模型,且所述子分类检测模型与所述历史URL的异常类别以及所述历史URL的特征关键词集合相对应;其中,所述特征关键词集合中包括从所述历史URL中提取的至少一个特征关键词。可选地,所述依据预先建立的分类检测模型,确定所述目标URL对应的异常类别的步骤,包括:提取所述目标URL对应的特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;统计所述特征关键词在所述目标URL中出现的频次;将所述特征关键词集合和所述频次输入与所述特征关键词集合相对应的子分类检测模型,得到所述目标URL对应所述子分类检测模型的异常类别的概率值,以及所述目标URL对应正常类别的概率值;依据所述异常类别的概率值和所述正常类别的概率值确定所述目标URL对应的异常类别。可选地,通过如下步骤建立所述分类检测模型:收集预设时间段内的历史URL,所述历史URL包括:正常URL和异常URL;从所述历史URL中提取特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;获取所述特征关键词分别在所述正常URL和所述异常URL中出现的频次;依据决策树对所述特征关键词和所述频次进行训练,以得到分类检测模型;其中,所述分类检测模型中包括与已知异常类别数量相对应的子分类检测模型,且每个子分类检测模型对应不同的异常类别以及特征关键词集合。可选地,所述方法还包括:在得到所述目标URL对应的异常类别之后,对所述异常类别进行标注;依据标注后的目标URL对所述分类检测模型进行调整。根据本发明的另一方面,提供了一种Web异常检测装置,包括:异常检测模块,用于对待检测的URL进行异常检测,得到符合预设异常条件的目标URL;分类检测模块,用于依据预先建立的分类检测模型,确定所述目标URL对应的异常类别;其中,所述分类检测模型为依据预设时间段内的历史URL训练得到。可选地,所述异常检测模块,包括:字段提取子模块,用于提取所述待检测的URL的路径字段和参数字段;字段匹配子模块,用于匹配所述路径字段和预置路径白名单中的正常路径字段,若匹配,则依据预先建立的参数检测模型对所述参数字段进行异常检测;其中,所述参数检测模型为依据预设时间段内历史URL中提取的历史路径字段和历史参数字段训练得到;异常确定子模块,用于在所述参数检测模型检测得到所述参数字段为异常参数字段时,确定所述待检测的URL为符合预设异常条件的目标URL。可选地,所述字段匹配子模块,包括:输入单元,用于将所述参数字段对应的参数值输入与所述路径字段和所述参数字段中参数名相对应的参数检测模型;确定单元,用于在所述参数检测模型输出的概率值小于预设阈值时,确定所述参数字段为异常参数字段。可选地,所述装置还包括:参数检测模型建立模块,用于建立所述参数检测模型;所述参数检测模型建立模块,包括:历史URL收集子模块,用于收集预设时间段内正常的历史URL;参数提取子模块,用于从所述正常的历史URL中提取路径字段、参数字段、以及所述参数字段中的参数名和参数值;序列确定子模块,用于确定所述参数值对应的状态序列;参数检测模型训练子模块,用于依据所述参数值和所述参数值对应的状态序列,训练得到与所述路径字段和所述参数名相对应的参数检测模型。可选地,所述分类检测模型包括至少一个子分类检测模型,且所述子分类检测模型与所述历史URL的异常类别以及所述历史URL的特征关键词集合相对应;其中,所述特征关键词集合中包括从所述历史URL中提取的至少一个特征关键词。可选地,所述分类检测模块,包括:关键词提取子模块,用于提取所述目标URL对应的特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;频次统计子模块,用于统计所述特征关键词在所述目标URL中出现的频次;输入子模块,用于将所述特征关键词集合和所述频次输入与所述特征关键词集合相对应的子分类检测模型,得到所述目标URL对应所述子分类检测模型的异常类别的概率值,以及所述目标URL对应正常类别的概率值;类别确定子模块,用于依据所述异常类别的概率值和所述正常类别的概率值确定所述目标URL对应的异常类别。可选地,所述装置还包括:分类检测模型建立模块,用于建立所述分类检测模型;所述分类检测模型建立模块,包括:历史URL收集子模块,用于收集预设时间段内的历史URL,所述历史URL包括:正常URL和异常URL;关键词提取子模块,用于从所述历史URL中提取特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;频次获取子模块,用于获取所述特征关键词分别在所述正常URL和所述异常URL中出现的频次;分类检测模型建立子模块,用于依据决策树对所述特征关键词和所述频次进行训练,以得到分类检测模型;其中,所述分类检测模型中包括与已知异常类别数量相对应的子分类检测模型,且每个子分类检测模型对应不同的异常类别以及特征关键词集合。可选地,所述装置还包括:标注模块,用于在得到所述目标URL对应的异常类别之后,对所述异常类别进行标注;模型调整模块,用于依据标注后的目标URL对所述分类检测模型进行调整。根据本发明实施例提供的一种Web异常检测方法和装置,通过对待检测的URL进行异常检测,得到符合预设异常条件的目标URL,从而可以过滤掉正常URL,而对符合预设异常条件的目标URL进一步进行异常分类检测,以及确定所述目标URL对应的异常类别。由于本发明实施例对于待检测的URL先进行初步过滤(即对待检测的URL进行异常检测),以过滤掉正常的URL,再将过滤后得到的可疑URL(即符合预设异常条件的目标URL)进行异常分类检测,而不用对每个待检测的URL都进行异常分类检测,因此可以提高检测的效率。附图说明通过阅读下文可选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出可选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本发明一个实施例的一种Web异常检测方法的步骤流程图;图2示出了本发明一个实施例的一种依据预先建立的参数检测模型对所述参数字段进行异常检测的步骤流程图;图3示出了根据本发明一个实施例的一种Web异常检测方法的步骤流程图;图4示出了根据本发明一个实施例的一种Web异常检测方法的步骤流程图;图5示出了根据本发明一个实施例的一种Web异常检测装置的结构框图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。方法实施例一参照图1,示出了根据本发明一个实施例的一种Web异常检测方法的步骤流程图,具体可以包括:步骤101、对待检测的URL进行异常检测,得到符合预设异常条件的目标URL;本发明实施例可适用于对web数据流进行异常检测,以确定当前Web数据流中是否存在异常访问数据,进而可以及时发现Web网络中出现的攻击行为,提高识别异常访问数据的准确性和Web网络的安全性。也即,本发明实施例中待检测的URL可以来源于待检测的web数据流,当然,本发明实施例对于待检测的具体URL不加以限制。本发明实施例在进行Web异常检测的过程中,首先对待检测的URL进行异常检测,以将检测为正常的URL快速放行,而将少见的或者出现异常的目标URL做为可疑数据进行进一步的异常分类检测,以确定所述目标URL对应的异常类别。由于本发明实施例对于待检测的URL先进行初步过滤(即对待检测的URL进行异常检测),以过滤掉正常的URL,再将过滤后得到的可疑URL(即符合预设异常条件的目标URL)进行异常分类检测,而不用对每个待检测的URL都进行异常分类检测,因此可以提高检测的效率。在本发明的一种可选实施例中,所述对待检测的URL进行异常检测,得到符合预设异常条件的目标URL的步骤,具体可以包括:步骤S11、提取所述待检测的URL的路径字段和参数字段;本专利发明人通过分析URL的结构得出,URL主要包括如下字段:主机字段、路径字段和参数字段,其中,路径字段可用于表明资源在主机字段所对应主机上存放的位置,参数字段可用于传递参数。以URL:a.b.c/Path/to/resource.suffix?para1=wal1&para2=val2为例,“a.b.c”为主机字段,“Path/to/resource.suffix?”为路径字段,“para1=wal1&para2=val2”为参数字段。在具体应用中,大多数的Web攻击通常是通过修改URL中的路径字段或者参数字段来实现的。因此,本发明实施例对所述待检测的URL中的路径字段和/或参数字段进行异常检测,如果待检测的URL中的路径字段和/或参数字段出现异常,则可以认为所述待检测URL为符合预设异常条件的目标URL。在本发明实施例中,可以先对所述待检测的URL中的路径字段进行异常检测,如果检测得到所述路径字段为异常路径字段,则可以认为所述待检测URL为符合预设异常条件的目标URL,而可以不再对参数字段进行异常检测,进而直接对目标URL进行异常分类检测,可以提高异常检测的速度。可选地,如果检测得到所述路径字段为正常路径字段,则可以继续对参数字段进行异常检测,如果所述参数字段为异常参数字段,则可以认为所述待检测URL为符合预设异常条件的目标URL。可以理解,上述先检测路径字段再检测参数字段仅作为本发明的一种应用示例,在实际应用中,本发明实施例对路径字段和参数字段进行异常检测的顺序不加以限制,也即,还可以按照参数字段和路径字段的顺序进行步骤101的异常检测。步骤S12、匹配所述路径字段和预置路径白名单中的正常路径字段,若匹配,则依据预先建立的参数检测模型对所述参数字段进行异常检测;其中,所述参数检测模型为依据预设时间段内历史URL中提取的历史路径字段和历史参数字段训练得到;在本发明实施例中,对所述待检测的URL中的路径字段进行异常检测,可以通过匹配所述路径字段和预置路径白名单中的正常路径字段来实现。其中,所述预置路径白名单中的正常路径字段具体可以为通过现有的异常检测方法检测得到的正常路径字段,或者已被标注的正常路径字段等,本发明实施例对于所述预置路径白名单中的正常路径字段的获取方式不加以限制。如果所述路径字段和所述预置路径白名单中的正常路径字段相匹配,则认为所述路径字段为正常路径字段,可以进一步对参数字段进行异常检测,以判断所述参数字段是否出现异常,具体地,可以依据预先建立的参数检测模型对所述参数字段进行异常检测,其中,所述参数检测模型具体可以为依据预设时间段内历史URL中提取的历史路径字段和历史参数字段训练得到。步骤S13、在所述参数检测模型检测得到所述参数字段为异常参数字段时,确定所述待检测的URL为符合预设异常条件的目标URL。如果所述参数检测模型检测得到所述参数字段为异常参数字段,则可以认为所述参数字段为异常参数字段,进而可以确定所述待检测的URL为符合预设异常条件的目标URL。步骤102、依据预先建立的分类检测模型,确定所述目标URL对应的异常类别;其中,所述分类检测模型为依据预设时间段内的历史URL训练得到。在步骤101对待检测的URL进行异常检测,得到符合预设异常条件的目标URL之后,可以将所述目标URL输入预先建立的分类检测模型,以输出得到所述目标URL对应的异常类别。在本发明实施例中,所述分类检测模型可以包括N种异常类别分别对应的子分类检测模型,在实际应用中,所述异常类别主要可以包含SQL注入,XSS(CrossSiteScripting,跨站脚本攻击),LFI(LocalFileInclude,本地文件包含),Command(命令)注入等攻击行为。可以理解,本发明实施例对于异常类别的种类和数量不加以限制。可选地,本发明实施例可以收集预设时间段内的历史URL作为训练数据,所述历史URL中可以包括正常URL和异常URL,并且依据决策树对所述训练数据进行训练,得到N个子分类检测模型,其中每个子分类检测模型对应N种异常类别中的一种,在对目标URL进行异常分类检测时,依次将所述目标URL输入N个子分类检测模型,所述N个子分类检测模型分别输出所述目标URL对应异常类别的概率,可选地,可以通过比较N个子分类检测模型输出的概率值确定所述目标URL对应的异常类别。在具体应用中,所述分类检测模型可以在实际的检测过程中不断进行学习和优化,从而可以学习到之前没有的异常类别,进而可以解决现有技术中基于规则的检测方法无法检测未建立检测规则的攻击行为的问题。可以理解,上述依据决策树训练分类检测模型仅作为本发明的一种应用示例,在实际应用中,本发明实施例对于所述分类检测模型的训练方式不加以限制。综上,本发明实施例首先对待检测的URL进行异常检测,得到符合预设异常条件的目标URL,从而可以过滤掉正常URL,而对符合预设异常条件的目标URL进一步进行异常分类检测,以及确定所述目标URL对应的异常类别。由于本发明实施例对于待检测的URL先进行初步过滤(即对待检测的URL进行异常检测),以过滤掉正常的URL,再将过滤后得到的可疑URL(即符合预设异常条件的目标URL)进行异常分类检测,而不用对每个待检测的URL都进行异常分类检测,因此可以提高检测的效率。方法实施例二本实施例在上述方法实施例一的基础上,详细说明对所述参数字段进行异常检测的过程。参照图2,示出了本发明一个实施例的一种依据预先建立的参数检测模型对参数字段进行异常检测的步骤流程图,具体可以包括:步骤201、将参数字段对应的参数值输入与路径字段和所述参数字段中参数名相对应的参数检测模型;步骤202、在所述参数检测模型输出的概率值小于预设阈值时,确定所述参数字段为异常参数字段。在进行Web异常检测的过程中,可以首先提取待检测的URL中的路径字段和参数字段,如果所述路径字段和预置路径白名单中的正常路径字段相匹配,可以确定所述路径字段为正常路径字段,则可以对参数字段进一步进行异常检测,可以将所述参数字段对应的参数值输入与所述路径字段和所述参数字段中参数名相对应的参数检测模型,判断所述检测模型输出的概率值是否小于预设阈值,若小于,则确定所述参数字段为异常参数字段。在此提供正常URL的示例:www.xxx.com/index.php?id=123,攻击者的异常URL可以具有如下形式:www.xxx.com/index.php?id=123’unionselectxxxfromxxx,或者www.xxx.com/index.php?id=%3Cscript%3Ealert(‘XSS’)%3C,或者www.xxx.com/index.php?id=125$%7B@print(md5(123)%7D)等。上述四个URL具有相同的路径字段:www.xxx.com/index.php,且该路径字段为正常路径字段,而上述四个URL具有不同的参数字段,其中,正常参数字段包括:id=123,异常参数字段包括:id=123’unionselectxxxfromxxx,id=%3Cscript%3Ealert(‘XSS’)%3C,以及id=125$%7B@print(md5(123)%7D)。本发明实施例可以建立与路径字段和参数名相对应的参数检测模型,也即可以对同一个路径字段对应的不同参数字段建立不同的参数检测模型,所述参数检测模型具体可以包括隐马尔可夫模型(HiddenMarkovModel,HMM)等。则在依据参数检测模型对所述参数字段进行异常检测时,首先查找得到与当前的路径字段和参数名相对应的参数检测模型,然后将当前的参数字段对应的参数值输入该参数检测模型,如果该参数检测模型输出的概率值小于预设阈值,则可以确定所述参数字段为异常参数字段。在上述示例中,假设待检测的URL为:www.xxx.com/index.php?id=125$%7B@print(md5(123)%7D)。首先对该URL进行解析,提取其中的路径字段(Path)和参数字段(Param),该参数字段可以包括参数名(PName)和参数值(Value),将Path+@+PName作为查找参数检测模型的关键词。然后,在已建立的参数检测模型中找到Path+@+PName为www.xxx.com/index.php@id对应的HMM模型,将参数值125$%7B@print(md5(123)%7D)输入该HMM模型,如果该HMM模型输出的概率值小于预设阈值,确定该参数字段为异常参数字段。在本发明的一种可选实施例中,具体可以通过如下步骤建立所述参数检测模型:步骤S21、收集预设时间段内正常的历史URL;在训练参数检测模型时,首先可以收集训练数据,该训练数据具体可以从Web访问日志文件(以下简称为Flow文件)中获取得到,具体地,将Flow文件中经过扫描器确定为异常的历史URL过滤掉,以得到正常的历史URL。步骤S22、从所述正常的历史URL中提取路径字段、参数字段、以及所述参数字段中的参数名和参数值;具体地,对训练数据中的每一条历史URL进行解析,提取其中的路径字段(Path)、参数字段(Param)、以及所述参数字段对应的参数名(PName)和参数值(Value),并且将Path+@+PName作为查找参数检测模型的关键词。步骤S23、确定所述参数值对应的状态序列;在本发明实施例中,可以将Value作为观察序列,并且对该观察序列进行泛化得到其对应的状态序列。所述泛化过程具体可以如下:对于所述历史URL中的中文字符,用字母Z进行替换;对于数字,用字母D进行替换;对于英文字母,用字母N进行替换;对于控制字符,用字母C进行替换;对于空白字符,用字母B进行替换;其他特殊字符保持不变。参照表1,示出了本发明的一种观察序列的具体示意,以及参照图2,示出了所述表1中观察序列对应的状态序列的具体示意。表1观察序列QWJsonp1444284393570aff-360daohang凤还朝,妖孽王爷请让道/abook/KAHWDRCyLHGBOw.html?cid=10033673表2状态序列NNNNNNNDDDDDDDDDDDDDNNN-DDDNNNNNNNZZZ,ZZZZZZZ/NNNNN/NNNNNNNNNNNNNN.NNNN?NNN=DDDDDDDD步骤S24、依据所述参数值和所述参数值对应的状态序列,训练得到与所述路径字段和所述参数名相对应的参数检测模型。在上述示例中,可以建立与www.xxx.com/index.php@id对应的HMM模型。而对于URL为www.xxx.com/index.php?p=2145462313的训练数据,可以重新建立与www.xxx.com/index.php@p对应的HMM模型。在本发明实施例中,由于在训练HMM模型的过程中采用的是白数据(正常URL),因此,每个HMM模型都能从训练数据中学习到某种观察序列(Value)出现的概率,并且得到其中最小的概率值(作为预设阈值)。假设待检测的URL为www.xxx.com/index.php?id=125$%7B@print(md5(123)%7D)。首先查找得到与www.xxx.com/index.php@id对应的HMM模型,然后依据该HMM模型计算得到Value为125$%7B@print(md5(123)%7D)的观察序列出现的概率值,如果该概率值小于所述预设阈值,则可以认为该URL异常。综上,本发明实施例可以依据预先建立的参数检测模型对待检测的URL中的参数字段进行异常检测,以确定所述参数字段是否出现异常,进而可以确定所述待检测的URL是否为符合预设异常条件的目标URL。由于所述参数检测模型可以为依据大量历史URL中的正常URL训练得到,因此可以保证所述参数检测模型的正确性。此外,由于所述参数检测模型与路径字段和参数字段中的参数名相对应,对于相同路径字段的各种不同参数字段都可以准确地检测出异常参数字段,进一步可以提高异常检测的准确性。方法实施例三本实施例在上述实施例一的基础上,详细说明依据预先建立的分类检测模型,确定所述目标URL对应的异常类别的具体过程,由于所述分类检测模型为依据预设时间段内的历史URL训练得到,从而可以提高分类检测的准确性。参照图3,示出了根据本发明一个实施例的一种Web异常检测方法的步骤流程图,具体可以包括:步骤301、对待检测的URL进行异常检测,得到符合预设异常条件的目标URL;步骤302、提取所述目标URL对应的特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;步骤303、统计所述特征关键词在所述目标URL中出现的频次;步骤304、将所述特征关键词集合和所述频次输入与所述特征关键词集合相对应的子分类检测模型,得到所述目标URL对应所述子分类检测模型的异常类别的概率值,以及所述目标URL对应正常类别的概率值;步骤305、依据所述异常类别的概率值和所述正常类别的概率值确定所述目标URL对应的异常类别。在本发明实施例中,所述分类检测模型可以包括至少一个子分类检测模型,且所述子分类检测模型与所述历史URL的异常类别以及所述历史URL的特征关键词集合相对应;其中,所述特征关键词集合中包括从所述历史URL中提取的至少一个特征关键词。在本发明实施例中,为了便于对各种不同格式的历史URL可以进行统一处理,可以在提取特征关键词之前,对历史URL进行解码、泛化、替换、分割等解析转换操作,得到转换后的字符串。其中,泛化是指将所述历史URL中的相似数据进行泛化处理,如ox开头的十六进制数据用同一个表示,字符串长度超过9位统一用S表示,符合时间格式的字符串用DATA表示等等。替换是指用空格替换所述历史URL中的内部换行符,以及将所述历史URL中的特殊符号替换为空格等。分割是指用空格分割所述历史URL中的各个字符串。参照表3,示出了本发明的一种历史URL转换之前的具体示意,以及参照表4,示出了本发明的一种将表3中的历史URL进行解析转换得到转换后的字符串的具体示意。表3表4转换后的字符串异常类别00011.com=DATA′)ANDSLEEP(5)AND(′eEye′′eEyeSQLS=ox123456"/><script>alert(/xss/)</script>XSS在本发明的一种应用示例中,假设当前的目标URL为:/??00011.com=?20151011′)%20AND%20SLEEP(5)%20AND%20(′eEye′=′eEye。首先,对所述目标URL进行解析转换处理后,可以得到如下字符串:00011.com=DATA′)ANDSLEEP(5)AND(′eEye′′eEye;假设预先建立的分类检测模型中包括N种异常类别对应的N个子分类检测模型,且这N个子分类检测模型对应有N个特征关键词集合。假设其中一个子分类检测模型为Model1,且Model1对应的特征关键词集合为:{′ANDSLEEPeEye},以及Model1对应的异常类别为Attack1,则从所述目标URL中提取该特征关键词集合,该特征关键词集合中包括如下特征关键词:′、AND、SLEEP、eEye,统计得到上述四个特征关键词在所述目标URL中出现的频次分别为:4、1、1、2。接下来,将特征关键词集合{′ANDSLEEPeEye}和对应的频次{4112}输入Model1,得到所述目标URL对应Attack1的概率值,以及所述目标URL对应正常类别的概率值。同样地,对所述目标URL依次提取与Model2、Model3至ModelN对应的特征关键词集合,以及调用Model2、Model3至ModelN,对所述目标URL进行异常分类检测,总共重复执行N次,最终可以得到所述目标URL对应Attack1、Attack2、Attack3至AttackN的概率值。假设N个子分类检测模型计算得到所述目标URL对应的N个正常类别的概率值集合A={A1,A2,...An},以及所述目标URL对应的N个异常类别的概率值集合B={B1,B2,...Bn},再对两类概率进行统一的汇总处理。在汇总过程中,可以采取最大值法,例如,如果上述2N个概率值中的最大值在集合B中,则所述分类检测模型输出的结果为所述目标URL对应的异常类别;如果最大值在集合A中,则输出的结果为所述目标URL为正常URL。在本发明的一种可选实施例中,所述方法还可以包括如下步骤:步骤S31、在得到所述目标URL对应的异常类别之后,对所述异常类别进行标注;步骤S32、依据标注后的目标URL对所述分类检测模型进行调整。在本发明实施例中,在通过分类检测模型识别出目标URL对应的异常类别之后,如果对识别结果不满意,可以对识别的异常类别进行人为标注,并且依据标注后的目标URL对所述分类检测模型进行调整,如将标注后的目标URL作为训练数据加入到训练集中,随着训练数据量的增加,分类检测模型可以通过自主学习的方式学习到之前没有的分类检测规则,从而可以对分类检测模型不断进行优化和调整,逐步提高检测的准确性。在本发明的一种可选实施例中,具体可以通过如下步骤建立所述分类检测模型:步骤S41、收集预设时间段内的历史URL,所述历史URL包括:正常URL和异常URL;在分类检测模型的训练阶段,收集的训练数据可以包括正常数据和异常数据。且训练数据可以从Flow的文件(例如最近1个月内的访问记录)中获取。参照表5,示出了本发明的一种收集的分类检测模型的训练数据的具体示意。表5其中,异常类别主要可以包含SQL注入,XSS,LFI,Command注入等攻击行为。可以理解,本发明实施例对于异常类别的种类和数量不加以限制。步骤S42、从所述历史URL中提取特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;步骤S43、获取所述特征关键词分别在所述正常URL记录和所述异常URL记录中出现的频次;在本发明实施例中,所述特征关键词具体可以包括URL中的词和/或词组和/或三元词组,在对所述历史URL进行解析转换之后,分别对正常URL和某一种异常URL中的词和/或词组和/或三元词组进行频次统计,以及获取正常URL中以及异常URL中出现频次最高的前n个(例如取前600个)词和/或词组和/或三元词组进行合并处理,得到关键词集合,该关键词集合中包括正常URL和该类异常URL中出现频次差异较大的关键词,则该关键词集合可用于区别正常URL和该类异常URL,每种异常类别可以选取1个独立的特征关键词集合,假设对N种异常类别进行训练,则可以对应有N个特征关键词集合。步骤S44、依据决策树对所述特征关键词和所述频次进行训练,以得到分类检测模型;其中,所述分类检测模型中包括与已知异常类别数量相对应的子分类检测模型,且每个子分类检测模型对应不同的异常类别以及特征关键词集合。在本发明实施例中,依次从训练数据中选取正常URL和某一异常类别对应的异常URL,依据该类异常URL的特征关键词在一条URL中出现的频次,对正常数据和N类异常数据进行训练,生成N个子分类检测模型。例如使用决策树对N种异常类别分别进行建模,最终可以训练出N个子分类检测模型。综上,本发明实施例依据预先建立的分类检测模型,确定所述目标URL对应的异常类别,由于所述分类检测模型为依据预设时间段内的历史URL训练得到,从而可以提高分类检测的准确性。此外,在识别目标URL对应的异常类别之后,如果对识别结果不满意,可以对识别的异常类别进行人为标注,并且将标注后的目标URL作为训练数据加入到训练集中,随着训练数据量的增加,分类检测模型可以通过自主学习的方式学习到之前没有的分类检测规则,从而可以对分类检测模型不断进行优化和调整,逐步提高检测的准确性。方法实施例四在本发明实施例中,在建立参数检测模型之后,可以生成第一模型库,所述第一模型库中可以包括预置路径白名单和/或预置路径黑名单,以及参数检测模型。其中,所述预置路径白名单中可以存储有正常路径字段,所述预置路径黑名单中可以存储有异常路径字段。所述预置路径白名单和所述预置路径黑名单可以通过收集的预设时间段内的历史URL所建立,通过提取所述历史URL中的路径字段,依据其中经过异常检测确定为异常的路径字段或者已标注为异常的路径字段建立预置路径黑名单;依据经过异常检测确定为正常的路径字段或者已标注为正常的路径字段建立预置路径白名单。可以理解,本发明实施例对于建立所述预置路径白名单和所述预置路径黑名单的具体方式不加以限制。在具体应用中,所述第一模型库可以将一些常见的或者通过异常检测的正常URL放行,而将少见的或者异常的URL作为可疑数据继续执行异常分类检测,不用对每个URL都进行检测,可以缩短时间开销。此外,在建立分类检测模型之后,可以生成第二模型库,所述第二模型库中可以包括N个子分类检测模型。第二模型库可用于识别当前不确定的或者异常的目标URL对应的异常类别。参照图4,示出了根据本发明一个实施例的一种Web异常检测方法的步骤流程图,具体可以包括:步骤401、依据已建立的第一模型库对待检测的URL进行异常检测,判断所述待检测的URL是否符合预设异常条件;本发明实施例首先依据第一模型库对待检测的URL流量进行初步过滤(即对待检测的URL进行异常检测),以过滤正常的URL,将过滤得到的可疑URL(即符合预设异常条件的目标URL)进行异常分类检测,可以缩短时间开销,提高检测效率。步骤402、提取所述待检测的URL的路径字段和参数字段;步骤403、在所述路径字段和预置路径黑名单相匹配,或者所述路径字段和预置路径白名单不匹配时,确定所述待检测的URL为符合异常条件的目标URL;在对所述待检测的URL进行异常检测时,可以先判断所述待检测的URL中的路径字段和预置路径黑名单是否匹配,若匹配,则确定所述待检测的URL符合异常条件,不用再进行后续匹配操作。若不匹配,再判断所述待检测的URL中的路径字段和预置路径白名单是否匹配,若不匹配,则确定所述待检测的URL符合异常条件,不用再进行后续的参数异常检测操作。步骤404、在所述路径字段和预置路径白名单相匹配时,依据预先建立的参数检测模型对所述参数字段进行异常检测;如果所述路径字段和预置路径白名单相匹配,可以确定路径字段为正常路径字段,则进一步对所述参数字段进行异常检测。步骤405、在所述参数检测模型检测得到所述参数字段为异常参数字段时,确定所述待检测的URL为符合预设异常条件的目标URL;需要说明的是,如果在已建立的参数检测模型中不存在与当前Path+@+PName相对应的参数检测模型,可以认为该待检测的URL为不确定的URL,则可以将该待检测的URL作为符合预设异常条件的目标URL,进行进一步的异常分类检测。步骤406、依据已建立的第二模型库中N个子分类检测模型分别对应的N个特征关键词集合,从所述目标URL中提取对应的特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;对于符合预设异常条件的目标URL,进一步依据已建立的第二模型库进行异常分类检测,以确定所述目标URL对应的异常类别。所述已建立的第二模型库中可以包括N个子分类检测模型,且这N个子分类检测模型分别对应不同的异常类别以及特征关键词集合,则对所述目标URL分别提取与这N个子分类检测模型的特征关键词集合对应的特征关键词集合。例如,所述已建立的第二模型库包括Model1、Model2至ModelN这N个子分类检测模型,这N个子分类检测模型对应的特征关键词集合分别为C1、C2至CN,以及对应的异常类别分别为Attack1、Attack2至AttackN。步骤407、统计所述特征关键词在所述目标URL中出现的频次;步骤408、依次将所述特征关键词集合以及所述频次输入所述N个子分类检测模型,得到所述目标URL分别对应所述子分类检测模型的异常类别的概率值,以及所述目标URL分别对应正常类别的概率值;具体地,依次将C1、C2至CN和其分别在目标URL中出现的频次输入Model1、Model2至ModelN,分别得到所述目标URL对应Attack1、Attack2至AttackN的概率值集合A={A1,A2,...An},以及对应正常类别的概率值集合B={B1,B2,...Bn}。步骤409、依据所述异常类别的概率值和所述正常类别的概率值确定所述目标URL对应的异常类别。如果最大值概率值在集合B中,则所述分类检测模型输出的结果为所述目标URL对应的异常类别;如果最大值在集合A中,则输出的结果为所述目标URL为正常URL。可以理解,上述先使用第一模型库再使用第二模型库对待检测的URL进行异常检测的方式,仅作为本发明的一种应用示例,在具体应用中,本发明实施例对于第一模型库和第二模型库的使用顺序不加以限制,例如也可以先使用第二模型库再使用第一模型库对待检测的URL进行异常检测。装置实施例参照图5,示出了根据本发明一个实施例的一种Web异常检测装置的结构框图,具体可以包括:异常检测模块501,用于对待检测的URL进行异常检测,得到符合预设异常条件的目标URL;分类检测模块502,用于依据预先建立的分类检测模型,确定所述目标URL对应的异常类别;其中,所述分类检测模型为依据预设时间段内的历史URL训练得到。在本发明的一种可选实施例中,所述异常检测模块501,具体可以包括:字段提取子模块,用于提取所述待检测的URL的路径字段和参数字段;字段匹配子模块,用于匹配所述路径字段和预置路径白名单中的正常路径字段,若匹配,则依据预先建立的参数检测模型对所述参数字段进行异常检测;其中,所述参数检测模型为依据预设时间段内历史URL中提取的历史路径字段和历史参数字段训练得到;异常确定子模块,用于在所述参数检测模型检测得到所述参数字段为异常参数字段时,确定所述待检测的URL为符合预设异常条件的目标URL。在本发明的另一种可选实施例中,所述字段匹配子模块,具体可以包括:输入单元,用于将所述参数字段对应的参数值输入与所述路径字段和所述参数字段中参数名相对应的参数检测模型;确定单元,用于在所述参数检测模型输出的概率值小于预设阈值时,确定所述参数字段为异常参数字段。在本发明的又一种可选实施例中,所述装置还可以包括:参数检测模型建立模块,用于建立所述参数检测模型;所述参数检测模型建立模块,具体可以包括:历史URL收集子模块,用于收集预设时间段内正常的历史URL;参数提取子模块,用于从所述正常的历史URL中提取路径字段、参数字段、以及所述参数字段中的参数名和参数值;序列确定子模块,用于确定所述参数值对应的状态序列;参数检测模型训练子模块,用于依据所述参数值和所述参数值对应的状态序列,训练得到与所述路径字段和所述参数名相对应的参数检测模型。在本发明的再一种可选实施例中,所述分类检测模型包括至少一个子分类检测模型,且所述子分类检测模型与所述历史URL的异常类别以及所述历史URL的特征关键词集合相对应;其中,所述特征关键词集合中包括从所述历史URL中提取的至少一个特征关键词。在本发明的再一种可选实施例中,所述分类检测模块503,具体可以包括:关键词提取子模块,用于提取所述目标URL对应的特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;频次统计子模块,用于统计所述特征关键词在所述目标URL中出现的频次;输入子模块,用于将所述特征关键词集合和所述频次输入与所述特征关键词集合相对应的子分类检测模型,得到所述目标URL对应所述子分类检测模型的异常类别的概率值,以及所述目标URL对应正常类别的概率值;类别确定子模块,用于依据所述异常类别的概率值和所述正常类别的概率值确定所述目标URL对应的异常类别。在本发明的再一种可选实施例中,所述装置还可以包括:分类检测模型建立模块,用于建立所述分类检测模型;所述分类检测模型建立模块,具体可以包括:历史URL收集子模块,用于收集预设时间段内的历史URL,所述历史URL包括:正常URL和异常URL;关键词提取子模块,用于从所述历史URL中提取特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;频次获取子模块,用于获取所述特征关键词分别在所述正常URL和所述异常URL中出现的频次;分类检测模型建立子模块,用于依据决策树对所述特征关键词和所述频次进行训练,以得到分类检测模型;其中,所述分类检测模型中包括与已知异常类别数量相对应的子分类检测模型,且每个子分类检测模型对应不同的异常类别以及特征关键词集合。在本发明的再一种可选实施例中,所述装置还可以包括:标注模块,用于在得到所述目标URL对应的异常类别之后,对所述异常类别进行标注;模型调整模块,用于依据标注后的目标URL对所述分类检测模型进行调整。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的Web异常检测方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网平台上下载得到,或者在载体信号上提供,或者以任何其他形式提供。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。本发明公开了A1、一种Web异常检测方法,所述方法包括:对待检测的URL进行异常检测,得到符合预设异常条件的目标URL;依据预先建立的分类检测模型,确定所述目标URL对应的异常类别;其中,所述分类检测模型为依据预设时间段内的历史URL训练得到。A2、根据权利要求A1所述的方法,所述对待检测的URL进行异常检测,得到符合预设异常条件的目标URL的步骤,包括:提取所述待检测的URL的路径字段和参数字段;匹配所述路径字段和预置路径白名单中的正常路径字段,若匹配,则依据预先建立的参数检测模型对所述参数字段进行异常检测;其中,所述参数检测模型为依据预设时间段内历史URL中提取的历史路径字段和历史参数字段训练得到;在所述参数检测模型检测得到所述参数字段为异常参数字段时,确定所述待检测的URL为符合预设异常条件的目标URL。A3、根据权利要求A2所述的方法,所述依据预先建立的参数检测模型对所述参数字段进行异常检测的步骤包括:将所述参数字段对应的参数值输入与所述路径字段和所述参数字段中参数名相对应的参数检测模型;在所述参数检测模型输出的概率值小于预设阈值时,确定所述参数字段为异常参数字段。A4、根据权利要求A2所述的方法,通过如下步骤建立所述参数检测模型:收集预设时间段内正常的历史URL;从所述正常的历史URL中提取路径字段、参数字段、以及所述参数字段中的参数名和参数值;确定所述参数值对应的状态序列;依据所述参数值和所述参数值对应的状态序列,训练得到与所述路径字段和所述参数名相对应的参数检测模型。A5、根据权利要求A1所述的方法,所述分类检测模型包括至少一个子分类检测模型,且所述子分类检测模型与所述历史URL的异常类别以及所述历史URL的特征关键词集合相对应;其中,所述特征关键词集合中包括从所述历史URL中提取的至少一个特征关键词。A6、根据权利要求A5所述的方法,所述依据预先建立的分类检测模型,确定所述目标URL对应的异常类别的步骤,包括:提取所述目标URL对应的特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;统计所述特征关键词在所述目标URL中出现的频次;将所述特征关键词集合和所述频次输入与所述特征关键词集合相对应的子分类检测模型,得到所述目标URL对应所述子分类检测模型的异常类别的概率值,以及所述目标URL对应正常类别的概率值;依据所述异常类别的概率值和所述正常类别的概率值确定所述目标URL对应的异常类别。A7、根据权利要求A5所述的方法,通过如下步骤建立所述分类检测模型:收集预设时间段内的历史URL,所述历史URL包括:正常URL和异常URL;从所述历史URL中提取特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;获取所述特征关键词分别在所述正常URL和所述异常URL中出现的频次;依据决策树对所述特征关键词和所述频次进行训练,以得到分类检测模型;其中,所述分类检测模型中包括与已知异常类别数量相对应的子分类检测模型,且每个子分类检测模型对应不同的异常类别以及特征关键词集合。A8、根据权利要求A6所述的方法,所述方法还包括:在得到所述目标URL对应的异常类别之后,对所述异常类别进行标注;依据标注后的目标URL对所述分类检测模型进行调整。本发明公开了B9、一种Web异常检测装置,所述装置包括:异常检测模块,用于对待检测的URL进行异常检测,得到符合预设异常条件的目标URL;分类检测模块,用于依据预先建立的分类检测模型,确定所述目标URL对应的异常类别;其中,所述分类检测模型为依据预设时间段内的历史URL训练得到。B10、根据权利要求B9所述的装置,所述异常检测模块,包括:字段提取子模块,用于提取所述待检测的URL的路径字段和参数字段;字段匹配子模块,用于匹配所述路径字段和预置路径白名单中的正常路径字段,若匹配,则依据预先建立的参数检测模型对所述参数字段进行异常检测;其中,所述参数检测模型为依据预设时间段内历史URL中提取的历史路径字段和历史参数字段训练得到;异常确定子模块,用于在所述参数检测模型检测得到所述参数字段为异常参数字段时,确定所述待检测的URL为符合预设异常条件的目标URL。B11、根据权利要求B10所述的装置,所述字段匹配子模块,包括:输入单元,用于将所述参数字段对应的参数值输入与所述路径字段和所述参数字段中参数名相对应的参数检测模型;确定单元,用于在所述参数检测模型输出的概率值小于预设阈值时,确定所述参数字段为异常参数字段。B12、根据权利要求B10所述的装置,所述装置还包括:参数检测模型建立模块,用于建立所述参数检测模型;所述参数检测模型建立模块,包括:历史URL收集子模块,用于收集预设时间段内正常的历史URL;参数提取子模块,用于从所述正常的历史URL中提取路径字段、参数字段、以及所述参数字段中的参数名和参数值;序列确定子模块,用于确定所述参数值对应的状态序列;参数检测模型训练子模块,用于依据所述参数值和所述参数值对应的状态序列,训练得到与所述路径字段和所述参数名相对应的参数检测模型。B13、根据权利要求B9所述的装置,所述分类检测模型包括至少一个子分类检测模型,且所述子分类检测模型与所述历史URL的异常类别以及所述历史URL的特征关键词集合相对应;其中,所述特征关键词集合中包括从所述历史URL中提取的至少一个特征关键词。B14、根据权利要求B13所述的装置,所述分类检测模块,包括:关键词提取子模块,用于提取所述目标URL对应的特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;频次统计子模块,用于统计所述特征关键词在所述目标URL中出现的频次;输入子模块,用于将所述特征关键词集合和所述频次输入与所述特征关键词集合相对应的子分类检测模型,得到所述目标URL对应所述子分类检测模型的异常类别的概率值,以及所述目标URL对应正常类别的概率值;类别确定子模块,用于依据所述异常类别的概率值和所述正常类别的概率值确定所述目标URL对应的异常类别。B15、根据权利要求B13所述的装置,所述装置还包括:分类检测模型建立模块,用于建立所述分类检测模型;所述分类检测模型建立模块,包括:历史URL收集子模块,用于收集预设时间段内的历史URL,所述历史URL包括:正常URL和异常URL;关键词提取子模块,用于从所述历史URL中提取特征关键词集合;其中,所述特征关键词集合中包括至少一个特征关键词;频次获取子模块,用于获取所述特征关键词分别在所述正常URL和所述异常URL中出现的频次;分类检测模型建立子模块,用于依据决策树对所述特征关键词和所述频次进行训练,以得到分类检测模型;其中,所述分类检测模型中包括与已知异常类别数量相对应的子分类检测模型,且每个子分类检测模型对应不同的异常类别以及特征关键词集合。B16、根据权利要求B14所述的装置,所述装置还包括:标注模块,用于在得到所述目标URL对应的异常类别之后,对所述异常类别进行标注;模型调整模块,用于依据标注后的目标URL对所述分类检测模型进行调整。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1