模拟DDoS TCP SYN泛洪攻击的最佳方法是什么 [英] what is the best way to simulate DDoS TCP SYN Flooding attack
问题描述
我想模拟一个受到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
以促进网络通信。
TcpSocket
,Socket
的一个子类。TcpSocket
借助TcpTxBuffer
、TcpRxBuffer
和其他类变量来维护其状态。Buffers
是TCP用来确保可靠、有序和错误检查的数据发送/接收的经典缓冲区。这些Buffers
的大小是有限的,但是对附加到Application
的TcpSockets
的数量没有限制,也没有对附加到Node
的Applications
的数量限制。如果存在这样的限制,将有助于模拟内存使用情况,但ns-3中不存在这样的模型。
Thisns-3Google Groups上的帖子还描述了为什么不更改源代码就无法模拟SYN洪水。在该Google Group中搜索更多有关DoS攻击的帖子。链接的帖子描述了您如何能够模拟其他类型的DoS攻击,但不明确支持SYN洪水。
这篇关于模拟DDoS TCP SYN泛洪攻击的最佳方法是什么的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!