计算机应用   2017, Vol. 37 Issue (1): 128-133  DOI: 10.11772/j.issn.1001-9081.2017.01.0128
0

引用本文 

刘泽宇, 夏阳, 张义龙, 任远. 基于Web行为轨迹的应用层DDoS攻击防御模型[J]. 计算机应用, 2017, 37(1): 128-133.DOI: 10.11772/j.issn.1001-9081.2017.01.0128.
LIU Zeyu, XIA Yang, ZHANG Yilong, REN Yuan. Application-layer DDoS defense model based on Web behavior trajectory[J]. JOURNAL OF COMPUTER APPLICATIONS, 2017, 37(1): 128-133. DOI: 10.11772/j.issn.1001-9081.2017.01.0128.

通信作者

刘泽宇(1992-),男,湖北咸宁人,硕士研究生,主要研究方向:网络安全、电子商务. E-mail:yxia@cumt.edu.cn.

作者简介

夏阳(1962-),男,江苏徐州人,教授,博士,主要研究方向:网络计算、Web应用、电子商务;
张义龙(1991-),男,河北邢台人,硕士研究生,主要研究方向:网络安全、机器学习;
任远(1989-),男,江苏徐州人,硕士研究生,主要研究方向:网络安全、人工智能

文章历史

收稿日期:2016-07-26
修回日期:2016-08-08
基于Web行为轨迹的应用层DDoS攻击防御模型
刘泽宇, 夏阳, 张义龙, 任远    
中国矿业大学 计算机科学与技术学院, 江苏 徐州 221116
摘要: 为了有效防御应用层分布式拒绝服务攻击(DDoS),定义了一种搭建在Web应用服务器上的基于Web行为轨迹的防御模型。把用户的访问行为抽象为Web行为轨迹,根据攻击请求的生成方式与用户访问Web页面的行为特征,定义了四种异常因素,分别为访问依赖异常、行为速率异常、轨迹重复异常、轨迹偏离异常。采用行为轨迹化简算法简化行为轨迹的计算,然后计算用户正常访问网站时和攻击访问时产生的异常因素的偏离值,来检测针对Web网站的分布式拒绝服务攻击,在检测出某用户产生攻击请求时,防御模型禁止该用户访问来防御DDoS。实验采用真实数据当作训练集,在模拟不同种类攻击请求下,防御模型短时间识别出攻击并且采取防御机制抵制。实验结果表明,Web行为轨迹的防御模型能够有效防御针对Web网站的分布式拒绝服务攻击。
关键词: 分布式拒绝服务攻击    应用层    Web行为轨迹    攻击防御    
Application-layer DDoS defense model based on Web behavior trajectory
LIU Zeyu, XIA Yang, ZHANG Yilong, REN Yuan     
College of Computer Science and Technology, China University of Mining and Technology, Xuzhou Jiangsu 221116, China
Abstract: To defense application-layer Distributed Denial of Service (DDoS) built on the normal network layer, a defense model based on Web behavior trajectory in the Web application server was constructed. User's access behavior was abstracted into Web behavior trajectory, and according to the generation approach about attack request as well as behavior characteristics of user access to Web pages, four kinds of suspicion were defined, including access dependency suspicion, behavior rate suspicion, trajectory similarity suspicion, and trajectory deviation suspicion. The deviation values between normal sessions and attack sessions were calculated to detect the application-layer DDoS to a specific website. The defense model prohibited the user access from DDoS when detecting the attack request generated by the user. In the experiment, real data was acted as the training set. Then, through simulating different kinds of attack request, the defense model could identify the attack request and take the defense mechanism against the attack. The experimental results demonstrate that the model can detect and defense the application-layer DDoS to a specific website.
Key words: Distributed Denial of Service (DDoS)    application-layer    Web behavior trajectory    attack defence    
0 引言

分布式拒绝服务攻击(Distributed Denial of Service,DDoS),是指利用目标系统网络服务功能缺陷,直接消耗其系统资源,使得该目标系统无法提供正常的服务。

