为什么网关不能阻止虚假的 ARP 回复?

网络工程 局域网 ARP
2022-03-03 20:27:14

所以这是我对ARP欺骗的理解。我是恶意的,我想让你认为我是门户。所以当你问“如果你是网关,请回复你的 MAC”时,我会回答“我是网关,这是我的 MAC”。对?

我不明白的是,为什么网关不能阻止这些回复?因为网关知道它是网关。这意味着其他计算机不是网关。这意味着如果其他人说他们是网关,他们一定是在撒谎。那么网关为什么会转发他们的谎言呢?

所以两个问题。首先,如果这不是一件事,为什么这不是一件事?其次,如果这是一件事,为什么不广泛传播?因为我知道 ARP 欺骗至少适用于大多数家庭/小型企业路由器。

2个回答

首先 - 这当然是一件事。ARP 从未打算成为一种安全协议,并且在操作中是完全分布式的。

给定子网中的网关并不特殊——它只是另一个具有 IP 地址和关联 MAC 的主机。除非采取任何特殊的功能/安全措施,否则 L2 环境会将每个 ARP 请求泛洪到广播域中的每个主机,反过来,也会泛洪任何 ARP 响应——不幸的是,这可能包括欺骗。简而言之,网关只是另一个回答 ARP 查询的主机,与它们的分发或验证无关。

那么为什么这不是更常见的呢?第一个原因是,相互竞争的 ARP 响应最终会导致终端主机失去连接,就像完全劫持网关一样频繁。毕竟,它基本上是一个重复的 IP。第二个原因是,好吧,这种意外配置错误并不少见,但它往往如此明显,以至于除了令人烦恼之外,它并没有那么有效

编辑(回答有关主机失去连接的评论中的问题):

因此,假设网关位于 192.168.1.1,MAC 为 aaaa.bbbb.cccc。在正常情况下,每当主机 ARP 为其网关发送消息“谁有 192.168.1.1,告诉 xxx”,路由器响应“192.168.1.1 在 aaaa.bbbb.cccc”。当 ARP欺骗发生时,相同的请求(“谁拥有 192.168.1.1,告诉 xxx”)将遇到两个响应 - 一个是正确的(aaaa.bbbb.cccc),另一个是恶搞(比如 dddd.eeee.ffff)。对于收听此信息的主机,他们会收到他们看到的第一个响应,实际上,这是抽签的运气,响应(假的或真实的)以什么顺序显示,因此,很可能各个主机上子网将在真实网关和虚假网关之间搅动他们的 ARP 表。这将表现为不一致的连接问题(终端主机上的 ARP 更改不是即时的)以及关于子网上重复 IP 的大量日志消息。

所以当你问“如果你是网关,请回复你的 MAC”时,我会回答“我是网关,这是我的 MAC”。对?

正确的。

那么网关为什么会转发他们的谎言呢?

它不是。ARP 流量停留在广播域内,因此它不会通过网关,它都是交换的,而不是路由的。

其次,如果这是一件事,为什么不广泛传播?

我不确定是什么让你认为它不是(我也不确定它是不是),但主要原因是要进行 ARP 欺骗,你需要在同一个第 2 层广播域中,这使得远程操作变得困难(呃)。