首页> 中国专利> 一种基于WEB日志的异常访问行为检测方法与系统

一种基于WEB日志的异常访问行为检测方法与系统

摘要

本发明涉及一种基于WEB日志的异常访问行为检测方法,步骤包括:1)解析WEB原始日志去除干扰信息后进行IP访问统计和URL访问统计,得到IP访问统计列表和URL访问统计列表;2)根据IP访问统计列表,进行爬虫行为特征识别、错误响应码统计以及访问频率偏差度检测,同时更新IP异常特征表;根据URL访问统计列表,进行偏僻URL访问检测与异常查询串检测,同时更新IP异常特征表;3)根据设定的优先级顺序对IP异常特征表中的异常特征进行排序,输出排序后的IP异常特征表得到异常访问结果。本发明的方法不依赖于历史访问数据构筑访问模型,横向对比发现异常,通过选举参照查询串进行异常参数检测。

著录项

  • 公开/公告号CN103297435A

    专利类型发明专利

  • 公开/公告日2013-09-11

    原文格式PDF

  • 申请/专利权人 中国科学院信息工程研究所;

    申请/专利号CN201310222685.X

  • 申请日2013-06-06

  • 分类号H04L29/06(20060101);H04L29/08(20060101);H04L12/26(20060101);

  • 代理机构北京君尚知识产权代理事务所(普通合伙);

  • 代理人余长江

  • 地址 100093 北京市海淀区闵庄路甲89号

  • 入库时间 2024-02-19 21:14:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-28

    授权

    授权

  • 2013-10-16

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20130606

    实质审查的生效

  • 2013-09-11

    公开

    公开

说明书

技术领域

本发明涉及一种基于WEB日志的异常访问行为检测方法与系统,属于WEB安全领域。

背景技术

随着互联网技术与应用的不断发展,WEB应用已经逐渐成为了现代人们生产生活不可缺失 的一个方面,同时它也成为了互联网上的主要攻击目标。

WEB日志是WEB服务器记录下来的关于WEB访问行为的审计信息。从WEB日志中,可以 了解网站访问用户的访问行为。传统的WEB日志检测主要关注的是全局的网站流量检测、访 问者信息统计、访问内容信息统计等,其目的主要是检测网站的访问性能、客户群、热点内 容,挖掘客户感兴趣的内容,提升网站的服务质量。目前,主流的日志检测工具包括AWStats、 Webalizer等。然而,以上信息统计主要面向正常的用户访问行为,对于恶意用户的访问, 以上的检测技术是无法发现的。因此,网站管理员或者安全管理员只能通过人工检测的方法, 从WEB日志中检查有无可疑的攻击行为。

一般,对于WEB日志的安全检测分为两方面,一方面是通过对日志中单个请求URL进行 攻击特征规则匹配,识别典型攻击访问,如SQL注入、跨站脚本、缓冲区溢出等,这种检测 比较容易实现,但是仅能发现已知类型的攻击,且无法对攻击者的攻击行为进行全局性解析。 另一方面是针对存在异常访问轨迹的行为检测,包括恶意爬取网站信息、恶意扫描网站漏洞、 应用层DDoS攻击等,这些行为无法通过单个URL的特征检测进行检测。目前针对这类型的 异常行为检测还没有成熟的方案,一般的解决思路是通过数据挖掘建立用户访问正常模型, 但这需要提供正常访问的历史数据,同时一旦当前网站的访问受到某些特殊情况的影响,如 某一特殊事件发生导致网站访问量骤增,就会使得从历史数据中获得的访问模型不适用于当 前访问,从而出现大量误报或漏报。

发明内容

本发明提出了一种新型的基于WEB日志的异常访问行为检测方法及系统,用于识别具有 异常访问特征的访问者。

