面向DDoS防御设备安全性测试的Scapy应用

2020-01-07 02:44李世杰
网络安全技术与应用 2020年1期
关键词:IP地址数据包防火墙

◆李世杰 倪 洪

面向DDoS防御设备安全性测试的Scapy应用

◆李世杰 倪 洪

(福建警察学院 福建 350007)

分布式拒绝服务(DDoS)的攻击机制是针对最新的网络协议所设计的,在防御上比较困难,需要部署网络安全设备来对其进行控制。因此网络安全设备的有效性至关重要,必须通过严格的攻击测试,本文介绍了利用Scapy实现DDoS攻击的测试方法。Scapy具有强大的功能和灵活的扩展性,能够伪造或者解码大量的网络协议数据包,利用Scapy能够简单、快速实现DDoS攻击。本文研究了实现的过程和部分代码,同时有针对性地使用DDoS deflate脚本和iptables配置防御策略,来验证Scapy应用在DDoS防御设备的安全性测试中是直接有效的。

DDoS;攻击测试;Scapy;网络安全;SYN Flood

1 引言

分布式拒绝服务(DDoS)攻击是危害性巨大的网络安全威胁,它通过消耗目标主机的网络带宽或系统资源,导致网络超负荷甚至瘫痪,从而无法提供给合法用户正常的网络服务[1]。2018年发布的《NETSCOUT威胁情报报告》说明,以SSDP、Memcached和物联网僵尸网络为主的DDoS攻击在2018年上半年发起了约280万次攻击,超过 300GB的DDoS攻击达到47次,是上一年的7倍之多,而中国超过500GB的攻击也达到17次之多[2]。

事实证明,DDoS攻击越来越迅猛,它的创新性、危害效果从未如此强劲,因此需要更有效的网络安全设备来对其进行控制,而设备的安全性测试是一个亟须解决的问题。市面上常规的一些测试工具如LOIC、Wireshark等,能够满足一些网络设备的安全性测试,但是由于其自身的扩展和功能局限问题,它们已经不能完全满足当前网络安全设备的测试需求。Scapy作为功能强大的交互式数据包处理程序,具有较强的扩展性和操作性,利用Scapy 可以轻松地实现DDoS攻击,进行网络安全设备测试时在一定程度上简化了测试程序,同时缩减了测试时间,提升了测试效率。

2 DDoS攻击

分布式拒绝服务攻击(DDoS)是Distributed Denial of Service的简称,指通过C/S模式,联合多台计算机对目标主机发动攻击,使攻击能力倍增,大量消耗被攻击目标的系统资源,从而无法处理合法用户的请求[3]。一般有以下几类[4]:

(1)SYN Flood

SYN Flood是自从1996年被发现到现在为止仍然流行、破坏力较大的攻击之一。它利用TCP协议缺陷,通过发送大量伪造的TCP连接请求,消耗系统资源和内存等[5]。

(2)HTTP Flood

HTTP Flood使用代理服务器或者僵尸主机模仿用户正常访问行为,向目标服务器发送大量请求,从而消耗服务器的CPU、内存以及数据库等资源[6]。由于HTTP Flood通过模仿正常用户的请求行为进行攻击,所以安全人员无法提出一套十全十美的方案能够清楚地区分合法用户或者非法攻击者。

(3)反射放大攻击

反射攻击中加入了第三方反射主机,与直接泛洪攻击相比,反射攻击具有更强的隐蔽性,往往能够产生成倍的攻击流量。在反射放大攻击中,攻击者伪造被攻击方的IP地址并发起组播,这样与被攻击方有关联的设备都会收到伪装的请求报文,同时因为响应报文的大小往往是请求报文的好几倍,所以将攻击流量放大[7]。

3 利用Scapy实现的DDoS攻击

3.1 Scapy介绍

Scapy是使用Python编写的一个功能强大的网络扫描器、交互式数据包处理程序[8]、嗅探工具等。它能够轻松伪造、解码、编辑、发送、嗅探、应答、匹配请求、捕捉和回复大量的网络协议数据包,它还具有端口扫描、Fuzzing 测试、tracerouting、单元测试等功能。

3.2 实现DDoS攻击

3.2.1实现SYN Flood攻击

Scapy易于实现伪造IP地址,可以发送任意形式的数据包,利用这些特点我们可以实现DoS攻击。利用伪造的源IP和构建的tcp数据的功能实现SYN Flood攻击,代码如下:

其中srcList用于存放伪造的IP地址;random.randrange函数用于实现随机从srcList列表中获取一个伪造的IP地址;for循环用来表示每次发送数据包时源端口都改变;循环中改变的端口号传递给sport。

3.2.2控制Client

上面已实现SYN Flood攻击,而DDoS攻击是DoS的升级版,通过控制多台主机同时对目标主机发起攻击,因此需要在Server端发送命令控制Client端对同一目标发起攻击。

(1)Server端代码实现

Server向Client发送命令,主函数中创建socket;接着进行地址和端口号的绑定,0.0.0.0表示绑定所有的网络地址,监听58868端口,规定最大连接数为1024;然后新开一个线程,循环等待客户端的连接;最后输入命令,控制Client向目标地址发起SYN泛洪攻击。给出部分代码:

(2)Client端代码实现

在Client端需创建socket,在脚本启动后主动连接Server端,等待并解析命令,实现对目标地址的SYN泛洪攻击。给出部分代码如下:

3.3 程序测试

