改进TOPSIS法的DDoS防御措施评估

2019-03-28 06:51齐玉东李程瑜王晓虹范赵鹏
兵器装备工程学报 2019年2期
关键词:队列长度服务器

齐玉东,李程瑜,王晓虹,范赵鹏

(1海军航空大学, 山东 烟台 264001; 2.解放军第107医院, 山东 烟台 264001)

分布式拒绝服务攻击[1](Distributed Denial of Service Attack)作为一种影响范围较广、威胁较大的网络攻击行为,对网络的可用性带来极大的危害。考虑到DDoS攻击影响范围广,危害性大,有必要采取措施对DDoS攻击进行防护[2]。为了有效评估DDoS防御措施以防御DDoS攻击,国内外众多科研人员和机构开展了大量的研究。文献[3]提出一种应对DDoS攻击防范机制的评估分类标准,指出在评估防御机制中应用的一些标准参数,但缺乏具体实验比较。文献[4]提出DDoS防御机制评估框架,但该方法需要一个严格假设才能清楚区分攻击包和合法包,在实际的网络攻防对抗中难以做到。文献[5]基于OPNET对赛博网络防御进行建模仿真,搭建典型的DDoS网络攻防场景,通过仿真结果测试采取的网络防御措施可以达到的效果,但缺乏对防御措施效果的综合评估。文献[6]提出一种基于不完全信息静态博弈的DDoS防御措施评估方法,对两种防御措施进行定量评估,但该评估方法只针对一个评估指标对防御措施进行评估,比较片面。当前DDoS防御措施评估存在的问题主要为:缺乏标准评估数据、缺乏综合多个指标的评估方法等,本文就这两个问题提出解决方法。

1 TOPSIS法的改进与评估流程

1.1 传统TOPSIS法的缺陷和改进措施

传统的TOPSIS[7]法通过计算与正负理想解的欧式距离来体现评估方案与正负理想解的相对贴近度,但在多个评估方案中,与正理想解更近的方案或许与负理想解也更近,因而得到的评估结果不能真正的反应待评估方案之间的优劣性,这就是使用欧式距离的缺陷。假设有4个待评估方案,每个方案有两个评估指标x和y,如图1所示,点A(xa,ya),B(xb,yb),C(xc,yc),D(xd,yd)分别为4个待评估方案的样本点,E(x+,y+),F(x-,y-)分别为正负理想解点。其中,AB之间的连线和CD之间的连线都与EF之间的连线垂直。

图1 评估点坐标

为了弥补传统TOPSIS法中采用欧式距离存在的缺陷,本文采用垂面距离代替欧式距离,通过正交投影法计算垂面距离对评估方案进行优劣排序。如图1所示,以直线EF为法线,分别作过直线AB和直线CD的平面o和p,直线AB和直线CD月法线在各自平面的交点为M和N。评估方案A和B到正理想解的垂面距离为dME,到负理想解的垂面距离为dNF,因此,可以看出A和B到正负理想解的贴近度相同,所以评估方案A和B排序相同,具有同等优劣性,同理可得评估方案C和D也具有相同的优劣性。因此,采用垂面距离代替欧式距离,解决了传统TOPSIS法可能会导致待评估方案优劣排序模糊不清的缺陷。

1.2 改进TOPSIS法评估流程

1) 构建标准评估矩阵。采用向比重法对指标数据进行归一化处理以消除量纲尺度不同所带来的影响,公式为

其中xij为第i个评估方案的第j个评估指标值,由此得到标准评估矩阵Y。

Y=[yij]m×n

2) 确定指标权重。本文采用变异系数法[8]确定指标权重,将评估指标数据的变异程度作为权重确定依据。当指标数据变化范围较大时,说明该指标对防御措施优劣排序影响较大,相应其权重也较大,反之则较小,因此变异系数法赋权具有客观性和动态性,其主要步骤为

计算第j个指标的平均值:

计算第j个指标的均方差:

计算第j个指标的变异系数:

计算第j个指标的权重:

3) 评估矩阵加权处理。确定完评估指标权重后对评估矩阵Y进行加权处理,得到加权评估矩阵Z。

Z=[zij]m×n=[yij]m×n·diag(wj)n×n

其中wj表示第j个指标的权重值,所有指标权重值总和为1。

4) 确定正、负理想解。正理想解是假设的最优样本,每项指标都取加权评估矩阵中最优值;相反,负理想解是假设的最差样本,每项指标都取加权评估矩阵中最差值,求解公式如下:

其中J1为效益型指标,J2为成本性指标。

5) 计算垂面距离并排序。为简便计算,将正理想解平移到坐标原点,得到平移后的评估矩阵R:

R=[rij]m×n

评估方案i到正理想解的垂面距离的计算公式为

di=|(u-v)·(u-Ri)|=|v·Ri|

其中,u、v为平移之后的正负理想型,u为零向量,Ri为平移后评估矩阵R的第i行向量。