本发明所述方法的技术方案是通过对WEB访问日志进行面向IP与面向URL的双重访问统 计,并根据统计结果进行基于访问次数、访问类型、响应码以及查询参数的异常检测,检测 特征包括是否具有爬虫行为特征、错误响应码比例、访问频率偏差度、偏僻URL访问次数、 异常查询串访问次数,最终根据特征优先级进行多重排序,得到访问IP的异常排序列表,排 序越靠前异常度越大,从而识别异常访问IP。

一种基于WEB日志的异常访问行为检测方法,其方法步骤包括:

1)解析WEB原始日志进行IP访问统计和URL访问统计,得到IP访问统计列表和URL访 问统计列表同时保存原始日志;

2)根据所述IP访问统计列表和所述URL访问统计列表中的异常特征建立IP异常特征表;

3)当开始检测时,按照如下方法更新所述IP异常特征表:

根据所述IP访问统计列表,进行爬虫行为特征识别、错误响应码统计以及访问频率偏差 度检测;

根据所述URL访问统计列表,进行偏僻URL访问检测与异常查询串检测;

4)根据设定的优先级顺序对所述IP异常特征表中的异常特征进行排序,输出排序后的 IP异常特征表;

5)根据更新后的IP异常特征表的排序结果,检测出具有异常访问行为的IP。

更进一步,所述去除干扰信息步骤包括以下方法的一种或多种:

若当前请求HOST不是目标WEB站点,则跳过,继续检测下一条日志;

若当前请求URL为favicon.ico,则跳过,继续检测下一条日志;

若当前源IP在IP白名单中,则跳过,继续检测下一条日志;

若当前访问是已知爬虫访问,则跳过,继续检测下一条日志。

更进一步,所述原始日志中的每一条日志经过解析后,至少应包括内容有:时间、源IP、 请求HOST、请求URL、请求查询串、HTTP访问方法、HTTP响应码、请求用户代理信息USER-AGENT, 其中请求URL不包含请求HOST以及请求查询串。

更进一步,所述URL访问统计方法如下:

1)当前日志的请求查询串不为空时,从URL访问统计列表中获取当前请求URL的访问统 计信息,包括访问者信息字典表与查询串字典表;

2)更新所述访问者信息字典表,统计每个IP对该URL的访问次数,同时更新所述查询 串字典表,统计每个查询串的访问次数;

3)若查询串只被一个IP或一种User-Agent访问,则记录具体的IP及User-Agent信息。

更进一步,所述偏僻URL访问检测步骤包括:

1)遍历URL访问统计列表,查找访问IP数最多的URL及其总访问IP数,得到URL最大 访问IP数;

2)根据偏僻度系数,计算偏僻URL访问IP门限=偏僻度系数*URL最大访问IP数;

3)遍历URL访问统计列表,查找访问IP数低于偏僻URL访问IP门限的URL,输出该URL 及该URL的访问IP。

更进一步,所述异常查询串检测步骤包括:

1)遍历URL访问统计列表,获取每个URL的查询串字典表和访问者信息字典表;

2)如果URL的访问者信息字典表长度为1则跳过;

3)根据最典型查询串算法从查询串列表中选择最典型查询串,作为后续异常查询串检测 的参照值;

4)遍历查询串列表,根据异常查询串比较算法,判断当前查询串是否异常,如果异常, 输出该查询串及该查询串的访问IP;

5)更新该查询串的每一个访问IP的异常特征表,将异常查询串访问次数加1。

更进一步,所述最典型查询串算法步骤包括:

1)遍历查询串字典表,寻找参数个数最多的查询串与访问量最大的查询串,其中查询串 至少要被两个及以上不同IP与不同User-Agent访问,如果不满足则无法选择典型查询串, 退出;

2)对上述两个查询串进行URL解码,并分解为参数值对;

3)合并二者的参数值对,去掉重复的参数值对,形成参照查询串参数值对。

更进一步,所述异常查询串比较算法步骤包括:

1)对参照查询串参数值对中的每个参数值对进行解析,确定每个参数的参数值允许字符 集;

