[转]ARP欺骗的原理
ARP欺骗
一、 ARP欺骗原理:
在TCP/IP网络环境下,一个IP数据包到达目的地所经过的网络路径是由路由器根据数据包的目的IP地址查找路由表决定的,但IP地址只是主机在网络层中的地址,要在实际的物理链路上传送数据包,还需要将IP数据包封装到MAC帧后才能发送到网络中。同一链路上的哪台主机接收这个MAC帧是依据该MAC帧中的目的MAC地址来识别的,即除了同一链路上将网卡置为混杂模式的主机外,只有当某台主机的MAC地址和链路中传输的MAC帧的目的MAC地址相同时,该主机才会接收这个MAC帧并拆封为IP数据包交给上层模块处理。因此,每一台主机在发送链路层数据帧前都需要知道同一链路上接收方的MAC地址,地址解析协议ARP正是用来进行IP地址到MAC地址的转换的。同时为了避免不必要的ARP报文查询,每台主机的操作系统都维护着一个ARP高速缓存ARP Cache,记录着同一链路上其它主机的IP地址到MAC地址的映射关系。ARP高速缓存通常是动态的,该缓存可以手工添加静态条目,由系统在一定的时间间隔后进行刷新。
ARP协议虽然是一个高效的数据链路层协议,但作为一个局域网协议,它是建立在各主机之间相互信任的基础上的,所以ARP协议存在以下缺陷:ARP高速缓存根据所接收到的ARP协议包随时进行动态更新;ARP协议没有连接的概念,任意主机即使在没有ARP请求的时候也可以做出应答;ARP协议没有认证机制,只要接收到的协议包是有效的,主机就无条件的根据协议包的内容刷新本机ARP缓存,并不检查该协议包的合法性。因此攻击者可以随时发送虚假ARP包更新被攻击主机上的ARP缓存,进行地址欺骗或拒绝服务攻击。
针对交换机根据目的MAC地址来决定数据包转发端口的特点,ARP欺骗的实现: 假设主机C为实施ARP欺骗的攻击者,其目的是截获主机B和主机A之间的数据,且主机C在实施ARP欺骗前已经预先知道A和B的IP地址。这时C先发送ARP包获得主机B的MAC地址,然后向B发送ARP Reply数据包,其中源IP地址为A的IP地址,但是源MAC地址却是主机C的MAC地址。主机B收到该ARP Reply后,将根据新的IP地址与MAC映射对更新ARP缓存。这以后当B给A发送数据包时,目标MAC地址将使用C的MAC地址,因此交换机根据C的MAC地址就将数据包转发到攻击者C所在的端口。同理,攻击者C发送ARP Reply使主机A确信主机B的MAC地址为C的MAC地址。在间歇的发送虚假ARP Reply的同时,攻击者C打开本地主机的路由功能,将被劫持的数据包转发到正确的目的主机,这时攻击者对主机A和B来说是完全透明的,通信不会出现异常,但实际上数据包却被C非法截获,攻击者C成为了“中间人”。
二、 特征:
1、网速时快时慢,极其不稳定,但单机进行光纤数据测试时一切正常。
2、局域网内频繁性区域或整体掉线,重启计算机或网络设备后恢复正常。
三、 问题分析(在防火墙中的处理方法)
1、通过远程登陆客户防火墙查看问题:
(通过dump/dump登陆防火墙串口查看arp学习状态,发现不同的IP地址使用相同的MAC地址,如下图:)
2、通过抓抱分析,发现进行ARP欺骗的计算机为134.168.6.144与
134.168.8.187,详细的分析如下图:
四、 处理过程
1、通过网络查找134.168.6.144;134.168.8.187计算机,脱离网络进行排毒检查
2、进行隔离以后的网络状态如下图:
五、 网络保护措施:
防止同网段ARP欺骗攻击配置
一、阻止仿冒网关IP的arp攻击
1、二层交换机
配置组网
图1
3552P是三层设备,其中ip:100.1.1.1是所有pc的网关,3552P上的网关mac地址为000f-e200-3999。PC-B上装有arp攻击软件。现在需要对3026_A进行一些特殊配置,目的是过滤掉仿冒网关IP的arp报文。
2、防攻击配置举例
对于二层交换机如3026c等支持ACL number为5000到5999的交换机,可以配置acl来进行报文过滤。
(1)全局配置deny 所有源IP是网关的arp报文(自定义规则)
ACL num 5000
Rule 0 deny 0806 ffff 24 64010101 ffffffff 40
rule 1 permit 0806 ffff 24 000fe2003999 ffffffffffff 34
rule0目的:把整个3026C_A端口冒充网关的ARP报文禁掉,其中蓝色部分64010101是网关ip地址的16进制表示形式:100.1.1.1=64010101。
rule1目的:把上行口的网关ARP报文允许通过,蓝色部分为网关3552的mac地址000f-e200-3999。
注意配置Rule时的配置顺序,上述配置为先下发后生效的情况。
在S3026C-A系统视图下发acl规则:
[S3026C-A]packet-filter user-group 5000
这样只有3026C_A上连设备能够下发网关的ARP报文,其它pc就不能发送假冒网关的arp响应报文。
二、 三层交换机
1、配置组网
防攻击配置举例
对于三层设备,需要配置过滤源IP是网关的arp报文的acl规则,配置如下acl规则:
ACL num 5000
rule 0 deny 0806 ffff 24 64010105 ffffffff 40
rule0目的:把所有3526E端口冒充网关的ARP报文禁掉,其中蓝色部分64010105是网关ip地址的16进制表示形式:100.1.1.5=64010105。
2 、仿冒他人IP的arp攻击
作为网关的设备有可能会出现arp错误表项,因此在网关设备上还需对仿冒他人IP的arp攻击报文进行过滤。
如图1,当PC-B发送源IP地址为PC-D的arp reply攻击报文,源mac是PC-B的mac (000d-88f8-09fa),源ip是PC-D的ip(100.1.1.3),目的ip和mac是网关(3552P)的,这样3552上就会学习错误的arp,如下所示:
------------------ 错误 arp 表项 ----------------------
IP Address MAC Address VLAN ID Port Name Aging Type
100.1.1.4 000d-88f8-09fa 1 Ethernet0/2 20 Dynamic
100.1.1.3 000f-3d81-45b4 1 Ethernet0/2 20 Dynamic
从网络连接可以知道PC-D的arp表项应该学习到端口E0/8上,而不应该学习到E0/2端口上。但实际上交换机上学习到该ARP表项在E0/2
①在3552上配置静态arp,可以防止该现象:
arp static 100.1.1.3 000f-3d81-45b4 1 e0/8
②同理,在图2 S3526C上也可以配置静态arp来防止设备学习到错误的arp表项。
③对于二层设备(3050和3026E系列),除了可以配置静态arp外,还可以配置IP+mac+port绑定,比如在3026C端口4上作如下操作:
am user-bind ip-addr 100.1.1.4 mac-addr 000d-88f8-09fa int e0/4
则ip为100.1.1.4并且mac为000d-88f8-09fa的arp报文可以通过e0/4端口,仿冒其它设备的arp报文无法通过,从而不会出现错误arp表项。
上述配置案例中仅仅列举了部分Quidway S系列以太网交换机的应用。在实际的网络应用中,请根据配置手册确认该产品是否支持对应的ACL(user-Based)和地址邦定。仅仅具有上述功能的交换机才能防止ARP欺骗。
ARP欺骗防范
一、 ARP欺骗防范
1、在winxp下输入命令:
arp -s gate-way-ip gate-way-mac
固化arp表,阻止arp欺骗。
2、通过查询IP--MAC对应表
A、不要把你的网络安全信任关系建立在IP基础上或MAC基础上,(rarp同样存在欺骗的问题),理想的关系应该建立在IP+MAC基础上。
B、设置静态的MAC-->IP对应表,不要让主机刷新你设定好的转换表。
C、除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。
D、使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。
E、使用"proxy"代理IP的传输。
F、使用硬件屏蔽主机。设置好你的路由,确保IP地址能到达合法的路径。(静态配置路由ARP条目),注意,使用交换集线器和网桥无法阻止ARP欺骗。
G、管理员定期用响应的IP包中获得一个rarp请求,然后检查ARP响应的真实性
H、管理员定期轮询,检查主机上的ARP缓存。
I、使用防火墙连续监控网络。注意有使用SNMP的情况下,ARP的欺骗有可能导致陷阱包丢失。
3、采用双向绑定的方法解决并且防止ARP欺骗
A、在PC上绑定路由器的IP和MAC地址:
B、首先,获得路由器的内网的MAC地址(例如网关地址192.168.16.254
的MAC地址为0022aa0022aa)。
编写一个批处理文件rarp.bat内容如下:
@echo off
arp -d
arp -s 192.168.16.254 00-22-aa-00-22-aa
将文件中的网关IP地址和MAC地址更改为您自己的网关IP地址和
MAC地址将这个批处理软件拖到“windows--开始--程序--启动”中。
C、 如果是网吧,可以利用收费软件服务端程序(pubwin或者万象都 可
以)发送批处理文件rarp.bat到所有客户机的启动目录。Windows2000的默认启动目录为“Cocuments and SettingsAll Users「开始」菜单程序启动”。
D、在路由器上绑定用户主机的IP和MAC地址(440以后的路由器软件版本支持):
4、ARP防护软件—ARP Guard
ARP防护软件――ARP Guard(ARP卫士),通过系统底层核心驱动,无需安装其它任何第三方 软件(如WinPcap),以服务及进程并存的形式随系统启动并运行,不占用计算机系统资源。无需对计算机进行IP地址及MAC地址绑 定,从而避免了大量且无效的工作量。也不用担心计算机会在重启后新建ARP缓存列表,因为此软件是以服务与进程相结合的形式 存在于计算机中,当计算机重启后软件的防护功能也会随操作系统自动启动并工作。ARP Guard(ARP卫士)可以从根本上彻底解 决ARP欺骗攻击所带来的所有问题。它不仅可以保护计算机不受ARP欺骗攻击的影响,而且还会对感染了ARP攻击病毒或欺骗木马的 病毒源机器进行控制,使其不能对局域网内其它计算机进行欺骗攻击。保持网络正常通讯,防止带有ARP欺骗攻击的机器对网内计 算机的监听,使浏览网页、QQ聊天、进行游戏时不受ARP欺骗者限制。
ARP卫士下载地址:http://arp.enet100.com/download.asp