基于ARP协议的网络攻防技术实践
来源:华拓科技网
术交流 基于ARP协议的网络攻防技术实践 马钺 中国人民陆军工程大学杨旭大连理工大学 摘要:AEP协议是网络通信中的一个基础协议,但本身却存在较明显的安全缺陷。本文分析了ARP协议的工作原理和安全隐患,总结了 几种针对AEP协议攻击的原理,进行了模拟攻击实践,进而提出了有针对性的防护策略,以此为做好网络安全防范提供决策和思考。 关■调:网络安全AEP攻击防护策略 1引1-| (3)硬件地址长度和协议地址长度分别指出硬件地址 随着计算机互联网应用的飞速发展,人们对网络越来越 和协议地址的长度,以字节为单位。对于以太网上IP地址 依赖,而网络信息安全也随之成为当今社会关注的热点问题。 的ARP请求或应答来说,它们的值分别为6和4; 深刻了解网络攻击原理,并针对攻击手段来做好网络安全防 (4)OP(操作类型):1表示ARP请求,2表示ARP 护,就显得非常重要。 应答; 常见的网络攻击手段包括网络扫描、口令攻击、缓冲区 (5)发送端MAC地址:发送方设备的硬件地址; 溢出攻击、网络监听、网络协议攻击、拒绝服务攻击、木马 (6)发送端IP地址:发送方设备的IP地址; 攻击等。其中,利用网络协议的缺陷或漏洞进行攻击是很常 (7)目标MAC地址:接收方设备的硬件地址; 见的一种手段。ARP是局域网中必不可少的基础协议,但 (8)目标Ip地址:接收方设备的IP地址。 因自身存在的明显缺陷,也成为了黑客实施网络攻击的重点 2.2ARP地址解析过程 目标。 假设局域网中的主机A要向主机B发送信息,根据A 2ARP协议与工作愿理 与B是否在同一网段,可分为两种情况。 2.1ARP协议 如果A(192.168.1.1)与B(192.168.1.2)在同一网段, AR.P是地址解析协议(Address Resolution Protoco1)的 A_R.P地址解析过程如下: 英文缩写,它是一个链路层协议,用于在局域网中根据IP (1)主机A首先查看自己的ARP缓存,确定其中是否包 地址获取物理地址。 含有主机B对应的ARP缓存项。如果找到了对应的MAC 在局域网中,当主机或其它网络设备有数据要发送给另 地址,则主机A直接利用ARP缓存中的MAC地址,对IP 一个主机或设备时,它不仅需要知道对方的IP地址,还必 数据包进行帧封装,并将数据包发送给主机B。 须知道对方的以太网MAC地址。因为二层的以太网交换设 (2)如果主机A在ARP缓存中找不到对应的MAC地址, 备并不能识别32位的IP地址,它们是以48位以太网MAC 则将缓存该数据报文,然后以广播方式发送一个ARP请求 地址来识别对方的。必须将网络层的IP数据报文填上源和 报文。ARP请求报文中的发送端IP地址和发送端MAC地 目的的MAC地址,封装成以太网数据帧才能在链路层传输, 址为主机A的Ip地址和MAC地址,目标Ip地址和目标 因此主机要知道目标IP地址与MAC地址的映射关系。 MAC地址为主机B的IP地址和全0的MAC地址。由于 ARP协议就是用于根据IP获取到MAC地址,来完成 ARP请求报文以广播方式发送,该网段上的所有主机都可以 IP到MAC地址映射的协议。主机可以通过发送和接收ARP 接收到该请求,但是并不是所有的主机都会回复这个ARP 报文来询问和获取目的MAC地址,并将这种映射关系保存 请求包,只有当接收者的lP地址与A_R.P请求包中的Target 在本地AKP缓存中,以便下回使用。 IP address中标识的目的IP地址一致时才会进行回复。其他 AR.P协议报文分为ARP请求和ARP应答报文,报文 主机收到该请求报文后,发现自己的lP地址和ARP请求报 格式如图1所示。 文中的目标IP地址不相同,则丢弃该报文,不予响应。 (3)主机B发现自己的IP地址和ARP请求报文中的目 标IP地址相同,则将AKP请求报文中的发送端(即主机A) 的IP地址和MAC地址存入自己的ARP缓存中。之后以 单播方式发送ARP响应报文给主机A,其中包含了自己的 圈1 AIRP报文格式 MAC地址。 (1)硬件类型:表示硬件地址的类型。它的值为1表 (4)主机A收到AKP响应报文后,将主机B的MAC地 示以太网地址; 址加入到自己的ARP缓存中以用于后续报文的转发,同时 (2)协议类型:表示要映射的协议地址类型。它的值 将IP数据包进行封装后发送出去。 为0x0800即表示IP地址; Digital Space P.323 技术交流 利用ARP缓存投毒,攻击者可以发起很多类型的攻击, ◆ 。 包括ARP泛洪、ARP欺骗和中间人攻击等。这些攻击可以 干扰局域网内的正常通信,导致用户流量受限,直至断网, 也可以窃取通信数据,非法获取用户帐号和密码,造成经济 上的重大损失。 l L匮 羹薹霾 J l 圈2同网段主机ARP地址解析过程 ARP泛洪:网络设备在处理ARP报文时需要占用系统 资源,同时因为系统内存和查找ARP缓存效率的要求, 一如果主机A和主机B不在同一网段时,主机A就会先 般网络设备会ARP缓存的大小。攻击者就利用这一 向网关发出ARP请求,ARP请求报文中的目标IP地址为 网关的Ip地址。当主机A从收到的响应报文中获得网关的 MAC地址后,将报文封装并发给网关。如果网关没有主机 B的MAc地址,网关会广播ARP请求,目标IP地址为主 机B的IP地址,当网关从收到的响应报文中获得主机B的 MAC地址后,就可以将报文发给主机B;如果网关已经有 主机B的MAC地址,网关直接把报文发给主机B。 可以看出,在局域网通信中,ARP协议扮演着不可缺 少的角色。 2.5AR,P缓存 为了避免每次通信都进行ARP广播,主机使用一个 AR.P高速缓存,存放最新的IP地址到MAC硬件地址之间 的映射记录。主机获取到目的MAC地址后,将会在自己的 ARP缓存中增加一条目的主机IP和MAC地址的映射表项, 以用于后续到同一目的地报文的转发。 ARP缓存中的表项分为动态ARP表项和静态ARP表 项。动态ARP表项由ARP协议通过ARP报文自动生成和 维护,定期老化,当到达系统预设的老化时间时,相应的动 态ARP表项会被删除。动态表项也可以被新收到的ARP报 文更新,遵循“后到优先”的更新原则。当主机收到来自某 IP的ARP报文时,就会更新现有AR.P表项中已经存在该 IP对应的ARP表项。 静态 表项通过手工配置和维护,不会老化和更新。 3ARP攻击原理 ARP协议有一个明显的安全缺陷,即默认通信双方都 是绝对安全可信的。只要主机接收到一个AR.P报文,即使 该报文不是该主机所请求的对方主机发出的应答报文,该主 机也会将ARP报文中的发送者的MAC地址和IP地址加入 或更新到ARP缓存中。更甚至,许多操作系统在自己没有 发出任何AR.P请求时,仍然接受来自其他设备的ARP响应 报文,并更新ARP缓存。这种不做任何验证和判断的缓存 更新机制,使得ARP攻击成为局域网中一种常见又危害巨 大的攻击手段。 攻击者可以在ARP报文中填入不正确或虚假的MAC 地址,并在局域网中主动大量发送伪造的ARP报文,促 使网内其他主机或网关更新ARP缓存,记录错误的IP和 MAC映射关系,从而不能将数据发往正确的目标。这称为 ARP缓存投毒。 数码世界R324 点,通过伪造大量源IP地址变化的ARP报文,使设备ARP 缓存不断刷新,直至溢出,正常主机的ARP报文不能生成 有效的ARP表项,导致正常通信中断。 ARP欺骗:攻击者伪造一个ARP响应报文,在源IP 地址位置填入真实网关的IP,伪造一个错误或是不存在的 MAC地址填入源MAC地址,将受害者的lP地址和MAC 地址填入目的地址,并在局域网中大量发送该报文。当受害 主机接收到这些伪造的ARP报文时,就会更新自己的ARP 缓存中网关IP所映射的MAC地址,从而将本应该发给网关 的数据发向了一个错误或不存在的MAC地址,导致主机无 法访问其他网段的主机或网络服务。(见图3) 豳 一 圈3仿■罔关ARP撒骗 中间人攻击:如果攻击者在ARP响应报文的源MAC 中填入自己的MAC地址,就可以将自己伪装成其他IP的主 机或网关,从而截取到其他主机发来的数据包。如果既对受 害者主机伪装成网关,同时又对网关伪装成受害者,那么攻 击者就可以变成受害主机和网关之间通信的“中间人”,可 以窃听获取、甚至修改伪造正常通信数据。 4ARP攻击演示 4.1ARP欺骗 演示环境: 主 角色 IP 网关 操作系统 机 攻击者 192.168.75.131 192.168.75.1 Kali LimLx A 受害者 192.168.75.135 192.168.75.1 Windows XP B 攻击步骤: 在主机A上寻找目标主机B,可以使用fping命令探嗅 本地局域网内部机器IP,而后选择对该主机实施ARP欺骗。 在主机A上对主机B实施网关ARP欺骗。使用命令 arpspoof—i ethO—t 192.168.75.135 192.168.75.1 arpspoof是一个可用于ARP欺骗的开源工具。该 命令作用是对主机B发送ARP报文,其中源IP为网关 技术交流 192.168.75.1,源MAC地址为网络接口eth0的MAC地址。 、安装ARP防火墙。其工作原理一般有两种:第一种是 主机B收到大量来自A的ARP报文,B的ARP缓存表 定期广播ARP报文,宣告正确的本地IP地址和MAC地址, 意攻击篡改本机的ARP缓存表项,尤其是网关的MAC地址。 网络交换和路由设备上的防范主要从两个方面考虑:建 中网关192.168.75.1对应的MAC地址被刷新成了A的MAC 以保持其他设备中正确的ARP缓存表项。第二种是防止恶 地址,B发往网关的数据包将被错误地发往A。 由于主机A默认未开启IP数据包转发功能,B发往网 以看到主机B无法正常连接网络。 关的数据包被错误的发往A,达到不了真正的网关,此时可 立正确的ARP映射关系、检测并过滤伪造的ARP报文, 保证经过其转发的ARP报文正确合法;抑制短时间内大量 ARP报文的冲击。在交换机上可配置的一些安全策略包括: ARP报文有效性检查。设备收到ARP报文时,对以太 报文头中的源、目的MAC地址和ARP报文数据区中的源、 目的MAC地址进行一致性检查。如果以太报文头中的源、 目的MAC地址和ARP报文数据区中的源、目的MAC地址 圈4 ARP欺骗成功。目标机器无法连接网络 4.2中间人攻击 不一致,则直接丢弃该ARP报文。否则允许该Ap.P ̄文通过。 禁止接口学习ARP表项的功能。在设备上禁止指定接 (1)在主机A上对网关实施主机ARP欺骗。使用命令 口学习ARP表项的功能,可以有效应对ARP泛洪攻击,防 arpspoof—i eth0一t 192.168.75.1 192.168.75.135 止ARP表项溢出。 ARP表项严格学习。设备仅学习自己发送的ARP请求 该命令将对网关发送ARP报文,其中源Ip为主机B的 网关发往B的数据将被发往A。 (2)在主机A上开启端口转发,允许主机A像路由器 192.168.75.135,源MAC地址为网络接口eth0的MAC地址。 报文的应答报文,并不学习其它设备向路由器发送的ARP 请求报文,即可以拒绝掉大部分的ARP请求报文攻击。 ARP表项。设备基于接口学习ARP表项的总 数目,可以有效的防止ARP表项溢出。 _那样转发数据包。 echo 1>/proc/sys/net/ipv4/ipforward ARP报文限速。设备对AR.P报文进行数量统计,在 一(3)由于A开启了IP数据包转发,主机B和网关之间 定时间内,如果ARp报文数量超出了配置的阈值,超出 传输的数据包可经由A的转发到达对方。此时A成为B与 部分的ARP报文将被忽略,设备不作任何处理,有效防止 网关之间通信的中间人。 ARp表项溢出。 (4)在A上另外打开一个终端,键人命令 driftnet-i eth0 当在局域网中部署了如上较完整的安全策略之后,基本 可以防范绝大部分的ARP攻击。 6总结 driftnet是一款图片捕获工具,可以在网络数据包中抓取 图片。由于此时B和网关之间的数据包都经由A转发,A即 标B的信息。(见图5和图6) 由于ARP协议自身存在明显的安全缺陷,在局域网中 在了解了Pd' ̄P攻击的原理后,只要在终端主机和网络交换 设备上部署相应的安全策略,就基本可以防范绝大部分的 可截取B网络应用中的图片,A通过ARP欺骗成功获取目 很容易实施ARP攻击,会对网络信息安全造成很大的影响。 ARP攻击。 ∞ … =… …■●一 固『1 ll :羲 瓣穗镕曩■I■ 圈5被攻击机曩洲览罔页圈6欺鞠成功(左一终螬进行欺骗。 右 终螭读取圈片信息) 参考文献 【1】凯文R.福尔(Kevin R.Fal1).TCP/IP详解卷1:协议 【M】.机械工业出版社出版,20l6一O7一O1 【21郭会茹,杨斌,牛立全.ARP攻击原理分析及其安全防 5ARP攻击的防范 范措施【J】.网络安全技术与应用,2015年,06期 【3】顾静.局域网环境下的ARP攻击行为与防御措施【J】.信 ARP攻击是局域网中很容易实施的攻击。在了解攻击 原理之后,可以在终端主机和网络交换设备上部署一些针对 性的防范措拖。 在终端主机上,防护重点是保护本地ARP缓存,可配 置的防护手段包括: 患系统工程,2016年,10期 【4靳燕.ARP攻击实验仿真及防范技术分析【4】J】.网络安全技 术与应用。2016年,07期 作者简介 配置静态ARP缓存表项。将网关和常用的通信主机的 马钺(1995-- ),江苏省南京市泰淮区海福巷1号陆军工 IP和MAC地址绑定为静态表项,不允许ARP解析更新。 程大学信息安全专业。 Digital Space R325