2)对待检测查询串进行URL解码,分解为参数值对;

3)对每一对待检测参数值对,根据参照查询串参数值对确定参数的参数值允许字符集, 如果参照查询串参数值对中没有对应参数,则使用默认参数允许字符集;

4)遍历待检测参数值的每一个字符,判断该字符是否为可见字符以及是否在允许字符集 内,如果该字符是可打印字符且不在允许字符集内,标识该查询字符串为异常。

更进一步,所述IP访问统计的方法如下:

1)根据当前日志的源IP,获取所述IP的上次会话信息,并判断当前日志记录是否属于 该IP的上次会话;如果是,则更新该IP的上次会话信息;如果不是,则将该会话信息加入 全局访问会话表,并从上次会话信息表中删除,新建会话信息,将该会话信息加入上次会话 信息表;

2)如果所有日志解析结束,遍历上次会话信息表,将所有会话信息加入全局访问会话表;

3)遍历所述全局访问会话表,统计每个IP的访问信息,包括总的会话数、持续时间、 访问次数、非页面访问比例、错误响应码访问比例、下载访问比例、更新IP访问统计列表。

更进一步,所述爬虫行为特征识别步骤包括:

1)遍历IP访问统计列表,若某IP的下载访问比例超过下载访问比例上限值,或者非页 面访问比例低于非页面访问比例下限值或者非页面访问比例为1,则标识该IP为具有爬虫行 为特征倾向;

2)更新IP异常特征表中的每个IP的是否具有爬虫行为特征列。

更进一步,所述访问频率偏差度检测步骤包括:

1)分别对IP访问统计列表的总会话数、持续时间、访问次数三列计算每个IP在每项指 标上的偏移度;

2)比较每个IP的三个偏移度的大小,取最大值作为该IP的访问频率偏差度值;

3)更新IP异常特征表中的每个IP的访问频率偏差度;

4)更新每一个该URL的访问IP的异常特征表中的偏僻URL访问次数加1。

更进一步,所述错误响应码统计采用IP访问统计列表中每个IP的错误响应码访问比例, 更新对应IP的异常特征表中的错误响应码比例值。

更进一步,所述IP异常特征表的异常特征排序优先级顺序为异常查询串访问次数、偏僻 URL访问次数、错误响应码比例、是否具有爬虫行为特征、访问频率偏差度。

一种基于WEB日志的异常访问行为检测系统,包括配置读取更新模块、原始日志统计模 块,异常检测模块以及异常结果展现模块;

所述配置读取更新模块负责读取配置文件中的配置参数信息,同时根据实际检测结果调 整配置文件中的配置参数;

所述原始日志统计模块负责读取原始日志文本文件,进行日志解析以及IP和URL统计后, 将原始日志写入访问日志数据库,将统计结果写入统计结果数据库;

所述异常检测模块负责根据统计结果进行异常检测,并将经过多重排序后的IP异常特征 表以及URL异常检测结果写入异常结果数据库;

所述异常结果展现模块负责读取异常结果,同时查询每个IP与URL的访问信息统计结果 以及原始的访问日志。

本发明的有益效果:

本发明的方法不依赖于历史访问数据构筑访问模型,而是对同一时间段各IP访问统计结 果进行特征检测,横向对比发现异常。同时,该方法也不依赖于参数特征匹配规则库,而是 基于正常访问大于异常访问这一基本假设,通过选举参照查询串进行异常参数检测。

附图说明

图1是本发明一种基于WEB日志的异常访问行为检测方法的一实施例中流程示意图。

图2是本发明一种基于WEB日志的异常访问行为检测系统的一实施例中组成示意图。

图3是本发明一种基于WEB日志的异常访问行为检测系统的一实施例中原始日志统计模块的 处理流程示意图。

图4是本发明所述一种基于WEB日志的异常访问行为检测系统的一实施例中异常检测模块的 处理流程示意图。

