什么是 ARP 欺骗和缓存中毒攻击?

如果您熟悉蒙面歌王,您就会明白蒙面歌王的概念:有人伪装成别人。然后,当面具掉下来时,您会大吃一惊,知道了这位名人是谁。类似的事情也发生在 ARP 欺骗攻击中,只是令人惊讶的是,威胁行为者利用他们的伪装发起破坏性攻击——而不是用他们的歌声让您惊叹不已。

在本篇博文中,我们将深入研究 ARP 欺骗和 ARP 缓存中毒攻击,包括它们的工作原理、不同类型的攻击及其影响。

我们还将解释如何检测攻击以及防范 ARP 欺骗的不同方法,以防止威胁者使用该技术在您的网络中制造混乱,甚至更糟——窃取数据、感染恶意软件或完全破坏网络。

什么是 ARP 协议?

在深入研究 ARP 欺骗之前,重要的是要了解 ARP 协议、它在网络通信中的作用以及其引发攻击的弱点。

ARP 代表地址解析协议,它支持OSI 模型中的分层方法,促进网络上不同组件之间的连接和数据流动。ARP 通过媒体访问控制 (MAC) 地址将 Internet 协议 (IP) 地址连接到物理机器。  

主机维护一个 ARP 缓存,即 IP 地址和 MAC 地址之间的映射表。如果主机 A 没有主机 B 的 MAC 地址,它会发出一个 ARP 请求数据包,向网络上的其他机器询问匹配的 MAC 地址。这成为威胁行为者利用的弱点,可以发起 ARP 欺骗或缓存中毒攻击。

ARP 仅适用于较旧的 IPv4 标准,而不适用于较新的 IPv6 标准,后者使用称为网络发现协议 (NDP) 的不同协议。NDP 更安全,并且具有多层防御来验证主机身份。但由于截至 2023 年 12 月,仍有超过一半的互联网用户使用 IPv4,因此 ARP 欺骗仍然是一个问题。

什么是 ARP 欺骗?

ARP 欺骗是指攻击者使用自己设备的 MAC 地址响应 ARP 请求数据包。这样一来,他们便可以在网络上的所有其他设备上伪装成其他人,并拦截发往网络上合法计算机或服务器的 IP 流量和数据。发出请求的主机会将该欺骗地址存储在其 ARP 缓存中并继续使用它,从而在不知不觉中共享了原本不会落入威胁行为者手中的信息。

ARP 缓存中毒可能与 ARP 欺骗混淆。ARP 缓存中毒是指 ARP 缓存被污染,而 ARP 欺骗是攻击者冒充机器地址的行为。无论是哪种情况,其后果可能包括从在网络上制造混乱到数据窃取、会话劫持、中间人攻击和DDoS攻击等一切。

ARP 欺骗攻击工作原理的分步指南

ARP 欺骗可使恶意方拦截、修改甚至停止传输中的数据。这些攻击通常包括以下五个步骤:

攻击者打开ARP欺骗工具,并将该工具的IP地址设置为与目标的IP子网一致。

攻击者使用ARP欺骗工具扫描目标子网中主机的IP和MAC地址。

攻击者选择目标并开始通过网络发送包含攻击者的 MAC 地址与目标的 IP 地址配对的 ARP 数据包。

随着网络上的其他主机缓存欺骗性的 ARP 数据包,攻击范围开始扩大,这些主机发送给受害者的数据开始流向攻击者。

此时,由于攻击者可以窃取越来越多的数据或发起更复杂的后续攻击,因此攻击的影响会扩大。

黑客为何使用 ARP 欺骗

ARP 欺骗尤其危险,因为它被用作发起其他更具破坏性的攻击并造成额外损害的平台。例如:

如果攻击者获得会话 ID,他们就可以访问用户当前登录的帐户。

攻击者可以利用服务器的MAC地址发起DDoS攻击,通过对大量IP地址重复此操作,受害者将不堪重负。

攻击者可以拦截和修改流量,包括向受害者的机器发送恶意文件或恶意网站的链接。

攻击者可以嗅探数据包并窃取数据,除非通信通过 TLS 和HTTPS加密。

