SDN环境中基于端址跳变的DDoS防御方法

2020-09-10 06:50吴桦陈廷政
网络空间安全 2020年8期
关键词:IP地址报文端口

吴桦,陈廷政

〔1.东南大学网络空间安全学院,江苏南京 211189;2.网络空间国际治理研究基地(东南大学),江苏南京 211189;3.网络通信与安全紫金山实验室,江苏南京 211111;4.教育部计算机网络和信息集成重点实验室(东南大学),江苏南京 211189〕

1 引言

伊朗Stuxnet震网病毒、乌克兰电网入侵等一系列针对国家关键信息基础设施的攻击事件出现,引起全球的高度重视。为了防止因这些设施受到DDoS攻击,而影响重要行业的正常运行,进而危害国家安全,有必要对这些关键基础设施的服务器进行保护。

随着软件定义网络(Software-Defined Network,SDN)日趋成熟,已经逐步在各个行业推广使用,传统网络中常见的DoS和DDoS攻击成为SDN中面临的主要安全威胁[1]。

面对SDN中的DoS/DDoS攻击,可以采用流量过滤的方法来缓解攻击。Yuzawa等人[2]将传统网络中缓解DDoS攻击的远程触发黑洞路由(Remote Triggered Black Hole)技术引入到SDN网络中,该技术通过指示路径上所有路由器丢弃前往受害服务器的报文来缓解DDoS攻击的危害,但过滤流量时会丢弃正常用户产生的报文,因此会导致间接的服务失效。

流量清洗方法也可用于缓解DDoS攻击,随着云计算的蓬勃发展,越来越多的企业选择将业务部署到云上,为了保障其免遭DDoS的危害,Lin等人[3]将流量清洗方法引入基于SDN的数据中心网络中以实现对云服务器的DDoS防护。但是流量重定向带来更多的延迟,影响用户体验。

近年来,移动目标防御(Moving Target Defense,MTD)作为主动防御策略应用到网络安全领域中[4~6]。MTD通过不断变换被保护资产的配置、属性,来提高攻击的难度和代价,其中的端址跳变(Port and Address Hopping)技术可以抵御DoS/DDoS攻击,由于服务器在不同时间使用不同的IP地址端口对提供服务,一方面使得攻击者难以在侦查阶段准确识别出服务器身份以及探测出其网络服务所用的端口,另一方面在攻击者对服务器发动DDoS攻击期间,服务器可能实施端址跳变,使得此次DDoS攻击失效,从而达到缓解DDoS攻击的目的。Shi等人[7,8]提出了基于时间戳同步的端址跳变技术用于抵御DoS攻击,并将端址跳变模块部署在服务器上,但是这种做法需要对服务器进行修改,而且会给服务器增加额外的开销。Zhang等人[9,10]提出了基于端口跳变的SDN DoS缓解方案,SDN控制器实现端口跳变功能,且充当DoS攻击过滤网关。但该方案无法及时检测出DoS攻击,只能等待服务器实施下一次跳变以躲避DoS攻击。

综上,为了减少跳变模块给服务器带来的额外开销,同时能够对SDN环境中的DDoS攻击及时地检测和响应,最终保护关键服务器正常运行。本文提出了一种在SDN环境中基于端址跳变的DDoS防御(Port and Address Hopping based Anti DDoS,PAH-AntiDDoS)方法,使用基于双重Counter Bloom Filter的DDoS攻击检测算法对最普遍的SYN Flood攻击[11]进行动态检测,并使用基于SDN的端址跳变技术来缓解DDoS攻击。实验表明,PAH-AntiDDoS方法能够快速检测出DDoS攻击并通过端址跳变躲避攻击,有效的保护关键服务器的正常运行。

2 SDN环境中基于端址跳变的DDoS防御方法

国家关键信息基础设施的服务器为能源、通信、金融等重要行业提供服务,不面向一般公众提供网络信息服务,因此只有来自这些行业的可信用户可以访问关键服务器。一旦关键服务器受到DDoS攻击而失效,将会对重要行业造成极大冲击,甚至危害国家安全,因此针对这些服务器的DDoS攻击需要在很短的时间内被快速检测出并响应。此外,这些大量部署在公网上的基础设施会产生海量数据,为了进一步提高检测速率,需要采取报文采样的方法。

2.1 系统架构及功能模块