具体实施方式

下面通过附图并结合具体的实例来详述本发明的技术方案实施过程。

如图1所示是本发明一种基于WEB日志的异常访问行为检测方法的一实施例中流程示意 图,其具体步骤包括:

1.对WEB原始日志进行解析,去除干扰信息;

2.IP访问行为统计,得到IP访问统计列表,包括每个IP的总的会话数、持续时间、 访问次数、非页面访问比例、错误响应码比例、下载访问比例;

3.URL访问统计,得到URL访问统计列表,包括每个URL的访问者信息字典表与查询串 字典表;

4.根据IP访问统计列表,进行爬虫行为特征识别、错误响应码统计以及访问频率偏差 度检测,更新IP异常特征表;

5.根据URL访问统计列表,进行偏僻URL访问检测与异常查询串检测,更新IP异常特 征表;

6.根据爬虫行为特征识别、错误响应码统计、访问频率偏差度检测、偏僻URL访问检测、 异常查询串检测得到IP异常特征表,按照异常查询串访问次数、偏僻URL访问次数、 错误响应码比例、是否具有爬虫行为特征、访问频率偏差度的优先级顺序进行多重排 序,若异常相同则继续检测,输出排序后的IP异常特征表。其中排序越靠前的IP具 有异常行为的可能性越大。

其中原始日志中的每一条日志经过解析后,至少应包括内容有:时间、源IP、请求HOST、 请求URL、请求查询串、HTTP访问方法、HTTP响应码、请求用户代理信息USER-AGENT,其中 请求URL不包含请求HOST以及请求查询串。

其中IP异常特征表的内容包括:IP、异常查询串访问次数、偏僻URL访问次数、错误响 应码比例、是否具有爬虫行为特征、访问频率偏差度。

其中去除干扰信息步骤包括:

如果当前请求HOST不是目标WEB站点,则跳过,继续检测下一条日志;

1.如果当前请求URL为“favicon.ico”,则跳过,继续检测下一条日志;

2.如果当前源IP在IP白名单中,则跳过,继续检测下一条日志;

3.如果当前访问是已知爬虫访问,则跳过,继续检测下一条日志。

其中已知爬虫的判定根据日志记录中的请求用户代理信息(User-Agent)是否包含爬虫 User-Agent标识字符串来识别,爬虫User-Agent标识字符串通过配置文件读取。

其中IP白名单通过配置文件读取。

本发明所述的技术方案通过基于WEB日志的异常访问行为检测系统来实现,如图2所示 是本发明一种基于WEB日志的异常访问行为检测系统的一实施例中组成示意图,该系统组成 包括配置读取更新模块、原始日志统计模块,异常检测模块以及异常结果展现模块。该系统 的运行过程包括启动阶段、统计阶段、检测阶段以及反馈阶段。

其中配置读取更新模块负责读取配置文件中的配置参数信息,同时使用者可根据实际检 测结果调整配置文件中的配置参数。

其中原始日志统计模块负责读取原始日志文本文件,进行日志解析以及IP和URL统计后, 将原始日志写入访问日志数据库,将统计结果写入统计结果数据库。

其中异常检测模块负责根据统计结果进行异常检测,并将经过多重排序后的IP异常特征 表以及URL异常检测结果写入异常结果数据库。

其中异常结果展现模块负责读取异常结果进行展示,同时可查询每个IP与URL的访问信 息统计结果以及原始的访问日志。

其中IP访问统计步骤包括:

根据当前日志的源IP,从中获取该IP的上次会话信息。如果没有,新建会话信息,将该 会话信息加入上次会话信息表;如果有,判断当前日志记录是否属于该IP的上次会话, 如果是,更新该IP的上次会话信息;如果不是,将该会话信息加入全局访问会话表,并 从上次会话信息表中删除,新建会话信息,将该会话信息加入上次会话信息表;

