超大 ICMP 报文攻击是指利用长度超大的 ICMP 报文对目标系统进行攻击。对于有些系统,在接收到超大 ICMP 报文后,由于处理不当,会造成系统崩溃、死机或重启。
ICMP(Internet Control Message Protocol)即因特网控制报文协议,属于网络层协议,主要用于网络探测、路由跟踪以及错误反馈,在 IP 主机和路由器之间传递控制消息。常见的 ping 命令就是基于 ICMP 协议来工作的。
超大 ICMP 报文攻击有多种形式,比如 Ping of Death 攻击就是利用一些尺寸超大的 ICMP 报文对系统进行攻击。由于 IP 数据包的最大长度为 65535 字节,而 ICMP 报头位于数据报头之后,并与 IP 数据包封装在一起,因此 ICMP 数据包最大尺寸不超过 65535 字节。攻击者通过在最后分段中,改变其正确的偏移量和段长度的组合,使系统在接收到全部分段并重组报文时总的长度超过了 65535 字节,导致内存溢出,这时主机就会出现内存分配错误而导致 TCP/IP 堆栈崩溃,从而导致死机。
此外,还有 Large Icmp 攻击,即报文长度超过设定值(默认为 4000 字节)的 ICMP 报文,其中 4000 字节包括 IP 层的长度。对于有些系统,在接收到这样的超大 ICMP 报文后,由于处理不当,同样会造成系统崩溃、死机或重启。
华为的 NetEngine AR600、AR6100、AR6200、AR6300 V300R023 设备可以通过配置对超大 ICMP 报文的攻击防范。执行命令 system-view 进入系统视图,然后执行命令 firewall defend large-icmp max-length length,即可配置超大 ICMP 报文攻击防范参数。缺省情况下,ICMP 报文的最大长度为 4000 字节。
二、常见的超大 ICMP 报文攻击方式
(一)利用超大报文导致系统崩溃
在超大 ICMP 报文攻击中,有一种常见的方式是利用超大报文导致系统崩溃。其中,Ping of Death 攻击就是典型代表。攻击者利用一些尺寸超大的 ICMP 报文对系统进行攻击。由于 IP 数据包的最大长度为 65535 字节,而 ICMP 报头位于数据报头之后,并与 IP 数据包封装在一起,因此 ICMP 数据包最大尺寸不超过 65535 字节。攻击者通过在最后分段中,改变其正确的偏移量和段长度的组合,使系统在接收到全部分段并重组报文时总的长度超过了 65535 字节,导致内存溢出。这时主机就会出现内存分配错误而导致 TCP/IP 堆栈崩溃,从而导致死机。
除了 Ping of Death 攻击,还有其他利用超大报文的攻击方式。例如,在一些情况下,报文长度超过设定值(默认为 4000 字节)的 ICMP 报文也可能对系统造成威胁。对于有些系统,在接收到这样的超大 ICMP 报文后,由于处理不当,同样会造成系统崩溃、死机或重启。
华为的 NetEngine AR600、AR6100、AR6200、AR6300 V300R023 设备可以通过配置对超大 ICMP 报文的攻击防范。执行命令 system-view 进入系统视图,然后执行命令 firewall defend large-icmp max-length length,即可配置超大 ICMP 报文攻击防范参数。缺省情况下,ICMP 报文的最大长度为 4000 字节。
超大 ICMP 报文攻击可能导致严重的后果,了解这些攻击方式有助于我们更好地采取防范措施,保护网络系统的安全。正如一些资料中提到的,ICMP 攻击有多种形式,比如“什么叫 ICMP 攻击?”中指出,利用系统自身的缺陷进行各种入侵向来就是黑客常得手的重要途径,ICMP 攻击就是利用 Ping 大量的数据包使得计算机的 CPU 使用率居高不下而崩溃。在“网络知识之 ICMP - 6 小 1 - 博客园”中也详细介绍了 Ping of Death 的攻击原理,即利用一些尺寸超大的 ICMP 报文对系统进行攻击,导致内存溢出,使主机出现内存分配错误而导致 TCP/IP 堆栈崩溃。“ICMP 协议详解 - CSDN 博客”中也提到了 ICMP 攻击绝大部分都可以归类为拒绝服务攻击,其中就包括利用超大 ICMP 报文的攻击方式。
此外,“面试:常见的攻击方式及防范方法 - 腾讯云开发者社区 - 腾讯云”中提到了特殊控制报文攻击,其中就包括超大 ICMP 报文攻击,这种攻击通常会导致系统崩溃、网络中断,或者用于刺探网络结构。“盘点:常见网络攻击以及防御方法”中也提到了死亡之 Ping(Ping of death)攻击,由于 ICMP 包的大小限制在 64KB 以内,当大小超过 64KB 的 ICMP 包,就会出现内存分配错误,导致 TCP/IP 堆栈崩溃,致使接受方计算机宕机。“TCP/IP 卷一:49 - -ICMP 之(与 ICMP 相关的攻击)-CSDN 博客”中介绍了涉及 ICMP 的攻击,其中包括 Ping of Death 攻击、泪滴攻击、Land 攻击等,这些攻击都是利用 ICMP 报文的特点进行的。“什么是 ICMP 协议,如何防护 ICMP 攻击 - CSDN 博客”中提到了死 Ping 攻击,即由于早期路由器对包的最大尺寸有限制,当产生尺寸超过 ICMP 上限的包时,就会出现内存分配错误,导致 TCP/IP 崩溃,致使接收方宕机。“常见拒绝服务型攻击原理及行为特征_常见的拒绝服务攻击的类型和原理?”中也介绍了 Ping of Death 攻击和 ICMP 攻击的其他形式,如 Ping Flood 攻击等。
三、如何防范超大 ICMP 报文控制攻击
为了防范超大 ICMP 报文控制攻击,可以采取以下几种方法:
一、配置允许通过的 ICMP 报文最大长度用户可以根据实际网络需要配置允许通过的 ICMP 报文的最大长度,当实际 ICMP 报文的长度超过该值时,防火墙认为发生了超大 ICMP 报文攻击将丢弃该报文。例如,华为的 NetEngine AR600、AR6100、AR6200、AR6300 V300R023 设备可以通过执行命令 system-view 进入系统视图,然后执行命令 firewall defend large-icmp max-length length,即可配置超大 ICMP 报文攻击防范参数。缺省情况下,ICMP 报文的最大长度为 4000 字节。
二、配置防火墙阻止大部分 ICMP 攻击通过配置防火墙,阻止大部分的 ICMP 攻击。一般除了出站的 ICMP Echo Request、出站的 ICMP Source Quench、进站的 TTL Exceeded 和进站的 ICMP Destination Unreachable 之外,所有的 ICMP 消息类型都应该被阻止。现在许多防火墙在默认情况下都启用了 ICMP 过滤的功能。如果没有启用,只要选中“防御 ICMP 攻击”、“防止别人用 ping 命令探测”就可以了。
三、配置系统自带的默认防火墙配置系统自带的默认防火墙,通过添加过滤规则,防止 ICMP 攻击。具体方法如下:
- 打开在电脑的桌面,右键点击“网上邻居→属性→本地连接→属性→Internet 协议(TCP/IP)→属性→高级→选项-TCP/IP 筛选-属性”。
- “TCP/IP 筛选”窗口中,点击选中“启用 TCP/IP 筛选(所有适配器)”。然后分别在“TCP 端口、UDP 端口和 IP 协议”的添加框上,点击“只允许”,后按添加按钮,然后在跳出的对话框输入端口,通常我们用来上网的端口是:80、8080,而邮件服务器的端口是:25、110,FTP 的端口是 20、21,同样将 UDP 端口和 IP 协议相关进行添加。
- 打开“控制面板→管理工具→本地安全策略”,然后右击“IP 安全策略,在本地机器”选“管理 IP 筛选器和 IP 筛选器操作”,在管理 IP 筛选器和 IP 筛选器操作列表中添加一个新的过滤规则,名称输入“防止 ICMP 攻击”,然后按添加,在源地址选任何 IP 地址,目标地址选我的 IP 地址,协议类型为 ICMP,设置完毕。
- 在“管理筛选器操作”,取消选中“使用添加向导”,添加,在常规中输入名字“Deny 的操作”,安全措施为“阻止”。这样我们就有了一个关注所有进入 ICMP 报文的过滤策略和丢弃所有报文的过滤操作了。
- 点击“IP 安全策略,在本地机器”,选择“创建 IP 安全策略-下一步-输入名称为 ICMP 过滤器”,通过增加过滤规则向导,把刚刚定义的“防止 ICMP 攻击”过滤策略指定给 ICMP 过滤器,然后选择刚刚定义“Deny 的操作”,然后右击“防止 ICMP 攻击”并启用。
此外,在 Linux 系统中,可以利用 iptables 来防止 ICMP flood 攻击。首先确保 iptables 服务已经安装在服务器上,如果没有安装,可以使用以下命令进行安装:sudo apt-get update、sudo apt-get install iptables。安装完成后,可以使用以下命令查看当前的 iptables 规则:sudo iptables -L。然后可以通过以下命令添加一个规则来防止 ICMP flood 攻击:sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT,这条规则的作用是限制每秒钟只允许接收一个 ICMP 的 echo-request 请求。
综上所述,通过以上方法可以有效地防范超大 ICMP 报文控制攻击,保护网络系统的安全。
墨者安全 防护盾
墨者安全作为专业级别安全防护专家,在应对 Webshell 风险隐患方面展现出了卓越的能力。其拥有全面的检测机制,能够精准识别 Webshell 的各种类型和变体,无论是复杂的大马,还是隐蔽的内存马,都难逃其敏锐的监测。
墨者安全防护盾具备强大的实时监控功能,对服务器的各项活动进行 7*24 小时不间断的监视。一旦发现任何可疑的 Webshell 活动迹象,立即发出警报,并迅速采取隔离和清除措施,将风险扼杀在萌芽状态。
在防护策略上,墨者安全防护盾采用了多层次的防御体系。不仅能够在网络层面阻挡外部的恶意访问和攻击,还能深入系统内部,对服务器的文件系统、进程等进行深度检查和保护,确保 Webshell 无法植入和运行。
同时,墨者安全防护盾拥有快速的应急响应能力。当 Webshell 攻击事件发生时,专业的安全团队能够迅速介入,进行深入的分析和处理,最大程度减少攻击带来的损失,并帮助用户快速恢复服务器的正常运行。
墨者安全防护盾还注重用户教育和培训,为用户提供关于 Webshell 防范的专业知识和最佳实践,帮助用户提升自身的安全意识和防范能力,共同构建坚实的网络安全防线。