计算评估方案与正理想型的垂面距离di后,根据di大小进行排序,di值越小,表明该方案越接近正理想解,方案越优,反之越差。

2 基于OMNET++的DDoS攻防仿真建模

OMNET++[9]作为一款面向对象的网络离散事件模拟器,提供了一种基于模块(组件)化的仿真体系结构,定义好的模块可以重复利用,并以各种方式进行组合,构成所需要的仿真网络模型。

一个完整地OMNET++模型包括:

1) NED语言拓扑描述(.ned文件)。仿真网络模型拓扑结构通过NED语言使用参数、模块、门等进行描述。

2) 简单模块源文件(.h或.cc文件)。简单模块作为仿真网络模型中最基本的活动单元,是由C++编程实现,简单模块可以通过端口进行连接,构成复合模块,复合模块也可通过定义接口模块调用不同的简单模块。

3) 仿真配置文件(omnetpp.ini)。仿真配置文件中包括仿真模型参数值以及控制仿真运行参数值。

本文主要基于OMNET++中的INET框架,对DDoS攻防进行建模,并构建DDoS攻防仿真网络模型。

2.1 SYN Flood攻击建模

在INET框架[10]中,主机模块通过ITCPApp接口模块来调用TCPSessionApp简单模块发送建立TCP连接请求并完成TCP协议中3次握手的操作[58]。本文在研究过程中在TCPSessionApp简单模块的基础上对其源文件进行改进,并进行重新编译,开发出TCPSynFlood简单模块。主机模块通过ITCPApp接口模块调用TCPSynFlood简单模块时,只向服务器发送SYN包而不对服务器发来的SYN+ACK包给予回应。将调用TCPSynFlood简单模块的主机定义为SYN Flood攻击主机模块,将调用TCPSessionApp简单模块的主机定义为正常主机模块。

攻击模块TCPSynFlood所对应的TCPSynFlood.h/TCPSynFlood.cc是实现该攻击模块的C++源文件。TCPSynFlood攻击模块主要实现以下功能:

1) 初始化阶段:调用void TCPSynFloodApp::initialize()函数对模块进行初始化,创建多个socket对象,并将socket对象存入socketVector中。

2) 攻击开始阶段:调用void TCPSynFloodApp::connect()函数发送TCP连接请求,此时TCP层会自动发送SYN包请求建立连接。

3) 攻击持续阶段:攻击模块在接收到服务器端发送到的SYN+ACK包后不予回应,而是不断循环调用void TCPSynFloodApp::connect()函数发送TCP连接请求,直到socketVector中的socket对象都发生连接请求。

2.2 DDoS防御建模

对DDoS攻击进行防御的手段主要包括对攻击源头的治理和对攻击的流量缓解两方面。对攻击源头进行治理可以采取切断攻击源头的措施,从理论上来说是对抗DDoS攻击最有效的方法;对服务端进行系统优化可以对攻击流量进行缓解,比如增大TCP连接队列长度。

在INET框架中,主机模块通过ITCPApp接口模块来调用TCPSinkApp简单模块接收TCP连接请求并完成TCP协议中3次握手的操作,将调用TCPSinkApp简单模块的主机定义为服务端主机模块。本文分别对阻断攻击源头和增大服务端TCP连接队列长度两种防御措施在服务器模块中进行建模。

服务器模块在调用TCPSinkApp简单模块接收TCP连接请求之前需要调用TCP模块对发来的SYN包进行监听过滤,TCP模块又通过调用TCPConnection::processSegmentInListen()函数完成这一过程,该函数在TCPConnectionRcvSegment.cc源文件中进行定义,本文对其进行改进来完成两种防御措施的建模。

1) 攻击源黑名单

定义String型变量Client,用来存储黑名单IP地址,并在接收到SYN包时首先对SYN包源地址进行判断,若该SYN源地址与黑名单IP地址列表中某地址相匹配,则丢弃该SYN包,同时不会对该源地址发送SYN+ACK包。

定义bool型变量isblacklist,用来控制攻击源黑名单功能是否启用,变量值为true攻击源黑名单功能启用,变量值为false。

2) 增加服务器TCP连接队列长度

增加服务器TCP连接队列长度连接队列长度通过修改TCP连接队列最大长度backlog常量实现,在接收到SYN包前首先通过getTcpAppConnMapLen()函数获取当前TCP连接队列长度,并与backlog值进行比较,如果小于backlog值,则接收SYN包,如果大于backlog值,则丢弃该SYN包。

2.3 DDoS攻防[11]仿真建模

本文建立的DDoS攻防仿真网络整个网络拓扑如图2所示,包括80台攻击主机client_ddos,5部路由器router,1台正常主机client和1台服务器server。仿真网络运行时,正常主机会向服务器发送SYN包请求建立TCP连接并尝试完成3次握手操作,当TCP连接成功建立后不进行数据传输,而是直接销毁该连接;攻击主机向服务器发送SYN包且对服务器发来的SYN+ACK包不予回应,这样就会占用服务器TCP连接队列,影响正常主机与服务器之间TCP 3次握手操作。每台主机等时间间隔发送20个SYN包请求与服务器建立TCP连接,当所有主机的SYN包处理完毕之后,仿真网络结束运行。