1.如果所有日志解析结束,遍历上次会话信息表,将所有会话信息加入全局访问会话表;

2.遍历全局访问会话表,统计每个IP的访问信息,包括总的会话数、持续时间、访问 次数、非页面访问比例、错误响应码访问比例、下载访问比例、更新IP访问统计列 表;

其中上次会话信息表是以IP为索引的字典表,记录了每个IP的最近一次会话信息。

其中全局访问会话是记录所有会话信息的列表。

其中会话信息内容包括会话起始时间、结束时间、持续时间、会话内总访问数、会话内 错误响应码访问数、会话内非页面请求访问数、会话内下载型访问数。

其中错误响应码访问数指响应码大于等于400且小于等于600的访问次数。

其中非页面请求根据请求URL的结尾文件类型来判断,类型定义通过配置文件读取。

其中下载型请求根据请求URL的结尾文件类型来判断,类型定义通过配置文件读取。

其中URL访问统计步骤包括:

1.如果当前日志的请求查询串为空,则跳过,继续检测下一条日志;

2.从URL访问统计列表中,获取当前请求URL的访问统计信息,包括访问者信息字典表 与查询串字典表;

3.更新访问者信息字典表,统计每个IP对该URL的访问次数;

4.更新查询串字典表,统计每个查询串的访问次数,如果一个查询串只被一个IP或一 种User-Agent访问,则记录具体的IP及User-Agent信息。

其中爬虫行为特征识别步骤包括:

1.遍历IP访问统计列表,如果某IP的下载访问比例超过下载访问比例上限值,或者非 页面访问比例低于非页面访问比例下限值或者非页面访问比例为1,则标识该IP为 具有爬虫行为特征倾向;

2.更新IP异常特征表中的每个IP的是否具有爬虫行为特征列。

其中下载访问比例上限值和非页面访问比例下限值通过配置文件读取。

其中错误响应码统计直接采用IP访问统计列表中每个IP的错误响应码访问比例,更新 对应IP的异常特征表中的错误响应码比例值。

其中访问频率偏差度检测步骤包括:

1.分别对IP访问统计列表的总的会话数、持续时间、访问次数三列计算每个IP在每项 指标上的偏移度;

2.比较每个IP的三个偏移度的大小,取最大值作为该IP的访问频率偏差度值;

3.更新IP异常特征表中的每个IP的访问频率偏差度。

其中偏移度=(样本值-样本众数)^2/样本方差。

其中,偏僻URL访问检测步骤包括:

1.遍历URL访问统计列表,查找访问IP数最多的URL及其总访问IP数,即为URL最大 访问IP数;

2.根据偏僻度系数,计算偏僻URL访问IP门限=偏僻度系数*URL最大访问IP数;

3.遍历URL访问统计列表,查找访问IP数低于偏僻URL访问IP门限的URL,输出该URL 及该URL的访问IP;

4.更新每一个该URL的访问IP的异常特征表中的偏僻URL访问次数加1。

其中偏僻度系数从配置文件读取。

其中异常查询串检测步骤包括:

1.遍历URL访问统计列表,获取每个URL的查询串字典表和访问者信息字典表;

2.如果URL的访问者信息字典表长度为1,表明该URL只有一个IP访问,其参数没有 比较性,跳过;

3.根据最典型查询串算法从查询串列表中选择最典型查询串,作为后续异常查询串检测 的参照值;

4.遍历查询串列表,根据异常查询串比较算法,判断当前查询串是否异常,如果异常, 输出该查询串及该查询串的访问IP;

5.更新该查询串的每一个访问IP的异常特征表,将异常查询串访问次数加1。

其中最典型查询串选择算法步骤包括:

1.遍历查询串字典表,寻找参数个数最多的查询串与访问量最大的查询串,其中查询串 至少要被两个及以上不同IP与不同User-Agent访问,如果不满足则无法选择典型查 询串,退出;

2.对上述两个查询串进行URL解码,并分解为参数值对;

