跳转到: 导航, 搜索

OSSN/OSSN-0027


Neutron ARP 缓存投毒漏洞

总结

Neutron 防火墙驱动 'iptables_firewall' 未能防止 ARP 缓存投毒,因为该驱动目前仅支持基于 MAC 地址和 IP 地址的反欺骗规则。然而,ARP 过滤功能在 Nova Networking 中可用。

受影响的服务 / 软件

Neutron, Grizzly, Havana, Icehouse, Juno

讨论

在使用 Nova Networking 的部署中,可以通过 libvirt 网络过滤器功能提供以下反欺骗规则:

  • no-mac-spoofing
  • no-ip-spoofing
  • no-arp-spoofing
  • nova-no-nd-reflection
  • allow-dhcp-server


然而,在使用 Neutron 的部署中,'iptables_firewall' 驱动仅处理 MAC 和 IP 反欺骗规则,使其容易受到 ARP 投毒和相关攻击。这种功能差异是一种安全漏洞,尤其是在与其它租户或服务共享网络的场景下。

ARP 投毒可能导致拒绝服务攻击以及中间人攻击,从而损害共享网络上的租户隔离。恶意主机可以在共享网络上发送精心构造的 ARP 数据包,以操纵同一网络上另一主机的 ARP 表。这种操纵可以设计成恶意主机接收来自目标主机的流量,而不是网络网关。一旦流量被拦截,恶意主机就有多种选择。它可以查询敏感信息,在传递给真正的网关之前对其进行操纵,或者丢弃数据包以创建拒绝服务攻击。

可以通过以下方式进行演示:

  • 创建一个私有网络/子网 10.0.0.0/24
  • 启动 2 个连接到该私有网络的虚拟机:VM1 IP 10.0.0.3,VM2 IP 10.0.0.4
  • 登录到 VM1 并安装 ettercap 工具(请参阅参考资料)
  • 启动命令:ettercap -T -w dump -M ARP /10.0.0.4/ // output 在 VM1 上。这将导致来自 VM2 的流量在转发到网关之前先通过 VM1。
  • 登录到 VM2 并 ping 任何有效的互联网站点,ping 应该成功。
  • VM2 的 ping 生成的 ICMP 流量将在 VM1 上可见。
  • 检查 VM2 上的 ARP 表将显示与网关关联的 MAC 地址是 VM1 的 MAC 地址。


如果 VM1 丢弃来自 VM2 的数据包而不是将其转发到网关,则可以使用此技术造成拒绝服务攻击。

建议的操作

请密切关注使用基于 Neutron 的 VLAN 的网络。安装适当的 IDS 和流量监控工具,尤其要关注 ARP 数据包监控。

Neutron 开发团队计划在未来的版本中解决此问题

联系方式 / 参考文献