上面我们已经利用Scapy实现了DDoS攻击,在此基础上我们搭建了一个实验环境用来测试攻击的有效性,实验拓扑如图1所示,其中攻击者是基于Linux系统的计算机,在计算机中我们利用Scapy编写程序攻击服务器,服务器的ip地址为192.168.1.88,网络分析仪中有wireshark,利用wireshark截获数据包进行分析。

图1 实验拓扑

网络分析仪截获了攻击者发送的大量SYN数据包,如图2所示。可以看出,不同的源IP 地址对服务器发送了大量的SYN数据包,服务器进行回应,但是三次握手没有成功,服务器一直在寻找给他发送SYN包的主机,由此我们成功利用Scapy对服务器进行了DDoS攻击,攻击方法简单有效。

图2 wireshark截获的数据包

4 对利用Scapy实现的DDoS攻击进行测试

4.1 配置DDoS攻击防御策略

(1)配置DDoS deflate

DDoS deflate是一款免费的、轻量级、自动防御或减轻DDoS攻击的脚本[9]。它通过netstat监测、跟踪创建大量网络连接的IP地址,如果某个节点连接数超过用户设置的最大连接阈值,该程序就会调用iptables禁止某些IP。

(2)配置iptables

Iptables,是用户和内核防火墙之间的联系通道,主要负责从用户命令行界面接收命令,执行相应的内核操作[10]。用户利用规则进行插入、修改和删除等操作,从而进行防火墙配置和数据包过滤等操作,使用户可以自制规则,允许想要的网络流量进入系统,满足特定需求。管理员可根据被保护主机的业务需求和实际负载能力设置最大连接数。当超过最大值时,防火墙将会判定该机子正在遭受攻击,立即启用应对措施。

4.2 测试分析

在服务器上部署DDoS deflate脚本搭配iptables防火墙是一种常用的防御DDoS攻击策略,我们利用Scapy实现DDoS攻击来测试这种策略的有效性。

(1)利用系统自带工具System Monitor,获取正常情况下,一分钟内系统资源使用情况,如图3所示,CPU使用率为29%和28%,内存应用率为26.8%、交换区引用率为0.8% ,网络运行较稳定,整体曲线幅度平稳。

(2)运行基于Scapy实现的DDoS攻击脚本后,系统在无防御情况下遭受攻击,查看系统状态。如图4所示,CPU使用率从29%左右增长至54.8%,内存占用率剧增至85.4%、交换区占有率从0.8%至2.7% ,网络利用率从64bytes/s增至1.6MB/s,整体曲线持续递增,可能导致系统崩溃。

(3)由DDoS deflate调用iptables策略开启防火墙防御,系统逐渐恢复。系统状态情况如图5所示,CPU应用率从85.4%分别恢复为39%和28.3%左右,内存占用率从54.8%恢复至35.3%,网络利用率明显下降。

图3 系统正常使用状态图

图4 遭受攻击的系统状态图

图5 调用iptables后系统状态图

5 结束语

DDoS攻击是当今互联网最重要的安全威胁之一,它具有危害大、涉及广和防御难等特点,网络安全设备对防御DDoS起到至关重要的作用。但是网络安全设备的有效性必须通过测试,文章介绍的利用Scapy实现DDoS攻击是一种直接有效的测试方法。文章重点介绍了如何利用Scapy实现DDoS攻击,并给出了相关实现代码,利用scapy进行网络设备测试在一定程度上简化了测试程序,缩减了测试时间,提升了测试效率,为防御DDoS攻击,维护网络信息安全做出重大贡献。

[1]张永铮,肖军,云晓春,王风宇.DDoS攻击检测和控制方法[J].软件学报,2012,23(08):2058-2072.

[2]章继刚. NETSCOUT Arbor:DDoS攻击形势不容乐观[D].网络安全和信息化,2018.

[3]唐林.DDoS攻击工具演变及防御技术研究[J].信息与电脑(理论版),2017:212-213.

[4]肖甫,马俊青,黄洵松,王汝传.SDN环境下基于KNN的DDoS攻击检测方法[J].南京邮电大学学报(自然科学版),2015,35(01):84-88.

[5]Hussain S M,Beigh G R.Impact of DDoS attack(UDP Flooding)on queuing models.Intemational Conference on Computer and Communication Technology 2013 Vol.pp.210-216.

[6]袁志.一种抵御HTTP洪水攻击的方法[J].计算机应用与软件,2012:277-279.

[7]林心阳,胡曦明,马苗,李鹏.基于SSDP的物联网DDoS反射放大攻击及防御实验[J].现代计算机(专业版),2018:22-26+33.

[8]李兆斌,茅方毅,王瑶君,刘倩.Scapy在网络设备安全性测试中的应用[J].北京电子科技学院学报,2016:76-80.

[9]Muhammad Aamir,Syed Mustafa Ali Zaidi.DDoS attack detection with feature engineering and machine learning: the framework and performance evaluation.International Journal of Information Security,2019,Vol.18(6),pp.761-785.

[10]赵亚楠,马兆丰.Linux中Netfilter/iptables的研究与应用[J].中国科技论文,2014,9(10):1174-1177+1187.

猜你喜欢
IP地址数据包防火墙
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
全民总动员,筑牢防火墙
构建防控金融风险“防火墙”
C#串口高效可靠的接收方案设计
公安网络中IP地址智能管理的研究与思考
在舌尖上筑牢抵御“僵尸肉”的防火墙
《IP地址及其管理》教学设计
计算机的网络身份IP地址
筑起网吧“防火墙”