3.合并二者的参数值对,去掉重复的参数值对,形成参照查询串参数值对。

其中异常查询串比较算法步骤包括:

1.对参照查询串参数值对中的每个参数值对进行解析,确定每个参数的参数值允许字符 集;

2.对待检测查询串进行URL解码,分解为参数值对;

3.对每一对待检测参数值对,根据参照查询串参数值对确定参数的参数值允许字符集, 如果参照查询串参数值对中没有对应参数,则使用默认参数允许字符集;

4.遍历待检测参数值的每一个字符,判断该字符是否为可见字符以及是否在允许字符集 内,如果该字符是可打印字符且不在允许字符集内,标识该查询字符串为异常。

具体说明如下:

(1)启动阶段,配置读取更新模块从启动参数中获取原始日志文件位置、目标WEB站点 HOST信息,然后读取配置文件中的配置参数信息,包括日志解析格式、IP白名单、爬虫 User-Agent标识字符串、非页面请求文件类型、下载型请求文件类型、下载访问比例上限值、 非页面访问比例下限值以及URL访问偏僻度系数。

(2)统计阶段,原始日志统计模块逐条读取原始日志文件中的日志记录,根据日志解析 格式定义对日志进行解析,去除干扰信息后进行IP统计与URL统计,形成IP访问信息表以 及URL访问信息表,将原始日志写入访问日志数据库,将IP访问信息表以及URL访问信息表 写入统计结果数据库。如图3所示是本发明一种基于WEB日志的异常访问行为检测系统的一 实施例中原始日志统计模块的处理流程示意图,具体过程包括:

(2-1)从原始日志文件中读取新一条日志,如果没有新日志,则进入(2-7),否则进入 (2-2);

(2-2)判断当前记录是否为干扰信息,如果是,则回到步骤(2-1),如果不是,则继续 步骤(2-3);

(2-3)进行IP访问统计;

(2-4)判断当前记录的请求查询串是否为空,如果是,进入步骤(2-6),如果否,进入 步骤(2-5);

(2-5)进行URL访问统计;

(2-6)日志记录写入访问日志数据库,返回(2-1);

(2-7)对IP访问统计结果进行处理,将IP访问信息表以及URL访问信息表写入统计结 果数据库。

其中步骤(2-1)中,日志解析后,至少应包括内容有:时间、源IP、请求HOST、请求 URL、请求查询串、HTTP访问方法、HTTP响应码、请求USER-AGENT,其中请求URL不包含请 求HOST以及请求查询串。如,一条访问日志记录为:

1366015392.709192.168.1.10--[15/Apr/2013:16:43:12+0800]"GET  http://www.test.com:8080/test/ShowViewDetailAction.do?paperId=15737HTTP/1.1"304 "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)"

经过日志解析后,该日志记录的时间为“1366015392.709”,源IP为“192.168.1.10”, 请求HOST为“www.test.com:8080”,请求URL为“/test/ShowViewDetailAction.do”,请求 查询串为“paperId=15737”,请求访问方法为“GET”,HTTP响应码为“304”,请求USER-AGENT 为“Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)”。

其中步骤(2-2)中,判断是否为干扰信息的过程如下:

(2-2-1)如果当前日志记录的请求HOST不是目标WEB站点,返回是;

(2-2-2)如果当前日志记录的请求URL为“favicon.ico”,返回是;

(2-2-3)如果当前日志的源IP在IP白名单中,返回是;

(2-2-4)如果当前日志记录的请求USER-AGENT中含有爬虫标识字符串,返回是;

(2-2-5)返回否

其中步骤(2-3)中,IP访问统计的过程如下:

(2-3-1)根据当前日志的源IP,从中获取该IP的上次会话信息。如果没有,进入(2-3-3), 如果有进入(2-3-2);

