防止中间人攻击

信息安全 攻击预防
2021-08-16 12:47:56

我最近对我的大学局域网进行了中间人攻击(纯粹出于教育目的:))。我只是简单地编写了一个原始套接字应用程序,它使用网关的 IP 泵送 ARP 回复数据包来通告我的 MAC 地址。对于目标地址,我选择了广播地址。很快我就收到了来自子网上很多主机的数据包。现在我想知道:

  1. 为什么它适用于广播地址?
  2. 我怎样才能防止自己受到此类攻击?(我通过在我计算机的 ARP 表中添加网关实际 MAC 地址的静态条目找到了一种方法)
  3. 如果我是网络管理员,我如何确保做 MITM 不像我的情况那么容易?
1个回答

在以太网级别,广播数据包是一个在地址中设置了特定位的数据包,它告诉您:“如果您看到此帧,请查看它”。通常,网络接口将忽略帧,除非目标地址是它自己的 MAC 地址(可以将接口置于“混杂模式”以拾取所有帧);但是“广播”位使所有网络接口的帧都“有趣”。

当帧没有被网络接口过滤掉时,无论其以太网源和目标地址如何,主机系统都会处理帧内容:接收到帧,这就足够了。如果该帧包含 ARP 回复,则该回复中包含的信息(“具有IP 地址的主机使用以太网地址”)将得到适当处理。不过,这有点取决于操作系统:众所周知,Linux 会忽略与不久前发送的 ARP 请求不对应的 ARP 回复。

ARP 协议中没有任何身份验证;它建立在信任之上。因此,它很容易受到像您这样的主动攻击。

设置一个静态 ARP 表条目可以为您提供一些保护,但会失去一些灵活性(如果网关硬件被更换,以太网地址将会改变,并且由于静态条目优先,您的机器将拒绝与替代品对话)和它也不是一个完整的保护:攻击者仍然可以观察到您的数据包,并且他仍然可以欺骗假数据包,这足以造成很大的伤害。

作为网络管理员,您能做的最好的事情就是将静态路由(乏味,不能很好地扩展)和监视/记录/报告(维护一个 IP/以太网对表,报告每个试图改变它的 ARP 回复) . 有关可能的防御措施的列表,请参阅此页面