一种web恶意扫描行为异常检测方法与系统的制作方法

文档序号:9352827阅读:612来源:国知局
一种web恶意扫描行为异常检测方法与系统的制作方法
【技术领域】
[0001]本发明涉及一种面向WEB恶意扫描行为的异常检测方法与系统,属于WEB安全领域。
【背景技术】
[0002]WEB扫描是一种常见的WEB访问行为,一般是指网络爬虫按一定的规则获取目标网站的内容。WEB恶意扫描与正常扫描的区别在于,前者的目标是通过扫描发现网站漏洞、敏感信息、授权入口等信息,而后者的目标则是获取网站正常提供的内容信息,如Html页面、图片、CSS文件等。由于二者的目标有着本质性的差别,因此其访问行为也有着明显的差别:
[0003]首先,WEB恶意扫描的访问请求与正常WEB扫描的访问请求在语义上有明显不同。如,WEB恶意扫描会发送“/robots, txt/1.php”来判断网站是否存在文件类型解析错误漏洞,发送“/Vebl.rar”来探测有没有存储不当的备份文件存在,发送“/servlet/ContentServer ? pagename = <script>alert (’Vulnerable’)〈/script〉,,来判断网站有没有跨站脚本漏洞等。而正常WEB扫描会根据网站链接发送请求,如“/abc/def/201309/201309_3629160.html”、“/images/xian06.gif” 等。
[0004]其次,WEB恶意扫描发出的请求中,错误相应码(如,401,404等)的比例一般会较高,而正常的WEB扫描由于其目标是获取网站提供的资源,因此其请求中200的比例一般会较高。但是有些WEB恶意扫描会首先进行正常的网页爬取,确定网站结构后,再进行恶意内容扫描,这样会造成其请求中错误相应码的比例下降。
[0005]再次,正常的WEB扫描一般都采用GET方法请求,少量爬虫会采用HEAD方法,而有些WEB恶意扫描会采用大量HEAD方法来快速判断网站是否存在目标文件,或者采用HJT、DELETE等方法来测试网站是否可以修改内容。
[0006]WEB恶意扫描检测一般归为WEB攻击检测,通常是逐条检测WEB请求是否攻击后,再判断攻击者的整体行为是否属于恶意扫描,一般如果攻击次数或攻击时长超过一定阈值,就认为攻击行为属于WEB恶意扫描。WEB攻击检测常见的方法可以分为二类:
[0007]一类是规则检测,通过攻击规则匹配,识别针对网站漏洞的WEB攻击,如SQL注入攻击、跨站脚本攻击等。规则检测方法可以对WEB恶意扫描行为进行实时检测与拦截,但是只能检测已知的攻击请求,无法发现未知的攻击请求。
[0008]另一类是基于正常数据的异常检测,通过对网站的正常访问流量学习,建立访问白名单或正向访问模型,只允许白名单列表中的请求或符合正向访问模型的请求访问。这类方法的准确性极大的依赖于正常历史数据,如果没有正常历史数据,或者正常历史数据涵盖的正常访问行为种类过少,或者历史数据中混入了攻击数据,这类方法的误报率和漏报率都会大大升高。现有的异常检测技术中,大多属于这一类。如《一种应用于应用层的web入侵防御方法及系统》(CN201110117191)中公开了一种应用于应用层的web入侵防御方法,该方法根据预设的危险行为来给访问者的行为打分,通过累加威胁值对访问行为进行防御。其中,预设的危险行为是通过对大量的历史正常行为学习后建立正向模型参数得到的。《防护WEB攻击的方法》(CN201410737526)中公开了一种防护Web攻击的方法,该方法通过黑白名单混合的方法进行攻击防护,其中白名单也是通过对正常行为学习后得到的。

【发明内容】