ARP 中毒攻击的类型

ARP 中毒攻击有两种发生方式:

1. 攻击者可以等待看到特定目标的 ARP 请求并发出响应。这种方法更隐蔽,但影响也更小。

2. 攻击者可以发送未经请求的广播消息,也称为“免费 ARP”。这种方法更引人注目且更直接,并且影响更多的受害者。

在这两种方法中,受害计算机上损坏的 ARP 缓存可用于传播以下攻击:

中间人 (MiTM) 攻击

攻击者针对给定的 IP 地址(通常是特定子网的默认网关)发送伪造的 ARP 响应。这会导致受害计算机使用攻击者计算机的 MAC 地址(而不是本地路由器的 MAC 地址)填充其 ARP 缓存。受害计算机随后会错误地将网络流量转发给攻击者。然而,对于受害者来说,一切可能看起来都很正常。 

DDoS攻击

DDoS攻击旨在阻止受害者访问网络资源。在 ARP 攻击中,攻击者可能会发送带有数百甚至数千个伪造 IP 地址的 ARP 响应消息,这使得追踪来源变得困难,并压垮目标的基础设施。

会话劫持

会话劫持攻击的性质与中间人攻击类似,不同之处在于攻击者不会直接将流量从受害者机器转发到其预期目的地。相反,攻击者会从受害者那里获取会话 ID,并使用它来冒充受害者的身份。例如,如果目标用户恰好登录,这可用于访问他们的社交媒体或网上银行账户。

如何检测 ARP 欺骗或 ARP 缓存中毒

可以使用终端或命令行中的“arp -a”命令显示 ARP 表来检测 ARP 欺骗攻击。如果表中包含两个不同的 IP 地址,但 MAC(或物理)地址相同,则可能意味着正在进行 ARP 攻击。

还有一些特定工具可以持续监控网络,并可以向管理员发出 ARP 欺骗或 ARP 缓存中毒攻击迹象的警报。如果您正在处理大型网络,这样的工具可以让您免于繁琐的工作,并节省您手动检查数百甚至数千个 ARP 表的时间。

但是,这些工具可能会让管理员因不必要的警报和误报而不知所措。

如何防范 ARP 欺骗或 ARP 缓存中毒

俗话说,“一分预防胜过十分治疗”,对于 ARP 欺骗和 ARP 中毒攻击来说尤其如此。

为了防范这些攻击,最佳实践和技术的结合可以有所帮助,包括:

使用数据包过滤

数据包过滤器会在数据包穿越网络时对其进行检查,有助于过滤和阻止具有冲突源地址信息的数据包,使它们无法到达其他设备。

部署 VPN

VPN会加密您的所有网络流量,因此这些流量对于 ARP 欺骗攻击者来说毫无价值。但是,根据您网络的规模,VPN 可能会变得不切实际并对网络性能产生负面影响,因为您需要在每台计算机和服务器之间建立 VPN 连接。

采用强大的DDoS保护

DDoS攻击形式多样,规模各异,通过向目标服务器或网络发送大量请求使其不堪重负。ARP 欺骗和 ARP 中毒攻击符合这一定义,利用不规则的请求模式。全面的DDoS保护解决方案可防御各种DDoS攻击,包括 ARP 欺骗攻击,以及其他威胁,包括数据盗窃和影响服务可用性的其他类型的攻击。

定义静态 ARP

ARP协议允许您为 IP 地址定义静态 ARP 条目。例如,如果计算机始终连接到同一个路由器,则可以为该路由器定义静态 ARP 条目并消除该地址的 ARP 响应。

使用加密网络协议

传输层安全性 (TLS)、安全外壳 (SSH)、HTTP 安全 (HTTPS)和其他安全通信协议通过在传输前加密数据并在接收数据时进行身份验证来帮助阻止 ARP 欺骗攻击。

避免信任关系

依赖 IP 地址进行身份验证的信任关系很容易让攻击者进行 ARP 欺骗攻击。

运行红/紫队测试

