PING的安全风险?

信息安全 网络 攻击 icmp
2021-09-05 12:34:41

有人告诉我 PING 存在安全风险,最好在生产 Web 服务器上禁用/阻止它。一些研究告诉我,确实存在安全风险。在公开可见的服务器上禁用/阻止 PING 是常见的做法吗?这是否适用于 ICMP 家族的其他成员,例如 traceroute(关于安全的维基百科)?

4个回答

ICMP Echo 协议(通常称为“Ping”)大多是无害的其与安全相关的主要问题是:

  • 在存在带有虚假源地址(“欺骗”)的请求时,它们可以使目标机器向另一台主机发送相对较大的数据包。请注意,Ping 响应并不比相应的请求大很多,因此没有乘数效应:在拒绝服务攻击的情况下,它不会给攻击者额外的权力。不过,它可能会保护攻击者不被识别。

  • 接受 Ping 请求可以产生有关网络内部结构的信息。但是,这与公开可见的服务器无关,因为它们已经公开可见。

  • 在一些广泛使用的 TCP/IP 实现中曾经存在安全漏洞,格式错误的 Ping 请求可能会导致机器崩溃(“死亡 ping”)。但这些在上个世纪得到了适当的修补,不再是一个问题。

在公开可见的服务器上禁用或阻止 Ping 是一种常见的做法——但常见推荐的做法不同。www.google.com响应 Ping 请求;www.microsoft.com才不是。就个人而言,我建议让所有 ICMP 通过公开可见的服务器。

不得阻止某些 ICMP 数据包类型,特别是“无法到达的目标”ICMP 消息,因为阻止该消息会破坏路径 MTU 发现,症状是 DSL 用户(在将 MTU 限制为 1492 字节的 PPPoE 层之后)无法访问网站阻止这些数据包(除非他们使用其 ISP 提供的 Web 代理)。

ICMP 有一个数据组件。它可以用来建造隧道,这不仅仅是理论上的东西,它可以在野外使用。几位不同的研究人员发现它是恶意软件工具包的一部分。更不用说关于这个话题有一个突出的howto,更不用说wiki了,或者hackaday

ICMPTX 使用 ICMP 回显和 ICMP 回复。ICMP回声并不总是无害的,因为它包含一个数据组件,它可以泄露数据或用作控制通道,或用作(在 ICMPTX 的情况下)作为隧道协议。

当前在分发中的实施,以及如何,(ICMPTX): http ://tomer.com/icmptx/

使用 ICMP 数据传输进行有效载荷注入的真实攻击场景: Open Packet Capture

通过与 ICMPTX(2006) 类似的方法使用 ICMP 数据传输协议用于木马 C&C 和渗漏: 网络世界

确实,攻击者可以使用 ICMP 来获取信息、秘密传输数据等。ICMP 也非常有用,禁用它通常会导致问题。Traceroute 实际上确实使用 ICMP,因此禁止某些 ICMP 类型会破坏它。

该问题突出了安全性和功能性的经典平衡,由您决定您愿意失去多少功能以获得 x 数量的安全性。

一项建议是只允许某些类型(最常用的),而禁用所有其他类型。这是我的 iptables 规则。请记住,这些都是允许的,因为默认情况下不允许其他所有内容。

 # Allow incoming ICMP: ping, MTU discovery, TTL expired
/sbin/iptables -A INPUT -i eth0 -p icmp -d $YOURBOX --icmp-type 8/0 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp -d $YOURBOX --icmp-type 3/4 -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -p icmp -d $YOURBOX --icmp-type 11/0 -j ACCEPT

我认为由于 ICMP 放大(速率限制或拒绝此流量),出站回显回复比入站回显请求更危险。然而,经过几十年对这个话题的思考——我得出的结论是,ICMP 比有用更危险,因此应该在两个方向上阻止它,并记录可能被欺骗的出站流量。

世界上最好的是所有可能是有状态但不需要的(TCP 连接)的空路由和任何有状态但允许和/或非全状态(UDP 数据报)的自反 ACL(性能驱动),而删除其他 IP 协议类型,因为它们是不必要的。IPsec AH/ESP 是不必要的,请改用 OpenVPN(或类似的)。

阻止 ICMP traceroute 后,还需要处理基于 UDP 的 traceroute 以及 0trace、LFT 和 osstmm_afd 工具中的技术概念。

虽然 Snort/Suricata 甚至没有检测到 Nmap Xmas 扫描,更不用说基于 SQLi 或 Javascript 的攻击(在任何方向),但我们需要认识到与网络和应用程序安全攻击相关的风险对现代基础设施的重要性。我们应该拒绝、测试和验证任何类型的足迹流量——我不明白为什么这不包括 ICMP,但实际上它并没有从那里开始或停止。