首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >模拟DDoS TCP SYN泛滥攻击的最佳方法是什么?

模拟DDoS TCP SYN泛滥攻击的最佳方法是什么?
EN

Stack Overflow用户
提问于 2020-03-27 21:10:57
回答 2查看 1K关注 0票数 0

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-27 23:01:36

不幸的是,DoS攻击不能在ns-3中模拟.通过扩展,也不能模拟DDoS攻击。

DoS攻击是如何工作的?

要理解ns-3不能模拟DoS攻击的原因,我们首先需要了解DoS攻击是如何工作的。正如您提到的,TCP洪泛是模拟DoS攻击的一种方法。为什么要这么做?嗯,任何计算机都有有限的资源,例如内存和磁盘空间。当计算机接收到SYN时,它会创建一个套接字以方便通信。由于资源有限,只能创建有限数量的套接字。因此,DoS攻击是通过在网络上使用SYNs压倒计算机来工作的,从而迫使计算机分配许多不会被使用的套接字。在某种程度上,计算机必须简单地拒绝任何连接,甚至合法连接。这是DoS攻击成功的时候。

为什么ns-3不能模拟它?

在ns-3中,没有关于Node具有有限资源的概念。QueuesNodes中可以有有限的大小,但是没有办法限制Node上活动连接的数量。因此,无法模拟DoS攻击。

A(势)解

贡献给ns-3!访问gitlab回购,并尝试添加您想要的功能。

对意见的答复

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用来确保可靠、有序和错误检查的数据传递/接收的典型缓冲区。这些TcpSockets的大小是有限的,但是附加在 Application**,上的 Buffers 的数量是没有限制的,如果存在这样的限制,那么附加到 Node**.**上的** Applications 的数量也没有限制,这将有助于模拟内存的使用,但是在ns-3中不存在这样的模型。

在ns-3谷歌群组上的文章还描述了为什么你不能在不改变源代码的情况下模拟SYN洪流。搜索谷歌集团的更多关于DoS攻击的帖子。链接文章描述了您如何能够模拟其他类型的DoS攻击,但并不显式地支持SYN洪流。

票数 2
EN

Stack Overflow用户

发布于 2020-05-25 13:37:22

我认为目前无法模拟TCP洪泛攻击。

目前,我还在ns-3中进行模拟,我希望在其中模拟TCP的泛洪攻击。实际上,我发现一篇论文声称通过实现发送SYN数据包的套接字成功地实现了ns-3中的SYN。遗憾的是,没有提供源代码,这使我更加怀疑它们的实现是否真的像所描述的那样工作。虽然ns-3文件声称正确地实现了TCP状态机,但我也倾向于相信@Sagar,因为我在文档中找不到以任何方式限制打开套接字数量的任何内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60894176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档