(2-3-2)判断当前日志记录是否属于该IP的上次会话,如果是,更新该IP的上次会话 信息,返回;如果不是,将该会话信息加入全局访问会话表,并从上次会话信息表中删除, 进入(2-3-3);

(2-3-3)根据当前日志记录,新建会话信息,将该会话信息加入源IP的上次会话信息 表,返回;

其中上次会话信息表是以IP为索引的字典表,记录了每个IP的最近一次会话信息。

其中全局访问会话是记录所有会话信息的列表。

其中会话信息内容包括会话起始时间、结束时间、持续时间、会话内总访问数、会话内 错误响应码访问数、会话内非页面请求访问数、会话内下载型访问数。

其中步骤(2-5)中,URL访问统计的过程如下:

(2-5-1)从URL访问统计列表中,获取当前请求URL的访问统计信息,包括访问者信息 字典表与查询串字典表;

(2-5-2)更新访问者信息字典表,判断当前日志的源IP是否在该URL的访问者信息字 典表中出现,如果没有,则将当前源IP加入访问者信息字典表,其中索引为该IP,值为1, 如果有,值加1;

(2-5-3)更新查询串字典表,判断当前日志的请求查询串是否在该URL的查询串字典表 中出现,如果没有,将当前的请求查询串加入查询串字典表,其中索引为查询串,值为“源 IP;请求USER-AGENT”;如果有,判断当前值信息是否为数字,如果是数字,则数字加1,如 果不是数字,判断当前日志的源IP与请求USER-AGENT是否在该查询串的值信息中重复出现, 如果有,将未重复的源IP或请求USER-AGENT附加到值信息中,更新字典表,如果未出现, 则更新值信息为2

其中步骤(2-7)中,对IP访问统计结果进行处理的过程如下:

(2-7-1)遍历上次会话信息表,将所有会话信息加入全局访问会话表;

(2-7-2)遍历全局访问会话表,统计每个IP的访问信息,包括总的会话数、持续时间、 访问次数、非页面访问比例、错误响应码访问比例、下载访问比例,更新IP访问统计列表;

(3)检测阶段,异常检测模块从统计结果数据库中读取IP访问统计列表和URL访问统 计列表,进行异常检测,将URL异常检测结果与经过多重排序后的IP异常特征表写入异常结 果数据库。

如图4所示是本发明所述一种基于WEB日志的异常访问行为检测系统的一实施例中异常 检测模块的处理流程示意图,包括:

(3-1)从统计结果数据库中读取IP访问统计列表和URL访问统计列表;

(3-2)进行爬虫行为特征识别,更新IP异常特征表;

(3-3)从IP访问统计列表中,读取每个IP的错误响应码访问比例,更新IP异常特征 表;

(3-4)进行访问频率偏差度检测,更新IP异常特征表;

(3-5)进行偏僻URL访问检测,更新IP异常特征表,将偏僻URL访问检测结果写入数 据库;

(3-6)进行异常查询串检测,更新IP异常特征表,将异常查询串检测结果写入数据库;

(3-7)根据IP异常特征表,按照异常查询串访问次数、偏僻URL访问次数、错误响应 码比例、是否爬虫行为特征、访问频率偏差度的优先级顺序进行多重排序,将排序后的IP异 常特征表写入异常结果数据库。

其中IP异常特征表的列组成包括:IP、异常查询串访问次数、偏僻URL访问次数、错误 响应码比例、是否爬虫行为特征、访问频率偏差度。

其中步骤(3-2)中,爬虫行为特征识别步骤包括:

(3-2-1)遍历IP访问统计列表,如果某IP的下载访问比例超过下载访问比例上限值, 或者非页面访问比例低于非页面访问比例下限值或者非页面访问比例为1,则标识该IP为具 有爬虫行为特征倾向

(3-2-2)更新IP异常特征表中的每个IP的是否具有爬虫行为特征列

其中步骤(3-4)中,访问频率偏差度检测步骤包括:

