摘要:本文介绍了ARP协议的基本原理,阐述了ARP欺骗攻击产生的原因及在IDC中常见攻击手段,结合IDC中心的特点提出了ARP欺骗攻击的预防方法,并给出解决方案
关键词:ARP攻击;IP地址;MAC地址;IDC 1 引言 ARP攻击在各大数据中心(IDC中心)泛滥,使得国内众多机房或网络运营商深恶痛绝
由于其攻击的特性,它可以导致被攻击网站或服务器的无法访问,或者使访问者访问其他错误网址或接收到错误信息,直接危害着企业的利益
因此,ARP欺骗攻击严重影响了IDC中心的正常运行和信息安全,如何进行防范及清楚ARP病毒已成为网络管理者迫切需要解决的问题
2 ARP工作原理 ARP(Address Resolution Protocol)是地址解析协议,提供了从IP地址到物理地址的映射
即通过已知的网络层(IP层,也就是相当于OSI的第三层)地址获得数据链路层(MAC层,也就是相当于OSI的第二层)的MAC地址
ARP工作原理:主机A向主机B发送报文,会首先查询本地的ARP缓存表,通过B的IP地址找到对应的MAC地址后,就会进行数据传输
如果未找到,则A会广播一个 ARP请求报文(此报文中包含主机A的IP地址到物理地址的映射及主机B的IP地址),请求主机B回答其物理地址
网上所有主机包括B都收到该ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文
其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存
接着使用这个MAC地址发送数据
因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的
3 IDC中常见ARP欺骗攻击方式 ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP地址到MAC地址映射
如果IDC的托管主机受到 ARP 病毒感染或是被黑客控制了,就可能出现了 ARP 欺骗攻击
通常,被感染或被控制的主机会向本网段广播伪造的 ARP 信息,这会导致同网段的其它托管主机或是网关的 ARP 表出现混乱,会造成这些主机无法进行正常通信,更有甚者则会导致这些主机上的通信被监听或窃取事件的发生等等问题
3.1 欺骗攻击 这是比较常见的攻击,通过发送伪造的ARP包来欺骗路由和目标主机,让目标主机认为这是一个合法的主机
便完成了欺骗.这种欺骗多发生在同一网段内,因为路由不会把本网段的包向外转发,当然实现不同网段的攻击也有方法,便要通过ICMP协议来告诉路由器重新选择路由
(1)相同网段ARP欺骗 此种欺骗攻击通常会伪造一个ARP_REPLY的响应包发送给欲欺骗主机,人为指定该数据包中的源IP,目标IP,源MAC地址,目标MAC地址
通过此虚假的ARP响应包修改欲欺骗主机的ARP缓存,达到欺骗目的
以图1为例说明相同网段间ARP欺骗过程
主机C欲非法入侵主机B,下面是具体的步骤: ①主机C首先研究与主机B正常通信的主机A,发现主机A漏洞
②根据主机A的漏洞,使其暂时停止工作
③主机C将自己IP地址改为192.168.0.1
④主机C向主机B发送一个ARP响应包,其中源IP地址为192.168.0.1,源MAC地址为CC:CC:CC:CC:CC:CC,要求主机B更新ARP缓存中IP地址到MAC地址的映射表. ⑤主机B更新了自己的ARP缓存
⑥主机C成功入侵主机B
以上为一个在同网段内的ARP欺骗过程
(2)不同网段ARP欺骗 如主机A与主机C在不同网段,上面的方法则不起作用
以图2为例说明不同网段间ARP欺骗过程
在现在的情况下,位于192.168.1网段的主机C如何冒充主机B欺骗主机A呢?显然用上面的办法的话,即使欺骗成功,那么由主机C和主机A之间也无法建立telnet会话,因为路由器不会把主机A发给主机B的包向外转发,路由器会发现地址在192.168.0.这个网段之内
现在就涉及到另外一种欺骗方式——ICMP重定向
把ARP欺骗和ICMP重定向结合在一起就可以基本实现跨网段欺骗的目的
ICMP重定向报文是ICMP控制报文中的一种
在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由
路由器也会把初始数据报向它的目的地转发
我们可以利用ICMP重定向报文达到欺骗的目的
下面是结合ARP欺骗和ICMP重定向进行攻击的步骤: ①主机C需将自己发出的非法IP包的存活时间改成最大
②寻找主机B的漏洞使其暂时停止工作
③当主机A找不到原来的192.0.0.2后,将更新自己的ARP对应表
此时,主机C发送一个原IP地址为192.0.0.2,MAC地址为CC:CC:CC:CC:CC:CC的ARP响应包
④现在每台主机都知道了,一个新的MAC地址对应192.0.0.2,一个ARP欺骗完成了,但是,每台主机都只会在局域网中找这个地址而根本就不会把发送给192.0.0.2的IP包丢给路由
于是还需要构造一个ICMP的重定向广播
⑤定制一个ICMP重定向包告诉网络中的主机, 到192.0.0.2的路由最短路径不是局域网,而是路由,请主机重定向你们的路由路径,把所有到192.0.0.2的IP包丢给路由
⑥主机A接受这个合理的ICMP重定向,于是修改自己的路由路径,把对192.0.0.3的通讯都丢给路由器
⑦主机C成功入侵主机A
其实上面的想法只是一种理想话的情况,主机许可接收的ICMP重定向包其实有很多的限制条件,这些条件使ICMP重定向变的非常困难
(3)ARP欺骗新表现形式 此种欺骗攻击方式同上一样,向全网发送伪造的ARP数据包,区别在于它对HTTP报文的修改
用户在浏览某些网页时,网页中可能会包含一些恶意的代码,这就是俗称的“网页木马”,此种行为被称为“挂马”
主要有以下三种方法插入恶意代码: ①局域网被ARP欺骗
当网内的一台主机欲访问网外的WEB服务器时,该主机会将请求发给负责本网的网关,由网关到服务器获得请求页面再发给该主机
此时攻击主机伪装成网关将插入恶意代码的网页发给请求主机,对于该局域网内的其他主机均可采取此种攻击方法
②服务器被ARP欺骗
服务器所处局域网内,有主机被感染病毒,服务器发给用户的网页在传输过程中被插入恶意代码
③服务器被攻击
服务器被入侵或感染病毒,硬盘上网页文件被修改插入恶意代码
3.2 MAC Flooding MAC Flooding 可以称之为 MAC 洪泛现象,这是一个比较危险的攻击,可以溢出交换机的ARP表,使整个网络不能正常通信
其中 Flooding 是一种快速散布网络连接设备 (如交换机)更新信息到整个大型网络打每一个节点的一种方法
交换机中也存放着一个 ARP 缓存表
同主机中的 ARP 缓存表相同,它也起到记录网络设备 MAC 地址与 IP 地址的 对应关系的功能
但是交换机中的 ARP 缓存表的大小是固定的,这就导致了 ARP 欺骗的另 一种隐患:由于交换机可以主动学习客户端的 MAC 地址,并建立和维护这个 ARP 缓存表, 当某人利用欺骗攻击连续大量的制造欺骗 MAC 地址,ARP 缓存表就会被迅速填满,同时更新信息以洪泛方式发送到所有的接口,也会发给所有的接口和邻近的交换机,会导致其他交换机的 ARP 表 溢出,造成交换机负载过大,网络缓慢和丢包甚至瘫痪
所以说 MAC Flooding 是一种比较 危险的攻击,严重会使整个网络不能正常通信