什么是ICMP协议,如何防护ICMP攻击

一.什么是ICMP 

ICMP(Internet  Control Message  Protocol)是互联网控制报文协议,是TCP/IP协议族的一个子协议。它主要用于在IP网络中传递控制信息和错误消息,是IP协议的补充。ICMP协议是一种无连接协议,它不需要建立连接,也不需要维护状态,只需要发送报文和接收报文。

ICMP协议常用于网络故障诊断、网络管理和网络控制等方面,可以用来检测网络是否可达、计算延迟、跟踪网络路径、控制流量等。ICMP协议的报文分为两种:差错报文和询问报文。差错报文用于通知发送端有错误发生,询问报文用于向目的主机发出请求,获取网络状态和信息。

常见的ICMP报文包括ping请求和ping响应报文、traceroute报文、路由器通告报文、源站选路报文、重定向报文等。在网络通信中,ICMP协议通常与其他协议一起使用,如ping命令使用ICMP协议来测试网络是否可达,traceroute命令使用ICMP协议来追踪网络路径。

 二.IDMP的工作原理

 ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。

在网络中经常会使用到ICMP协议,比如经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。

ICMP报文包含在IP数据报中,属于IP的一个用户,IP头部就在ICMP报文的前面,所以一个ICMP报文包括IP头部、ICMP头部和ICMP报文,IP头部的Protocol值为1就说明这是一个ICMP报文,ICMP头部中的类型(Type)域用于说明ICMP报文的作用及格式,此外还有一个代码(Code)域用于详细说明某种ICMP报文的类型,所有数据都在ICMP头部后面。 

 

 

 三.如何在网络故障排除中使用ICMP

1.使用Ping测试连通性

Ping是一种基于ICMP的网络诊断工具,通过发送ICMP回显请求(Echo Request)报文并等待回显应答(Echo Reply)报文来检测两个网络节点之间的连通性。Ping可以帮助您确定网络节点是否在线,以及网络延迟(往返时间,RTT)。

2.使用Traceroute诊断路径问题

Traceroute是另一种基于ICMP的网络诊断工具,通过发送一系列具有递增生存时间(TTL)的ICMP报文来确定数据包在网络中的传输路径。Traceroute可以帮助您识别网络中的路由问题、循环和延迟瓶颈。

3.分析ICMP错误报文

在网络故障排除过程中,关注ICMP错误报文(如目的不可达、超时、重定向等)可以帮助您发现网络问题的根源。例如,目的不可达报文可能表明路由问题或防火墙阻止了数据包的传输。

4.使用ICMP路由器发现

ICMP路由器发现报文可以帮助您了解网络中的路由器配置和拓扑。这对于诊断路由问题和优化网络性能非常有用。

5.监控ICMP流量

通过监控网络中的ICMP流量,您可以发现异常行为(如ICMP洪水攻击)和潜在的网络问题。例如,大量的ICMP源抑制报文可能表明网络存在拥塞问题。

6.使用专业的网络分析工具

许多网络分析工具(如Wireshark)支持ICMP报文的捕获和分析。这些工具可以帮助您更深入地了解网络中的ICMP通信,从而更有效地进行故障排除。

四.ICMP的攻击方式

1.ICMP转向连接攻击

攻击者主要是使用ICMP【时间超出】或【目标地址无法连接】的消息。这两种ICMP消息都会导致一台主机迅速放弃连接。攻击只需伪造这些ICMP消息中的一条,并发送给通信中的两台主机或其中的一台,就可以利用这种攻击,接着通信连接就会被切断。

当其中一台主机错误地认为信息的目标地址不在本地网络中的时候,网关通常会使用ICMP转向消息。如果攻击者伪造出一条转向消息,它就可以导致另外一台主机经过攻击者主机向特定连接发送数据包。

2.ICMP数据包放大

攻击者向安全薄弱网络所广插的地址发送伪造的ICMP响应数据包,然后都向受害主机系统发送ICMP响应的答复信息,占用了目标系统的可用带宽并导致合法通信的服务拒绝。

3.死Ping攻击

由于早期路由器对包的最大尺寸都有限制,许多操作系统对 TCP/IP的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生尺寸超过ICMP上限的包,也就是加载的尺寸超过64KB上限时,就会出现内存分配错误,导致 TCP/IP崩溃,致使接收方宕机。

4.ICMP Ping淹没攻击