(3-4-1)将IP访问统计列表的总的会话数、持续时间、访问次数三列作为三个样本集 合,分别计算每个集合的众数与方差,然后计算每个IP在每项指标上的偏移度,偏移度=(样 本值-样本众数)^2/样本方差;

(3-4-2)比较每个IP的三个偏移度的大小,取最大值作为该IP的访问频率偏差值;

(3-4-3)更新IP异常特征表中的每个IP的访问频率偏差度列。

其中步骤(3-5)中,偏僻URL访问检测步骤包括:

(3-5-1)遍历URL访问统计列表,根据每个URL的访问者信息字典表,查找访问IP数 最多的URL及其总访问IP数,即为URL最大访问IP数;

(3-5-2)根据偏僻度系数,计算偏僻URL访问IP门限=偏僻度系数*URL最大访问IP数;

(3-5-3)遍历URL访问统计列表,根据每个URL的访问者信息字典表,查找访问IP数 低于偏僻URL访问IP门限的URL,输出该URL及该URL的访问IP;

(3-5-4)更新每一个该URL的访问IP的异常特征表中的偏僻URL访问次数加1。

其中步骤(3-6)中,异常查询串检测步骤包括:

(3-6-1)遍历URL访问统计列表,获取每个URL的查询串字典表和访问者信息字典表;

(3-6-2)如果URL的访问者信息字典表长度为1,表明该URL只有一个IP访问,其参 数没有比较性,跳过;

(3-6-3)根据最典型查询串算法从查询串列表中选择最典型查询串作为后续异常查询串 检测的参照值;

(3-6-4)遍历查询串列表,根据异常查询串比较算法,判断当前查询串是否异常,如果 异常,输出该查询串及该查询串的访问IP;

(3-6-5)更新每一个该查询串的访问IP的异常特征表中的异常查询串访问次数加1 其中步骤(3-6-3)中,最典型查询串选择算法步骤包括:

(3-6-3-1)遍历查询串字典表,寻找参数个数最多的查询串与访问量最大的查询串,如 果查询串字典表中的所有参数对应的值都为非数字,则无法选择典型查询串,退出;

(3-6-3-2)对上述两个查询串进行URL解码,并分解为参数值对;

(3-6-3-3)合并二者的参数值对,去掉重复的参数值对,形成参照查询串参数值对 其中步骤(3-6-4)中,异常查询串比较算法步骤包括:

(3-6-4-1)对参照查询串参数值对中的每个参数值对进行解析,确定每个参数的参数值 允许字符集,如对于查询串“paperId=15737”,则参数“papered”的允许字符集为数字,表 示为“^[0-9]$”;

(3-6-4-1)对待检测查询串进行URL解码,分解为参数值对;

(3-6-4-1)对每一对待检测参数值对,检查参照参数值对中有没有对应参数的参数值允 许字符集。如果有,则指定参照参数允许字符集为待检测参数的参数值允许字符集。如果没 有,则指定默认参数允许字符集为待检测参数的参数值允许字符集,其中默认参数允许字符 集包括数字、字母以及“-”、“_”,表示为“^[0-9|a-z|A-Z|_|-]$”;

(3-6-4-1)遍历待检测参数值的每一个字符,如果上一个字符是可见字符,且当前字符 也是可见字符,则检测当前字符是否在参数值允许字符集中,如果不在,标识该查询字符串 为异常,返回。否则继续检测下一个字符。

(4)反馈阶段,异常结果展现模块读取异常结果数据库中经过多重排序后的IP异常特 征表进行展示,其中排序越靠前的IP具有异常行为的可能性越大。同时,使用者可查询每个 IP与URL的访问信息统计结果以及原始的访问日志。如果检测结果产生的误报率过大,可通 过配置更新模块对IP白名单、爬虫User-Agent标识字符串、非页面请求文件类型、下载型 请求文件类型、下载访问比例上限值、非页面访问比例下限值以及URL访问偏僻度系数进行 调整。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号