在网络协议低层,DDoS最明显的特征是流量出现异常,通过分析流量检测DDoS是常见的方法[1];对于应用层的DDoS,文献[2]通过分析主干网络的用户访问行为,利用访问者产生的外联行为来检测应用层DDoS,该方法有效区分Flash Crowd[3]和攻击行为。在产生Flash Crowd[3]时,外联节点的客户端数量与客户端总数的比值稳定,而DDoS时外联节点与客户端总数会出现较大的变化,通过非参数的累积控制图(CUmulative SUM,CUSUM)计算外联节点与客户端总数比值的对数似然统计量偏移,能够有效区分突发访问与应用层DDoS。该方法对于Web应用服务器而言,主干层的网络数据不易获取。

文献[4]提出了一种基于用户忠实度的应用层DDoS防御模型,该模型使用Cookie来标记不同用户的忠实度,根据用户的行为来评定用户忠实度,过滤忠实度低的用户访问,实现了应用层攻击防御。

文献[5]通过分析应用层DDoS的单个用户平均请求次数(Average Number of Request per Client,ANRC)的变化规律,提出一种自回归的模型的检测算法。使用卡尔曼滤波算法预测正常用户的平均访问速率,当实际值和预测值的差超过阈值时,则判定为DDoS。

文献[6]分析Web DDoS会话特征与正户访问会话的特征,将Web DDoS分为五类,根据DDoS与正常访问行为不同,并提出访问行为异常属性和session异常度模型。根据页面转移异常度、内嵌对象请求数异常度、Thinking Time异常度、URL长度异常度、Main page请求数异常度、请求循环次数异常度计算平均异常度,通过平均异常度的值来判断是否为合法请求。

针对Web的DDoS,Park等[7]通过在客户端检测用户的鼠标点击行为来区分正常用户访问和攻击脚本,此类方法仍然受客户端限制;Paul等[8]提出一种多项式分布模型,先对应用程序流量进行分组,通过对流量的分组与分流来识别和抵抗DDoS。文献[9]使用隐马尔可夫模型来描述正常用户的访问行为,在线测量Web用户访问行为相对于正常访问模型的偏离度,根据偏离度大小判断恶意攻击序列。该方法的训练数据和计算过程繁琐,且不能完全涵盖所有喜好习惯不同的用户的访问特征。Rajesh[10]提出一种访问矩阵来识别正常用户访问和DDoS,该方法主要适用于热门网站的服务器。

运用部署在主干网络的外联行为来检测应用层DDoS检测方法[2],难度较大,适用场景限制太多;文献[4]所描述的用户忠实度的检测方法会受到客户端的限制和影响,容易被反制;基于ANRC的变化规律的自回归的模型的检测算法无法有效区分Flash Crowd和DDoS访问[5];文献[6]在获取页面转移异常时需要根据用户访问页面的内容对页面分类,忽视了网站页面的本身链接关系,而网站页面的链接关系更能直接影响用户的session的访问行为,并且,在获取Thinking Time异常度时,容易受到小概率正常用户行为干扰,而此类行为对Thinking Time异常度影响大。

针对上述不足,本文主要通过分析Web网站的结构特点以及用户访问行为特点,提出一种基于Web行为轨迹的攻击防御模型(Application-layer DDoS defense model based on Web Behavior Trajectory,WBT)。该防御模型可以部署在Web服务器和应用服务器之间,检测模块把检测结果反馈给局域网防火墙、主机防火墙、Web服务器等软硬件安全设施,该防御模型不依赖于主干网络;该防御模型所有的检测数据不依赖客户端,不受客户端环境的影响;通过计算用户的访问依赖异常、行为速率异常、轨迹重复异常、轨迹偏离异常,能够有效区分DDoS与Flash Crowd;在分析用户访问行为时充分考虑页面的链接结构、在计算时合理排除小概率事件对结果的干扰,能够有效地防御对Web网站的DDoS。

1 Web行为轨迹 1.1 Web行为轨迹的表示

