摘要: 目前网络中存在大量基于ARP协议的病毒或攻击。它们的主要危害表现为通过地址伪装欺骗局域网内的其他主机,监听数据传输、截获数据报文、盗取帐号信息,甚至对来访数据包进行欺骗和伪造,对网络安全造成极大的威胁。本文通过ARP工作机制及ARP病毒常用欺骗攻击方法的分析,来探讨对此类病毒的防范及解决方案。
关键词: ARP MITM 地址映射 攻击探测
ARP即Address Resolution Protocol,是将网络IP地址转换为以太网MAC地址的协议。ARP工作时,源主机送出一个含有目标IP地址的以太网广播数据包。目的地主机以一个含有自身IP和MAC地址的数据包作为应答。发送者将这个地址对存储在缓存里的ARP转换表中,以减少不必要的ARP通信。如果有一个不被信任的节点对本地网络具有写访问权限,就会存在某种风险。该节点的主机可以虚假的ARP报文,并将所有通信都转向它自己,然后它就可以扮演某些机器,或者对数据流进行简单的修改,ARP欺骗故而产生。
TCP/IP协议的网络中,路由表决定一个IP包的传输路径,但当IP包到达该网络后,响应这个IP包的主机却是由该IP包中所包含的硬件MAC地址来识别。只有与该IP包中的硬件MAC地址相同的机器才会应答这个IP包。在网络中的每一台主机都会发送IP包,因此在每台主机的内存中都有一个IP―MAC 的转换表,称为ARP映射表。ARP协议正式通过这个表来完成将IP地址到硬件MAC的转换解析。此表通常是一个动态的转换表(可手工添加静态条目),也就是说,该对应表会被主机在一定的时间间隔后刷新。这个时间间隔就是ARP高速缓存的超时时间。主机在发送一个IP包之前,先到该转换表中寻找和IP包对应的硬件MAC地址,如果没有找到,该主机就发送一个ARP广播包,于
是,主机刷新自己的ARP缓存。然后发出该IP包。
一、ARP欺骗攻击的方式
从机制上讲,ARP欺骗攻击的实质属于一种中间人欺骗攻击(Man-in-the-Middle Attack,简称“MITM攻击”)。MITM攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。然后入侵者把这台计算机模拟一台或两台原始计算机,使“中间人”能够与原始计算机建立活动连接并允许其读取或篡改传递的信息,然而两个原始计算机用户却认为他们是在互相通信,因而这种攻击方式并不很容易被发现。
1.信息篡改。当A和B通信时,由主机C来为其“转发”,如***,而A、B之间并没有实际上的直接通信,它们间的信息传递用C作为中介来完成,但A、B却仍然认为它们之间是在直接通信。这样攻击主机在中间成为了一个转发器,C可以不仅窃听A、B的通信,还可以对信息进行篡改再传给对方,C便可以将恶意信息传递给A、B以达到自己的目的。
2.信息窃取。当A和B通信时,C不主动去为其“转发”,只是把他们传输的数据备份,以获取用户网络的活动,包括账户、密码等敏感信息,这种攻击属于被动攻击,很难被发现。
实施中间人攻击时,攻击者常考虑的方式正是ARP欺骗或DNS欺骗等,将会话双方的通讯流暗中改变,而这种改变对于会话双方来说是完全透明的。以常见的DNS欺骗为例,目标将其DNS请求发送到攻击者这里,然后攻击者伪造DNS响应,将假冒的IP替换掉真实的IP,之后你就登陆了这个攻击者指定的IP,而攻击者早就在这个IP中安排好了一个伪造的网站如某银行网站,从而骗取用户输入他们想得到的信息,如银行账号及密码等,这可以看作网络钓鱼攻击的一种方式。
二、ARP欺骗的种类
目前ARP欺骗主要有网关欺骗和ARP表的欺骗两种。
1.网关欺骗的主要方法是伪造网关。通过建立虚假的网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。其表现就是网络掉线,发送数据包的数量远远大于收到的数据包的数量,甚至无法收到数据包(俗称“掉线”)。
2.ARP表欺骗主要方法是截获网关数据。通过通知路由器或三层交换机一系列虚假的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,而真正的目标PC无法收到信息。
如果攻击的源主机和目标主机属于不同网段,只需要把ARP欺骗和ICMP重定向结合在一起就可以基本实现跨网段欺骗的目的。ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非优化路由时,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。路由器也会把初始数据报向它的目的地转发。因此利用ICMP重定向报文也可以达到欺骗的目的。但因为TCP/IP协议现实中关于主机接收ICMP重定向报文主要有下面几条限制:
(1)新路由必须是直达的。
(2)重定向包必须来自去往目标的当前路由。
(3)重定向包不能通知主机用自己做路由。
(4)被改变的路由必须是一条间接路由。
由于有这些限制,所以ICMP欺骗实际上很难实现。我们也可以采取相应的防御办法。
ARP欺骗对网络安全的影响非常严重。一般情况下会造成大面积掉线的通信故障。伴随着数据被监听,很多诸如用户名、密码之类的数据包被截获,如果此类数据包本身没有经过加密,那么欺骗者可以轻易地破解出有价值的信息,从而给用户带来巨大的损失。
三、ARP的MITM攻击的防范方法
从中间人欺骗攻击的工作机制上研究其防范机制:由于MITM攻击的主要目的在于隐蔽地窃取用户有价值的信息,要防范MITM攻击,我们可以将一些机密信息进行加密后再传输,这样即使被“中间人”截取也难以破解,如SSL加密通过共用密匙和私密密匙的设定可以有效地防范MITM攻击。有一些认证方式可以检测到MITM攻击。如设备或IP异常检测,如果用户以前从未使用某个IP访问系统,则系统会采取措施。另外还有设备或IP频率检测:如果某个单一的IP同时访问大量的用户帐号,系统也会采取措施。
由此引申到对基于ARP的MITM攻击的防范方法:
1.不要把网络安全信任关系建立在IP地址的基础上或硬件MAC地址基础上,(RARP同样存在欺骗的问题)理想的关系应该建立在IP+MAC的基础上。在实际应用中,通过在认证服务器或相关的安全机制中实现对网络中所有终端或网关的IP地址与MAC地址的绑定,这样可以实现主机的IP与网络MAC地址进行一一对应,进而遏制一个物理主机伪装成多台主机进行攻击。如果对安全要求较高,还可将网络用户的用户名与IP地址、MAC地址三者一起绑定。可以防止非法主机冒充合法用户访问网络,从源头上消除ARP攻击源。
2.设置静态的MACIP对应表,不让主机刷新设定好的转换表。除非很有必要,否则停止使用动态ARP解析表,将ARP做为永久条目保存在对应表中。这样可以防止黑客或病毒利用工具将自己主机的源IP地址和源MAC地址发给路由器或网关,要求路由器或网关更新自己的ARP转换表,进而将错误的、伪造的地址信息写入ARP解析表。故可以阻断ARP欺骗攻击。
3.在大型以太网络中,应根据实际情况,尽可能细地划分VLAN和网段。很多电信运营商的做法就是将每一个网络用户划分为一个VLAN,这样也可防止一个用户因中了ARP病毒而导致多个用户无法正常上网的问题。
4.修改系统设置,让系统拒绝接收ICMP重定向报文,这样可防止利用ARP和ICMP重定向进行的跨网段欺骗攻击。
5.可以在网络的通信中通过对数据包,尤其是包含用户名、密码等敏感信息的数据包进行加密和封装。
6.校园网之类的大型局域网络中采用静态ARP有困难,网络管理部门可以通过SNMP协议隔一定周期扫描各路由器或网关存储的ARP表,通过比对如果发现IP―MAC的对应存在多对多的异常情况,便可以追溯检测出ARP病毒的感染源或攻击源,并通过关闭网络端口、强制下线等措施可以有效控制ARP病毒的蔓延。
结论
本文在研究分析基于ARP的MITM攻击的原理及机制基础上,提出了对ARP攻击的防范方法,并在实践中取得了良好的效果。其中ARP攻击自动检测的提出,在网络安全领域具有很高的应用价值和市场价值。
参考文献:
[1]Comer.D.E DougInternetWorking with TCP/IP Volume 1.
[2]Data. Structures. And. Algorithm. Analysis. In. C. 1992. [EB/OL].
[3][美]法罗赞恩,费根.TCP/IP协议族.清华大学出版社.
转载请注明出处学文网 » 基于ARP协议的MITM攻击与防范