针对本文应用场景设计的PAH-AntiDDoS系统架构如图1所示,DDoS攻击检测模块以及服务器端址跳变模块部署在SDN控制器上。每台服务器通过OpenFlow交换机接入网络以获取防御DDoS攻击的安全服务,拥有服务器端口地址映射表的主机称为可信客户端,网络中只有SDN控制器以及可信客户端共享服务器端口地址映射表,该映射表中存放了服务器真实IP地址端口对和多个虚拟IP地址端口对的映射关系,作为可信客户端向服务器发起通信以及控制器实现服务器端址跳变的依据。

不同于传统服务器使用真实IP地址以及端口号对外提供服务的方式,在该系统中每台服务器拥有多个虚拟IP地址端口对用于与可信客户端进行通信,在一个时间段内服务器使用一个虚拟IP地址端口对用于对外提供服务,隐藏了服务器的真实IP地址以及端口号,降低服务器遭受DDoS攻击的概率。

图1 PAH-AntiDDoS系统架构

受保护服务器的虚拟IP地址端口对配置在SDN控制器上,可信客户端通过带外方式获取服务器的虚拟IP地址端口映射表。当可信客户端需要与服务器进行通信时,将从端址映射表中按照轮询策略选取服务器的端址对用于向服务器发起通信。

2.2 DDoS攻击检测模块

在SDN环境中每条新的网络数据流途经入口交换机时需要通过Packet-In消息上传至控制器进行路由计算,因此控制器可以感知新流并对其进行持续追踪。基于该特性,检测模块使用基于双重Counter Bloom Filter[12]的DDoS检测算法对网络中的SYN Flood攻击进行动态检测。

Counter Bloom Filter(CBF)是一种高效的随机数据结构,不仅可以判断某个元素是否在集合中,而且还能统计元素个数。针对DDoS中最普遍的SYN Flood攻击,本文使用两个CBF结构,分别称为SYN_CBF和Total_CBF,分别统计服务器在一个时间窗口内接收到的SYN报文总数和TCP报文总数。此外,还设置了两个阈值SYN_Threshold以及Total_Threshold分别用于报警以及重新统计报文。

DDoS攻击检测速率是评价DDoS攻击检测算法性能的关键指标。本文面向的关键基础设施部署在主干网边界,因此在面向高速主干网流量时需要本方法能够及时报警。由于主干网中的数据量可能很大,本文采用报文抽样的方法对入网流量进行抽样后再检测。当控制器接收到入口交换机发来的报文后,采用确定性采样,每隔N个报文抽取一个报文,利用采样后的报文数据进行SYN Flood攻击检测。采样降低了检测系统的处理压力,但是采样后系统对DDoS攻击的检测效果需要进行评估,本文在实验部分对此进行评估。

算法的伪代码为:

2.3 服务器端址跳变模块

当该模块接收到检测模块发来的报警通知后,将根据SYN攻击报文的源IP地址对其所在的交换机下发阻断流表过滤攻击流量,同时将该IP地址加入到黑名单中,禁止其在接下来的一段时间内访问网络中受保护的服务器。控制器还将向受攻击服务器所在的交换机下发含有新的虚拟IP地址和端口号的映射关系的流表,以对受攻击服务器实施端址跳变以躲避DDoS攻击,由于服务器本轮的IP地址以及端口号发生了变化,攻击者需要重新进行网络扫描以探测服务器IP地址及端口号才能发起新的攻击。此外,控制器还需通知可信客户端按照轮询策略重新选择服务器的虚拟IP地址和端口号以进行下一次通信。端址跳变模块处理流程如图2所示。

图2 服务器端址跳变模块处理流程

该模块的端址跳变功能是基于OpenFlow的流表机制实现的,OpenFlow的流表机制提供对途经交换机的数据包的源宿IP地址以及源宿端口号的修改操作,因此SDN控制器可通过主动下发含有服务器当前使用的虚拟IP地址端口对和真实IP地址端口对的映射关系的流表到服务器所在的交换机上,对所有途经该交换机的数据包中与服务器相关的IP地址和端口号进行替换,以实现透明的服务器端址跳变。

使用该技术不仅可以隐藏服务器自身的真实IP地址以及端口号,有效避免网络扫描和侦查攻击,降低攻击者成功攻击的概率,而且由OpenFlow交换机实现服务器端址跳变功能,对服务器是透明的,避免了在服务器上实施端址跳变所带来的负载,在无需对服务器软硬件进行任何的修改的情况下,就能为服务器提供防御DDoS攻击的安全服务。

3 实验与结果分析