用户浏览网站的过程被定义为Web行为轨迹,Web行为轨迹可表示为四元组W(V,E,S,T)。

V是节点集合,表示网站所有用户通过URL访问的HTTP请求。这些节点包含六个属性,对于任意节点vi∈V,v包含(id,userid,url_id,time,refer_id,count)六个属性。id表示访问节点的唯一标识符;userid表示用户的标识符;url_id表示用户访问的HTTP请求URL的唯一标识符;refer_id表示访问该节点的来源节点的id,根据refer_id可以计算refer_url;count是一个整数,用来表示当前会话用户第几次访问Web服务器。由于网站的访问规则是确定的,提供外部用户直接访问的URL是确定的,网站中能够合法访问的节点集合用V0表示,称为固有点集。

E是边集,表示用户在两次相邻页面的跳转的关系。m是用户一次访问行为的轨迹长度,m=E。当一个网站发布之后,页面的链接是确定的。这些节点之间的关系用一个V×V的子集表示,即E0⊆V×V,E0称为网站的固有边集。

图 1 行为轨迹节点示意图 Figure 1 Schematic diagram of behavior track nodes

S是边的空间权值集合,对于任意边ei=(vi,vj),设S(ei)=sij,则称sij为ei上的空间权值。空间权值是节点vi,vj的最短路径。a,b,c,d,e,f,g,h,i,j是访问轨迹里的节点元素,即a,b,c,d,e,f,g,h,i,j∈V;a能直接访问b,c,d,即对于访问轨迹中边中的三个元素e1=(a,b),e2=(a,c),e3=(a,d)它们的空间权值关系为S(e1)=S(e2)=S(e3)=1;a到e的最短路径为2,即e4=(a,e),S(e4)=2。当用户刷新页面时,这条边的空间权值为0,即e5=(a,a),S(e5)=0。

T是时间权值的集合,对于任意边ei=(vi,vi+1),设ei=(vi,vi+1),则称tij为ei上的时间权值。时间权值表示用户访问一个页面到另一个页面的思考时间。

1.2 Web行为轨迹分析

用W(V,E,S,T)表示用户在浏览网站的Web行为轨迹,W具备以下几点特征。

1) 对于任意ei=(vi,vj)∈E0,sij的取值大部分为1。用户在浏览网页时,主要通过页面链接跳转直接访问不同页面,当出现ei=(vi,vj)∈E,sij>1所占频率增高时,说明用户的访问行为出现异常。

2) 在行为轨迹图W中,用户不用循环请求一个或者一组页面,当行为轨迹中出现大量重复访问序列,说明存在攻击行为。

3) ei=(vi,vi+1),t(ei)=t,在用户浏览Web时,用户浏览一个节点到浏览另一个节点,需要一定的思考时间,思考时间与ei是相关的,T(ei)表示历史用户访问。攻击者为了达到攻击效果,往往会选择高速率的请求频率,此时,导致行为轨迹图中边的时间权值会非常小,出现行为速率异常。

4) 在用户访问的节点中,用户几乎不会单独访问一个单独的通过非开放URL访问的资源,并且用户不会经常访问不存在的URL,即V⊆V0,当存在大量的访问的url节点a∈V∩aV0时,表明用户的Web行为轨迹出现异常,说明可能在采用某种随机URL的程序在进行攻击行为,出现轨迹偏离异常。

1.3 获取节点参数

对于用户访问Web应用服务器的行为轨迹中的每个访问节点(id,userid,url_id,time,refer_id,count),其中参数url_id、refer_id可以直接根据访问记录和HTTP。对于访问节点id,采用自增的整数或者随机的大整数来标识,userid通过Cookie与session或者重写url进行会话跟踪,一次会话的过程中userid相同,访问时间间隔time根据refer_id和userid来获取,count元素根据已知userid进行累加获取。

1.4 Web行为轨迹的化简

对于Web应用网站来说,URL的路径命名复杂,将每个URL对应一个url_id,这里采用文献[11]在软件行为轨迹中的化简方法,在定义一个网站的行为轨迹模型前,

