一种基于WEB日志的关联分析方法与流程

文档序号:19730051发布日期:2020-01-18 03:50阅读:416来源:国知局
一种基于WEB日志的关联分析方法与流程

本发明涉及日志安全分析技术领域,具体的说,是一种基于web日志的关联分析方法。



背景技术:

随着web技术的发展,web2.0的诞生,web应用部署维护方便的优势逐渐体现,基于web环境的互联网应用越来越广泛,企业的各种信息化应用都架设在web平台上,web业务的迅速发展也引起黑客们的强烈关注,web安全威胁也随之而来,黑客利用web服务程序的系统漏洞和sql注入漏洞等方式,获取web服务器的控制权限,轻则篡改网页的内容,重则窃取重要的内部数据,更为严重的是,在网页中植入一些恶意代码,使得网站的其它访问者都受到侵害。web访问日志记录了web服务器接收处理请求及运行时错误等各种原始信息。通过对web日志进行的安全分析,不仅可以帮助我们定位攻击者,还可以帮助我们还原攻击路径,找到网站存在的安全漏洞并进行修复。在现有的日志分析系统中,通过提取web访问日志信息,可以清楚的得知用户在什么ip、什么时间、用什么操作系统、什么浏览器的情况下访问了你网站的哪个页面,是否访问成功等其他信息。它的缺陷在于,只是独立的分析了单条日志中是否含有异常访问问题或者攻击行为,而没有分析日志之间的关联关系,无法识别多个请求联合来对系统进行攻击的情况。



技术实现要素:

本发明的目的在于提供一种基于web日志的关联分析方法,用于解决现有技术中独立分析单条日志是否异常,而没有分析日志之间的关联关系无法识别多个请求联合对系统进行攻击的问题。

本发明通过下述技术方案解决上述问题:

一种基于web日志的关联分析方法,包括:

步骤s100:日志数据的标准化处理

浏览器与服务器之间的每一个会话都有一个session,sessionid就是唯一的位置标志,用以识别会话和用户主体。使用web服务器+过滤脚本采集日志数据,可以拦截接口访问时传输的所有字段,包括需要采集的固有数据字段:访问的url、访问时间、请求体和返回体,并把这些内容同意转换成json格式数据。按照访问流程,以一个会话为一个基本单位,即按sessionid分组,把单个会话中的日志数据分为一组;

步骤s200:获取日志中的事件行为链

事件行为链,即当前用户在一个会话中的所有接口访问顺序列表。需要分析的日志已经按照会话分组,在每组日志中,提取每条日志的访问接口路径urlpath、访问接口的方法method和访问时间timestamp,并按照访问时间timestamp排序,作为完整的事件行为链;

步骤s300:统计接口调用承接关系概率

分析经过分组和排序的日志数据,统计得出每个接口访问后的下一个访问接口概率最大接口,取前n个。具体方法:

获取每个接口访问的下一个调用接口,如果是新出现的,则加入列表,并把出现次数置为1,如果是重复出现,则把出现次数加1。

取得次数较多的前n个,此操作可得出群体的访问特征属性,存储格式为:

{

currentinterface:“当前接口信息”

nextinterfacelist:[nextinterface1,nextinterface2,…nextinterfacen]

}

得到群体的访问特征属性;

步骤s400:事件行为链的相似度匹配

计算用户单个会话的事件行为链数据,依次提取每个接口和它的下一个接口,存储到承接关系对象relationinstance中,其基本格式为:

{

currentinterface:“当前接口信息”,

nextinterface:“下一个接口信息”

};

把每个relationinstance依次与群体的访问特征属性匹配:

如果nextinterface在nextinterfacelist中,即返回威胁得分为0,

如果nextinterface不在nextinterfacelist中,威胁得分为1;

累加匹配得出的所有威胁得分,得到总的异常行为分值。

本发明通过web访问日志之间的关联分析,可更精确的判断用户在一次会话访问行为中,是否包含对web应用系统有威胁的行为,可以更好的保护数据资产。

本发明与现有技术相比,具有以下优点及有益效果:

(1)本发明通过关键的日志关联分析,用户实际接口访问行为链与群体的行为链的相似度匹配,能针对性的精确识别异常行为并及时通知到系统管理员。

(2)本发明所分析的数据为是web访问日志,存在较大的并发量和交叉关系,摒弃直接的时间线顺序关系,而使用日志数据中的字段标识来确立分类,并且使用了个体与群体的对比来区分异常关系,适用性更广。

附图说明

图1为本发明的流程图;

图2为本发明中日志收集的系统框架图。

具体实施方式

下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。

实施例1:

结合附图1所示,一种基于web日志的关联分析方法,包括以下步骤:

1)日志数据收集

如图2所示,使用nginx+lua采集统一格式的日志数据。也可以直接使用openresty,openresty是一个基于nginx与lua的高性能web平台,在这里需要采集的数据包含以下字段:

会话标识id:sessionid,

访问接口路径:urlpath,

访问接口的方法:method

用户ip:clientip

访问时间:timestamp

2)日志数据预处理

把上述采集的日志信息,转化为标准的json格式,其中时间格式统一为yyyy-mm-ddhh:mm:ss

如:

以sessionid为分组条件,将日志分为不同的组,即,每一组的数据是以session为关联的同一个web访问会话中的数据。

2)获取日志中的事件行为链

把日志数据以时间排序,得出事件行为链。

3)统计接口调用承接关系概率

统计用户访问接口的关联关系,每个接口访问的下一个接口次数top3。3.1)记录次数

用户a访问接口顺序为:login,userinfo,updateuser,articlelist

用户b访问接口顺序为:login,userinfo,updateuser

用户c访问接口顺序为:login,articlelist

用户d访问接口顺序为:login,friendlist

……

记录login接口的下个接口次数,格式为:

3.2)取得top3的接口数据

4)行为链的相似度匹配

4.1)获取用户a用户单个会话的事件行为链数据,依次提取每个接口和它的下个接口。基本格式为:

4.2)匹配该用户此接口访问的顺序是否异常

遍历interfacelist,取到第一个login接口的数据

在commoninterfacelist中查找到login接口的top3数据为

list:[userinfo,articlelist,friendlist]

用户a的下个访问接口userinfo在此list中,记录威胁得分为:0

如果用户e的login接口访问数据为:

则匹配后,记录威胁得分为:1

4.3)同理得出用户在整个会话过程中的威胁得分,并累加起来。

4.4)接口行为异常的才会有威胁得分,把这部分用户数据,写入到威胁数据表中,以便后续查看。

尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1