有没有针对UDP打洞的安全措施?

4
我想在两个对等方之间建立UDP通信,分别为Alice和Bob。Alice位于端口受限锥形NAT后面(这意味着即使目标更改,相同的内部端口也会映射到相同的外部端口),而Bob位于对称NAT后面(这意味着每次选择新目标时,外部端口都会更改,无论内部端口如何,从而使外部端口不可预测)。我中间有一台服务器,我想进行UDP打洞。
我实施了以下策略:
- Bob打开大量端口,并从所有端口向Alice的外部端口发送数据包(他通过服务器获得知道)。 - Alice在随机端口向Bob的NAT发送数据包,直到建立连接。
手头有这两种类型的NAT,我做了一些实验。Bob打开32个端口,Alice每0.1秒发送64个数据包。连接通常在1或2秒内建立,这对我的需求来说足够了。
但是,我想知道是否会遇到一些严格的NAT路由器或防火墙的麻烦。例如,可能会发生这样的情况:路由器不允许内部对等方打开32个端口吗?或者(这听起来更有可能)可能发生这样的情况:看到很多在随机端口上被丢弃的数据包的路由器会将IP列入黑名单,并在一段时间内丢弃所有数据包吗?我读到有时候在DoS攻击的情况下可能会发生这种情况,但我的数据包速率比DoS攻击轻4到6个数量级。
我询问合理的网络配置:原则上我相信可以设置防火墙以这种方式运行。我的主要目标是那些位于标准家庭连接后面的用户,因此我的主要目标是使用NAT的常见互联网提供商。
1个回答

2
这是一个有趣的问题。首先,我不确定是否有人能给出你想要的确切答案。不同的网络使用不同的设备和配置。两个ISP可以使用十个不同的供应商为他们的路由器、防火墙、NAT、入侵检测设备、DPI设备等;更不用说所有这些设备可能具有的可能性数量了。
而商业和企业网络已经够糟糕了,家庭网络更加糟糕。在这里,有更多的供应商销售调制解调器、NAT盒子以及影响网络连接的各种软件(如防火墙和反病毒软件)。所有这些都掌握在不懂技术的用户手中,他们将其保留在默认设置中,或者更糟糕
此外,在家庭和商业网络中可能有几层NAT。我知道一家公司为每个实验室都设置了一个NAT(以将其与其他实验室和研发网络隔离开来)。然后每个实验室都连接到研发NAT(以将其与其他部门隔离开来),研发NAT又连接到公司范围内的NAT,顺便提一下,该NAT也有严格的防火墙。加上可能的ISP级别(运营商级别)NAT,你将面临多达4层NAT。希望这是一个极端例子,但家庭NAT和运营商级别NAT的两层是现在很常见的。
考虑到这一点,一个随机网络会认为这种行为可疑并对其进行限制的可能性有多大?坦白地说,我不确定,也不认为任何人能以高度确定性知道。尽管如此,我的合理猜测是通信设备(NAT、路由器等)的明智默认配置不应该阻止这种行为。毕竟,许多应用程序打开几个端口;更不用说NAT无法知道发送此流量的IP地址本身不是具有数十个计算机的NAT设备 - 每个计算机都有几个开放端口。
我还猜想,只要UDP本身没有被阻塞,并允许使用各种端口,简单的防火墙就应该没问题。然而,试图阻止端口扫描的防火墙和反DDoS设备可能会产生问题,因为这种流量可能对它来说看起来很可疑,所以这可能取决于这些设备和软件的配置/实现细节。因此,不幸的是,了解你的策略在真实世界中的表现方式的唯一方法是在各种不同的网络上进行尝试。 其次,我想谈一下你的穿孔策略。如果Alice和Bob都有一个共享服务器,并且Alice在锥形NAT后面,我不明白你的策略的意义所在。锥形NAT是最简单的NAT,可以克服。如果你想让Alice能够连接到Bob(这很棘手,因为他在对称NAT后面),你真正需要做的就是在Alice请求时让Bob连接到Alice。
为了实现这一点,Alice和Bob都应该始终与服务器保持长时间的TCP或UDP连接。 连接大部分时间不应携带任何数据,只需偶尔保持活动状态即可。
当Alice想要连接到Bob时,它只需打开一个端口(比如说端口X),并从该端口连接到服务器。 服务器看到与端口X对应的Alice的外部端口 - 假设为端口Y。此时,Alice告知服务器她希望Bob连接到她。由于Bob已连接到同一服务器,服务器通知Bob应在端口Y上连接到Alice。这应该建立起它们之间的连接,而无需进行任何猜测。

关于第一点:据我所知,DNS流量的大部分基于UDP,是这样吗?(我认为这个例子原则上也可以扩展到TCP,但我不是专家)现在,如果这种端口扫描行为被NAT阻止,攻击者会有一种简单的方法来破坏网络的质量。一个人可以伪造一个入站端口扫描攻击,比如从最著名的DNS服务器,用非常有限的资源将它们阻止在防火墙上,从而防止所有内部用户访问该服务! - Matteo Monti
你关于NAT的说法是正确的。我忽略了锥形NAT是端口受限的事实。这使得问题更加困难。仍然有解决方案(基于端口预测,例如http://www.goto.info.waseda.ac.jp/~wei/file/wei-apan-v10.pdf),但它们更加复杂。 - Malt
是的。DNS主要基于UDP,确切地说是端口53。通常防火墙会对UDP进行封锁,但对DNS流量通常有例外。但您提出的攻击比您想象的要棘手一些。聪明的防火墙可能不会直接阻止此类流量,而是仅允许来自端口53的UDP,或检查数据包是否看起来像DNS回复,或检查它们是否来自已知的DNS服务器(网络运营商可能有白名单)。另一方面,您所描述的攻击确实可能在某些防火墙上实现。没有检查很难说。 - Malt
我有另一个想法 - 你可以尝试在 http://security.stackexchange.com 上提问。 那里的某个人可能会知道你的流量是否看起来像已知的攻击。 - Malt
我确实发送了消息,但是没有收到回复 ;) - Matteo Monti
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接