进行以下化简操作。

Web先驱元集。对于任意的访问节点v∈V0,则称{u|u∈V0∧〈u,v〉∈E0∧u≠v}为v的先驱元集,记作Γ-(v)。

Web后继元集。对于任意的访问节点v∈V0,则称{u|u∈V0∧〈v,u〉∈E0∧u≠v}为v的后继元集,记作Γ+(v)。

化简Web行为轨迹针对URL和refer_id的对应关系。首先,合并等价URL。对于网站而言,如果任意两个URL访问的是同一资源,那么这两个节对应的url_id相同。

合并等价节点,如果两个节点的前驱元集和后继元集相等,那么这两个节点等价。如果一个访问节点的vi,vj∈V0且Γ+(vi ) = Γ+(vj )∧Γ-(vi ) = Γ-(vj ),那么节点vi等价于节点vj

2 WBT模型 2.1 部署结构

图 2所示,WBT模型主要部署在应用服务器和Web服务器之间,WBT模型对于应用服务器是透明的,需要在Web服务器保证sessionId在会话中不会变化。对于非法用户的拦截,在应用层采用黑名单机制,在传输层采用防火墙策略。在识别出攻击访问行为之后,根据会话信息记录的客户端的IP、主机名、浏览器、设备标识等特征,将非法用户记录在黑名单中,并在局域网防火墙执行相应的拦截规则,在一定时间内限制符合此类特征的用户再次访问。当出现误判时,可让用户可通过输入验证码等安全方式主动移除黑名单。该防御模型核心的部分为检测模块,计算用户的访问行为是否为攻击行为。

图 2 防御模型部署 Figure 2 Architecture of WBT
2.2 防御机制

图 3所示,在用户被判定为非法用户时,将用户信息记录在blacklist,通过防火墙规则或者Web服务器的黑名单机制限制,在一段时间内不允许该用户再次访问网站;当超过一定时间后,将用户自动从blacklist中移除,提供用户主动delist的网页入口,防止出现误判的现象,采取验证码等安全机制验证用户的真实性。

图 3 用户状态转换 Figure 3 User's statechart in WBT
3 基于行为轨迹的异常因素及计算

在WBT模型中,最核心的部分为DDoS检测,在检测过程中,主要涉及访问依赖异常、轨迹重复异常、行为速率异常、轨迹偏离异常的计算。

3.1 访问依赖异常

在用户的一次行为轨迹图中,如果存在大量的ei=(vi,vj)∈E,sij>1,将ei出现的频率定义为访问依赖异常,记作Pdep

${w_i} = |\left\{ {{e_i}|{e_i} \in E \wedge {s_{ij}} > 1} \right\}|/|E|;i > 2$ (1)

在给定的Web应用网站,节点的链接关系是已知的。每个页面的节点v的数据结构是一个有向图,图中的节点表示URL,节点之间的有向边表示了相邻节点之间的可达性,如图 4所示。

图 4 页面相邻示意图 Figure 4 Schematic diagram of adjacent pages

图 4是某个网站每个URL的可达性的示意图。页面之间的相邻性是确定的,当用户访问a,正常的访问模式能够访问的只有b、c,当访问a后访问了g,说明可能出现了访问异常,对于用户访问的集合W元素V、E,如果一个节点vi∈V0,那么vi可达相邻节点的集合记作vi.acc。通过遍历用户的边集,来确定依赖异常的点,依赖异常点集为:

${V_{\dim }} = \left\{ {{v_j}{\rm{|}}{e_i} = \left( {{v_i},{v_j}} \right) \in E,{v_i} \in {V_o},{v_j} \notin {v_{i.{\rm{ace}}}}} \right\}$ (2)

则对于用户的第i次访问,访问依赖异常:

${w_i} = {P_{{\rm{dep}}}} = \left| {{V_{\dim }}} \right|/\left| E \right|$ (3)
3.2 轨迹重复异常

