CN105516128B - 一种Web攻击的检测方法及装置 - Google Patents
一种Web攻击的检测方法及装置 Download PDFInfo
- Publication number
- CN105516128B CN105516128B CN201510889266.0A CN201510889266A CN105516128B CN 105516128 B CN105516128 B CN 105516128B CN 201510889266 A CN201510889266 A CN 201510889266A CN 105516128 B CN105516128 B CN 105516128B
- Authority
- CN
- China
- Prior art keywords
- web
- url
- daily records
- web daily
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Abstract
一种Web攻击检测方法及装置;方法包括:对于待处理的多条Web日志,按照所述Web日志中的统一资源定位符URL进行划分,得到不同URL对应的Web日志子集;对于每个URL所对应的Web日志子集分别进行以下处理:选取所述Web日志子集中部分Web日志,所选取的Web日志在所述Web日志子集中所占的比例小于或等于预定的比例上限;根据所选取的Web日志构建该URL对应的正常行为模型;对于每个URL所对应的Web日志子集,分别基于该URL对应的正常行为模型,对该URL所对应Web日志子集中未被选取的Web日志进行异常检测。本发明能够对Web应用防火墙无法发现的Web攻击进行事后的攻击检测和取证。
Description
技术领域
本发明涉及一种网络安全领域,具体涉及一种Web攻击的检测方法及装置。
背景技术
当前,80%的常见应用都是Web应用,包括对安全性要求较高的金融类应用。Web已经成为标准的应用交互接口。Web应用在给人们带来方便的同时,也成为了黑客最为关注的对象。常见的针对Web应用的攻击包括SQL(Structured Query Language,结构化查询语言)注入攻击、XSS(Cross Site Scripting,跨站脚本攻击)、CSRF(Cross-site requestforgery,跨站请求伪造)以及各种可能导致Web服务器拒绝服务的Web攻击方式。
为了防御各种Web攻击,相关技术中的处理方式通常是在Web应用前面部署Web应用防火墙,它可在将Web业务访问请求提交到后台Web服务器之前对其进行安全检查,如果发现含有Web攻击企图,则阻断本次Web业务访问请求。但当前的Web应用防火墙多采用误用检测方式来检测各种Web攻击,误用检测方式是指通过与攻击特征库进行特征匹配,以确定攻击事件,其优点是误报率低,缺点是各种Web攻击特征容易被变形,从而可能躲避检测,造成漏报;此外,误用检测无法检测未知Web攻击。
异常检测方法则是一种不同于误用检测的攻击检测方法。它首先为被检测对象建立正常行为模型,然后,度量待检测对象当前行为与正常行为模型的偏差,如果明显偏离,则表示检测到异常行为,这种异常行为可能是一种攻击。异常检测方法优点是可能检测到各种未知攻击,但是,其缺点也很明显,就是误报率高,很多时候无法对报警结果进行合理解释。
Web应用防火墙只能检测到Web攻击企图,对于那些躲避了Web应用防火墙检测的Web攻击,则可能通过对Web日志进行安全分析检测出来。但当前基于Web日志分析的Web攻击检测方法多数仍然是采用基于已知攻击特征的误用检测方法,漏报率高。
发明内容
本发明要解决的技术问题是如何克服误用检测和异常检测的缺点,能够对Web应用防火墙无法发现的Web攻击进行事后的攻击检测和取证。
为了解决上述问题,采用如下技术方案。
一种Web攻击检测方法,包括:
S110、对于待处理的多条Web日志,按照所述Web日志中的统一资源定位符URL进行划分,得到不同URL对应的Web日志子集;
S120、对于每个URL所对应的Web日志子集分别进行以下处理:选取所述Web日志子集中部分Web日志,所选取的Web日志在所述Web日志子集中所占的比例小于或等于预定的比例上限;根据所选取的Web日志构建该URL对应的正常行为模型;
S130、对于每个URL所对应的Web日志子集,分别基于该URL对应的正常行为模型,对该URL所对应Web日志子集中未被选取的Web日志进行异常检测。
可选地,所述根据所选取的Web日志构建该URL对应的正常行为模型包括:
基于选取的Web日志中该URL相关的一个或多个用户输入参数的用户输入值,分别构建该URL相关的用户输入参数的正常数据格式,URL对应的正常行为模型为该URL相关的用户输入参数的正常数据格式的集合;
所述基于该URL对应的正常行为模型,对该URL所对应Web日志子集中未被选取的Web日志进行异常检测包括:
对于每条未被选取的Web日志,提取该URL相关的一个或多个用户输入参数所对应的用户输入值,分别检查每个用户输入值是否符合该URL对应的正常行为模型中该用户输入值对应的用户输入参数的正常数据格式,如果不符合,则判定该用户输入值为异常;当一条Web日志中,判定为异常的用户输入值的个数或比例大于或等于预定门限时,将该条Web日志确定为异常的Web日志。
可选地,所述URL相关的一个或多个用户输入参数包括以下任一项或任几项:该URL相关的一个或多个Cookie,以及附加在该URL后面的一个或多个用户输入参数。
可选地,所述判定用户输入值异常后还包括:
对判定为异常的用户输入值,将该用户输入值与Web攻击特征库进行匹配,识别出已知的Web攻击。
可选地,所述根据所选取的Web日志构建该URL对应的正常行为模型包括:
对所选取的Web日志进行基于Web攻击特征库的误用检测,将包含Web攻击特征的Web日志筛除,基于剩下的Web日志构建该URL对应的正常行为模型。
一种Web攻击检测装置,包括:
日志分类模块,用于对于待处理的多条Web日志,按照所述Web日志中的统一资源定位符URL进行划分,得到不同URL对应的Web日志子集;
正常行为模型学习模块,用于对于每个URL所对应的Web日志子集分别进行以下处理:选取所述Web日志子集中部分Web日志,所选取的Web日志在所述Web日志子集中所占的比例小于或等于预定的比例上限;根据所选取的Web日志构建该URL对应的正常行为模型;
异常检测模块,用于对于每个URL所对应的Web日志子集,分别基于该URL对应的正常行为模型,对该URL所对应Web日志子集中未被选取的Web日志进行异常检测。
可选地,所述正常行为模型学习模块根据所选取的Web日志构建该URL对应的正常行为模型包括:
所述正常行为模型学习模块基于选取的Web日志中该URL相关的一个或多个用户输入参数的用户输入值,分别构建该URL相关的用户输入参数的正常数据格式,URL对应的正常行为模型为该URL相关的用户输入参数的正常数据格式的集合;
所述异常检测模块基于该URL对应的正常行为模型,对该URL所对应Web日志子集中未被选取的Web日志进行异常检测包括:
所述异常检测模块对于每条未被选取的Web日志,提取该URL相关的一个或多个用户输入参数所对应的用户输入值,分别检查每个用户输入值是否符合该URL对应的正常行为模型中该用户输入值对应的用户输入参数的正常数据格式,如果不符合,则判定该用户输入值为异常;当一条Web日志中,判定为异常的用户输入值的个数或比例大于或等于预定门限时,将该条Web日志确定为异常的Web日志。
可选地,所述URL相关的一个或多个用户输入参数包括以下任一项或任几项:该URL相关的一个或多个Cookie,以及附加在该URL后面的一个或多个用户输入参数。
可选地,所述的装置还包括:
误用检测模块,用于对判定为异常的用户输入值,将该用户输入值与Web攻击特征库进行匹配,识别出已知的Web攻击。
可选地,所述正常行为模型学习模块根据所选取的Web日志构建该URL对应的正常行为模型包括:
所述正常行为模型学习模块指示所述误用检测模块对所选取的Web日志进行基于Web攻击特征库的误用检测,将包含Web攻击特征的Web日志筛除,基于剩下的Web日志构建该URL对应的正常行为模型。
本发明的技术方案的优势是:充分结合了误用检测和异常检测方法的优点,能够检测到各种已知和未知的Web攻击,可以在信息安全风险评估等事后分析Web应用系统安全的时候,对前端Web应用防火墙无法检测到的Web攻击进行事后的攻击检测和取证,并可能发现各种未知Web攻击,从而能够作为Web应用防火墙的一种有利补充,保障Web应用的安全。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例一的Web攻击的检测方法的流程示意图;
图2为本发明实施例一的Web攻击的检测装置的示意图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一、一种Web攻击检测方法,如图1所示,包括步骤S110~S130:
S110、对于待处理的多条Web日志,按照所述Web日志中的URL(Uniform ResourceLocator,统一资源定位符)进行划分,得到不同URL对应的Web日志子集。
本步骤可以包括:对于待处理的多条Web日志,首先分别提取每条Web日志中的URL,然后按照URL对所述待处理的多条Web日志进行划分,将包含相同URL的Web日志划分到同一个Web日志子集中,从而得到和不同URL一一对应的Web日志子集;其中,每个所述Web日志子集中可以包括一条或多条Web日志。
本步骤后还可以包括:预先排除Web日志条数少于第一预定数量阈值的Web日志子集,或者,只对Web日志条数达到第二预定数量阈值的Web日志子集进行后续步骤,即:设置异常检测阈值条件,对不满足该异常检测阈值条件(比如含有Web日志过少)的Web日志子集,对其中每条Web日志携带的与URL相关的用户输入参数进行基于Web攻击特征库的误用检测;因为Web日志过少的情况下,后续步骤S120、S130处理的结果可能不正确。所述第一、第二预定数量阈值或其它异常检测阈值条件可以根据经验或实验确定。
S120、对于步骤S110中得到的每个URL所对应的Web日志子集分别进行以下处理:
选取所述Web日志子集中部分Web日志作为样本,所选取的Web日志在所述Web日志子集中所占的比例小于或等于预定的比例上限;根据所选取的Web日志构建该URL对应的正常行为模型。
其中,可以将所述预定比例设置为小于或等于50%;比如Web日志子集中有96条Web日志,预定比例为30%,则选取28条或28条以下的Web日志作为样本构建正常行为模型。
其中,在选取Web日志时还可以规定比例下限或最少条数(即:至少选取多少条),以保证选取的Web日志条数不会过少。
其中,选取Web日志时可以随机选取,也可以基于预定原则选取,比如:所选取的Web日志来自至少指定个数的Web客户端。
其中,所述根据所选取的Web日志构建该URL对应的正常行为模型可以包括:对所选取的Web日志进行基于Web攻击特征库的误用检测,将包含明显Web攻击特征的Web日志筛除,然后基于剩下的Web日志构建该URL对应的正常行为模型。
其中,所述的Web攻击特征库可以包括用来识别以下一种或多种已知攻击的Web攻击特征:SQL注入攻击、XSS攻击、目录遍历、缓冲区溢出、敏感文件获取、OS命令注入等。
其中,所述根据所选取的Web日志构建URL对应的正常行为模型可以包括:基于选取的Web日志中该URL相关的一个或多个用户输入参数的用户输入值,为该URL相关的用户输入参数构建正常数据格式(也就是后台Web应用程序所期望的用户输入值的正常数据格式),URL对应的正常行为模型可以为该URL相关的用户输入参数的正常数据格式的集合。所述用户输入值也可以称为所述用户输入参数的参数值,比如用户输入参数为status,用户输入值为ok。
本实施例的方法还可以包括:当无法为某个用户输入参数构建正常数据格式时,放弃对该用户输入参数构建正常数据格式,而是直接采用基于已知Web攻击特征库的误用检测方法对该用户输入参数进行Web攻击检测。如果URL相关的用户输入参数中部分无法构建正常数据格式,则URL对应的正常行为模型可以为该URL相关的用户输入参数中,构建成功的正常数据格式的集合。
其中,URL相关的一个或多个用户输入参数可以包括以下任一项或任几项:该URL相关的一个或多个Cookie,以及附加在该URL后面的一个或多个用户输入参数。
S130、对于每个URL所对应的Web日志子集,分别基于步骤S120中所构建的该URL对应的正常行为模型,对该URL所对应Web日志子集中的剩余部分(即:步骤120中未被选取的Web日志)进行异常检测,从而检测出Web日志中可能存在的各种Web攻击。
其中,所述对该URL所对应Web日志子集中未被选取的Web日志进行异常检测可以包括:对于每条未被选取的Web日志,分别提取URL当前行为,并与先前构建的该URL对应的正常行为模型进行比对,当发现一条Web日志的URL当前行为与URL正常行为模型的偏差较大时,表示可能检测到了Web异常,将该条Web日志确定为异常的Web日志。
其中,所述提取URL当前行为,并与先前构建的该URL对应的正常行为模型进行比对包括:从Web日志中提取一个或多个该URL相关的用户输入参数所对应的用户输入值,分别检查每个用户输入值是否符合该URL对应的正常行为模型中该用户输入值对应的用户输入参数的正常数据格式,如果不符合,则判定该用户输入值为异常。
其中,当一条Web日志中,判定为异常的用户输入值的个数或比例大于或等于预定门限(比如个数达到或超过预定的异常个数上限、或者在所述Web日志的用户输入值中所占比例大于或等于预定的异常比例上限等)时,则认为该条Web日志的URL当前行为与URL正常行为模型的偏差较大,将该条Web日志确定为异常的Web日志。
其中,所述步骤130后还可以包括:对所有Web日志子集中的异常的Web日志分别进行基于Web攻击特征库的误用检测,从而标识该异常的Web日志为一个确定的Web攻击事件。
在检测到异常后再进行误用检测的目的是标识异常的Web日志具体属于哪种类型的Web攻击;如果一个异常的Web日志无法标识为确定的Web攻击事件,可能是由于攻击特征变形等原因导致,此情况下可以将该异常的Web日志标识为异常的攻击事件,等待人工的进一步分析;如果人工分析后发现了变形的攻击特征,还可以将该变形的攻击特征加入所述Web攻击特征库。
其中,当判定用户输入值异常后还可以包括:对于判定为异常的用户输入值,将该用户输入值与事先建立的Web攻击特征库进行匹配,以便将各种已知的Web攻击识别出来。下面用六个实施示例说明本实施例的执行细节。
实施示例1、本实施示例介绍从Web日志中提取URL的过程。
所述的Web日志可以是各种常见Web应用服务器的Web日志,包括但不限于Apache的access_log,微软IIS的W3SVC日志文件等。本实施例可对所有可识别其格式的Web日志文件进行安全分析。下面的例子是从IIS的日志文件中提取的一条Web日志及其格式描述:
#Fields:date time s-sitename s-computername s-ipcs-method cs-uri-stemcs-uri-query s-port cs-username c-ipcs-version cs(User-Agent)cs(Cookie)cs(Referer)cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytestime-taken
2008-12-14 06:00:45 W3SVC449144315 GD-5JW2MLSORDNG 123.232.97.202GET/download.asp id=14774&status=ok 80-72.30.142.151 HTTP/1.0Mozilla/5.0SID=CHBAGCNBKC;login=okay-music.jnnc.com 200 0 0 5516 223 609
对于上述例子中的一条IIS Web日志,该条Web日志的条目中携带的URL来自第7个字段,即名为cs-uri-stem的字段值。在该例子中,cs-uri-stem字段的值为“/download.asp”。
本实施例所述按照URL对Web日志进行分类的步骤,就是按照这个来自cs-uri-stem字段的值对Web日志进行分类,将含有同一URL的Web日志划分到同一Web日志子集中。
其它格式的Web日志参照上例提取URL,这里不再赘述。
实施示例2、本实施示例介绍从Web日志中提取URL相关的用户输入参数的过程。
对于一个由客户端或攻击者发出的HTTP请求,该请求除了包含一个URL外,还可能携带一些从用户端接收到的用户输入参数,所述用户输入参数一般出现在HTTP请求的Cookie和URL查询参数中。这些用户输入参数会被Web应用服务器记录在Web日志中。对于微软IIS Web应用服务器,这些用户输入参数分别在cs(Cookie)和cs-uri-query字段中。对于如实施示例1例子中所示的IIS Web日志,cs(Cookie)对应的值为id=14774&status=ok,cs-uri-query字段对应的值为SID=CHBAGCNBKC;login=okay。其中,cs-uri-query值包括两个由“&”分隔且格式为名称和值对的用户输入参数,分别是名为id和值为14774值,以及名为status和值为ok的名称值对。cs(Cookie)值包括两个由“;”分隔的格式为名称和值对的用户输入参数,分别是名为SID和值为CHBAGCNBKC,以及名为login和值为okay的名称值对。因此,对于实施示例1例子中的该条Web日志,可以提取出四个用户输入参数,名称分别为id、status、SID和login,对应的用户输入值分别为“14774”、“ok”、“CHBAGCNBKC”和“okay”。本实施例就是要对这些用户输入参数所对应的用户输入值进行正常行为建模,然后结合误用检测和异常行为检测方法识别出这些用户输入参数中携带的各种已知和未知的Web攻击。
通常情况下,可能携带用户输入数据的参数可能还包括POST类型的HTTP请求的Body部分,他们也是由参数名称和值对组成,并由“&”分割开。但是,对于POST类型的HTTP请求,其在Body中携带的用户输入数据并不记录在Web日志中。因此,本发明方法不考虑这部分用户输入参数及参数值中所包含的Web攻击情况。
实施示例3、本实施示例介绍对用户输入参数进行正常行为建模(即:构建正常数据格式)的过程。
通过对常见Web业务系统进行统计分析发现,实际的Web业务系统中,后台Web应用程序要求用户输入参数都是符合一定数据格式的,并且都可以采用一个标准正则表达式表示各用户输入参数的数据格式。比如,用户输入参数为数字域或文本域,其中,数字域是只允许输入数字的,包括整数和浮点数,常见的具有这种格式的用户输入参数的类型包括年龄、价格、年份和月份等等,它可以用一个正则表达式表示。文本域则允许输入文本(包括ASCII文本和汉字)。对于文本域类型的用户输入参数,统计发现,大多数文本域都可以归纳为简单文本或者数据列表来表示,简单文本类型如身份证、Email地址、电话号码、IP地址、文件名、URL、DNS、布尔值、ASCII单词和中文单词;而数据列表类型则是通过某种组合方式对简单类型数据进行组合得到的列表数据,比如,采用减号或者分号拼接的数据列表。这些文本域都可以通过一个已知的正则表达式来描述。
本实施例中,所述用户输入参数的正常数据格式构建过程是,从选取出来作为学习样本的Web日志中,提取该用户输入参数的用户输入值列表,并对学习样本进行清洗(即:排除具有Web攻击特征的Web日志)后,采用预定的数据格式学习算法对该用户输入值列表进行非监督学习,或者通过直接与预先建立的数据格式对应的正则表达式进行匹配,以识别出该用户输入参数的数据格式。实施示例4将给出采用第二种方法来构建用户输入参数的正常数据格式的过程。
一旦某用户输入参数的正常数据格式被确定,就可以基于该正常数据格式进行Web异常检测。
对于无法用已知格式的简单数据格式和数据列表格式来描述的用户输入参数(比如,用来接收用户BBS内容的用户输入参数,或者用来接收用户评论的用户输入参数),即:对于无法构建正常数据格式的用户输入参数,可以不为其建立正常数据格式,而是直接采用基于已知Web攻击特征的误用检测方法对其进行检测。
实施示例4、本实施示例介绍基于用户输入值列表构建用户输入参数的正常数据格式的过程。
本实施示例所述基于用户输入值列表构建用户输入参数的正常数据格式的过程是一种学习过程,包括如下步骤41~43:
41、首先,分别为每种已知数据格式的用户输入参数定义正则表达式;
42、然后对于用户输入值列表中的每个用户输入值,分别将其与各预先定义的正则表达式进行匹配,如果它与某种类型的数据格式的正则表达式匹配,则为该类型的数据格式增加一票(由于一个用户输入值可能与多个类型的数据格式相匹配,因此,一个用户输入值可能给多个类型的数据格式各自增加1票);当用户输入值列表的每个用户输入值都投票完毕,选择获得投票数大于或等于预先设定阈值的数据格式作为该用户输入值对应的用户输入参数的正常数据格式(称之为绝对占优数据类型);如果当前情况下不存在某种绝对占优的数据格式,则可以增加用户输入值列表的长度,直到获得了至少一个绝对占优的数据格式作为该用户输入值对应的用户输入参数的正常数据格式。
43、如果通过继续学习仍然无法提取到绝对占优的数据格式(该用户输入参数很可能不具有可用正则表达式描述的数据格式,比如BBS中的评论字段),则表示数据格式学习失败,停止构建用户输入参数的正常数据格式。
为了保证构建的用户输入参数的正常数据格式的准确性,首先必须最大程度确保正常行为建模时所使用的用户输入值的纯净。本实施例所述方法使用误用检测方法将包含Web攻击的Web日志排除在学习样本之外。
实施示例5、本实施示例介绍基于用户输入参数的正常数据格式进行异常检测的过程。
本实施例为用户输入参数构建了其对应的正常数据格式,URL相关的用户输入参数的正常数据格式集合作为该URL的正常行为模型。因此,异常检测的关键是如何基于为用户输入参数构建的正常数据格式来检测用户输入值中可能携带的Web攻击。
本实施例所述方法为用户输入参数构建的正常数据格式包括简单类型和复杂类型格式两种。
对于简单类型的数据格式,本实施例采用正则表达式直接表示,因此,对于正常数据格式为简单类型的用户输入参数,异常检测过程就是从Web日志中提取给用户输入参数的用户输入值,将用户输入值直接与用户输入参数对应的正则表达式匹配,如果匹配成功,则为正常数据,匹配不成功,则判定为检测到异常。
对于复杂类型数据格式,本实施例只考虑数据列表的匹配问题。数据列表可以为简单类型数据列表,也可以为混合类型数据列表。由于并没有采用正则表达式来直接描述数据列表,而是通过定义数据列表的分隔符和数据项来描述,其中每个数据项分别有对应的数据格式,该数据格式为简单类型的数据格式,因此,对于正常数据格式为复杂数据类型的用户输入参数,异常检测过程就不能直接进行正则表达式匹配,而是必须首先对用户输入值按指定分隔符进行分割得到数据项列表,然后再检查每个数据项是否满足指定的简单类型的数据格式,如果一个用户输入值分割得到的每个数据项都满足指定的简单类型的数据格式,则判定该用户输入值符合该用户输入参数的正常数据格式;一个用户输入值只要有一个数据项不符合指定的简单类型的数据格式,则判定为检测到异常。
对于所有标识为异常的用户输入值,本实施例所述方法首先对其进行异常标识,同时采用基于已知Web攻击特征的误用检测方法对其进行检测,以确定该异常是否为某种具体的Web攻击。
实施示例6、本实施示例介绍对用户输入值进行误用检测的过程。
本实施例所述方法在为用户输入参数构建正常数据格式前,会对用来构建正常行为模型的Web日志进行误用检测,以清洗掉那些明显包含Web攻击的样本,确保学习到的用户输入参数格式的正确性。同时,对于通过异常检测方法检测出来的标识为异常的用户输入值,也采用误用检测方法对其进行检测,以确定该异常是否为某种具体的Web攻击,帮助Web安全管理员针对该类攻击采取有针对性的处理措施。
本实施例所述方法在进行基于Web攻击特征库的误用检测前,需要构建Web攻击特征库,特征库涵盖SQL注入、跨站脚本、命令注入、目录遍历、缓冲区溢出等攻击特征。关于Web攻击特征库的表示和匹配方法,可以参照信息安全领域的基于误用检测的入侵检测产品的做法。这里不再详细说明。
实施例二、一种基于Web日志分析的Web攻击检测装置,如图2所示,包括:
日志分类模块21,用于对于待处理的多条Web日志,按照所述Web日志中的统一资源定位符URL进行划分,得到不同URL对应的Web日志子集;
正常行为模型学习模块22,用于对于每个URL所对应的Web日志子集分别进行以下处理:选取所述Web日志子集中部分Web日志,所选取的Web日志在所述Web日志子集中所占的比例小于或等于预定的比例上限;根据所选取的Web日志构建该URL对应的正常行为模型;
异常检测模块23,用于对于每个URL所对应的Web日志子集,分别基于该URL对应的正常行为模型,对该URL所对应Web日志子集中未被选取的Web日志进行异常检测。
其中,所述正常行为模型学习模块根据所选取的Web日志构建该URL对应的正常行为模型可以包括:
所述正常行为模型学习模块基于选取的Web日志中该URL相关的一个或多个用户输入参数的用户输入值,分别构建该URL相关的用户输入参数的正常数据格式,URL对应的正常行为模型为该URL相关的用户输入参数的正常数据格式的集合。
其中,所述URL相关的一个或多个用户输入参数可以包括以下任一项或任几项:该URL相关的一个或多个Cookie,以及附加在该URL后面的一个或多个用户输入参数。
其中,所述异常检测模块基于该URL对应的正常行为模型,对该URL所对应Web日志子集中未被选取的Web日志进行异常检测可以包括:
所述异常检测模块对于每条未被选取的Web日志,分别提取URL当前行为,并与先前构建的该URL对应的正常行为模型进行比对,当发现一条Web日志的URL当前行为与URL正常行为模型的偏差较大时,将该条Web日志确定为异常的Web日志。
其中,所述异常检测模块提取URL当前行为,并与先前构建的该URL对应的正常行为模型进行比对可以包括:
所述异常检测模块从Web日志中提取该URL相关的一个或多个用户输入参数所对应的用户输入值,分别检查每个用户输入值是否符合该URL对应的正常行为模型中该用户输入值对应的用户输入参数的正常数据格式,如果不符合,则判定该用户输入值为异常。
其中,当一条Web日志中,判定为异常的用户输入值的个数或比例大于或等于预定门限(比如个数达到或超过预定的异常个数上限、或者在所述Web日志的用户输入值中所占比例大于或等于预定的异常比例上限等)时,则认为该条Web日志的URL当前行为与URL正常行为模型的偏差较大,将该条Web日志确定为异常的Web日志。
其中,所述的装置还可以包括:
误用检测模块,用于对判定为异常的用户输入值,将该用户输入值与Web攻击特征库进行匹配,识别出已知的Web攻击。
其中,所述正常行为模型学习模块根据所选取的Web日志构建该URL对应的正常行为模型可以包括:
所述正常行为模型学习模块指示所述误用检测模块对所选取的Web日志进行基于Web攻击特征库的误用检测,将包含Web攻击特征的Web日志筛除,基于剩下的Web日志构建该URL对应的正常行为模型。
其中,所述正常行为模型学习模块所选取的Web日志来自至少指定个数的Web客户端。
本实施例的一个例子中,所述的Web攻击检测装置当包含误用检测模块,该装置的工作流程如下:
首先,由日志分类模块加载Web日志,提取出Web日志中的URL,然后按照URL值对Web日志进行划分,将URL值相同的Web日志划分到同一个子集中,从而得到不同URL值所对应的Web日志子集;然后将分类得到的Web日志子集交给传输给正常行为构建模块来为URL构建正常行为模型。
正常行为构建模块接收到每个URL对应的Web日志子集后,将选取一部分Web日志作为正常行为模型学习样本,然后调用误用检测模块来对学习样本进行清洗,之后调用实施示例4中描述的正常行为模型学习算法构建URL正常行为模型;在正常行为模型构建成功后,URL对应的Web日志子集和正常行为模型都被传输到异常检测模块,进行Web攻击异常检测。
异常检测模块将根据为每个URL构建的正常行为模型,对该URL所对应的Web日志子集进行异常检测,从一个URL对应的Web日志集合中的每条Web日志中,提取该URL的当前行为,然后与所述的URL的正常行为模型进行匹配,发现无法匹配时就将该条Web日志标识为异常,将该异常的Web日志交给所述误用检测模块进行进一步处理。
误用检测模块接收到异常的Web日志后,将从Web日志中提取所有的用户输入值,并将其与先前构建的Web攻击特征库进行匹配,如果匹配成功,则标识该异常的Web日志为一次确定类型的Web攻击。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (8)
1.一种Web攻击检测方法,包括:
S110、对于待处理的多条Web日志,按照所述Web日志中的统一资源定位符URL进行划分,得到不同URL对应的Web日志子集;
S120、对于每个URL所对应的Web日志子集分别进行以下处理:选取所述Web日志子集中部分Web日志,所选取的Web日志在所述Web日志子集中所占的比例小于或等于预定的比例上限;根据所选取的Web日志构建该URL对应的正常行为模型,包括:基于选取的Web日志中该URL相关的一个或多个用户输入参数的用户输入值,分别构建该URL相关的用户输入参数的正常数据格式,URL对应的正常行为模型为该URL相关的用户输入参数的正常数据格式的集合;
S130、对于每个URL所对应的Web日志子集,分别基于该URL对应的正常行为模型,对该URL所对应Web日志子集中未被选取的Web日志进行异常检测;其中,基于该URL对应的正常行为模型,对该URL所对应Web日志子集中未被选取的Web日志进行异常检测包括:对于每条未被选取的Web日志,提取该URL相关的一个或多个用户输入参数所对应的用户输入值,分别检查每个用户输入值是否符合该URL对应的正常行为模型中该用户输入值对应的用户输入参数的正常数据格式,如果不符合,则判定该用户输入值为异常;当一条Web日志中,判定为异常的用户输入值的个数或比例大于或等于预定门限时,将该条Web日志确定为异常的Web日志。
2.如权利要求1所述的方法,其特征在于:
所述URL相关的一个或多个用户输入参数包括以下任一项或任几项:该URL相关的一个或多个Cookie,以及附加在该URL后面的一个或多个用户输入参数。
3.如权利要求1所述的方法,其特征在于,所述判定用户输入值异常后还包括:
对判定为异常的用户输入值,将该用户输入值与Web攻击特征库进行匹配,识别出已知的Web攻击。
4.如权利要求1所述的方法,其特征在于,所述根据所选取的Web日志构建该URL对应的正常行为模型还包括:
对所选取的Web日志进行基于Web攻击特征库的误用检测,将包含Web攻击特征的Web日志筛除,基于剩下的Web日志构建该URL对应的正常行为模型。
5.一种Web攻击检测装置,其特征在于,包括:
日志分类模块,用于对于待处理的多条Web日志,按照所述Web日志中的统一资源定位符URL进行划分,得到不同URL对应的Web日志子集;
正常行为模型学习模块,用于对于每个URL所对应的Web日志子集分别进行以下处理:选取所述Web日志子集中部分Web日志,所选取的Web日志在所述Web日志子集中所占的比例小于或等于预定的比例上限;根据所选取的Web日志构建该URL对应的正常行为模型,包括:基于选取的Web日志中该URL相关的一个或多个用户输入参数的用户输入值,分别构建该URL相关的用户输入参数的正常数据格式,URL对应的正常行为模型为该URL相关的用户输入参数的正常数据格式的集合;
异常检测模块,用于对于每个URL所对应的Web日志子集,分别基于该URL对应的正常行为模型,对该URL所对应Web日志子集中未被选取的Web日志进行异常检测;其中,基于该URL对应的正常行为模型,对该URL所对应Web日志子集中未被选取的Web日志进行异常检测包括:对于每条未被选取的Web日志,提取该URL相关的一个或多个用户输入参数所对应的用户输入值,分别检查每个用户输入值是否符合该URL对应的正常行为模型中该用户输入值对应的用户输入参数的正常数据格式,如果不符合,则判定该用户输入值为异常;当一条Web日志中,判定为异常的用户输入值的个数或比例大于或等于预定门限时,将该条Web日志确定为异常的Web日志。
6.如权利要求5所述的装置,其特征在于:
所述URL相关的一个或多个用户输入参数包括以下任一项或任几项:该URL相关的一个或多个Cookie,以及附加在该URL后面的一个或多个用户输入参数。
7.如权利要求5所述的装置,其特征在于,还包括:
误用检测模块,用于对判定为异常的用户输入值,将该用户输入值与Web攻击特征库进行匹配,识别出已知的Web攻击。
8.如权利要求7所述的装置,其特征在于,所述正常行为模型学习模块根据所选取的Web日志构建该URL对应的正常行为模型还包括:
所述正常行为模型学习模块指示所述误用检测模块对所选取的Web日志进行基于Web攻击特征库的误用检测,将包含Web攻击特征的Web日志筛除,基于剩下的Web日志构建该URL对应的正常行为模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510889266.0A CN105516128B (zh) | 2015-12-07 | 2015-12-07 | 一种Web攻击的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510889266.0A CN105516128B (zh) | 2015-12-07 | 2015-12-07 | 一种Web攻击的检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105516128A CN105516128A (zh) | 2016-04-20 |
CN105516128B true CN105516128B (zh) | 2018-10-30 |
Family
ID=55723765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510889266.0A Expired - Fee Related CN105516128B (zh) | 2015-12-07 | 2015-12-07 | 一种Web攻击的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105516128B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105915555B (zh) * | 2016-06-29 | 2020-02-18 | 北京奇虎科技有限公司 | 网络异常行为的检测方法及系统 |
CN106778260B (zh) * | 2016-12-31 | 2020-03-17 | 阿里巴巴(中国)有限公司 | 攻击检测方法和装置 |
CN108156130B (zh) * | 2017-03-27 | 2020-12-08 | 上海观安信息技术股份有限公司 | 网络攻击检测方法和装置 |
CN107241352B (zh) * | 2017-07-17 | 2020-01-21 | 浙江鹏信信息科技股份有限公司 | 一种网络安全事件分类与预测方法及系统 |
CN107888602A (zh) * | 2017-11-23 | 2018-04-06 | 北京白山耘科技有限公司 | 一种检测异常用户的方法及装置 |
CN108282517A (zh) * | 2017-12-21 | 2018-07-13 | 福建天泉教育科技有限公司 | 一种web服务升级的方法及终端 |
CN109257393A (zh) * | 2018-12-05 | 2019-01-22 | 四川长虹电器股份有限公司 | 基于机器学习的xss攻击防御方法及装置 |
CN110971603B (zh) * | 2019-12-04 | 2022-03-08 | 四川虹微技术有限公司 | 一种基于深度学习的异常流量检测方法及系统 |
CN112966264A (zh) * | 2021-02-28 | 2021-06-15 | 新华三信息安全技术有限公司 | Xss攻击检测方法、装置、设备及机器可读存储介质 |
CN114915479B (zh) * | 2022-05-18 | 2023-06-27 | 中国科学院信息工程研究所 | 一种基于Web日志的Web攻击阶段分析方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999572A (zh) * | 2012-11-09 | 2013-03-27 | 同济大学 | 用户行为模式挖掘系统及其方法 |
US8438639B2 (en) * | 2009-10-22 | 2013-05-07 | Korea Internet & Security Agency | Apparatus for detecting and filtering application layer DDoS attack of web service |
CN103853841A (zh) * | 2014-03-19 | 2014-06-11 | 北京邮电大学 | 一种社交网用户异常行为的分析方法 |
CN104601556A (zh) * | 2014-12-30 | 2015-05-06 | 中国科学院信息工程研究所 | 一种面向web的攻击检测方法及系统 |
CN104994091A (zh) * | 2015-06-30 | 2015-10-21 | 东软集团股份有限公司 | 异常流量的检测方法及装置、防御Web攻击的方法和装置 |
-
2015
- 2015-12-07 CN CN201510889266.0A patent/CN105516128B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8438639B2 (en) * | 2009-10-22 | 2013-05-07 | Korea Internet & Security Agency | Apparatus for detecting and filtering application layer DDoS attack of web service |
CN102999572A (zh) * | 2012-11-09 | 2013-03-27 | 同济大学 | 用户行为模式挖掘系统及其方法 |
CN103853841A (zh) * | 2014-03-19 | 2014-06-11 | 北京邮电大学 | 一种社交网用户异常行为的分析方法 |
CN104601556A (zh) * | 2014-12-30 | 2015-05-06 | 中国科学院信息工程研究所 | 一种面向web的攻击检测方法及系统 |
CN104994091A (zh) * | 2015-06-30 | 2015-10-21 | 东软集团股份有限公司 | 异常流量的检测方法及装置、防御Web攻击的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105516128A (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105516128B (zh) | 一种Web攻击的检测方法及装置 | |
CN110233849B (zh) | 网络安全态势分析的方法及系统 | |
US10721245B2 (en) | Method and device for automatically verifying security event | |
CN108881263B (zh) | 一种网络攻击结果检测方法及系统 | |
Cao et al. | Machine learning to detect anomalies in web log analysis | |
CN108200054A (zh) | 一种基于dns解析的恶意域名检测方法及装置 | |
CN107016298B (zh) | 一种网页篡改监测方法及装置 | |
CN110413908A (zh) | 基于网站内容对统一资源定位符进行分类的方法和装置 | |
CN106874768A (zh) | 渗透测试的方法及装置 | |
CN110177114A (zh) | 网络安全威胁指标识别方法、设备、装置以及计算机可读存储介质 | |
KR20170035892A (ko) | 온라인 서비스의 거동 변화의 인식 기법 | |
CN103457909A (zh) | 一种僵尸网络检测方法及装置 | |
CN111447224A (zh) | web漏洞扫描方法及漏洞扫描器 | |
CN114528457A (zh) | Web指纹检测方法及相关设备 | |
Massa et al. | A fraud detection system based on anomaly intrusion detection systems for e-commerce applications | |
CN109600382A (zh) | webshell检测方法及装置、HMM模型训练方法及装置 | |
CN113535823B (zh) | 异常访问行为检测方法、装置及电子设备 | |
CN114372519A (zh) | 模型训练方法、api请求过滤方法、装置和存储介质 | |
US20210075812A1 (en) | A system and a method for sequential anomaly revealing in a computer network | |
CN113542252A (zh) | Web攻击的检测方法、检测模型和检测装置 | |
Ambika | An economical machine learning approach for anomaly detection in IoT environment | |
CN111898126A (zh) | 一种基于动态获取用户界面的Android重打包应用检测方法 | |
Hasan et al. | Machine Learning and Data Mining Methods for Cyber Security: A Survey | |
US20150139539A1 (en) | Apparatus and method for detecting forgery/falsification of homepage | |
EP3361405A1 (en) | Enhancement of intrusion detection systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181030 Termination date: 20191207 |