Internet潜藏着许许多多的威胁如病毒、木马等,随时困扰着个人计算机的安全。近年来由于网络安全设备的进步有效的阻隔了大多数外在攻击,而虽然如此,由于使用者习惯的改变及入侵与病毒的传播技术日新月异,近年来的信息及网络安全威胁开始来自于企业内部。本文以技术角度说明ARP欺骗攻击对企业(机关)内部使用者造成的信息安全问题,以及为何ARP欺骗攻击是现阶段病毒攻击网络最喜欢的攻击工具,也是现阶段黑客最喜欢使用的入侵工具之一,有了这些了解后,网络管理者将可更有效布署或整合适当的网络与信息安全设备,检测出网络与信息威胁来源。
什么是ARP、RARP
位置解析协议( Address Resolution Protocol -简称ARP)是地址转换协议,RARP被称为反向地址转换协议,他们负责把IP地址和MAC地址进行相互转换对应。ARP主要被设计用于以OSI model 第三层地址(IP address)求得第二层地址(MAC 地址),这是由于IP数据包常通过以太网传送,而以太网设备本身并不识别第三层32个位的IP地址,而是以第二层48个位的以太网地址(MAC地址)传输以太网数据包的。因此,必须把IP目的地址转换成以太网地目的地址。在这两种地址之间存在着某种静态的映像,这是就是所为的ARP表。
ARP封包只会在同一个子网内传送,它很少透过路由器传送至不同的网络。主机的操作系统会依照封包目地IP地址与本机之子网屏蔽(subnet mask)的值进行运算,以判断封包目地IP是否与本机同属于一个子网络,如果封包的源IP地址与目的IP地址不属于同一子网络则封包必然须要传送至路由器,而ARP则正可以让本机获得路由器以太网设备网卡MAC地址,而让封包可以透过本机以太网设备网卡传送至路由器。ARP、RARP是一个非常重要且使用频繁的协议,在任何一个TCP/IP的连接被建立前,必需经由位置解析协议(Address Resolution Protocol)取得目地主机的实体网络地址(MAC),在局域网(Local area network)中,两部计算机要彼此互相通讯,首先必须彼此知道彼此网卡的MAC地址才能将封包送往对方;例如: 如果某ㄧ计算机 (ip1/ mac1) 得到另一台计算机 (ip2/mac2) 错误的 MAC地址 ( ip2/mac3), 那么这台计算机 (ip1/mac1) 将无法传送数据包到 Ip2 计算机。
什么是ARP欺骗
ARP Spoofing(ARP欺骗)攻击的根本原理是因为Windows计算机中维护着一个 ARP 高速缓存(让你可以使用 arp 命令来查看你自己的ARP高速缓存),并且这个ARP 高速缓存是随着计算机不断的发出ARP请求和收到ARP回应而不断的更新的, ARP 高速缓存的目的是把机器的IP地址和MAC地址相互映像,使得IP数据包在以太网内得顺利而正确找到目的MAC地址,然后正确无误的传送。 如果你可以藉由发出标准的ARP请求或ARP响应来扰乱或窜改某计算机或路由器内正常的ARP表,而导致该计算机(或路由器)发出的数据包误传目的地,或使OSI的第二层以太网和第三层无法连接,进而瘫痪网络,我们就称你使用了ARP欺骗攻击。
举例说明: 现在有三部机器分别是机器A:IP1/MAC1、机器B:IP2/MAC2、机器C:IP3/MAC3 。现在机器B上的用户是位黑客企图干扰机器A或是监视SNIFFER机器A与C之间的通讯,首先他向机器A发出一个 ARP Reply,其中的目的IP地址为IP1,目的(Destination) MAC 地址为MAC1,而源(Source)IP地址为IP3,源MAC地址为 MAC2 。好了, 现在机器A更新了他的 ARP高速缓存,并相信了IP3地址的机器的MAC地址是 MAC2 。当机器A上的管理员发出一条FTP命令时---ftp IP3,数据包被送到了Switch,Switch查看资料包中的目的地址,发现MAC为 MAC2 ,于是,他把数据包发到了机器B上,因此成功攻击机器A。现在如果不想影响A和C之间的通信该怎么办?仅是sniffer监视两者之间的通讯,你可以同时欺骗他们双方,使用 man-in-middle攻击,便可以达到效果 。
总之本机在传送数据包之前,会送出一个关于查询目的IP地址的MAC以太网广播包。正常情况下,只有对应目的IP的主机会以一个自己的48位MAC主机地址unicast包来做响应,并且将该IP与MAC地址对应更新本机内ARP高速缓存,以节约不必要的ARP通信。如果有一个中毒的计算机或是网内合法授权进行非法活动的黑客,他们是对本地网络具有写访问权限,极可能这样一台机器就会发布虚假的ARP请求或响应通讯,欺骗其它计算机或路由器将所有通信都转向它自己,然后它就可以扮演某些机器,或对数据流进行修改。这样就造成arp欺骗攻击,影响正常的主机通信。