基于Web资源聚类分析的异常行为检测精.docx

上传人:b****6 文档编号:8603797 上传时间:2023-02-01 格式:DOCX 页数:15 大小:92.31KB
下载 相关 举报
基于Web资源聚类分析的异常行为检测精.docx_第1页
第1页 / 共15页
基于Web资源聚类分析的异常行为检测精.docx_第2页
第2页 / 共15页
基于Web资源聚类分析的异常行为检测精.docx_第3页
第3页 / 共15页
基于Web资源聚类分析的异常行为检测精.docx_第4页
第4页 / 共15页
基于Web资源聚类分析的异常行为检测精.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

基于Web资源聚类分析的异常行为检测精.docx

《基于Web资源聚类分析的异常行为检测精.docx》由会员分享,可在线阅读,更多相关《基于Web资源聚类分析的异常行为检测精.docx(15页珍藏版)》请在冰豆网上搜索。

基于Web资源聚类分析的异常行为检测精.docx

基于Web资源聚类分析的异常行为检测精

基于Web资源聚类分析的异常行为检测1

谢逸,余顺争

中山大学电子与通信工程系,广东广州(510275

E-mail(xieyicn@

摘要:

本文针对大型活动网站的入侵检测,提出一种基于隐半马尔可夫模型(HSMM的Web资源聚类方法,与传统的基于Web页面内容的聚类不同,该方法仅需要用户的HTTP请求序列,而不需要网站和页面的相关信息;利用该模型,我们得到用户对各个Web资源子集的访问特征,我们进一步引入逻辑行为来描述这种用户访问特征,并通过分析用户的逻辑行为实现异常访问行为的检测。

文章详细介绍了模型建立的理论依据和方法,推导出模型参数的估计算法,及一种快速的模型参数实时更新算法。

并指出了如何把该模型应用于实际的网络环境。

最后使用WorldCup1998实际采集的数据验证了模型的有效性。

结果表明该方法不但可以很好地实现用户行为分类,而且可以有效识别出异常的用户行为,从而起到入侵检测的作用。

关键词:

聚类,用户行为,异常检测,隐半马尔可夫模型

中图分类号:

TP3

1.引言

随着Internet的普及,网络上共享的计算机资源成为主要的攻击目标,网络入侵数量的增加及其所带来的严重危害,使计算机安全成为人们关注的焦点。

入侵检测系统(IntrusionDetectionSystem,IDS是用于检测正在发生的攻击和试图进行攻击的计算机系统。

异常入侵检测(AnomalyIntrusionDetection是目前使用的主要手段之一。

它是根据用户行为与活动轮廓存在的偏离程度来判断是否发生入侵,常用的方法有神经网络、模式预测、机器学习、统计分析等[1]。

与一般的入侵检测系统所关注的对象不同,本文主要研究大型活动网站(例如:

体育比赛、重大商务/政治活动、大型文艺表演等对分布式拒绝服务(DistributedDenial-of-Service,DDoS攻击的检测。

大型活动网站具有与一般网站不同的特点:

第一,访问时间集中。

由于活动网站的信息内容受活动时间表的影响很大,这导致它的访问量集中在某些特定的时间段,而其余时间的访问量则很低;第二,访问内容集中。

在特定时段内(例如某一场比赛,与该时段中进行的活动有关的页面会被高频率访问,而其它页面的访问量则较低;第三,访问峰值持续时间短。

通常情况下,各种现场活动的持续时间一般都在2-3小时内,因此网站的访问峰值区不会持续很长时间。

因此,总的来说,大型活动网站具有峰值时段业务量非常巨大、突发性强的特点。

这些特点与DDoS的的洪水式(flooding攻击类似,因此使用一

1本课题得到高等学校博士学科点专项科研基金(项目编号:

20040558043资助.

-1-

般的异常检测方法[2]难以有效区分突发性强的、业务量大的正常流和异常攻击流,从而导致高误检率和高漏检率。

而目前用于防御DDoS攻击的主要思路是基于分组的检测和过滤[3]。

这种方法首先检测出攻击流或攻击分组,然后对这些分组实行过滤,它最大的缺陷是很容易把正常的分组误判为DDoS攻击分组,从而造成正常数据的丢失。

与现有的DDoS检测不同,本文从应用层出发,首先根据用户的HTTP请求对服务器上的Web资源(页面及各种可被用户请求的对象进行聚类,于是用户的一系列HTTP请求就变成是对不同Web资源子集的请求,我们进一步引入逻辑访问行为来表述用户在不同Web资源子集上的跳转关系,由于逻辑访问行为在一定程度上反映了用户的真实行为,因此可以根据用户逻辑访问行为的统计特征来进行异常检测。

为此,本文将采用隐半马尔可夫模型(Hiddensemi-MarkovModel,HSMM[4,5,6]来实现Web资源聚类与描述用户逻辑访问行为的随机变化过程,最终实现异常行为检测的目的。

2.用户行为与Web资源聚类模型

从用户进入网站到获取目的页面的这一个过程是用户在该Web服务器上的浏览过程。

从用户端看,用户的浏览过程是用户根据网页上提供的链接一页一页往下浏览的过程,它主要体现在用户对页面的点击行为上;而从服务器端看,用户的这个浏览过程是通过一系列的HTTP请求/响应构成的。

由于一个页面通常包含多个内嵌的链接,例如:

图片、广告条、背景音乐和框架页面等,因此用户的每一次浏览行为(例如:

点击页面链接、前进、后退、刷新等都会触发浏览器发出一系列的HTTP请求,这些HTTP请求到达服务器后除了使目标服务器做出响应(返回对应的对象以外,其属性(源地址、请求时间、请求对象等也会记录在服务器的日志文件中。

因此从理论上讲,如果知道网站的页面结构,就可以通过log文件的记录分析出用户的浏览行为(点击序列,也就是说log文件中的HTTP请求记录是反映用户浏览行为的“轨迹”。

但是在实际的网络环境中,一般无法从log文件中的记录精确地获取用户的访问行为。

这是由于log无法区分用户点击所产生的HTTP请求和浏览器自动发出的HTTP请求,因此从log记录无法精确知道用户的点击行为;其次,网络中的各级代理(proxy、缓存(cache和用户主机本身的缓存也会对用户的HTTP请求做出响应,因此用户浏览行为触发浏览器发出的HTTP请求可能不会全部到达Web服务器。

也就是说即使完全相同的用户浏览(或点击行为,由于用户主机及中间各级缓存程度的不同,log记录的用户浏览器发出的HTTP请求序列会存在差异;另外,对于同时打开多个浏览器窗口的用户,其不同点击行为所产生的HTTP请求在log文件中的记录是相互交叠在一起,因此更加难以区分出用户的行为。

因此,用户的真实访问行为是“隐藏”在log记录下的随机变量。

为此,本文不直接研究用户真实的访问行为,而是按下述方法间接得到用户访问行为的统计特征:

Web资源聚类。

考虑到用户对活动网站的访问具有很强的目的性,例如:

某一场足球比赛、某一个重大会议、某一特定内容。

即在特定时段内,正常用户的访问总是和该时段内网站的活动主题相关。

按活动主题的不同,可以把服务器的Web资源分为若干子集,每一个子集内的Web资源对应一个活动主题。

这样,对于某个特定的网站活动时间段,正常用

-2-

-3-户向目的服务器发出的HTTP请求的内容大部分将落在那些与活动主题相关的Web资源子集上。

传统的Web页面聚类方法,通常都需要预先为每个聚类定义一个主题,然后根据Web页面的文本内容进行数据挖掘,然后实现聚类。

这种方法计算量大,不适合在线运算;而且它需要预先知道网站的主题结构并采集每一Web页面的文本,这为实际应用带来了不便;更重要的是,由于我们最终目标是利用异常行为检测来发现网络攻击,而非研究用户感兴趣的主题是什么,因此我们不需要知道网站的主题和页面的内容。

所以我们根据用户的访问对服务器上的Web资源进行分类:

把正常用户的HTTP请求序列中经常在一起出现的请求对象聚为一个Web资源子集。

HTTP请求序列WebWeb资源聚类图1Web资源聚类与HTTP请求序列

定义逻辑访问行为。

Web资源聚类后,每个Web资源子集对应一类近似的主题,使用一个符号表示(如图1的s1,s2,s3,s4。

根据Web资源的聚类结果,用户的HTTP请求序列可以

转化为Web资源子集符号序列(如图1的s2→s1→s3。

因此与HTTP请求对应的Web资源子集可以反映出用户当前的访问焦点(主题、目的和兴趣特征,而用户在子集间的跳转关系则反映了该用户的访问特征的变化,进一步揭示了用户的访问行为及其变化。

因此,我们可以进一步认为一个Web资源子集对应(或等价一种典型的用户逻辑访问行为,并用对应的Web资源子集符号表示。

从物理含义上看,一个逻辑访问行为并不等价于用户的一次真实访问行为(例如用户对某个页面的点击,它可以是用户的一次点击行为,也可以是用户对某个特定主题连续几次点击行为的组合;从内容上看,一个逻辑访问行为既代表一类近似的用户访问行为也代表与某一个主题相关的Web资源的集合(Web资源子集,它把Web资源聚类与用户行为联系在一起。

用户行为特征分析。

通过上述处理后,我们可以把用户访问网站后在log留下的HTTP记录整理为一个逻辑访问行为序列。

通过分析用户的逻辑访问行为序列(包括逻辑访问行为的编号及其在序列中的次序,可以知道用户当前的访问主题及用户访问焦点的变化。

因此,逻辑访问序列间接反映了用户真实行为的轮廓。

由于分类后的Web资源子集(逻辑行为个数远小于网站的总体Web资源的个数,所以计算复杂度也随之降低;而且由于每一个Web资源子集都对应一类近似的主题和用户行为,具有明确的含义,因此分析用户在Web资源子集间的跳转关系更具有实际意义,而且比直接分析页面间的跳转关系更好地反映出用户浏览行为的变化趋势。

引入Web资源聚类和用户逻辑访问行为是为了可以更清晰、简练地提取出用户的浏览行为特征及其变化。

而对用户行为特征的分析则可以进一步实现从正常数据流中检测异常流的目的。

由于用户对大型活动网站的访问具有很强的目的性。

因此大部分用户的浏览行为的统计

特征(点击速度、浏览的内容或请求对象、浏览时间、浏览过程等具有一定的相似性,因此从log文件中分析出来的不同用户的逻辑访问行为序列也应该具有一定的统计相似性。

我们可以把这种统计特征看作是用户的正常的、合法的行为。

对于攻击者来说,为了达到攻击的目的,就必须设法使大量的数据发向目标主机,因此,从服务器端来看,攻击者在不同逻辑访问行为上的切换频率远大于普通正常用户,这是时间间隔上的差异;另一方面,攻击者一般比较难同步模拟正常用户的浏览行为,比较容易而又常见的是,攻击者随机生成一些简单的数据流来形成攻击流。

即使攻击者能够选择当前用户高频访问的对象来形成攻击流,这些数据流所形成的序列的先后次序也难以模拟正常用户浏览行为的次序关系,这就使得攻击者和正常用户在请求的内容和先后次序上存在差异,这些请求上的差异最终导致攻击者的逻辑访问序列不同于正常用户。

利用这些统计特征上的差异,通过与代表正常行为的HSMM模型的比较,可以从用户访问行为的角度区分出攻击流。

基于上述考虑,本文选取以下两个观测量来描述用户的逻辑访问行为:

(1用户向服务器请求的对象序列;(2到达服务器的相邻HTTP请求的时间间隔。

由于正常用户的访问行为一般仅与其前后的访问行为有关,因此假定用户的逻辑访问行为符合马尔科夫链的特性。

考虑到用户逻辑访问行为是一个被“隐藏”了的、即不能直接观测到的随机变量,以及用户每一个逻辑访问行为使服务器收到HTTP请求的个数是一个随机变量,本文使用HSMM来建立正常用户的逻辑访问行为模型。

设一个用户的多个逻辑访问行为(例如点击一系列的页面可以用一个状态链来表示,一个状态代表用户的一种逻辑访问行为,不同的状态代表不同类型的逻辑访问行为,所有状态的集合表示为S={1,2,…,M};每一类逻辑访问行为使浏览器发出的、且到达服务器的HTTP请求是不同的,这些HTTP请求可以看作是模型在给定状态下的观测值,对于给定的状态它以一定的概率出现,其集合表示为V={1,2,…,K};来自于该用户的相邻HTTP请求之间的时间间隔是给定状态下的另一个独立随机变量,它可以看作是模型在给定状态下的另一个观测值,为了分析方便并考虑到实际的Web服务器都是以秒为单位记录HTTP请求到达的时间,我们将时间间隔离散为整数,并将其集合表示为I={1,2,…,};对于用户的某一逻辑访问行为,服务器能够收到的HTTP请求的个数是另外一个随机变量,它可以认为是模型在给定状态下,输出的观测值的个数,其集合表示为{1,2,…,D}。

把用户发出的HTTP请求序列表示为O={(r1,τ1,(r2,τ2,…,(rT,τT},其中rt∈V表示用户向Web服务器请求的对象,τt∈I表示服务器收到HTTP请求rt与rt-1之间的时间间隔,O是模型的二维观测值序列。

用B={bm(v,q}表示模型的输出概率矩阵,bm(v,q表示在m∈S状态所对应的逻辑访问行为下Web服务器收到请求rt=v且与前一个到达请求之间的时间间隔为τt=q的概率,其中v∈V,q∈I,且满足Σv,qbm(v,q=1。

用P={pm(d}表示在给定状态m下模型输出观测值个数为d∈{1,2,…,D}的概率,它代表在m∈S状态所对应的浏览行为下,由用户浏览器发出的、且到达服务器的HTTP请求的个数,且满足Σdpm(d=1,即,P相当于HSMM模型中的状态停留时间概率矩阵。

用Π={πi}表示模型初始状态的概率向量,πi表示初始状态为i∈S的概率。

用A={amn}表示模型的状态转移概率矩阵,amn表示从状态m∈S转移到n∈S的概率,也即用户从与状态m对应的逻辑访问行为跳转到与状态n对应的另一逻辑访问行为的概率。

-4-

-5-

图2模型系统框图

模型的建立与实测方法见图2所示。

首先采集用户HTTP请求数据作为模型的观测序列,经过预处理后形成模型的训练序列对模型进行训练(即Web资源聚类;

模型参数确定后可以用于实测,实测数据通过预处理后进入模型,并输出平均对数或然概率及用户的逻辑访问序列(状态序列;在正常度判决模块中比较当前数据与模型训练数据的平均对数或然概率从而得到该用户行为的正常度值,如果该用户的正常度处于正常范围,则用户数据将被加入到训练数据集中,否则将交给后续模块处理。

通过改进[7]中的算法,该模型还可以快速地实时更新模型参数。

考虑到在二维观测值序列中rt和τt相互独立,即:

((],|Pr[],|Pr[]

|,Pr[,(qbvbmsqmsvrmsqvrqvbmmtttttttm=Ω==⋅Ω===Ω====ττ

(1

其中,,,(PBAΠ=Ω为HSMM模型参数,,,,SmIqVv∈∈∈且满足Σvbm(v=1和Σqbm(q=1。

通过对[5]的前向-反向(forward-backward算法做少量扩展,可以得到多观测序列下模型的参数重估算法。

用ot代表模型的第t个观测向量,它包括第t个请求对象rt和rt与rt-1之

间的时间间隔τt,即ot=(rt,τt。

ba

o代表从第a个到第b个观测向量序列,To1则代表整个观测向量序列,其长度为T。

st代表模型在t时刻所处的状态;εt代表当前状态还将输出观测值的个数,1≤t≤T。

L代表观测序列的个数。

首先,分别定义前后向变量为:

]|,,Pr[,(1Ω===dmsodmttttεα

(2],,|Pr[,(1Ω===+dmsodmttTttεβ(3

进一步可以得到αt(m,d和βt(m,d的递推公式:

前向过程(Forwardprocedure:

(((((,(1dpbrbdpobdmmtmtmmmtmmτππα==

(4(((1,(((1,(,(11dpbrbanbrbdmdmmtmtmmnnmttmtmttταταα⋅⎟⎟⎠⎞⎜⎜⎝⎛++=∑≠−−,,,...,2,1},,...2,1{,,TtDdSnm=∈∈(5后向过程(Backwardprocedure:

1,(=dmTβ(6

-6-

∑∑≠≥+++⎟⎟⎠

⎜⎜⎝⎛=

m

ndtntntnmntdndpbrbam1

111,((((1,(βτβ

(71,1,(((,(111>−=+++ddmbrbdmttmtmtβτβ,,,...,2,1},,...2,1{,,TtDdSnm=∈∈

(8

(1或然概率计算

Lldmod

mlTl

Tl,...,2,1,,(]|Pr[,

(1==Ω∑α

(9

本文使用平均的对数或然概率lTTol]|Pr[log1Ω,l=1,2,…,L(即熵作为观测序列l与模型符合程度的度量。

(2状态序列估计定义

],|Pr[(1(Ω==ltTtlomsmγ,

(10

其中1≤t≤Tl,m∈S,l=1,2,…,L

则第l个观测序列在t时的状态可以按如下方法估计:

(maxargˆ((msltS

mlt

γ∈=,1≤t≤Tl,l=1,2,…,L,(11

(3输出概率

在多观测序列下bm(v和bm(q的最大或然概率估计:

∑∑∑∑=====L

lTtlLlTv

rtlm

l

t

l

ttmmvb11

(1:

((

((ˆγγ

(12

∑∑∑∑=====L

lTtlL

lTq

tlm

l

t

l

tt

mmqb11

(1:

((ˆγ

γτ

(13

其中m∈S,v∈V,q∈I,

(4状态转移概率:

定义:

⎟⎟⎠⎞⎜⎜⎝⎛⋅====∑≥−−1

((11(,((((1,(]

,Pr[,(1dlntntnmnlttTldndpbrbamnsmsonmt

tltβταξ(14

其中m,n∈S,l=1,2,…,L,t=1,2,…T可以得到多观测序列下:

∑∑∑∑∑=−===−==LlTtM

nlLlTtlmnlt

ltnmnma

1111

(11

1(,(,(ˆξξ

(15

(5状态驻留时间概率定义:

((((1,(]

,,Pr[,(

((11(1dmdpbrbandmsmsodmlmtmtmmnnmltttTlt

tl

tβταεη⎟⎟⎠

⎞⎜⎜⎝⎛===≠=∑≠−−,m∈S,d∈{1,2,…,D},l=1,2,…,L,t=1,2,…T

(16

由此可得:

-7-

∑∑∑∑∑=−===−==LlTtD

dlLlTtlmlt

ltdmdmdp

1111

(11

1(,(,((ˆηη,其中i∈S,d∈{1,2,…,D},l=1,2,…,L

(17

(6初始状态概率估计

∑∑∑====LlM

mlL

llmmm11

(1(((ˆ1

1

γγπ,m∈S,

(18

考虑到在Web访问中,用户的访问焦点一般会随着时间的变化而变化,如果用于描述

Web访问行为的模型不能自适应地随之变化,则模型会逐渐失效,并把一些新的、正常的Web访问行为误判为异常,从而导致错误的结论。

因此在实际应用中应该尽量避免这种情况出现。

[7]介绍了一种基于HMM的算法可以用于实时更新模型参数。

本文在上述多观测序列HSMM模型参数重估的基础上,通过对该算法的扩展,可以得到一种实时更新HSMM模型参数的快速算法,具体如下:

设}({},({,{},({dpvbaL

mkLmLmLmnLπλ=是有L个观测序列的HSMM的模型参数;

}({},({,{},({

(((((dpvbalmklmlmlmnlπλ=是第l个观测序列单独训练的模型的参数,使用上述多观

测序列HSMM模型的参数重估方法,可以得到:

1(11111

111

1111

1(1

111

1(11

(1,(,(,(,(

,(],|,[]

|,[++=+==+=+=+==−+==−+⎟

⎟⎟⎟

⎞⎜⎜⎜⎜⎝⎛++⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎝⎛≈≡=====∑∑∑∑∑∑∑∑∑∑Lij

LlLijLlLlLlLlLlTtj

TljtitLlTtTljtitLij

a

listatesListatesalistateslistateslistatesljitransosqsqposqsqpall

l

l

λλ(19其中i,j∈S,l=1,2,…,L。

trans(i,j,l表示在第l个观测序列中,从状态i跳转到状态j的频

数;states(i,l是第l个观测序列中,从状态i出现的频数。

由上式可以得到1+Lija近似等于L

ija和1(+Lija的线性组合。

按照类似的方法,我们可以得到其它参数的近似估计:

(,(1,((,(,((1(11

1

1kLilkLilL

lkLivblistatesListatesvblistateslistatesvb+===+⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎝⎛++⎟

⎟⎟⎟

⎠⎞⎜⎜

⎜⎜⎝⎛≈∑∑∑(20

(,,(,,((,,(,,((1(11111

1

11

11dpliqiqturninliqiqturnindpliqiqturninliqiqturnindpLiLlttttLiLlttL

lttLi++=−−+=−=−+⎟⎟⎟⎟⎠⎞⎜⎜⎜⎜⎝⎛=≠=≠+⎟

⎟⎟⎟

⎠⎞⎜⎜

⎜⎜⎝⎛=≠=≠≈∑∑∑,(21

其中i∈S,d∈{1,2,…,D},l=1,2,…,L;turning(qt-1≠i,qt=i,l表示在第l个观测序列中,从其它状态跳转到i状态的频数。

((1(11(1(+++++≈LiLiLiLLLLπππ,i∈S,

(22

由(16、(17、(18和(19得到:

在系数给定的前提下,λL+1可以由λL和λ(L+1估计获得。

另外,注意到上述四式中的系数仅与状态i出现的频数(即:

∑=L

llistates1,(,i=1,2,…,M及由

其它状态跳转到状态i的频数(即:

∑=−=≠L

lttliqiqturnin11,,(,i=1,2,…,M有关。

因此,我们只

需要计算出∑=L

llistates1,(和

∑=−=≠L

lttliqiqturnin11,,(的值,就可以获得所有的系数并实现

HSMM模型参数的更新。

由于这种参数估计算法的复杂度远低于对整个模型重新进行参数估计,因此适合用于在线计算。

但是,由于上述算法是不断根据新的观测数据来实现动态的模型参数更新,如果不加判

-8-

断地利用所有进入服务器的Web访问序列和上述算法来更新模型参数,则很容易使模型逐渐被一些恶意的攻击者所训练,从而丧失异常检测的能力。

为此,在我们的模型系统框图中

(图2,采用如下方法进行处理:

对于一个新的观测序列(记为L+1,首先通过λL来判断它的正常度,如果正常度处于正常范围内,则可以使用上述算法估计出模型新的参数λL+1;否则就交给异常处理模块进行处理。

这样,可以避免模型被攻击者所训练。

3.模型的应用

上述模型可以在真实网络环境下应用,具体的使用步骤如下:

(1建立模型

A.选择一组(L个用户的HTTP请求序列作为模型的训练数据TD。

B.对数据进

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 金融投资

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1