在行为轨迹图W中,对于用户访问的节点a∈V,利用一个六元组(id,uid,url,time,refer_id,count)表示,重复轨迹表示两个相同轨迹之间是没有其他轨迹行为,用户的重复轨迹出现的次数c,重复的长度为l,n、d,其中d>1,n>1,n和d为给定的常数,轨迹相似异常为Psim,对于用户的第i次访问,轨迹重复异常:

${x_i} = {P_{{\rm{sim}}}} = l \cdot c/|E|$ (4)

求重复轨迹的次数抽象成求一个序列中连续出现次数最多的子序列。用户访问的节点的URL以后缀树的形式表现出来。

a b c a b c a b c d e . substr [0]

b c a b c a b c d e ...substr [1]

c a b c a b c d e .....substr [2]

a b c a b c d e ......substr [3]

b c a b c d e .......substr [4]

c a b c d e ..........substr [5]

a b c d e ...........substr [6]

b c d e ..............substr [7]

判定条件是substr[i].substr(0,j-i)==substr[j].substr(0,j-i),通过上述的计算方法,得出若干个连续出现的子序列之后,本文取出重复度最高的子序列来计算轨迹重复异常。

3.3 行为速率异常

当网站出现峰值访问时,对于网站而言,HTTP请求速率增加,但对于单个用户而言,访问的速率变化不大,并且一次请求的速率跟网站的内容通常是相关的,利用一个Key-Value数据库存储访问轨迹与估计速率的映射关系,访问停留时间代表访问速率。用户访问的速率跟访问节点的内容具有相关性。

对于网站的固有边集E0,对应的正常时间权值集合T,攻击者通常采用高频率的HTTP请求,来达到攻击效果,在时间权值集合T(ei)中,把集合中的元素从小到大排序,得到排序好的集合Tsort(ei),用户在浏览网页的时候的请求速率不可能太快,将Tsort(ei)的中值记为t(ei0),t(ei)用户访问轨迹ei的真实停留时间间隔,q为给定的常数。第i次访问产生的行为速率异常:

${y_i} = {P_{{\rm{rate}}}}{\rm{|}}\left\{ {{e_i}|t\left( {{e_i}} \right) - t\left( {{e_{i0}}} \right)/t\left( {{e_{i0}}} \right) > 0} \right\}|/|E|$ (5)

图 5为Music Machines-HTTP[12]的时间权值分布散点图,在检测行为速率异常中,在JSP页面和ASP中默认session分别为30 min和20 min,如果用户长时间停留在某一页面,虽然此类节点产生概率相对较少,但对于平均值的影响非常大,当使用均值检测时,如果有异常存在此类节点,检测的灵敏度将大幅度降低,所以在检测的过程中取访问历史时间的中值。

图 5 时间权值分布 Figure 5 Distribution of time weight
3.4 轨迹偏离异常

在一个确定的网站中,页面的结构是确定的,即每个页面对应的资源是确定的,每个资源所在的页面也是确定的。如图 6所示,在某网站中,图片A只出现在页面1与页面2中,如果某一用户访问了图片A,则此用户很有可能访问了页面1的URL页面2的URL。如果在用户的某次访问中,出现大量的图片A的HTTP请求,而没有出现页面1或者页面2的请求地址,说明此次访问存在异常。

图 6 页面结构示意图 Figure 6 Schematic diagram of page structure

在一次行为轨迹中,假如图片A的节点为vA,单独出现的次数是i,图片A的URL访问异常为:

${P_{{\rm{derailed}}}} = i/|E|$ (6)

一个网站的URL也是确定的,如果用户的某次访问中存在大量的不存在的URL,则用户访问的轨迹偏离了正常的轨迹,用户某次访问不存在的URL的次数是j,则轨迹偏离异常度为:

${P_{{\rm{nonexistent}}}} = j/|E|$ (7)

用户第i次访问时,轨迹偏离异常:

${{z}_{i}}={{P}_{\text{derailed}}}+{{P}_{\text{nonexistent}}}$ (8)
3.5 基于行为轨迹的异常计算