为了测试PAH-AntiDDoS系统的有效性和性能,使用Mininet网络模拟器搭建并模拟SDN网络,采用POX作为SDN控制器负责检测和响应攻击,实施端址跳变功能。其中3.2与3.3中搭建的测试环境与图1类似,不再赘述。

3.1 DDoS攻击检测速率测试

为了测试基于双重Counter Bloom Filter的DDoS攻击检测算法的检测速率,使用含有SYN Flood流量的公开DDoS数据集CICDDoS2019[13]进行实验。为了模拟真实环境,每次实验的数据起始点都是随机的,使用确定性采样,每隔N个报文抽取一个报文,实验使用四种采样比各做10,000次实验,每次DDoS攻击发生的时间为时间的0点,得到每次实验的报警时间,从而获得这四种采样比情况下报警时间的累积分布函数,如图3所示。

从图3可见报文采样比小于1024:1时,本文的检测算法模块可以在攻击发动1秒内及时报警,即使采样比达到了4096:1,也可以在2.5秒内及时报警。本文的方法在报文采样比较高的情况下也可以在很短的时间内检测出DDoS攻击,具有很好的实用性。

图3 不同采样比下报警时间的累积分布函数

3.2 抗扫描攻击测试

为了测试使用了端址跳变技术的PAHAntiDDoS系统是否能有效地抵御主机扫描以及端口扫描攻击,使用NMAP模拟攻击者主动使用ping扫描子网IP地址以及用SYN扫描服务器的开放端口。采用Mininet网络模拟器搭建SDN环境。抗主机和端口扫描的结果分别如表1和表2所示,与不使用端址跳变相比较,使用PAH-AntiDDoS后,主机扫描和端口扫描需要花费更多的时间以及数据包,说明PAH-AntiDDoS能够有效抵御扫描攻击。

表1 抗主机扫描攻击结果

表2 抗端口扫描攻击结果

3.3 抗DDoS攻击测试

为了测试PAH-AntiDDoS系统的抗DDoS攻击能力,将受保护服务器的平均响应时间作为抗DDoS能力的指标,在遭到不同速率的SYN Flood攻击的情况下,采集服务器的平均响应时间,使用Hping3在多台攻击机上生成SYN Flood流量对一台服务器进行攻击,测试结果如图4所示,服务器的平均响应时间随着SYN Flood攻击速率的增大而增加。当SYN Flood攻击速率达到30Mbps时,无端址跳变情况下服务器的平均响应时间开始陡增,说明攻击开始对服务造成影响。采用了端址跳变技术的PAH-AntiDDoS系统在32Mbps的攻击速率下服务才开始受到影响,这是由于采用双重Counter Bloom Fliter检测能够快速发现SYN Flood攻击,并且对服务器实施端址跳变以躲避攻击,使得攻击者需要重新扫描服务器地址和端口,并进一步提高攻击速率才能对服务造成影响。此外,在相同攻击速率的情况下,使用PAHAntiDDoS下服务器的平均响应时间更低,这说明PAH-AntiDDoS能够有效缓解DDoS攻击对服务造成的影响。

图4 不同攻击速率下服务器平均响应时间

4 结束语

针对SDN环境下的DDoS攻击,本文采用了双重Counter Bloom Filter动态检测网络中的DDoS攻击,同时引入移动目标防御中的端址跳变技术以缓解攻击带来的危害,利用SDN网络可编程特性,将端址跳变功能移到控制器上,并由OpenFlow交换机配合实现服务器的透明端址跳变,无需对服务器进行任何修改。

实验表明,引入端址跳变技术后能够有效地抵御针对服务器真实IP地址以及端口号的探测扫描攻击。当攻击者发动SYN Flood攻击时,PAHAntiDDoS系统能够迅速检测出攻击并对服务器实施端址跳变以躲避攻击。

未来拟引入基于共享秘钥以及时间戳的跳变算法,使得攻击者即使知道跳变策略,也难以猜测出服务器的下一次使用的虚拟IP地址及端口号,进一步提高攻击的复杂度及代价。

猜你喜欢
IP地址报文端口
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
温度对圆柱壳结构应力及端口变形影响研究
华为交换机端口Hybrid 模式的应用
一种有源二端口网络参数计算方法
基于Python的汽车CAN总线报文格式转换系统的设计与实现
基于报文类型的限速值动态调整
一种端口故障的解决方案
《IP地址及其管理》教学设计
计算机的网络身份IP地址