模拟DDoS TCP SYN泛洪攻击的最佳方法是什么 [英] what is the best way to simulate DDoS TCP SYN Flooding attack

查看:8
本文介绍了模拟DDoS TCP SYN泛洪攻击的最佳方法是什么的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想模拟一个受到DDoS TCP SYN洪流攻击的网络,评估新解决方案的性能,并将其与其他解决方案进行比较。 我本打算用NS3来做这件事,但我在互联网上的某个地方读到,我不能很好地使用一个分解事件网络模拟器(NS3是一个分解事件网络模拟器),我想知道为什么?最好的替代方案是什么?

推荐答案

遗憾的是,无法在ns-3中模拟DoS攻击。因此,DDoS攻击也不能被模拟。

DoS攻击如何工作?

要了解ns-3无法模拟DoS攻击的原因,我们需要首先了解DoS攻击的工作原理。正如您所提到的,TCPSYN泛洪是模拟DoS攻击的一种方式。为什么这会奏效?嗯,任何计算机都有有限数量的资源,例如内存和磁盘空间。当计算机接收到SYN时,它会创建一个套接字来促进通信。假设存在有限数量的资源,则只能创建有限数量的套接字。因此,DoS攻击的工作原理是用SYN使网络上的计算机不堪重负,从而迫使计算机分配许多不会使用的套接字。在某种程度上,计算机必须简单地拒绝任何连接,即使是合法连接。这是DoS攻击成功的时候。

为什么ns-3无法模拟?

ns-3中,不存在Node具有有限资源的概念。Nodes中的Queues可以具有有限的大小,但无法限制Node上的活动连接数。因此,无法模拟DoS攻击。

A(潜在)解决方案

参与ns-3!访问gitlab repo,并尝试添加所需功能。


对评论的响应

ns-3中的tcp

我使用"活动连接数"作为"套接字数"。这些术语并不完全等同,但就本答案而言,这是可以的。

在SYN泛洪中,所接收的数据包数与无关。相反,问题在于每个收到的SYN都会产生一个半开放的套接字,而计算机上只能存在有限数量的套接字。

您建议饱和接收数据包的Queue。您可以发送大量数据包来使Queue饱和,中断Node某个范围,但这不会模拟SYN泛洪。SYN泛洪之所以起作用,是因为生成了太多半开放套接字,而不是因为数据包队列已满。

同样,SYN泛洪之所以有效,是因为一台真正的计算机只能有有限数量的套接字。在ns-3中,Node上的套接字数量没有限制。

ns-3型号

您可能对ns-3的模型不太熟悉。我不怪您;学习曲线很陡峭。在ns-3中,Node相当于网络上的一台计算机/服务器/路由器。附加到Nodes的是Applications。反过来,Applications创建Sockets以促进网络通信。

现在让我们看一下TcpSocketSocket的一个子类。TcpSocket借助TcpTxBufferTcpRxBuffer和其他类变量来维护其状态。Buffers是TCP用来确保可靠、有序和错误检查的数据发送/接收的经典缓冲区。这些Buffers的大小是有限的,但是对附加到ApplicationTcpSockets的数量没有限制,也没有对附加到NodeApplications的数量限制。如果存在这样的限制,将有助于模拟内存使用情况,但ns-3中不存在这样的模型。

Thisns-3Google Groups上的帖子还描述了为什么不更改源代码就无法模拟SYN洪水。在该Google Group中搜索更多有关DoS攻击的帖子。链接的帖子描述了您如何能够模拟其他类型的DoS攻击,但不明确支持SYN洪水。

这篇关于模拟DDoS TCP SYN泛洪攻击的最佳方法是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