设置正常主机和攻击主机向服务器发送SYN包的时间间隔为100 s,设置服务器TCP连接队列长度参数backlog为600。调整攻击源黑名单个数和修改服务器TCP连接队列长度以实现不同防御措施的部署。

图2 DDoS攻防仿真网络拓扑

3 防御措施评估与结果分析

为评估不同防御措施的优劣,本文基于DDoS攻防仿真网络从正常主机的角度出发定义了两个防御措施评估指标。

定义1 正常主机TCP连接成功率

正常主机TCP连接成功率是指一次仿真实验中正常客户端主机与服务器端成功建立TCP连接数与请求的TCP连接数的比值,公式为

定义2 正常主机TCP连接平均等待时间

正常主机TCP连接平均等待时间是指在一次仿真实验中正常客户端主机与服务器端成功建立TCP请求时刻与请求建立TCP连接时刻的平均时间差,公式为

保持服务器TCP连接队列长度不变,分别将10台、20台、30台攻击主机加入黑名单拦截地址列表进行仿真,然后保持80台攻击主机不变,将TCP连接队列长度分别增加到700、800进行仿真,分别采集两个评估指标数据,得到仿真实验数据如图3所示。

对仿真数据进行归一化处理得到标准评估矩阵Y:

对归一化后的数据采用变异系数法求得权重为w=(0.67,0.33),对评估矩阵Y进行加权处理得到带权评估矩阵Z:

正常主机TCP连接成功率P是收益型指标;正常主机TCP连接平均等待时间T是成本型指标,因此:

正理想型Z+={0.422 3, 0.118 3}

负理想型Z-={0.129 9, 0.187 8}

图3 仿真实验数据

将正理想解平移到坐标原点,得到平移后的评估矩阵R:

计算每个防御措施到正理想型的垂面距离,进而进行排序,得措施优劣排名,如表1所示。

表1 垂面距离di及排名

由表1可知,在5种防御措施中,要优先考虑将服务器TCP连接队列长度增加到800防御措施。

在攻击源黑名单防御措施中,阻断30台攻击主机防御措施最优;在增大服务器TCP连接队列长度防御措施中,将队列长度增大到800防御措施最优。但只比较评估指标仿真数据,这两个局部最优的防御措施相比各有优劣,前者正常主机TCP连接平均等待时间指标更优,后者正常主机TCP连接成功率指标更优,但最终评估结果是将队列长度增大到800防御措施最优,其主要原因是两个评估指标的权重不同,本文采用变异系数法客观赋权,指标数据变化较大的指标权重会较大,正常主机TCP连接成功率指标数据变化较明显,因此其权重较大,在最终评估结果中该指标占决定作用,所以将队列长度增大到800防御措施是最优的,在选择防御措施时要优先考虑。

采用文献[12]中TOPSIS法计算防御措施与正理想解的相对贴近度,得到的排序结果如表2所示。

表2 相对贴近度Ti及排名

将本文改进的TOPSIS法与文献[12]中TOPSIS法的评估结果按照下式进行量纲一化比较,比较结果如表3所示。

表3 改进TOPSIS方法与传统的TOPSIS方法比较

由表3可知,文献[12-13]TOPSIS法与本文改进的TOPSIS法得到的防御措施优劣排序一致,证明改进后的TOPSIS法具有可行性,而且本文改进后的TOPSIS法与文献[11]中TOPSIS法相比得到的最优防御措施和次优防御措施之间的评估数值相差更大,表明本文方法能更明显的区分防御措施之间的优劣程度,突显出最佳防御措施的优越性。

4 结论

1) 针对DDoS攻防评估缺乏标准数据集和综合多指标评估方法的问题,本文通过OMNET++仿真软件对DDoS攻防网络进行了仿真,采集了原始仿真数据,保证了评估指标数据来源的可靠性。

2) 改进了传统的TOPSIS法对防御措施进行多指标评估,得出防御措施优劣排名以指导防御措施的选取,而且改进后的TOPSIS法与传统TOPSIS法相比,会更明显的区分防御措施之间的优劣程度。

3) 下一步研究工作主要是构建多角度多指标的防御措施评估指标体系,使评估更加全面具体,结果更加有说服力;同时从攻防角度出发,引入防御成本概念,针对不同攻击强度评估出最经济最有效的防御措施。

猜你喜欢
队列长度服务器
绳子的长度怎么算
队列队形体育教案
队列里的小秘密
基于多队列切换的SDN拥塞控制*
2018年全球服务器市场将保持温和增长
爱的长度
长度单位
青春的头屑
一支烟的长度——《重九 重九》编后记
用独立服务器的站长注意了