大量的Ping信息广播淹没了目标主机的系统,使得它不能够对合法的通信作出响应。

5.ICMP nuke攻击

nuke发送出目标主机的操作系统无法处理的信息数据包,从而导致该系统宕机。

6.通过ICMP进行攻击信息收集

通过Ping命令来检查目标主机是否存活,依照返回的TTL值判断目标主机操作系统。

五.ICMP攻击的防御方式

1.对ICMP数据包进行过滤

虽然很多主机防火墙可以对ICMP数据包进行过滤,但对于没有安装防火墙的主机,可以使用系统自带的防火墙和安全策略对ICMP进行过滤。

2.修改TTL值

许多入侵者会通过Ping目标主机,用目标返回TTL值来判断对方操作系统。既然入侵者相信T TL值所反映出来的结果,那么只要修改TTL值,入侵者就无法得知目标主机操作系统了。

六.选择专业的高防防护团队

德迅云安全高防服务器:德迅云安全部署的T级别数据中心,具备完善的机房设施,核心骨干网络有效保证高品质的网络环境和丰富的带宽资源。搭载赠送:自主化管理平台、德迅卫士(主机安全防火墙)、WEB云防护(一站式网站安全加速)、1V1专家技术支撑,竭诚为您提供安全、可靠、稳定、高效的服务体验。

1.海量DDoS清洗:大防护带宽,平均延迟小于50ms,从容应对大流量攻击.

2.全方位防护全面:支持SYN Flood、ACK Flood、ICMP Flood、UDP Flood、NTP Flood、DNS Flood、HTTP Flood、CC攻击等常见攻击类型的防护。

3.全业务支持:支持TCP、UDP、HTTP/HTTPS等协议,满足游戏、APP、网站、金融等各种类型的业务需求。

4.指纹式防御算法:指纹式防御算法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/519256.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何锁定鼠标光标在水平、垂直或45度对角线模式下移动 - 鼠标水平垂直移动锁定器简易教程

在我们进行精细工作例如如创建图标和图形设计时,通常需要我们对鼠标移动进行精确控制。一旦向左或向右轻微移动,都可能导致设计出错。若出现不必要的错误,我们极有可能不得不重新开始,这会令人感到非常沮丧。这种情况下&#xff0…

NIO基础知识

在学习Netty之前先要学习一下NIO相关的知识,因为Netty是基于NIO搭建的一套网络编程框架。 一. NIO 基础 non-blocking io 非阻塞 IO 1. 三大组件 1.1 Channel & Buffer channel 有一点类似于 stream,它就是读写数据的双向通道,可以从…

SSM实战项目——哈哈音乐(三)文件服务器模块开发

1、创建模块 创建一个子模块(hami-fie),里面不写任何代码,专门用于文件上传的服务器 在hami-file的webapp下创建上传文件资源的文件夹,并引入资源(图片、音频) 2、pom.xml主配置文件中引入文件…

提升提测质量之研测共建

提升提测质量之研测共建 简介 你是否也有同样的困惑?跟进的需求,就在提测前一秒,被告知不能如期提测了,研测计划被打乱;提测的功能,犹如遇到不好的购物体验,缺斤短两,与prd预期不符…

Elasticsearch:我们如何演化处理二进制文档格式

作者:来自 Elastic Sean Story 从二进制文件中提取内容是一个常见的用例。一些 PDF 文件可能非常庞大 — 考虑到几 GB 甚至更多。Elastic 在处理此类文档方面已经取得了长足的进步,今天,我们很高兴地介绍我们的新工具 —— 数据提取服务&…

AopContext.currentProxy() 的代理对象错误(未被更新)问题

背景: 原来在springAOP的用法中,只有代理的类才会被切入,我们在controller层调用service的方法的时候,是可以被切入的,但是如果我们在service层 A方法中,调用B方法,切点切的是B方法,…

猫头虎技术分享 || 断网了,还能ping127.0.0.1吗?

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

开源大语言模型(LLM)汇总(持续更新中)

随着ChatGPT的火爆,越来越多人希望在本地运行一个大语言模型。为此我维护了这个开源大语言模型汇总,跟踪每天不发的大语言模型和精调语言模型。 我将根据个模型采用的基础大模型进行分类,每个大模型下列出各派生模型。 Alpaca (Stanford) 斯…

Java毕业设计 基于SSM jsp商城系统 美妆系统