Web服务器功能的差异性导致了正常访问产生的异常度不一致,检测过程中,四种异常所占的权值不同。

假设用户在第i次访问时的访问依赖异常、轨迹重复、行为速率、轨迹偏离分别为wi、xi、yi、zi,根据以上公式,可以计算出在第i次的异常因素为:

${{P}_{i}}={{f}_{\text{total}}}\left( {{w}_{i}},{{x}_{i}},{{y}_{i}},{{z}_{i}} \right)$ (9)

根据网站的性质不同,正常用户在访问过程中产生的异常因素Pi的计算方式也不同,即依赖异常、轨迹重复、行为速率、轨迹偏离的异常的统计的权重不同,那么有:

${{P}_{i}}=a{{w}_{i}}+b{{x}_{i}}+c{{y}_{i}}+d{{z}_{i}}$ (10)

其中常数a,b,c,d的取值取决于网站的内容和结构。 μ(w)、σ(w)、 μ(x)、σ(x)、 μ(y)、σ(y)、 μ(z)、σ(z)分别表示四种异常值的平均值和方差。当异常值超过平均值方差时则报警。

4 实验评估 4.1 搭建WBT模型

模拟实验采用Music Machines-HTTP从1996年12月29日00:00:00到1997-09-23 23:45:01日志数据作为训练集,总共包含4143条session,采用1997年09月21日 23:59:14到1997年09月23日23:45:01日志数据作为模拟测试数据,实验对象为machines主机上的数据,先计算训练数据集四种异常平均值μ(w)、 μ(x)、 μ(y)、 μ(z)和四种方差σ2(w)、σ2(x)、σ2(y)、σ2(z)。实验过程中,把machines下的所有访问看作是一台应用服务器或者一个服务器集群。先把日志数据存储在数据库表中,对其进行化简处理,通过日志数据的URL的referer关系得出网站的链接结构。根据链结构以及URL生成一个模拟的machines网站。将Single Flood、Session Flood、Multi-URL Flood、Random-URL、Forged-URL分别记为A、B、C、D、E,通过模拟A、B、C、D、E五种攻击行为对网站进行访问,观察其四种异常值,当超出任意异常值平均值一个方差的值时,则判定为攻击行为。

WBT模型搭建在Linux操作系统上,采用Nginx当作Web服务器,Tomcat当作应用服务器,Nginx记录的日志为原始的访问日志,作为检测分析的数据源为日志数据,采用Nginx的动态黑名单和局域网防火墙机制限制非法访问,在判定为非法访问时,则产生报警。

4.2 数据预处理

对于referer不属于machines的URL,统一用“others“标记,不含有referer的访问referer采用符号“-”标记。处理之后,总共包含352个不同的referer,计算训练集中的访问依赖异常、轨迹重复异常、行为速率异常、轨迹偏离异常,其中训练集的每个异常因素概率密度函数分布如图 7所示。

其中,均值和方差分别为:

$\left\{ \begin{align} & \mu (w)=0.1373,{{\sigma }^{2}}(w)=0.0505 \\ & \mu (x)=0.0724{{\sigma }^{2}}(x)=0.0146 \\ & \mu (y)=0.0587,{{\sigma }^{2}}(y)=0.0353 \\ & \mu (z)=0.0380,{{\sigma }^{2}}(z)=0.0631 \\ \end{align} \right.$
图 7 异常概率密度函数 Figure 7 Abnormal probability density function
4.3 实验结果

在攻击频率较高时,五类攻击请求均表现为行为速率异常,在使用正常速率攻击时,对于A类攻击,表现出为访问依赖异常、轨迹重复异常;对于B类攻击,在session长度较短时,主要表现为访问依赖异常,在session长度较长时,偏离网站原有链接关系的访问节点较少,主要表现为轨迹重复异常;对于C类攻击,由于是组合的URL,并且重复多次请求,主要表现为访问依赖、轨迹偏离异常、轨迹重复异常;对于D类攻击,采用随机单个URL进行攻击,主要表现为访问依赖异常、轨迹偏离异常;对于E类攻击,由于URL是伪造的,所以在访问过程中,出现大量的HTTP状态码为404的错误,主要表现为轨迹偏离异常。如表 1所示,为防御模型在该五种攻击行为时的检测性能。

表 1 攻击类型与检测性能 Table 1 Attack type and detection performance

在A、B、C、D、E五种类型的攻击模式下,四种异常值与访问次数的关系如图 8~11所示。

图 8 访问依赖异常 Figure 8 Access dependency suspicion
图 9 轨迹重复异常 Figure 9 Trajectory similarity suspicion
图 10 行为速率异常 Figure 10 Behavior rate suspicion
图 11 轨迹偏离异常 Figure 11 Trajectory deviation suspicion

图 8所示,A类攻击产生访问依赖异常值为在初始状态1;而在B类攻击模式下,由于B类攻击截取了一段正常session进行反复访问,访问依赖异常值维持在一个较小的值;C类攻击选取的URL组合没有考虑连接关系,维持在一个较大的值;Random-URL攻击和Forged-URL攻击的访问依赖值在初始状态就为1。

图 9所示,A类轨迹重复异常值为1;B类攻击在刚开始,处于一个较小的值,当第二次Flood完成时,行为轨迹模型识别出攻击模式,轨迹重复异常值达到最大。C类的轨迹重复异出现了较大的抖动,在攻击启动时,不会出现重复,当第二次Multi-URL访问完时,轨迹重复异常值达到最大并且超过阈值;D类由于攻击路径的随机性,导致轨迹重复异常值稳定在一个较小的值;E类攻击通过伪造随机的超长URL,轨迹重复异常值稳定在0左右。

图 10为真实测试数据模拟的B类和C类攻击时计算行为速率异常值。与页面的内容与访问速率相关的A、D、E类攻击模式的异常值在检测开始后迅速达到最大值。B类攻击的异常值稳定在一个较小的值,在行为速率异常值不明显;而在Multi-URL Flood的访问速率异常值最后稳定在0.24,超出阈值。

图 11所示,A类攻击被攻击行为被认为轨迹偏离异常值为0;B类攻击在轨迹偏离异常值中稳定在一个较小的值;C类攻击由于在访问过程中存在跳动的情况,轨迹偏离处于一个较大的稳定值,超出检测阈值;D、E由于攻击的随机性,轨迹偏离异常值维持在最大。

4.4 性能分析

对于高频率的Web DDoS行为,由于文献[2]涉及的方法需要收集与计算网站和主干网络的数据,而WBT模型只需读取网站自身产生的数据,所以本文的防御效率要优于文献[2]所描述的方法;由于文献[6]在计算Thinking Time异常值和Main page请求数异常值时采用均值,在实验中针对初始频率低、频率逐渐增加的攻击行为时,WBT防御模型的检测效率优于文献的session异常模型,并且误判率低。

4.5 相关工作比较

文献[6]与本文有几点不同。首先,在session异常模型中,通过训练数据计算页面是否属于同一话题,从而确定页面转移异常,而Web行为轨迹的访问依赖异常的根据是Web服务器的相互链接的关系;通过Web行为轨迹化简过程可以有效降低计算复杂度。其次,session异常模型的Thinking Time异常值将所有页面的跳转时间统一计算,而Web行为轨迹模型考虑到页面内容与跳转时间相关,在每次HTTP请求时,根据访问边查找对应跳转时间,检测过程中对请求频率更加敏感。文献[4]基于用户忠实度的应用层DDoS防御模型,过度依赖于Cookie机制,而本文描述的行为轨迹模型部署在服务器端,检测方法不受客户端影响。

5 结语

本文针对Web网站的结构以及应用层DDoS的攻击特点,定义了一个Web行为轨迹W(V,E,S,T),在此检测模型的基础上搭建WBT模型来防御应用层DDoS。通过统计正常访问的历史信息已经页面的链接关系,定义固有边集E0,空间权值S,边时间权值集合T(ei)。通过行为轨迹化简方法,简化计算模型,增加防御性能。

在用户每次发起HTTP请求到达服务器后,根据用户产生的节点vi∈V的信息计算访问依赖异常、轨迹重复异常、行为速率异常、轨迹偏离异常;计算异常值偏离均值的差,从而判断此用户访问是否为DDoS行为。由于网站的功能不一致,确定四种异常值对总体异常权值比的参数a、b、c、d的取值策略仍需完善。

参考文献
[1] 罗华, 胡光岷, 姚兴苗. 基于网络全局流量异常特征的DDoS攻击检测[J]. 计算机应用, 2007, 27 (2) : 314-317. ( LUO H, HU G M, YAO X M. DDoS attack detection based on global network properties of network traffic anomaly[J]. Journal of Computer Applications, 2007, 27 (2) : 314-317. )
[2] 王风宇, 曹首峰, 肖军, 等. 一种基于Web群体外联行为的应用层DDoS检测方法[J]. 软件学报, 2013, 24 (6) : 1263-1273. ( WANG F Y, CAO S F, XIAO J, et al. Method of detecting application layer DDoS based on the out-linking behavior community[J]. Journal of Software, 2013, 24 (6) : 1263-1273. )
[3] CHEN X, HEIDEMANN J. Flash crowd mitigation via adaptive admission control based on application-level observations[J]. ACM Transactions on Internet Technology, 2005, 5 (3) : 532-569. doi: 10.1145/1084772
[4] 孙未, 张亚平. 基于用户忠实度的应用层DDoS防御模型[J]. 计算机工程与设计, 2015, 36 (1) : 93-97. ( SUN W, ZHANG Y P. Application layer DDoS defense model based on user loyalty[J]. Computer Engineering and Design, 2015, 36 (1) : 93-97. )
[5] 赵国锋, 喻守成, 文晟. 基于用户行为分析的应用层DDoS攻击检测方法[J]. 计算机应用研究, 2011, 28 (2) : 717-719. ( ZHAO G F, YU S C, WEN S. Detecting application-layer DDoS attack based on analysis of users' behaviors[J]. Application Research of Computers, 2011, 28 (2) : 717-719. )
[6] 肖军, 云晓春, 张永铮. 基于会话异常度模型的应用层分布式拒绝服务攻击过滤[J]. 计算机学报, 2010, 33 (9) : 1713-1724. ( XIAO J, YUN X C, ZHANG Y Z. Defend against application-layer distributed denial-of-service attacks based on session suspicion probability model[J]. Chinese Journal of Computers, 2010, 33 (9) : 1713-1724. doi: 10.3724/SP.J.1016.2010.01713 )
[7] PARK K, PAI V, LEE K, CALO S. Securing Web service by automatic robot detection[C]//Proceedings of the Annual Conference on USENIX' 06 Annual Technical Conference. Berkeley, CA:USENIX Association, 2006:23-28.
[8] PAUL V, PRASADH K, SANKARANARAYANAN(无名字). Application:DDoS attacks resistance scheme using polynomial distribution model[C]//Proceedings of the 2013 Third International Conference on Advances in Computing and Communications. Washington, DC:IEEE Computer Society, 2013:304-307.
[9] EMMERIK M V. Static single assignment for decompilation[D]. Brisbane:University of Queensland, 2007.
[10] RAJESH S. Protection from application layer DDoS attacks for popular Websites[J]. International Journal of Computer & Electrical Engineering, 2013, 5 (6) : 555-558.
[11] 田俊峰, 韩金娥, 杜瑞忠, 等. 基于软件行为轨迹的可信性评价模型[J]. 计算机研究与发展, 2012, 49 (7) : 1514-1524. ( TIAN J F, HAN J E, DU R Z, et al. Creditability evaluation model based on software behavior trace[J]. Journal of Computer Research and Development, 2012, 49 (7) : 1514-1524. )
[12] Music machines-HTTP[EB/OL].[2016-04-10] . http://www.cs.washington.edu/research/adaptive/download.html.