ICMP Echo 攻击,也被称为 Ping 洪水攻击,是一种拒绝服务攻击手段。攻击者用 ICMP 回显请求数据包淹没目标设备,导致目标设备无法访问正常流量。当攻击流量来自多个设备时,就变成了分布式拒绝服务攻击(DDoS)。
ICMP(Internet Control Message Protocol)是用来处理错误和交换控制信息的,并且可以用来确定网络上的某台主机是否响应。在一个网络上,可以向某个单一主机,也可以向局域网的广播地址发送 IP 包。当攻击者自某个网络的广播地址发送 ICMP ECHO REQUEST 包时,如果网络的路由器对发往网络广播地址的 ICMP 包不进行过滤,则网络内部的所有主机都可以接收到该 ICMP 包,并且都要向 ICMP 包所指示的源地址发送 ICMP ECHO REPLY 响应包。如果攻击者将发送的 ICMP 包的源地址伪造成被攻击者的地址,则该网络上所有主机的 ICMP ECHO REPLY 包都要发往被攻击的主机。
这种攻击不仅造成被攻击主机流量过载、减慢甚至停止正常的服务,而且发出 ICMP 响应包的中间受害网络也会出现拥塞甚至网络瘫痪。例如,Smurf 攻击就是利用了将 IP 欺骗和 ICMP echo 原理,将源 IP 设置成受害者的 IP,目的 IP 为广播地址,发送一个 ICMP 请求,这样在该网段的所有主机都会回复这个请求给受害者,淹没受害者。
可以说,ICMP Echo 攻击的受害者是攻击者的攻击目标和无辜充当攻击者攻击工具的第三方网络。对于被攻击者利用的 “无辜” 中间网络和被攻击的目标,无论它们的内部网络还是与因特网的连接,ICMP Echo 攻击都会使网络性能受到影响,严重时这个网络都无法使用。而且,为这些网络提供服务的中小 ISP 也会因此降低其网络效率和服务质量。对于大型 ISP 而言,其骨干网可能出现饱和现象顶部分影响其服务质量。
二、ICMP Echo 攻击的原理
1. 利用 ICMP 协议的漏洞,攻击者向目标设备发送大量的 ICMP Echo 请求数据包,目标设备需要处理每个请求并发送响应,消耗大量资源。
ICMP(Internet Control Message Protocol)协议用于在 IP 主机、路由器之间传递控制消息。攻击者正是利用了 ICMP 协议的这一特性,向目标设备发送大量的 ICMP Echo 请求数据包。目标设备在接收到这些请求后,会按照协议要求处理每个请求,并发送响应。这个过程会消耗目标设备大量的 CPU 资源和网络带宽,使得目标设备无法正常处理其他合法的网络请求,从而导致服务性能下降甚至完全中断。
2. 通过改变操作系统默认填充的 Data,替换成自己构造的数据,利用防火墙不禁止 ICMP 协议的安全漏洞,实现绕过防火墙和入侵检测系统的阻拦。
由于 ICMP 报文自身可以携带数据,而且 ICMP 报文是由系统内核处理的,不占用任何端口,因此具有很高的隐蔽性。攻击者通过改变操作系统默认填充的 Data,将其替换成自己构造的数据。通常防火墙对 ICMP_ECHO 数据包是放行的,并且内部主机不会检查 ICMP 数据包所携带的数据内容。攻击者利用这一安全漏洞,采用 ICMP 的 ICMP_ECHO 和 ICMP_ECHOREPLY 两种报文,把数据隐藏在 ICMP 数据包的数据域中,伪造 Ping 命令的数据包形式,实现绕过防火墙和入侵检测系统的阻拦。例如,一些 ICMP 隧道攻击工具如 icmpsh、icmptunnel、ptunnel 等,就是利用这种原理进行攻击。受控端(防火墙内部)运行并接受外部攻击端的 ICMP_ECHO 数据包,攻击端把需要执行的命令隐藏在 ICMP_ECHO 数据包中,被控端接收到该数据包,解出其中隐藏的命令,并在防火墙内部主机上执行,再把执行结果隐藏在 ICMP_ECHOREPLY 数据包中,发送给外部攻击端。
三、ICMP Echo 攻击的方式
- ICMP 转向连接攻击
攻击者伪造 ICMP 消息,使通信连接被切断或让目标主机经过攻击者主机向特定连接发送数据包。例如,攻击者使用 ICMP【时间超出】或【目标地址无法连接】的消息,导致一台主机迅速放弃连接,接着通信连接就会被切断。当一台主机错误地认为信息的目标地址不在本地网络中时,网关通常会使用 ICMP 转向消息,而攻击者伪造这条转向消息,就可以导致另外一台主机经过攻击者主机向特定连接发送数据包。
- ICMP 数据包放大
攻击者向安全薄弱网络发送伪造的 ICMP 响应数据包,然后都向受害主机系统发送 ICMP 响应的答复信息,占用目标系统的可用带宽。这种攻击方式类似于 ICMP Smurf 攻击,攻击者向安全薄弱网络所广播的地址发送伪造的 ICMP 响应数据包,那些网络上的所有系统都会向受害计算机系统发送 ICMP 响应的答复信息,占用了目标系统的可用带宽并导致合法通信的服务拒绝。
- 死 Ping 攻击
发送尺寸超过 ICMP 上限的包,导致接收方出现内存分配错误,使 TCP/IP 崩溃,接收方宕机。由于早期路由器对包的最大尺寸都有限制,许多操作系统对 TCP/IP 的实现在 ICMP 包上都是规定 64KB,当产生尺寸超过 ICMP 上限的包,也就是加载的尺寸超过 64KB 上限时,就会出现内存分配错误,导致 TCP/IP 崩溃,致使接收方宕机。
- ICMP Ping 淹没攻击
大量的 Ping 信息广播淹没目标主机,使其无法对合法通信作出响应。在 Ping Flood 攻击中,攻击者使用多个设备向目标服务器发送许多 ICMP 回显请求数据包,目标服务器向每个请求设备的 IP 地址发送一个 ICMP 回显回复数据包作为响应。大量的 Ping 信息广播会使目标系统不堪重负,无法对合法的通信做出响应。
- ICMP nuke 攻击
发送目标主机操作系统无法处理的信息数据包,导致该系统宕机。例如,攻击者发送出目标主机的操作系统无法处理的特殊数据包,从而使系统陷入混乱甚至宕机。
- 通过 ICMP 进行攻击信息收集
利用 Ping 命令检查目标主机是否存活,依照返回的 TTL 值判断目标主机操作系统。通过 Ping 命令来检查目标主机是否存活是一种常见的网络诊断方法,同时,根据返回的 TTL 值可以大致判断目标主机操作系统的类型。例如,不同操作系统的 TTL 值可能会有所不同,通过分析这些差异可以推断出目标主机的操作系统。
四、ICMP Echo 攻击的防御方式
- 对 ICMP 数据包进行过滤使用主机防火墙或系统自带的防火墙和安全策略对 ICMP 进行过滤。
可以通过多种方式实现对 ICMP 数据包的过滤。例如在 Windows 系统中,可以打开 “控制面板”,点击 “系统和安全” 下的 “Windows Defender 防火墙”,再点击 “高级设置”,在 “入站规则” 中新建规则,选择 “自定义”,协议类型选择 “icmpv4”,然后根据需求进行后续设置,如阻止连接、选择适用的配置文件等,完成对 ICMP 数据包的过滤。
- 配置防火墙禁止接受 ICMP Echo 请求,或只允许特定 IP 地址的 PING 请求。
可以根据实际情况配置防火墙,禁止接受 ICMP Echo 请求,以防止 ICMP Echo 攻击。例如在 Windows 服务器上,可以通过设置入站规则,选择特定的 ICMP 类型为 “Echo 请求”,并设置操作 “阻止连接”,来禁止 ICMP Echo 请求。同时,也可以设置只允许特定 IP 地址的 PING 请求,增强安全性。
- 修改服务器配置文件在服务器的配置文件中修改相关设置,禁用 ICMP Echo。
在 Linux 服务器上,可以使用 root 或具有管理员权限的用户执行命令编辑防火墙规则。例如,使用 sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP 这条规则将拒绝传入的 ICMP Echo 请求,并保存规则,确保在服务器重启后规则仍然生效。
- 使用安全设备使用专门的安全设备,如入侵防御系统(IDS)或入侵防火墙(IPS),监控和阻止 PING 攻击。
部署入侵防御系统(IPS)或入侵防火墙(IPS)可以有效地监控和阻止 PING 攻击。这些安全设备能够检测到异常的 ICMP Echo 请求流量,并采取相应的措施进行拦截,保护服务器免受攻击。
- 使用反向代理服务器隐藏真实服务器的 IP 地址,防止直接针对服务器的 PING 攻击。
通过使用反向代理服务器,可以隐藏真实服务器的 IP 地址,使攻击者无法直接针对服务器进行 PING 攻击。反向代理服务器接收请求并将其转发到真实服务器,从而增加了一层保护。
- 配置入口设备在网络边界上的入口设备上配置相关策略,限制来自外部网络的 ICMP Echo 请求的流量。
在网络边界上的入口设备,如路由器等,可以配置相关策略来限制来自外部网络的 ICMP Echo 请求的流量。可以根据实际需求设置允许的流量大小、特定的 IP 地址范围等,以减少潜在的攻击风险。
墨者安全 防护盾
墨者安全作为专业级别安全防护专家,在应对 Webshell 风险隐患方面展现出了卓越的能力。其拥有全面的检测机制,能够精准识别 Webshell 的各种类型和变体,无论是复杂的大马,还是隐蔽的内存马,都难逃其敏锐的监测。
墨者安全防护盾具备强大的实时监控功能,对服务器的各项活动进行 7*24 小时不间断的监视。一旦发现任何可疑的 Webshell 活动迹象,立即发出警报,并迅速采取隔离和清除措施,将风险扼杀在萌芽状态。
在防护策略上,墨者安全防护盾采用了多层次的防御体系。不仅能够在网络层面阻挡外部的恶意访问和攻击,还能深入系统内部,对服务器的文件系统、进程等进行深度检查和保护,确保 Webshell 无法植入和运行。
同时,墨者安全防护盾拥有快速的应急响应能力。当 Webshell 攻击事件发生时,专业的安全团队能够迅速介入,进行深入的分析和处理,最大程度减少攻击带来的损失,并帮助用户快速恢复服务器的正常运行。
墨者安全防护盾还注重用户教育和培训,为用户提供关于 Webshell 防范的专业知识和最佳实践,帮助用户提升自身的安全意识和防范能力,共同构建坚实的网络安全防线。