Java毕业设计 基于SSM jsp商城系统 美妆系统 SSM jsp 商城系统 美妆系统 功能介绍 首页 分类展示商品 搜索商品 登录 注册 邮箱激活 购物车 结算 支付 我的订单 个人信息设置 后台管理 登录 商品管理 添加修改下架商品 商品类型管理 添加修改删除分类 订单管理 确认发货 取消…

SAP HCM 多成本中心薪酬过账标准程序解读

SAP HCM薪酬过账会涉及到CO对象,CO对象主要是成本中心、WBS、内部订单、订单等,成本中心有多个维护地方0001信息类型0027信息类型等,那么成本中心多个地方维护,优先级是如何,0027>1018>0001,也就是说人身上的优先…

微电网优化:基于​海象优化算法(Walrus Optimization Algorithm,WOA)​的微电网优化(提供MATLAB代码)

一、微电网优化模型 微电网是一个相对独立的本地化电力单元,用户现场的分布式发电可以支持用电需求。为此,您的微电网将接入、监控、预测和控制您本地的分布式能源系统,同时强化供电系统的弹性,保障您的用电更经济。您可以在连接…

隐语SecretFlow实训营-第8讲:快速上手隐语SCQL的开发实践

SCQL使用/集成实践 目前SCQL只开放API供用户使用/集成 使用SCDBClient上手体验可以基于SCQL API开发封装白屏产品,或集成到业务链路中 使用流程: 部署系统 环境配置: 机器配置:CPU/MEM最低8C16G机构之间的网络互通 镜像&…

雪球acw_sc__v2 加密参数构造解析

打开雪球网站:https://xueqiu.com/today 首先打开Edge浏览器,清除应用程序里面的cookie 接着,跳转到源代码,刷新网页,进行调试,首先进入debugger模式,需要反debug调试。 输入相关代码,解除subug模式 点击保留日志,这里显示有两次请求,分别分析下。 第一个today返…

重读Java设计模式: 适配器模式解析

引言 在软件开发中,经常会遇到不同接口之间的兼容性问题。当需要使用一个已有的类,但其接口与我们所需的不兼容时,我们可以通过适配器模式来解决这一问题。适配器模式是一种结构型设计模式,它允许接口不兼容的类之间进行合作。本…

AI绘画:使用ComfyUI结合LCM进行实时绘图:开启AI艺术创作新篇章

在数字艺术的世界里,ComfyUI和LCM(Latent Contextual Modulation)的结合为艺术家和设计师们提供了一个强大的实时绘图工具。LCM是一种先进的技术,它能够实时地将用户的输入和反馈融入到图像生成过程中,从而创造出动态变…

Vue3从入门到实战:掌握状态管理库pinia(上部分)

1.新的状态管理工具pinia Pinia 是一个状态管理库&#xff0c;通俗点讲&#xff0c;它的主要作用就是帮助我们在 Vue 3 应用中更好地管理和维护组件的状态。 举例子解释&#xff1a; 新建一个Count.vue文件&#xff0c;功能用来计数求和。 <template><div class&q…

【MATLAB】哈里斯鹰优化(HHO)

发表在中科院二区Future Generation Computer Systems期刊上的论文“Harris hawks optimization: Algorithm and applications" 01.引言 本文提出了一种基于种群的、受自然启发的优化范式&#xff0c;称为Harris Hawks Optimizer (HHO)。HHO的主要灵感来源于自然界中哈里…

day64 单调栈part03

柱状图中最大的矩形 困难 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 看了一圈 最后还是别的题解几句话看明白了 明确一点&#xff0c;遍历每个高…

004 CSS介绍2

文章目录 css最常用属性link元素进制css颜色表示浏览器的渲染流程(不含js) css最常用属性 font-size 文字大小 color:前景色(文字颜色) background-color:背景色 width:宽度 height:高度 link元素 也可以用来创建站点图标 link元素常见属性 href:指定被链接资源的URL rel:指…

Proxifier监控流量转发Charles

Charles开启 SOCKS Proxy 在Proxifier的Proxy Servers选项中点击add添加如下规则&#xff1a;127.0.0.1:8889&#xff0c; 端口号8889对应Charles开放的端口号&#xff0c; 选择SOCKS5&#xff0c;支持监控http和https 配置好之后点击Check进行验证, 点击Test Settings选项&…