[0009]针对现有技术存的技术问题,本发明的目的在于提供一种新型的WEB恶意扫描行为的异常检测方法及系统,其不依赖于正常访问数据,能够从海量的网站访问用户中识别恶意扫描用户。
[0010]本发明所述方法的技术方案是通过对WEB访问历史记录(如WEB访问日志)中的访问用户进行关键词特征与统计特征抽取,利用正常用户访问行为具有相似性以及多数性的特点,首先根据关键词特征计算用户行为的语义异常值,再根据启发式算法利用统计特征对语义异常值进行修正,从而得到用户的访问异常分值,最后计算用户异常分值的阈值,将异常分值超过阈值的用户识别为恶意扫描用户。
[0011]一种WEB恶意扫描行为异常检测方法,其方法步骤包括:
[0012]I)对WEB访问历史记录进行预处理,解析WEB访问历史记录,标记知名搜索弓I擎爬虫用户,对每个用户的WEB请求字符串进行分词处理,提取关键词向量,同时对每个用户的访问行为,分别从总的访问量、不同请求方法的访问量、不同页面类型的访问量、不同响应码的访问量四个方面统计,得到统计特征向量;
[0013]2)遍历所有用户的关键词向量,统计每个关键词对应的用户数量,构建全局关键词表,表中记录每一关键词及其对应的用户数量;
[0014]3)根据全局关键词表计算每个关键词的生僻度,遍历用户关键词向量,根据关键词的生僻度计算每一用户的原始异常分值,再根据用户的统计特征向量,修正原始异常分值,得到最终异常分值;
[0015]4)对用户最终异常分值由小到大排序构成异常值序列,计算异常值序列的突变点,将异常点对应的最终异常分值作为阈值,如果无突变点,则不存在阈值;
[0016]5)如果存在阈值,则判断用户的最终异常分值是否大于该阈值,如果是,则识别用户为恶意扫描用户。
[0017]更进一步,所述WEB请求字符串可以为WEB请求中的各主要字段内容的全部或部分,如请求URL、请求用户代理信息USER-AGENT、请求BODY内容等。
[0018]更进一步,所述分词处理方法如下:
[0019]将WEB请求字符串转化为小写字母,使用指定停词符对WEB请求字符串进行分解,记录每个词出现的次数,构建用户关键词向量。
[0020]更进一步,所述指定停词符包括但不限于””等字符。
[0021]更进一步,所述用户访问行为统计特征向量包括用户总的访问次数、收到的错误响应码次数、辅助元素访问次数、HTTP协议中的PUT与DELETE请求方法次数,其中辅助元素指层叠样式表、图片、音频、Office文档、PDF等文件。
[0022]更进一步,所述用户关键词向量Ku= Kk^cki) |0彡i彡m-Ι},其中m为用户关键词的数量,h为第i个关键词,Ckl为关键词Ic1在用户所有WEB请求字符串中出现的次数。
[0023]更进一步,所述全局关键词表GK = {(ki,ucki) I O彡i彡N-1, I彡ucki< Nj,其中N为所有用户不同关键词的总数,uCklS关键词k 1在WEB请求字符串中出现过的用户数,N u为总的用户数。
[0024]更进一步,所述关键词生僻度的计算方法如下:
[0025]对于用户关键词向量Ku= {(k i,cki) |0彡i彡m-Ι}与全局关键词表GK = Kki,ucki) N-1},1^的生僻度 Pki= Log(c ki)*Log(Nu/ucki*ucki),其中 Log(x)为自然对数函数。
[0026]更进一步,所述用户原始异常分值计算方法如下:
[0027]如果用户被标记为知名搜索引擎爬虫,则其原始异常值为0,否则将该用户关键词向量中的所有关键词的生僻度累加得到该用户原始异常分值。
[0028]更进一步,所述用户最终异常分值修正方法如下:
[0029]选取修正参数Wp ^^与w 3,计算最终异常分值=原始异常分值*Exp (W1,错误响应码的次数/总的访问次数)*Exp (w2,辅助元素访问次数/总的访问次数)+w3*PUT与DELETE方法的次数/总的访问次数,其中Exp (a, b)为指数函数,a为底数,b为指数。
[0030]更进一步,所述异常值序列的突变点的计算方法如下:
[0031]选择突变参数T,对于序列SA = {>彡i彡Nu-1, a ^ α 1+1},计算序列SB ={β」0彡j彡Nu_2},其中如果a.j+1-a.j>T,则β ,= α』+1-α』,否则Pj=O0对于序列SB,计算序列SC = { γ k 1彡k彡Nu
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1