一旦您采取了防御措施,请检查它们是否有效。您可以使用红/紫队测试练习来模拟 ARP 欺骗攻击,并让您有机会解决您发现的任何弱点。

ARP 欺骗攻击基于伪装和操纵元素。威胁行为者对网络上的所有其他设备来说都是其他人,并拦截发往网络上合法计算机或服务器的 IP 流量和数据。ARP 欺骗攻击可能很隐蔽,也可能更引人注目。无论哪种方式,它们都可能带来重大风险。

幸运的是,IPv6 标准使用更安全的 NDP,并且有多层防御来验证主机身份,这使得它不受 ARP 欺骗和 ARP 缓存中毒的影响。但由于不到一半的设备使用 IPv6,这些攻击在可预见的未来仍将是一个问题。

为了防御 ARP 欺骗和 ARP 缓存中毒攻击,组织可以结合使用最佳实践和技术,包括数据包过滤、部署 VPN、定义静态 ARP、使用加密网络协议、避免信任关系以及使用DDoS防护解决方案。

DDoS保护即使在遭受DDoS攻击时也能提供不间断的服务可用性,并可保护您免受 ARP 欺骗攻击以及其他类型的DDoS攻击和可能威胁您运营的后续恶意活动的侵害。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ModuleNotFoundError: No module named ‘package‘

报错: Traceback (most recent call last): File “”, line 198, in run_module_as_main File “”, line 88, in run_code File "D:\python\helloworld.venv\Scripts\pip.exe_main.py", line 4, in File "D:\python\helloworld.venv\Lib\site-pac…

android 全面屏最底部栏沉浸式

Activity的onCreate方法中添加 this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); Android 系统 Bar 沉浸式完美兼容方案自 Android 5.0 版本,Android 带来了沉浸式系统 ba - 掘金 (juejin.cn)https://juejin.cn/post/7075578…

AI类课程的笔记

信息论、导论、模式识别(数据挖掘)、语义网络与知识图谱、深度学习、强化学习 (零)信息论 详见另一篇博文 信息论自总结笔记(仍然在更新)_信息论也更新了-CSDN博客https://blog.csdn.net/sinat_27382047/article/details/12690…

Python+Django微信小程序前后端人脸识别登录注册

程序示例精选 PythonDjango微信小程序前后端人脸识别登录注册 如需安装运行环境或远程调试,见文章底部个人QQ名片,由专业技术人员远程协助! 前言 这篇博客针对《PythonDjango微信小程序前后端人脸识别登录注册》编写代码,代码整…

并查集——从LeetCode题海中总结常见套路

目录 并查集定义 LeetCode128.最长连续序列 先去重再sort: 改进去重的方法: 参考: 并查集定义 在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查…

重学SpringBoot3-集成Redis(四)之Redisson

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(四)之Redisson 1. 添加 Redisson 依赖2. 配置 Redisson 客户端3. 使用 Redisson 实现分布式锁4. 调用分布式锁5. 为什…

会声会影导出视频mp4格式哪个最高清,会声会影输出格式哪个清晰

调高分辨率后,mp4视频还是不清晰。哪怕全部使用4K级素材,仍然剪不出理想中的高画质作品。不是你的操作有问题,而是剪辑软件没选对。Corel公司拥有全球顶尖的图像处理技术,该公司研发的会声会影视频剪辑软件,在过去的20…

Linux性能调优技巧

目录 前言1. CPU性能优化1.1 调整CPU调度策略1.2 合理分配多核处理 2. 内存性能优化2.1 调整内存分配策略2.2 缓存和分页优化 3. 磁盘I/O性能优化3.1 使用合适的I/O调度器3.2 磁盘分区和文件系统优化 4. 网络性能优化4.1 优化网络参数4.2 调整网络拥塞控制算法 5. 系统监控与优…

20款奔驰CLS300升级原厂抬头显示HUD 23P智能辅助驾驶 触摸屏人机交互系统

以下是为您生成的一份关于 18 款奔驰 CLS 老款改新款的改装文案: 18 款奔驰 CLS 老款改新款:科技升级,畅享极致驾驶体验 在汽车改装的世界里,每一次的升级都是对卓越的追求。今天,让我们一同探索 18 款奔驰 CLS 老款改…

