当前位置: 首页 > news >正文

ARP欺骗的原理与防御措施

ARP 欺骗(也叫 ARP 毒化)的核心是利用ARP 协议无身份验证的漏洞(主机收到 ARP 应答时,会直接更新自身 ARP 缓存表,不管是否发送过对应请求),让攻击者(图中 “主机 M”)伪装成 “中间人”,截获目标主机与网关 / 其他主机的通信数据。

先明确角色

  • 主机 A:被欺骗的目标主机(要访问外网);
  • 主机 M:攻击者主机(执行 ARP 欺骗);
  • 路由器 R:本地局域网的网关(主机 A 访问外网的必经设备)。

正常的 ARP 交互

主机 A 要访问外网,需要先获取网关 R 的 MAC 地址

  1. 主机 A 发送 ARP 广播请求:“谁是 ipR(网关 IP)?请告诉我你的 MAC”;
  2. 路由器 R 收到请求后,单播回复 ARP 应答:“我是 ipR,我的 MAC 是 macR”;
  3. 结果:
    • 主机 A 的 ARP 缓存表:ipR ↔ macR(知道网关的正确 MAC);
    • 路由器 R 的 ARP 缓存表:ipA ↔ macA(知道主机 A 的正确 MAC)。

攻击者发起第一次欺骗(篡改 ARP 缓存)

攻击者主机 M 利用 ARP 无验证的漏洞,主动发送伪造的 ARP 应答包

  1. 给主机 A 发伪造应答:“我是 ipR(网关),我的 MAC 是 macM(主机 M 的 MAC)”;
  2. 给路由器 R 发伪造应答:“我是 ipA(主机 A),我的 MAC 是 macM(主机 M 的 MAC)”;
  3. 结果(ARP 缓存被篡改):
    • 主机 A 的 ARP 缓存表:ipR ↔ macM(误以为网关的 MAC 是 M 的);
    • 路由器 R 的 ARP 缓存表:ipA ↔ macM(误以为主机 A 的 MAC 是 M 的)。

攻击者成为 “中间人”

此时主机 A 与外网的通信,会被强制经过主机 M:

  1. 主机 A 要发数据到外网:会用macM(缓存里的 “网关 MAC”)封装数据帧,实际发给了主机 M;
  2. 路由器 R 收到外网给 A 的数据:会用macM(缓存里的 “主机 A 的 MAC”)封装数据帧,实际也发给了主机 M;
  3. 结果:
    • 主机 M 成了 “中间人”,可以截获、篡改、转发主机 A 与外网之间的所有数据;
    • 主机 A 和路由器 R 完全不知情,以为是在直接通信。

ARP 欺骗的核心危害

  1. 流量劫持 / 数据窃听:攻击者能获取主机 A 的所有网络数据(比如账号密码、聊天内容);
  2. 数据篡改:攻击者可以修改转发的数据(比如把正常网页换成钓鱼页面);
  3. 断网攻击:如果攻击者只欺骗但不转发数据,主机 A 会直接无法访问外网(相当于断网)。

常见防御手段

1. 静态 ARP 绑定

手动将 “IP 地址 - MAC 地址” 的正确映射写入主机的 ARP 缓存,忽略所有后续的 ARP 应答包(即使是伪造的也不会覆盖)。

  • 适用场景:小型网络(如家庭、小型办公网),设备数量少易维护。
  • 操作示例:
    • Windows:arp -s 网关IP 网关MAC(如arp -s 192.168.1.1 00-11-22-33-44-55
    • Linux:arp -s 网关IP 网关MAC或写入配置文件(如/etc/ethers)持久化。
2. 安装 ARP 防火墙

主机上部署 ARP 防火墙软件(如 360ARP 防火墙、WinArpAttacker 防护工具),其核心功能:

  • 监控 ARP 包:识别 “IP-MAC 映射突然变更”“陌生 MAC 对应网关 IP” 等异常 ARP 包;
  • 自动拦截 / 告警:对伪造的 ARP 应答直接拦截,同时提示用户异常;
  • 主动防护:定期发送正确的 ARP 广播,维持自身 ARP 缓存的正确性。
3. 交换机端口安全

在交换机上配置 “端口与 MAC 地址绑定”,限制单个交换机端口只能接入指定 MAC 地址的设备:

  • 原理:攻击者的主机(陌生 MAC)接入被绑定的端口时,交换机会直接关闭该端口,或拒绝转发其数据;
  • 适用场景:企业网络,需交换机支持端口安全功能。
http://www.jsqmd.com/news/252610/

相关文章:

  • python基于django框架的大学生平时成绩管理系统 四个角色45s2bez3
  • 百考通AI开题报告功能:让开题写作从“压力源”变为“加速器”
  • springboot基于微信小程序的粤语文化传播平台的设计与开发
  • JavaScript 中实现 a.js调用 b.js函数教程
  • springboot基于微信小程序的云浮市特色农产品交易的设计与实现
  • python基于django框架的新能源汽车之家系统设计与实现
  • JavaScript 中定义全局变量的教程
  • springboot基于小程序的智能雨伞借取管理系统设计实现
  • 【实践】利用 Prettier 格式化打包后的代码?修 BUG 的隐藏神器!
  • springboot基于微信小程序的考研资源共享平台的设计与实现
  • python基于django水上乐园售票管理系统
  • 本科生开题报告PPT规范
  • python基于django人口户籍管理系统设计与实现
  • springboot基于微信小程序的丽江市旅游分享平台
  • python基于django付费自习室系统的设计与实现
  • python基于django助农商城设计与实现
  • python基于django助学贷款平台
  • python基于django在线C语言教学系统的设计与实现
  • 《创业之路》-863-基业长青 =为企业基业长青的终极实战操作系统,首次将 「四阶价值流 × 商业模式画布 × 产品生命周期 × 创新 × 技术曲线 × 第二增长曲线 × 上中下游生态」 七大工具深度
  • 《创业之路》-864-企业基业长青终极指南:无生态构建版(聚焦核心能力突围)
  • 杰理之测试盒串口升级失败【篇】
  • 杰理之概率出现一边耳机没有关机提示音【篇】
  • 【RDMA】infiniband IB 流控机制
  • 杰理之同步关机时添加判断,避免提示音被打断或者重复播放关机提示音【篇】
  • 杰理之配置工具打开报错问题【篇】
  • 杰理之IO维持相关配置方法【篇】
  • 杰理之开关ANC有杂音【篇】
  • 失业期PHP程序员今日份将“结果导向”转为“过程导向”的庖丁解牛
  • 随机森林:原理、参数与适用场景
  • 指纹浏览器动态指纹生成与风控对抗算法深度解析