记一次教学版内网渗透流程

信息收集 如果觉得文章写的不错可以共同交流 http://aertyxqdp1.target.yijinglab.com/dirsearch dirsearch -u "http://aertyxqdp1.target.yijinglab.com/"发现 http://aertyxqdp1.target.yijinglab.com/joomla/http://aertyxqdp1.target.yijinglab.com/phpMyA…

Windows Ubuntu下搭建深度学习Pytorch训练框架与转换环境TensorRT

Windows Ubuntu下搭建深度学习Pytorch训练框架与转换环境TensorRT JetBrains2024(IntelliJ IDEA、PhpStorm、RubyMine、Rider……)安装包Anaconda Miniconda安装.condarc 文件配置镜像源查看conda的配置和源(channel)自定义conda虚拟环境路径conda常用命…

el-pagination组件封装

组件使用 源代码&#xff1a; <script setup> import Pagination from /components/pagination/index.vue import {ref} from "vue";const pageNum ref(1) const pageSize ref(10) const total ref(120)function loadData() {// 加载数据 } </script>…

【Unity】unity安卓打包参数(个人复习向/有不足之处欢迎指出/侵删)

1.Texture Compression 纹理压缩 设置发布后的纹理压缩格式 Use Player Settings:使用在播放器设置中设置的纹理压缩格式 ETC&#xff1a;使用ETC格式&#xff08;兼容&#xff09; ETC2&#xff1a;使用ETC2格式&#xff08;很多设备不支持&#xff09; ASTC&#xff1a;使用…

PCIe6.0 AIC金手指和板端CEM连接器信号完整性设计规范

先附上我之前写的关于PCIe5.0金手指的设计解读&#xff1a; PCIe5.0的Add-in-Card(AIC)金手指layout建议&#xff08;一&#xff09;_pcie cem-CSDN博客 PCIe5.0的Add-in-Card(AIC)金手指layout建议&#xff08;二&#xff09;_gnd bar-CSDN博客 首先&#xff0c;相较于PCI…

《深度学习》【项目】OpenCV 发票识别 透视变换、轮廓检测解析及案例解析

目录 一、透视变换 1、什么是透视变换 2、操作步骤 1&#xff09;选择透视变换的源图像和目标图像 2&#xff09;确定透视变换所需的关键点 3&#xff09;计算透视变换的变换矩阵 4&#xff09;对源图像进行透视变换 5&#xff09;对变换后的图像进行插值处理 二、轮廓检测…

Python | Leetcode Python题解之第454题四数相加II

题目&#xff1a; 题解&#xff1a; class Solution:def fourSumCount(self, A: List[int], B: List[int], C: List[int], D: List[int]) -> int:countAB collections.Counter(u v for u in A for v in B)ans 0for u in C:for v in D:if -u - v in countAB:ans countAB…

网约班车升级手机端退票

背景 作为老古董程序员&#xff0c;不&#xff0c;应该叫互联网人员&#xff0c;因为我现在做的所有的事情&#xff0c;都是处于爱好&#xff0c;更多的时间是在和各行各业的朋友聊市场&#xff0c;聊需求&#xff0c;聊怎么通过IT互联网 改变实体行业的现状&#xff0c;准确的…

k8s实战-2

k8s实战-2 一、Deployment1.多副本2.扩缩容3.自愈&故障转移4.滚动更新5.版本回退 二、Service1.ClusterIP2.NodePort 总结 一、Deployment Deployment 是 k8s 中的一个资源对象&#xff0c;用于管理应用的副本&#xff08;Pods&#xff09;。它的主要作用是确保集群中运行…

二分查找一>山脉数组的峰顶索引

1.题目&#xff1a; 2.解析&#xff1a; 代码&#xff1a; public int peakIndexInMountainArray(int[] arr) {int left 1, right arr.length-2;while(left < right) {int mid left (right-left1) / 2;if(arr[mid] > arr[mid-1]) left mid;else right mid-1;}ret…

软件测试:postman详解

一、Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的&#xff0c;用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网…